From 2da200a491eea725c6edfced37b512cd2cbc2820 Mon Sep 17 00:00:00 2001 From: Nicolas Date: Wed, 8 Apr 2026 20:11:22 -0400 Subject: [PATCH] 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 --- apps/api/src/database/schema/surveys.ts | 1 + .../training/dto/create-training.dto.ts | 5 + .../feactures/training/components/form.tsx | 305 +++++++----------- .../feactures/training/schemas/training.ts | 74 ++--- 4 files changed, 166 insertions(+), 219 deletions(-) diff --git a/apps/api/src/database/schema/surveys.ts b/apps/api/src/database/schema/surveys.ts index bc5bb04..0b3f53c 100644 --- a/apps/api/src/database/schema/surveys.ts +++ b/apps/api/src/database/schema/surveys.ts @@ -158,6 +158,7 @@ export const trainingSurveys = t.pgTable( updatedBy: t .integer('updated_by') .references(() => users.id, { onDelete: 'cascade' }), + surveyStatus: t.text('survey_status').notNull().default('PUBLICADO'), ...timestamps, }, (trainingSurveys) => ({ diff --git a/apps/api/src/features/training/dto/create-training.dto.ts b/apps/api/src/features/training/dto/create-training.dto.ts index 75930bc..4199386 100644 --- a/apps/api/src/features/training/dto/create-training.dto.ts +++ b/apps/api/src/features/training/dto/create-training.dto.ts @@ -7,6 +7,7 @@ import { IsEmail, IsInt, IsOptional, + isString, IsString, ValidateIf, } from 'class-validator'; @@ -332,4 +333,8 @@ export class CreateTrainingDto { @IsString() @IsOptional() photo3?: string; + + @ApiProperty() + @IsString() + surveyStatus: string } diff --git a/apps/web/feactures/training/components/form.tsx b/apps/web/feactures/training/components/form.tsx index 9c22bf2..968bbb7 100644 --- a/apps/web/feactures/training/components/form.tsx +++ b/apps/web/feactures/training/components/form.tsx @@ -151,7 +151,7 @@ export function CreateTrainingForm({ generalObservations: defaultValues?.generalObservations || '', ospResponsibleEmail: defaultValues?.ospResponsibleEmail || '', paralysisReason: defaultValues?.paralysisReason || '', - infrastructureMt2: defaultValues?.infrastructureMt2 || undefined, + infrastructureMt2: defaultValues?.infrastructureMt2 || '', hasTransport: defaultValues?.hasTransport || false, structureType: defaultValues?.structureType || undefined, isOpenSpace: defaultValues?.isOpenSpace || false, @@ -172,6 +172,7 @@ export function CreateTrainingForm({ womenCount: defaultValues?.womenCount || 0, menCount: defaultValues?.menCount || 0, + surveyStatus: defaultValues?.surveyStatus || 'BORRADOR' }, mode: 'onChange', }); @@ -208,6 +209,11 @@ export function CreateTrainingForm({ name: 'productiveActivity', }); + const structureType = useWatch({ + control: form.control, + name: 'structureType', + }); + const productiveSectorOptions = ecoSector ? SECTOR_PRODUCTIVO_MAP[ecoSector] || [] : []; @@ -222,6 +228,7 @@ export function CreateTrainingForm({ : []; const other = productiveActivity == 'OTRO' ? true : false; + const showInfrastructure = structureType && structureType !== 'NINGUNA'; // Reset dependent fields when parent changes React.useEffect(() => { @@ -371,7 +378,7 @@ export function CreateTrainingForm({ { const val = e.target.value.replace(/\D/g, ''); field.onChange(val.slice(0, 11)); @@ -393,7 +400,7 @@ export function CreateTrainingForm({ @@ -491,7 +498,7 @@ export function CreateTrainingForm({ @@ -695,7 +702,7 @@ export function CreateTrainingForm({ @@ -715,7 +722,7 @@ export function CreateTrainingForm({ @@ -733,7 +740,7 @@ export function CreateTrainingForm({ Nombre de la organización (opcional) - + @@ -752,7 +759,7 @@ export function CreateTrainingForm({ @@ -770,7 +777,7 @@ export function CreateTrainingForm({ - + )} /> + {showInfrastructure && ( + ( + + + infraestrutura (MT2) + + + + + + + )} + /> + )} + - ( - - - Tipo Estructura - - - - - )} - /> - -