Merge pull request 'Enhance appointment scheduling by including timezone support in the schema and payload. Update the scheduleAppointment function to automatically use the user's timezone if not specified, improving accuracy in appointment scheduling.' (#60) from feat/booking-panel into master

Reviewed-on: http://35.207.46.142/ATTUNE-HEART-THERAPY/website/pulls/60
This commit is contained in:
Hammond 2025-12-05 11:25:02 +00:00
commit e139244cc5
2 changed files with 7 additions and 1 deletions

View File

@ -392,9 +392,14 @@ export async function scheduleAppointment(id: string, input: ScheduleAppointment
throw new Error("Authentication required.");
}
// Get user's timezone
const userTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
// Build payload with defaults
const payload: any = {
...input,
// Always include timezone when scheduling with datetime
...(input.scheduled_datetime && { timezone: input.timezone || userTimezone }),
// Default create_jitsi_meeting to true if not specified
create_jitsi_meeting: input.create_jitsi_meeting !== undefined ? input.create_jitsi_meeting : true,
};

View File

@ -37,11 +37,12 @@ export type CreateAppointmentInput = z.infer<typeof createAppointmentSchema>;
// Schedule Appointment Schema (Admin only)
// Supports two scheduling methods:
// 1. Direct datetime: scheduled_datetime + scheduled_duration
// 1. Direct datetime: scheduled_datetime + scheduled_duration + timezone
// 2. Date and slot: date_str + time_slot + scheduled_duration
export const scheduleAppointmentSchema = z.object({
scheduled_datetime: z.string().datetime("Invalid datetime format").optional(),
scheduled_duration: z.number().int().positive().optional(),
timezone: z.string().optional(),
date_str: z.string().regex(/^\d{4}-\d{2}-\d{2}$/, "Date must be in YYYY-MM-DD format").optional(),
time_slot: z.enum(["morning", "afternoon", "evening"]).optional(),
create_jitsi_meeting: z.boolean().optional(),