Files
petlink_final/lib/validations/reservation.ts

18 lines
619 B
TypeScript

import { z } from 'zod';
export const createReservationSchema = z.object({
animalId: z.string().cuid('ID de animal inválido.'),
date: z
.string()
.refine((v) => !isNaN(new Date(v).getTime()), 'Data inválida.')
.refine((v) => new Date(v) > new Date(), 'A data tem de ser no futuro.'),
notes: z.string().max(500).optional(),
});
export const updateReservationSchema = z.object({
status: z.enum(['CONFIRMED', 'CANCELLED', 'COMPLETED']),
});
export type CreateReservationInput = z.infer<typeof createReservationSchema>;
export type UpdateReservationInput = z.infer<typeof updateReservationSchema>;