export interface BaseTimeSlot {
  start: string;
  end: string;
}

interface TimeslotContext {
  contact_id: string;
  office_id: string;
  subject_id: string;
  meeting_type: string;
  auto_accept: boolean;
  max_concurrent_appointments: number;
  estimated_duration: number;
  granularity: number;
  time_slot_earliest_possible: number;
  time_slot_granularity: number;
  time_slot_latest_possible: number;
  trailing_buffer_time: number;
}

interface TimeslotContact {
  auto_accept: boolean;
  id: string;
  max_concurrent_appointments: number;
  priority: string;
  scheduled_concurrent_appointments: number;
  score: number;
  time_slot_granularity: number;
}

export type TimetableSlot = BaseTimeSlot & {
  contacts: TimeslotContact[];
};
export type AvailabilitySlot = BaseTimeSlot & { context: TimeslotContext };
