mejoras al formulario de registro organizaciones productivas
This commit is contained in:
@@ -1,61 +1,107 @@
|
||||
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(),
|
||||
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()
|
||||
.min(1, { message: 'Fecha y hora de visita es requerida' }),
|
||||
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' })
|
||||
.default('ACTIVA'),
|
||||
companyConstitutionYear: z.coerce
|
||||
.number()
|
||||
.min(1900, { message: 'Año inválido' }),
|
||||
producerCount: z.coerce
|
||||
.number()
|
||||
.min(0, { message: 'Cantidad de productores requerida' }),
|
||||
productCount: z.coerce
|
||||
.number()
|
||||
.min(0, { message: 'Cantidad de productos requerida' })
|
||||
.optional(),
|
||||
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().nullable(),
|
||||
photo2: z.string().optional().nullable(),
|
||||
photo3: z.string().optional().nullable(),
|
||||
files: z.any().optional(),
|
||||
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<typeof trainingSchema>;
|
||||
|
||||
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(),
|
||||
}),
|
||||
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,
|
||||
message: z.string(),
|
||||
data: trainingSchema,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user