/opt/mawid/packages/shared/src/schemas
NameSizeModeActions
appointment.ts10640644editdlrm
auth.ts4770644editdlrm
clinic.ts8630644editdlrm
index.ts1840644editdlrm
service.ts5720644editdlrm
staff.ts5500644editdlrm
working-hours.ts7650644editdlrm
Edit: /opt/mawid/packages/shared/src/schemas/working-hours.ts (765B)
import { z } from 'zod'; const timeString = z.string().regex(/^([01]\d|2[0-3]):[0-5]\d$/, 'expected HH:MM'); export const intervalSchema = z .object({ start: timeString, end: timeString }) .refine((i) => i.start < i.end, { message: 'start must be before end' }); /** Per-weekday open intervals; an empty array (or missing day) means closed. */ export const workingHoursSchema = z .object({ mon: z.array(intervalSchema), tue: z.array(intervalSchema), wed: z.array(intervalSchema), thu: z.array(intervalSchema), fri: z.array(intervalSchema), sat: z.array(intervalSchema), sun: z.array(intervalSchema), }) .partial(); export type WorkingHours = z.infer; export type WeekdayKey = keyof WorkingHours;