diff --git a/web-v2/src/components/DocumentPdfProjection.tsx b/web-v2/src/components/DocumentPdfProjection.tsx new file mode 100644 index 0000000..ecdd2e3 --- /dev/null +++ b/web-v2/src/components/DocumentPdfProjection.tsx @@ -0,0 +1,109 @@ +import { Icon } from './Icon'; + +type ProjectionKind = 'act' | 'report'; + +interface ProjectionSection { + title: string; + description: string; +} + +const actSections: ProjectionSection[] = [ + { + title: 'Identificación y contexto', + description: 'Número y año de Acta, Inspección vinculada, fecha y hora, Departamento, Área, Yacimiento, Operadora y ubicación de la actuación.', + }, + { + title: 'Intervinientes', + description: 'Inspectores actuantes y responsable de la empresa: nombre, DNI, cargo, correo y demás datos de identificación que exija el modelo oficial.', + }, + { + title: 'Alcance y constatación', + description: 'Objeto de la actuación, descripción de lo actuado, observaciones e Inventarios inspeccionados con su ruta Instalación / Subinstalación.', + }, + { + title: 'Hallazgos', + description: 'Código, Inventario afectado, descripción, base legal, reincidencia, gravedad y plazos aplicables, conservando la instantánea emitida en campo.', + }, + { + title: 'Firmas y manifestaciones', + description: 'Firmas de inspectores y responsable de empresa, conformidad o disidencia, manifestación textual, negativa/ausencia si correspondiera y marcas de tiempo.', + }, + { + title: 'Integridad y verificación', + description: 'Versión sellada, hash SHA-256, sello de tiempo y espacio reservado para token o QR de verificación documental.', + }, + { + title: 'Anexos', + description: 'Registro fotográfico y evidencias sólo si el formulario oficial exige incorporarlos al Acta; el modelo queda preparado para hacerlo sin alterar el dato fuente.', + }, +]; + +const reportSections: ProjectionSection[] = [ + { + title: 'Identificación y contexto', + description: 'Número y año del INF, Acta fuente, Inspección, Empresa, Departamento, Área, Yacimiento, fechas y autores/intervinientes.', + }, + { + title: 'Objetivos y antecedentes', + description: 'Motivo de la inspección, antecedentes relevantes y alcance técnico del Informe.', + }, + { + title: 'Marco legal', + description: 'Normativa y bases legales aplicables, incluyendo las referencias congeladas de los Hallazgos del Acta fuente.', + }, + { + title: 'Resumen ejecutivo y desarrollo técnico', + description: 'Resumen ejecutivo, descripción de la inspección, análisis técnico y consideraciones editables durante la preparación del INF.', + }, + { + title: 'Inventarios y Hallazgos', + description: 'Inventarios inspeccionados y detalle de Hallazgos con descripción, reincidencia, gravedad, plazos y trazabilidad con el Acta.', + }, + { + title: 'Registro fotográfico', + description: 'Fotografías y evidencias seleccionadas, con referencia al Inventario/Hallazgo, fecha y metadatos disponibles.', + }, + { + title: 'Conclusiones', + description: 'Conclusión técnica, recomendaciones y texto final sujeto a revisión antes de la oficialización.', + }, + { + title: 'GEDO e integridad', + description: 'Identificador IF, fecha de oficialización, hash del PDF oficial y hash de la instantánea congelada que originó el Informe.', + }, + { + title: 'Anexo final', + description: 'Acta fuente completa e inmutable como anexo del Informe, manteniendo la relación exacta INF → Acta.', + }, +]; + +export function DocumentPdfProjection({ kind }: { kind: ProjectionKind }) { + const isAct = kind === 'act'; + const sections = isAct ? actSections : reportSections; + + return
+
+
+ PDF PRELIMINAR · ESTRUCTURA PROYECTADA +

{isAct ? 'Contenido previsto del Acta' : 'Contenido previsto del Informe'}

+

El diseño institucional definitivo todavía no fue recibido. Esta vista fija qué información debe poder alimentar el documento, sin comprometer encabezados, tipografías, logos ni distribución final.

+
+ Plantilla oficial pendiente +
+ +
+ +

Contrato de datos estable, renderer reemplazable. Cuando llegue el PDF/Word oficial se adapta la composición visual sobre estos mismos datos, sin rehacer el circuito de Inspecciones, Actas, Hallazgos ni trazabilidad.

+
+ +
+ {sections.map((section, index) =>
+
+ {index + 1}. {section.title} + {section.description} +
+ Previsto +
)} +
+
; +}