import { z } from 'zod'; export const EventStatusEnum = z.enum([ 'planned', 'open', 'full', 'running', 'completed', 'cancelled', ]); export const CreateEventSchema = z.object({ accountId: z.string().uuid(), name: z.string().min(1).max(256), description: z.string().optional(), eventDate: z.string(), eventTime: z.string().optional(), endDate: z.string().optional(), location: z.string().optional(), capacity: z.number().int().optional(), minAge: z.number().int().optional(), maxAge: z.number().int().optional(), fee: z.number().min(0).default(0), status: EventStatusEnum.default('planned'), registrationDeadline: z.string().optional(), contactName: z.string().optional(), contactEmail: z.string().email().optional().or(z.literal('')), contactPhone: z.string().optional(), }); export type CreateEventInput = z.infer; export const UpdateEventSchema = CreateEventSchema.partial().extend({ eventId: z.string().uuid(), }); export type UpdateEventInput = z.infer; export const EventRegistrationSchema = z.object({ eventId: z.string().uuid(), firstName: z.string().min(1), lastName: z.string().min(1), email: z.string().email().optional().or(z.literal('')), phone: z.string().optional(), dateOfBirth: z.string().optional(), parentName: z.string().optional(), parentPhone: z.string().optional(), }); export const CreateHolidayPassSchema = z.object({ accountId: z.string().uuid(), name: z.string().min(1), year: z.number().int(), description: z.string().optional(), price: z.number().min(0).default(0), validFrom: z.string().optional(), validUntil: z.string().optional(), });