Tarea 21 · La Punta del Iceberg

Panel NDA/Contratos
Plan de construcción

Un subsistema para armar, enviar y gestionar formularios de contrato, independiente de los datos del ecosistema, con su propio editor inspirado en el del FSC. Este es el mapa antes de tocar código: qué se reutiliza, qué se construye, en qué orden y cuánto toma.

Estado · Plan para tu OK Alcance · 4 fases + 1 opcional Migraciones · desde 237 Riesgo global · Alto (auth, correos, FSC al aire)
01 Antes de arrancar · necesito 3 decisiones tuyas

Tres bifurcaciones que definen el trabajo

No quiero adivinar en algo de este tamaño. Cada decisión cambia fases enteras. Te dejo mi recomendación en cada una para que sea un sí/ajusta, no una página en blanco.

DECISIÓN 1

¿Quién diligencia el formulario y cómo entra?

El correo lleva un CTA al formulario. La persona que lo llena, ¿necesita cuenta en el sistema, o entra por un link con token sin registrarse?

RecomiendoLink público con token único por envío, sin exigir cuenta (como una invitación). Más simple para el destinatario y con trazabilidad de quién abrió y diligenció.
DECISIÓN 2

¿Esta primera versión genera el documento del contrato?

Hablas del alias "que se usará en el documento". ¿La v1 solo recolecta los datos y archivos, o ya genera el PDF del contrato con esos datos incrustados en una plantilla?

Recomiendov1 recolecta y guarda datos + subir/descargar archivos. La generación del documento con plantilla (merge de campos → PDF del contrato) queda como Fase 5, para no volver esto infinito y entregarte valor antes.
DECISIÓN 3

La tabla país → tipo de identificación

La pediste formal ("la vamos a necesitar muy pronto"). Hoy solo existe el NIT de Colombia hardcodeado. ¿Con qué países arrancamos el catálogo?

RecomiendoColombia completo (CC, CE, NIT, Pasaporte) + los principales de LATAM (MX, PE, CL, AR, EC), tabla extensible para sumar países sin tocar código.
02 Arquitectura · construir sobre lo que ya existe

Qué reutilizo y qué construyo nuevo

La política es estructural primero: nada de duplicar. El formulario de contratos es independiente del sistema, así que lleva sus propias tablas, pero reusa el motor, los componentes y los patrones probados del FSC.

◆ Reutilizo (ya probado en prod)

  • Editor y motor de preguntas personalizadas del FSC scouting_campaign_custom_questions + CustomQuestionsBlock
  • Patrón de lista + acciones (crear, duplicar, pausar, borrar suave, restaurar) de dashboard/admin/scouting
  • Permisos por módulo module_permissions + is_module_admin + gate de rutas
  • Subida y descarga con URL firmada (bucket privado) del Data Room
  • Campos ya hechos: País, Ciudad+Provincia encadenada, Teléfono con código de país
  • Envío de correo (Resend + HTML de marca) y patrón de formulario público + mensaje de éxito

◆ Construyo nuevo

  • Tablas del builder de contratos (formularios, paneles, campos, respuestas) aisladas de scouting
  • Módulo de permiso "contratos" + item NDA/Contratos en el menú Sistema
  • Tabla país → tipo de identificación + selector estilo teléfono (país muestra sus tipos)
  • Tipos de pregunta Número y Fecha (nuevos, aditivos al FSC también)
  • Campo WhatsApp estructurado + los flags "usar datos de domicilio" / "usar teléfono"
  • Cola de envíos programados (fecha/hora/GMT + programación) + correo con CTA al formulario
03 Fases · cada una entrega algo funcional

El orden de construcción

0

Cimientos

La base sobre la que se apoya todo lo demás.
Módulo de permiso "contratos" + item en menú Sistema Tabla país→tipo de identificación + selector Tipos de pregunta Número y Fecha Esquema de tablas del builder
Tiempo ~2 días Riesgo Alto permisos + FSC al aire
1

Lista + editor

El corazón: donde armas cada formulario de contrato.
Lista tipo scouting (crear/duplicar/pausar/borrar/ver/editar) Editor con campos base (compañía, representante, notificaciones) Preguntas personalizadas + texto largo Paneles y secciones Subir archivos + página pública + mensaje de éxito
Tiempo ~2 días Riesgo Medio
2

Formulario público + diligenciamiento

Donde el destinatario llena el contrato.
Ruta pública con token Render de campos base + personalizados Descargar los archivos que subiste + subir los suyos Guardado de la respuesta + mensaje de éxito
Tiempo ~1.5 días Riesgo Medio storage + acceso por token
3

Envío por correo + programación

El botón enviar con todo lo que pediste.
Correo con CTA al formulario (diseño de marca) Trazabilidad fecha/hora/GMT de envío Programar el envío (fecha futura) + cron Estados: enviado, programado, abierto, diligenciado
Tiempo ~1.5 días Riesgo Alto correos + scheduling
5

Generación del documento del contrato · OPCIONAL / SIGUIENTE

Depende de la Decisión 2. Plantilla de contrato + merge de los datos → PDF final.
Editor de plantilla del contrato Merge de campos diligenciados PDF del contrato descargable
Tiempo ~2 días Riesgo Medio
04 Cuidados · lo que no puede romperse

Riesgos y cómo los manejo

!
FSC al aire (Sura). Sumar los tipos Número/Fecha es aditivo; las campañas existentes no los usan. No-regresión de Sura verificada antes de cada deploy.
!
Permisos y acceso. Módulo nuevo con gate en cada ruta. Pruebo super admin, admin del módulo y usuario sin acceso (debe rebotar 403).
!
Correos reales. En pruebas intercepto los envíos: nadie recibe correos de prueba. Trazabilidad con GMT real.
!
Migraciones y archivos. Cada migración con su reverso. Bucket privado, links firmados con vencimiento. Datos de prueba borrados en el mismo paso.
05 Resumen
~7 días
Trabajo efectivo · Fases 0 a 3

Es un proyecto de varios días, no de una tarde. Prefiero decírtelo de frente. Te reporto y verifico en producción al cerrar cada fase.

Fase 0
Arranco apenas me des el OK

Con tu sí a las 3 decisiones y al orden de fases, empiezo por los cimientos (permisos + tabla país/tipo-id + tipos de pregunta) y te muestro avance real.