import { z } from 'zod'; export const trainingSchema = z.object({ id: z.number().optional(), firstname: z.string().min(1, { message: "Nombre es requerido" }), lastname: z.string().min(1, { message: "Apellido es requerido" }), visitDate: z.string().or(z.date()).transform((val) => new Date(val).toISOString()), productiveActivity: z.string().min(1, { message: "Actividad productiva es requerida" }), financialRequirementDescription: z.string().min(1, { message: "Descripción es requerida" }), siturCodeCommune: z.string().min(1, { message: "Código SITUR Comuna es requerido" }), communalCouncil: z.string().min(1, { message: "Consejo Comunal es requerido" }), siturCodeCommunalCouncil: z.string().min(1, { message: "Código SITUR Consejo Comunal es requerido" }), ospName: z.string().min(1, { message: "Nombre de la OSP es requerido" }), ospAddress: z.string().min(1, { message: "Dirección de la OSP es requerida" }), ospRif: z.string().min(1, { message: "RIF de la OSP es requerido" }), ospType: z.string().min(1, { message: "Tipo de OSP es requerido" }), currentStatus: z.string().min(1, { message: "Estatus actual es requerido" }), companyConstitutionYear: z.coerce.number().min(1900, { message: "Año inválido" }), producerCount: z.coerce.number().min(1, { message: "Cantidad de productores requerida" }), productDescription: z.string().min(1, { message: "Descripción del producto es requerida" }), installedCapacity: z.string().min(1, { message: "Capacidad instalada es requerida" }), operationalCapacity: z.string().min(1, { message: "Capacidad operativa es requerida" }), ospResponsibleFullname: z.string().min(1, { message: "Nombre del responsable es requerido" }), ospResponsibleCedula: z.string().min(1, { message: "Cédula del responsable es requerida" }), ospResponsibleRif: z.string().min(1, { message: "RIF del responsable es requerido" }), ospResponsiblePhone: z.string().min(1, { message: "Teléfono del responsable es requerido" }), civilState: z.string().min(1, { message: "Estado civil es requerido" }), familyBurden: z.coerce.number().min(0, { message: "Carga familiar requerida" }), numberOfChildren: z.coerce.number().min(0, { message: "Número de hijos requerido" }), ospResponsibleEmail: z.string().email({ message: "Correo electrónico inválido" }), generalObservations: z.string().optional().default(''), photo1: z.string().optional().default(''), photo2: z.string().optional().default(''), photo3: z.string().optional().default(''), paralysisReason: z.string().optional().default(''), state: z.number().optional().nullable(), municipality: z.number().optional().nullable(), parish: z.number().optional().nullable(), }); export type TrainingSchema = z.infer; export const trainingApiResponseSchema = z.object({ message: z.string(), data: z.array(trainingSchema), meta: z.object({ page: z.number(), limit: z.number(), totalCount: z.number(), totalPages: z.number(), hasNextPage: z.boolean(), hasPreviousPage: z.boolean(), nextPage: z.number().nullable(), previousPage: z.number().nullable(), }), }); export const TrainingMutate = z.object({ message: z.string(), data: trainingSchema, });