UNPKG

oralify-backend

Version:
69 lines (61 loc) 1.42 kB
export enum RecurrenceKey { Daily = 'daily', Weekly = 'weekly', Monthly = 'monthly', Yearly = 'yearly', } export enum TimeslotStatus { 'booked' = 'booked', 'pending' = 'pending', 'confirmed' = 'confirmed', 'cancelled' = 'cancelled', //cancelled already 'unavailable' = 'unavailable', //set manually to unavailable 'available' = 'available', } export enum DayKey { Sunday = 'Sunday', Monday = 'Monday', Tuesday = 'Tuesday', Wednesday = 'Wednesday', Thursday = 'Thursday', Friday = 'Friday', Saturday = 'Saturday', } export type AvailabilitySettingsType = { id?: string; expertId: string; startTime: string; endTime: string; dayOfWeek: DayKey; recurrence: RecurrenceKey; isAvailable: boolean; //Make profile visible or not }; /**ChatGPT*/ export type TimeSlotType = { id: string; availabilityId: string; expertId: string; startTime: string; endTime: string; status: TimeslotStatus; }; export type AppointmentType = { id: string; serviceId: string; userId: string; timeSlotId: string; status: TimeslotStatus; // For example: "pending", "confirmed", "cancelled" }; export enum Recurrence { None = 'none', Daily = 'daily', Weekly = 'weekly', Monthly = 'monthly', } export type ServiceAvailability = { startTime: number; endTime?: number; duration: number; availabilityRanges: AvailabilitySettingsType[]; recurrence?: Recurrence; };