nuevas correciones al formulario y esquema base de datos para osp
This commit is contained in:
@@ -7,25 +7,6 @@ const productItemSchema = z.object({
|
||||
dailyCount: z.coerce.string().or(z.number()).optional().nullable(),
|
||||
weeklyCount: z.coerce.string().or(z.number()).optional().nullable(),
|
||||
monthlyCount: z.coerce.string().or(z.number()).optional().nullable(),
|
||||
|
||||
// Distribución Interna
|
||||
internalDistributionZone: z.string().optional().nullable(),
|
||||
internalQuantity: z.coerce.string().or(z.number()).optional().nullable(),
|
||||
internalUnit: z.string().optional().nullable(),
|
||||
|
||||
// Distribución Externa
|
||||
externalCountry: z.string().optional().nullable(),
|
||||
externalState: z.number().optional().nullable(),
|
||||
externalMunicipality: z.number().optional().nullable(),
|
||||
externalParish: z.number().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.string().or(z.number()).optional().nullable(),
|
||||
menCount: z.coerce.string().or(z.number()).optional().nullable(),
|
||||
});
|
||||
|
||||
const productionItemSchema = z.object({
|
||||
@@ -42,8 +23,9 @@ const equipmentItemSchema = z.object({
|
||||
export const trainingSchema = z.object({
|
||||
//Datos de la visita
|
||||
id: z.number().optional(),
|
||||
firstname: z.string().min(1, { message: 'Nombre es requerido' }),
|
||||
lastname: z.string().min(1, { message: 'Apellido es requerido' }),
|
||||
coorFullName: z
|
||||
.string()
|
||||
.min(1, { message: 'Nombre del coordinador es requerido' }),
|
||||
coorPhone: z
|
||||
.string()
|
||||
.optional()
|
||||
@@ -76,14 +58,22 @@ export const trainingSchema = z.object({
|
||||
.default('ACTIVA'),
|
||||
infrastructureMt2: z.string().optional().or(z.literal('')).nullable(),
|
||||
hasTransport: z
|
||||
.preprocess((val) => val === 'true' || val === true, z.boolean())
|
||||
.preprocess(
|
||||
(val) => val === 'true' || val === true || val === 1 || val === '1',
|
||||
z.boolean(),
|
||||
)
|
||||
.optional()
|
||||
.nullable(),
|
||||
.nullable()
|
||||
.default(false),
|
||||
structureType: z.string().optional().or(z.literal('')).nullable(),
|
||||
isOpenSpace: z
|
||||
.preprocess((val) => val === 'true' || val === true, z.boolean())
|
||||
.preprocess(
|
||||
(val) => val === 'true' || val === true || val === 1 || val === '1',
|
||||
z.boolean(),
|
||||
)
|
||||
.optional()
|
||||
.nullable(),
|
||||
.nullable()
|
||||
.default(false),
|
||||
paralysisReason: z.string().optional().nullable(),
|
||||
|
||||
//Datos del Equipamiento
|
||||
@@ -95,6 +85,31 @@ export const trainingSchema = z.object({
|
||||
// Datos de Actividad Productiva
|
||||
productList: z.array(productItemSchema).optional().default([]),
|
||||
|
||||
// Distribución y Exportación
|
||||
internalDistributionZone: z
|
||||
.string()
|
||||
.min(1, { message: 'Zona de distribución es requerida' }),
|
||||
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()
|
||||
.min(0, { message: 'Cantidad de mujeres es requerida' }),
|
||||
menCount: z.coerce
|
||||
.number()
|
||||
.min(0, { message: 'Cantidad de hombres es requerida' }),
|
||||
|
||||
//Detalles de la ubicación
|
||||
ospAddress: z
|
||||
.string()
|
||||
|
||||
Reference in New Issue
Block a user