import { apiFetch } from "@/lib/api-client"; // An appointment. Mirrors the backend `src/types/appointment.ts`. Scoped to the // active clinic. `fileNumber` links back to a patient record when set. export type AppointmentStatus = | "confirmed" | "checked-in" | "completed" | "cancelled"; export type Appointment = { id: string; fileNumber: string; name: string; initials: string; date: string; // ISO YYYY-MM-DD time: string; // HH:mm type: string; provider: string; status: AppointmentStatus; source: "manual" | "ai"; // "ai" = drafted by the chat agent, flag for review createdAt: string; updatedAt: string; }; export type AppointmentInput = { fileNumber: string; name: string; initials: string; date: string; time: string; type: string; provider: string; status?: AppointmentStatus; source?: "manual" | "ai"; }; export function listAppointments(): Promise { return apiFetch("/api/appointments"); } export function createAppointment( input: AppointmentInput, ): Promise { return apiFetch("/api/appointments", { method: "POST", body: JSON.stringify(input), }); } export function updateAppointment( id: string, input: AppointmentInput, ): Promise { return apiFetch(`/api/appointments/${id}`, { method: "PUT", body: JSON.stringify(input), }); } export function deleteAppointment(id: string): Promise { return apiFetch(`/api/appointments/${id}`, { method: "DELETE" }); }