18 lines
619 B
TypeScript
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>;
|