oralify-backend
Version:
Express Node CRUD backend for Oralify
69 lines (61 loc) • 1.42 kB
text/typescript
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;
};