"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.updateShiftSeriesSchema = exports.createShiftSeriesSchema = void 0; const zod_1 = require("zod"); const client_1 = require("@prisma/client"); exports.createShiftSeriesSchema = zod_1.z.object({ title: zod_1.z.string().min(1, 'Title is required'), description: zod_1.z.string().optional(), startTime: zod_1.z.string().regex(/^\d{2}:\d{2}$/, 'Start time must be HH:MM'), endTime: zod_1.z.string().regex(/^\d{2}:\d{2}$/, 'End time must be HH:MM'), location: zod_1.z.string().optional(), maxVolunteers: zod_1.z.number().int().min(1, 'Must have at least 1 volunteer spot'), isPublic: zod_1.z.boolean().optional().default(false), cutId: zod_1.z.string().optional(), // Recurrence frequency: zod_1.z.nativeEnum(client_1.RecurrenceFrequency), daysOfWeek: zod_1.z.array(zod_1.z.number().int().min(0).max(6)).optional(), // 0=Sun, 6=Sat startDate: zod_1.z.string().regex(/^\d{4}-\d{2}-\d{2}$/, 'Start date must be YYYY-MM-DD'), endDate: zod_1.z.string().regex(/^\d{4}-\d{2}-\d{2}$/, 'End date must be YYYY-MM-DD').optional(), }).refine((data) => { // Weekly requires daysOfWeek if (data.frequency === client_1.RecurrenceFrequency.WEEKLY && !data.daysOfWeek?.length) { return false; } return true; }, { message: 'Weekly recurrence requires at least one day of week', path: ['daysOfWeek'] }); exports.updateShiftSeriesSchema = zod_1.z.object({ title: zod_1.z.string().min(1).optional(), description: zod_1.z.string().nullable().optional(), startTime: zod_1.z.string().regex(/^\d{2}:\d{2}$/).optional(), endTime: zod_1.z.string().regex(/^\d{2}:\d{2}$/).optional(), location: zod_1.z.string().nullable().optional(), maxVolunteers: zod_1.z.number().int().min(1).optional(), isPublic: zod_1.z.boolean().optional(), cutId: zod_1.z.string().nullable().optional(), editMode: zod_1.z.enum(['THIS', 'FUTURE', 'ALL']), fromDate: zod_1.z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(), // Required for FUTURE }); //# sourceMappingURL=shift-series.schemas.js.map