cambios en el formulario osp: rol autoridad, campos responsable cambiados, esquema cambiado, añadida columna fecha de creacion a la tabla
This commit is contained in:
@@ -28,9 +28,7 @@ export const trainingSchema = z.object({
|
||||
.min(1, { message: 'Nombre del coordinador es requerido' }),
|
||||
coorPhone: z
|
||||
.string()
|
||||
.optional()
|
||||
.nullable()
|
||||
.refine((val) => !val || /^(04|02)\d{9}$/.test(val), {
|
||||
.refine((val) => /^(04|02)\d{9}$/.test(val), {
|
||||
message: 'El teléfono debe tener 11 dígitos y comenzar con 04 o 02',
|
||||
}),
|
||||
visitDate: z
|
||||
@@ -39,13 +37,11 @@ export const trainingSchema = z.object({
|
||||
|
||||
//Datos de la organización socioproductiva (OSP)
|
||||
ospType: z.string().min(1, { message: 'Tipo de OSP es requerido' }),
|
||||
ecoSector: z.string().optional().or(z.literal('')).nullable(),
|
||||
productiveSector: z.string().optional().or(z.literal('')).nullable(),
|
||||
centralProductiveActivity: z.string().optional().or(z.literal('')).nullable(),
|
||||
mainProductiveActivity: z.string().optional().or(z.literal('')).nullable(),
|
||||
productiveActivity: z
|
||||
.string()
|
||||
.min(1, { message: 'Actividad productiva es requerida' }),
|
||||
ecoSector: z.string({ message: 'Sector Económico es requerido' }),
|
||||
productiveSector: z.string({ message: 'Sector Productivo es requerido' }),
|
||||
centralProductiveActivity: z.string({ message: 'Actividad Central Productiva es requerido' }),
|
||||
mainProductiveActivity: z.string({ message: 'Actividad Productiva Principal es requerida' }),
|
||||
productiveActivity: z.string({ message: 'Actividad Productiva es requerida' }),
|
||||
ospRif: z.string().optional().or(z.literal('')).nullable(),
|
||||
ospName: z.string().optional().or(z.literal('')).nullable(),
|
||||
companyConstitutionYear: z.coerce
|
||||
@@ -56,7 +52,7 @@ export const trainingSchema = z.object({
|
||||
.string()
|
||||
.min(1, { message: 'Estatus actual es requerido' })
|
||||
.default('ACTIVA'),
|
||||
infrastructureMt2: z.string().optional().or(z.literal('')).nullable(),
|
||||
infrastructureMt2: z.string({ message: 'Infraestructura es requerida' }),
|
||||
hasTransport: z
|
||||
.preprocess(
|
||||
(val) => val === 'true' || val === true || val === 1 || val === '1',
|
||||
@@ -65,7 +61,7 @@ export const trainingSchema = z.object({
|
||||
.optional()
|
||||
.nullable()
|
||||
.default(false),
|
||||
structureType: z.string().optional().or(z.literal('')).nullable(),
|
||||
structureType: z.string({ message: 'Tipo de estructura es requerido' }),
|
||||
isOpenSpace: z
|
||||
.preprocess(
|
||||
(val) => val === 'true' || val === true || val === 1 || val === '1',
|
||||
@@ -115,8 +111,8 @@ export const trainingSchema = z.object({
|
||||
.string()
|
||||
.min(1, { message: 'Dirección de la OSP es requerida' }),
|
||||
ospGoogleMapsLink: z.string().optional().or(z.literal('')).nullable(),
|
||||
communeName: z.string().optional().or(z.literal('')).nullable(),
|
||||
siturCodeCommune: z.string().optional().or(z.literal('')).nullable(),
|
||||
communeName: z.string().min(1, { message: 'Nombre de la comuna es requerida' }),
|
||||
siturCodeCommune: z.string().min(1, { message: 'Código SITUR de la comuna es requerida' }),
|
||||
communeRif: z.string().optional().or(z.literal('')).nullable(),
|
||||
communeSpokespersonName: z.string().optional().or(z.literal('')).nullable(),
|
||||
communeSpokespersonPhone: z
|
||||
@@ -135,7 +131,7 @@ export const trainingSchema = z.object({
|
||||
communalCouncil: z
|
||||
.string()
|
||||
.min(1, { message: 'Consejo Comunal es requerido' }),
|
||||
siturCodeCommunalCouncil: z.string().optional().or(z.literal('')).nullable(),
|
||||
siturCodeCommunalCouncil: z.string().min(1, { message: 'Código SITUR del Consejo Comunal es requerido' }),
|
||||
communalCouncilRif: z.string().optional().or(z.literal('')).nullable(),
|
||||
communalCouncilSpokespersonName: z
|
||||
.string()
|
||||
@@ -188,9 +184,9 @@ export const trainingSchema = z.object({
|
||||
files: z.any().optional(),
|
||||
|
||||
//no se envia la backend al crear ni editar el formulario
|
||||
state: z.number().optional().nullable(),
|
||||
municipality: z.number().optional().nullable(),
|
||||
parish: z.number().optional().nullable(),
|
||||
state: z.number({ message: 'El estado es requerido' }).nullable(),
|
||||
municipality: z.number({ message: 'Municipio es requerido' }).nullable(),
|
||||
parish: z.number({ message: 'Parroquia es requerido' }).nullable(),
|
||||
coorState: z.number().optional().nullable(),
|
||||
coorMunicipality: z.number().optional().nullable(),
|
||||
coorParish: z.number().optional().nullable(),
|
||||
@@ -199,15 +195,117 @@ export const trainingSchema = z.object({
|
||||
photo3: z.string().optional().nullable(),
|
||||
createdBy: z.number().optional().nullable(),
|
||||
updatedBy: z.number().optional().nullable(),
|
||||
createdAt: z.string().optional().nullable(),
|
||||
updatedAt: z.string().optional().nullable(),
|
||||
created_at: z.string().optional().nullable(),
|
||||
updated_at: z.string().optional().nullable(),
|
||||
});
|
||||
|
||||
export type TrainingSchema = z.infer<typeof trainingSchema>;
|
||||
|
||||
|
||||
export const getTrainingSchema = z.object({
|
||||
//Datos de la visita
|
||||
id: z.number().optional(),
|
||||
coorFullName: z.string(),
|
||||
coorPhone: z.string(),
|
||||
visitDate: z.string(),
|
||||
//Datos de la organización socioproductiva (OSP)
|
||||
ospType: z.string(),
|
||||
ecoSector: z.string(),
|
||||
productiveSector: z.string(),
|
||||
centralProductiveActivity: z.string(),
|
||||
mainProductiveActivity: z.string(),
|
||||
productiveActivity: z.string(),
|
||||
ospRif: z.string().optional().or(z.literal('')).nullable(),
|
||||
ospName: z.string().optional().or(z.literal('')).nullable(),
|
||||
companyConstitutionYear: z.coerce.number(),
|
||||
currentStatus: z.string(),
|
||||
infrastructureMt2: z.string(),
|
||||
hasTransport: z
|
||||
.preprocess(
|
||||
(val) => val === 'true' || val === true || val === 1 || val === '1',
|
||||
z.boolean(),
|
||||
)
|
||||
.optional()
|
||||
.nullable()
|
||||
.default(false),
|
||||
structureType: z.string(),
|
||||
isOpenSpace: z
|
||||
.preprocess(
|
||||
(val) => val === 'true' || val === true || val === 1 || val === '1',
|
||||
z.boolean(),
|
||||
)
|
||||
.optional()
|
||||
.nullable()
|
||||
.default(false),
|
||||
paralysisReason: z.string().optional().nullable(),
|
||||
//Datos del Equipamiento
|
||||
equipmentList: z.array(equipmentItemSchema).optional().default([]),
|
||||
//Datos de Producción
|
||||
productionList: z.array(productionItemSchema).optional().default([]),
|
||||
// Datos de Actividad Productiva
|
||||
productList: z.array(productItemSchema).optional().default([]),
|
||||
// Distribución y Exportación
|
||||
internalDistributionZone: z.string(),
|
||||
isExporting: z
|
||||
.preprocess(
|
||||
(val) => val === 'true' || val === true || val === 1 || val === '1',
|
||||
z.boolean(),
|
||||
)
|
||||
.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(),
|
||||
// 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(),
|
||||
communeName: z.string(),
|
||||
siturCodeCommune: z.string(),
|
||||
communeRif: z.string().optional().or(z.literal('')).nullable(),
|
||||
communeSpokespersonName: z.string().optional().or(z.literal('')).nullable(),
|
||||
communeSpokespersonPhone: z.string(),
|
||||
communeEmail: z.string(),
|
||||
communalCouncil: z.string(),
|
||||
siturCodeCommunalCouncil: z.string(),
|
||||
communalCouncilRif: z.string().optional(),
|
||||
communalCouncilSpokespersonName: z.string(),
|
||||
communalCouncilSpokespersonPhone: z.string(),
|
||||
communalCouncilEmail: z.string(),
|
||||
//Datos del Responsable OSP
|
||||
ospResponsibleCedula: z.string(),
|
||||
ospResponsibleFullname: z.string(),
|
||||
ospResponsibleRif: z.string().optional().nullable(),
|
||||
civilState: z.string().optional().nullable(),
|
||||
ospResponsiblePhone: z.string(),
|
||||
ospResponsibleEmail: z.string(),
|
||||
familyBurden: z.coerce.number().optional(),
|
||||
numberOfChildren: z.coerce.number().optional(),
|
||||
//Datos adicionales
|
||||
generalObservations: z.string().optional().nullable(),
|
||||
//no se envia la backend al crear ni editar el formulario
|
||||
state: z.number().nullable(),
|
||||
municipality: z.number().nullable(),
|
||||
parish: z.number().nullable(),
|
||||
coorState: z.number().optional().nullable(),
|
||||
coorMunicipality: z.number().optional().nullable(),
|
||||
coorParish: z.number().optional().nullable(),
|
||||
photo1: z.string().optional().nullable(),
|
||||
photo2: z.string().optional().nullable(),
|
||||
photo3: z.string().optional().nullable(),
|
||||
createdBy: z.number().optional().nullable(),
|
||||
updatedBy: z.number().optional().nullable(),
|
||||
created_at: z.string().optional().nullable(),
|
||||
updated_at: z.string().optional().nullable(),
|
||||
});
|
||||
|
||||
export const trainingApiResponseSchema = z.object({
|
||||
message: z.string(),
|
||||
data: z.array(trainingSchema),
|
||||
data: z.array(getTrainingSchema),
|
||||
meta: z.object({
|
||||
page: z.number(),
|
||||
limit: z.number(),
|
||||
|
||||
Reference in New Issue
Block a user