package schedule;

/**
 * An Appointment adds a number of components to a generic ScheduledItem.  The
 * StartTime and Duration indicate when the appointment starts and how long it
 * lasts.  The Location is where it is held.  The Security indicates who can
 * see that the appointment is scheduled.  AppointmentPriority is how important
 * the appointment is.  RemindInfo indicates if and how the user is reminded of
 * the appointment.  Details are free form text describing any specific
 * appointment details.
 *                                                                           <p>
 * This object is derived from Section 2.2 of the Milestone 6 requirements, in
 * particular Figure 6.
 */
abstract class Appointment extends ScheduledItem {
    Time startTime;
    Duration duration;
    RecurringInfo recurringInfo;
    Location location;
    Security security;
    AppointmentPriority priority;
    RemindInfo remind;
    Text details;
}