Cambios en el formulario: nuevos inputs, esquemas actualizados, correciones para el modo telefono, eliminada redundancia de condicionales en los defaulvalus y values de los inputs

This commit is contained in:
2026-04-08 20:11:22 -04:00
parent 7f5a895c12
commit 2da200a491
4 changed files with 166 additions and 219 deletions

View File

@@ -46,18 +46,17 @@ export const trainingSchema = z.object({
productiveActivity: z.string({
message: 'Actividad Productiva es requerida',
}),
productiveActivityOther: z.string().min(1, { message: 'Este campo es requerido' }).optional(),
ospRif: z.string().optional().or(z.literal('')).nullable(),
ospName: z.string().optional().or(z.literal('')).nullable(),
productiveActivityOther: z.string().min(1, { message: 'Otra actividad productiva es requerida' }).optional(),
ospRif: z.string().optional(),
ospName: z.string().optional(),
companyConstitutionYear: z.coerce
.number()
.min(1900, { message: 'Año inválido' })
.nullable(),
.min(1900, { message: 'Año inválido' }),
currentStatus: z
.string()
.min(1, { message: 'Estatus actual es requerido' })
.default('ACTIVA'),
infrastructureMt2: z.string({ message: 'Infraestructura es requerida' }),
infrastructureMt2: z.string({ message: 'Infraestructura es requerida' }).optional(),
hasTransport: z
.preprocess(
(val) => val === 'true' || val === true || val === 1 || val === '1',
@@ -75,7 +74,7 @@ export const trainingSchema = z.object({
.optional()
.nullable()
.default(false),
paralysisReason: z.string().optional().nullable(),
paralysisReason: z.string().optional(),
//Datos del Equipamiento
equipmentList: z.array(equipmentItemSchema).optional().default([]),
@@ -88,8 +87,7 @@ export const trainingSchema = z.object({
// Distribución y Exportación
internalDistributionZone: z
.string()
.min(1, { message: 'Zona de distribución es requerida' }),
.string(),
isExporting: z
.preprocess(
(val) => val === 'true' || val === true || val === 1 || val === '1',
@@ -97,11 +95,11 @@ export const trainingSchema = z.object({
)
.optional()
.default(false),
externalCountry: z.string().optional().nullable(),
externalCity: z.string().optional().nullable(),
externalDescription: z.string().optional().nullable(),
externalQuantity: z.coerce.string().or(z.number()).optional().nullable(),
externalUnit: z.string().optional().nullable(),
externalCountry: z.string().optional(),
externalCity: z.string().optional(),
externalDescription: z.string().optional(),
externalQuantity: z.coerce.string().or(z.number()).optional(),
externalUnit: z.string().optional(),
// Mano de obra
womenCount: z.coerce
@@ -115,7 +113,7 @@ export const trainingSchema = z.object({
ospAddress: z
.string()
.min(1, { message: 'Dirección de la OSP es requerida' }),
ospGoogleMapsLink: z.string().optional().or(z.literal('')).nullable(),
ospGoogleMapsLink: z.string().optional().or(z.literal('')),
communeName: z
.string()
.min(1, { message: 'Nombre de la comuna es requerida' }),
@@ -137,8 +135,7 @@ export const trainingSchema = z.object({
.string()
.email({ message: 'Correo electrónico de la Comuna inválido' })
.optional()
.or(z.literal(''))
.nullable(),
.or(z.literal('')),
communalCouncil: z
.string()
.min(1, { message: 'Consejo Comunal es requerido' }),
@@ -162,8 +159,7 @@ export const trainingSchema = z.object({
.string()
.email({ message: 'Correo electrónico del Consejo Comunal inválido' })
.optional()
.or(z.literal(''))
.nullable(),
.or(z.literal('')),
//Datos del Responsable OSP
ospResponsibleCedula: z
@@ -191,7 +187,7 @@ export const trainingSchema = z.object({
numberOfChildren: z.coerce.number().optional(),
//Datos adicionales
generalObservations: z.string().optional().nullable(),
generalObservations: z.string().optional(),
//IMAGENES
files: z.any().optional(),
@@ -210,6 +206,7 @@ export const trainingSchema = z.object({
updatedBy: z.number().optional().nullable(),
created_at: z.string().optional().nullable(),
updated_at: z.string().optional().nullable(),
surveyStatus: z.string()
});
export type TrainingSchema = z.infer<typeof trainingSchema>;
@@ -228,11 +225,11 @@ export const getTrainingSchema = z.object({
mainProductiveActivity: z.string(),
productiveActivity: z.string(),
productiveActivityOther: z.string(),
ospRif: z.string().optional().or(z.literal('')).nullable(),
ospName: z.string().optional().or(z.literal('')).nullable(),
ospRif: z.string().optional().or(z.literal('')),
ospName: z.string().optional().or(z.literal('')),
companyConstitutionYear: z.coerce.number(),
currentStatus: z.string(),
infrastructureMt2: z.string(),
infrastructureMt2: z.string().optional(),
hasTransport: z
.preprocess(
(val) => val === 'true' || val === true || val === 1 || val === '1',
@@ -250,7 +247,7 @@ export const getTrainingSchema = z.object({
.optional()
.nullable()
.default(false),
paralysisReason: z.string().optional().nullable(),
paralysisReason: z.string().optional(),
//Datos del Equipamiento
equipmentList: z.array(equipmentItemSchema).optional().default([]),
//Datos de Producción
@@ -266,23 +263,23 @@ export const getTrainingSchema = z.object({
)
.optional()
.default(false),
externalCountry: z.string().optional().nullable(),
externalCity: z.string().optional().nullable(),
externalDescription: z.string().optional().nullable(),
externalQuantity: z.coerce.string().or(z.number()).optional().nullable(),
externalUnit: z.string().optional().nullable(),
externalCountry: z.string().optional(),
externalCity: z.string().optional(),
externalDescription: z.string().optional(),
externalQuantity: z.coerce.string().or(z.number()).optional(),
externalUnit: z.string().optional(),
// Mano de obra
womenCount: z.coerce.number(),
menCount: z.coerce.number(),
//Detalles de la ubicación
ospAddress: z.string(),
ospGoogleMapsLink: z.string().optional().or(z.literal('')).nullable(),
ospGoogleMapsLink: z.string().optional().or(z.literal('')),
communeName: z.string(),
siturCodeCommune: z.string(),
communeRif: z.string().or(z.literal('')).nullable(),
communeSpokespersonName: z.string().or(z.literal('')).nullable(),
communeRif: z.string().or(z.literal('')),
communeSpokespersonName: z.string().or(z.literal('')),
communeSpokespersonPhone: z.string(),
communeEmail: z.string().optional().or(z.literal('')).nullable(),
communeEmail: z.string().optional().or(z.literal('')),
communalCouncil: z.string(),
siturCodeCommunalCouncil: z.string(),
communalCouncilRif: z.string().optional(),
@@ -292,14 +289,14 @@ export const getTrainingSchema = z.object({
//Datos del Responsable OSP
ospResponsibleCedula: z.string(),
ospResponsibleFullname: z.string(),
ospResponsibleRif: z.string().optional().nullable(),
civilState: z.string().optional().nullable(),
ospResponsibleRif: z.string().optional(),
civilState: z.string().optional(),
ospResponsiblePhone: z.string(),
ospResponsibleEmail: z.string(),
familyBurden: z.coerce.number().optional(),
numberOfChildren: z.coerce.number().optional(),
//Datos adicionales
generalObservations: z.string().optional().nullable(),
generalObservations: z.string().optional(),
//no se envia la backend al crear ni editar el formulario
state: z.number().nullable(),
municipality: z.number().nullable(),
@@ -314,8 +311,10 @@ export const getTrainingSchema = z.object({
updatedBy: z.number().optional().nullable(),
created_at: z.string().optional().nullable(),
updated_at: z.string().optional().nullable(),
surveyStatus: z.string()
});
// Para mostrar datos
export const trainingApiResponseSchema = z.object({
message: z.string(),
data: z.array(getTrainingSchema),
@@ -331,7 +330,8 @@ export const trainingApiResponseSchema = z.object({
}),
});
//
export const TrainingMutate = z.object({
message: z.string(),
data: trainingSchema,
data: getTrainingSchema,
});