namespace ca.mcgill.ecse.flexibook.controller;

class TOUser {
	String username;
	String password;
}

class TOBusiness {
	String name;
	String address;
	String phoneNumber;
	String email;
}

class TOBookableService {
	abstract;
	String name;
}

class TOService {
	isA TOBookableService;
	int duration;
	int downtimeDuration;
	int downtimeStart;
}

class TOServiceCombo {
	isA TOBookableService;
	1 <@>- 2..* TOComboItem services;
}

class TOComboItem {
	String serviceName;
	boolean mandatory;
}

class TOAppointment {
	Date startDate;
	Time startTime;
	Date endDate;
	Time endTime;
	String customerUsername; // not sure, may be redundant
	String bookableServiceName;
}

class TOTimeSlot {
	Date startDate;
	Time startTime;
	Date endDate;
	Time endTime;
}

class TOCalendar {
	1 -> * TOTimeSlot availableTimeSlots;
	1 -> * TOTimeSlot unavailableTimeSlots;
}
