diff --git a/api-v3/src/reference-data/f3-1-inventory-excel.ts b/api-v3/src/reference-data/f3-1-inventory-excel.ts new file mode 100644 index 0000000..3ebeb71 --- /dev/null +++ b/api-v3/src/reference-data/f3-1-inventory-excel.ts @@ -0,0 +1,62 @@ +import { gunzipSync } from 'node:zlib'; + +/** + * F3.1 · Inventario estructural + catálogo contextual. + * Fuente: APLICACION APP(2).xlsx entregado por DH el 07/09/2026. + * Hoja1: familias de Instalación/Subinstalación + hallazgos contextuales. + * Hoja2: 19 grupos canónicos de hallazgos. + * + * La carga está comprimida para mantener el repositorio legible. No crea Áreas + * ni Yacimientos concretos: sólo familias técnicas y catálogo. + */ +export interface F31FindingGroup { + key: string; + name: string; + sourceRow: number; + items: string[]; +} + +export interface F31InstallationFamily { + code: string; + name: string; + level: 'INSTALLATION'; + legacyTypeCode: string; + groupKeys: string[]; + directFindings: string[]; + sourceSheet: 'Hoja1'; + sourceRow: number; +} + +export interface F31SubinstallationFamily { + code: string; + name: string; + level: 'SUBINSTALLATION'; + parentCode: string; + legacyTypeCode: string; + groupKeys: string[]; + directFindings: string[]; + informationLabels: string[]; + sourceRow: number; +} + +interface F31Source { + universal: string[]; + groups: F31FindingGroup[]; + installationFamilies: F31InstallationFamily[]; + subinstallationFamilies: F31SubinstallationFamily[]; +} + +const SNAPSHOT_GZIP_BASE64 = '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'; + +function loadSource(): F31Source { + return JSON.parse( + gunzipSync(Buffer.from(SNAPSHOT_GZIP_BASE64, 'base64')).toString('utf8'), + ) as F31Source; +} + +const source = loadSource(); + +export const F31_UNIVERSAL_FINDINGS = source.universal; +export const F31_FINDING_GROUPS = source.groups; +export const F31_INSTALLATION_FAMILIES = source.installationFamilies; +export const F31_SUBINSTALLATION_FAMILIES = source.subinstallationFamilies;