namespace ca.mcgill.ecse223.flexibook.controller;

class TOUser {
  abstract;
  unique username;
  password;
}

class TOOwner {
  isA TOUser;
}

class TOCustomer {
  isA TOUser;
}

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

class TOBusinessHour {
  enum TODayOfWeek { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }
  TODayOfWeek TODayOfWeek;
  Time startTime;
  Time endTime;
}
  
class TOTimeSlot {
  Date startDate;
  Time startTime;
  Date endDate;
  Time endTime;
}


class TOService {
  String name;
  int duration;
  int downtimeDuration;
  int downtimeStart;
}

class TOServiceCombo {
  String name;
  String mainService;
  String opServices;  
  String mandatoryServices;
}


class TOAppointmentCalendarItem
{
  Date date;
  0..1 -> * TOTimeSlot availableTimeSlots;
  0..1 -> * TOTimeSlot unavailableTimeSlots;
  0..1 -> * TOAppointment;	
}

class TOAppointment
{
 String customerName;
 String serviceName;
 Date date;
 Time startTime;
 Time endTime;
 }

