export interface WeeklyRule {
  dayOfWeek: number;
  startTime: string;
  endTime: string;
  /** Optional location from host Locations module. */
  locationId?: string | null;
}

export interface TimeInterval {
  startTime: string;
  endTime: string;
}

export interface DateOverride {
  date: string;
  available: boolean;
  intervals?: TimeInterval[];
}

export interface Availability {
  timezone: string;
  minNoticeHours: number;
  maxAdvanceDays: number;
  weeklyRules: WeeklyRule[];
  dateOverrides: DateOverride[];
}

export interface UpdateAvailabilityRequest {
  timezone: string;
  minNoticeHours: number;
  maxAdvanceDays: number;
  weeklyRules: WeeklyRule[];
  dateOverrides: DateOverride[];
}
