From e09930d411bc8123460aa8334dfa62d7b4250d48 Mon Sep 17 00:00:00 2001 From: enlineawork Date: Sun, 6 Sep 2026 21:32:19 -0300 Subject: [PATCH] F2.2.1: crear baseline temporal del maestro importado --- ...000000-phase-f2-2-1-reference-baselines.ts | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 api-v3/src/database/migrations/1789758000000-phase-f2-2-1-reference-baselines.ts diff --git a/api-v3/src/database/migrations/1789758000000-phase-f2-2-1-reference-baselines.ts b/api-v3/src/database/migrations/1789758000000-phase-f2-2-1-reference-baselines.ts new file mode 100644 index 0000000..68d8a89 --- /dev/null +++ b/api-v3/src/database/migrations/1789758000000-phase-f2-2-1-reference-baselines.ts @@ -0,0 +1,57 @@ +import { MigrationInterface, QueryRunner } from 'typeorm'; + +export class PhaseF221ReferenceBaselines1789758000000 implements MigrationInterface { + name = 'PhaseF221ReferenceBaselines1789758000000'; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + INSERT INTO asset_versions ( + asset_id,version_number,change_type,changed_fields,snapshot,source + ) + SELECT + asset.id, + 1, + 'BASELINE', + ARRAY['assetTypeId','parentId','operationalAreaId','operatorCompanyId','code','name','informationStatus','operationalStatus','dataOrigin','sourceName','sourceReference'], + jsonb_build_object( + 'id',asset.id, + 'assetTypeId',asset.asset_type_id, + 'parentId',asset.parent_id, + 'operationalAreaId',asset.operational_area_id, + 'operatorCompanyId',asset.operator_company_id, + 'code',asset.code, + 'name',asset.name, + 'commonName',asset.common_name, + 'description',asset.description, + 'informationStatus',asset.information_status, + 'operationalStatus',asset.operational_status, + 'dataOrigin',asset.data_origin, + 'sourceName',asset.source_name, + 'sourceReference',asset.source_reference, + 'sourceNotes',asset.source_notes + ), + 'SYSTEM' + FROM assets asset + WHERE asset.data_origin='IMPORT' + AND asset.source_name='Tablas de yacimiento(1).xlsx' + AND NOT EXISTS ( + SELECT 1 FROM asset_versions version + WHERE version.asset_id=asset.id AND version.version_number=1 + ) + `); + await queryRunner.query(` + UPDATE assets asset + SET current_version=GREATEST(asset.current_version,1),updated_at=CURRENT_TIMESTAMP + WHERE asset.data_origin='IMPORT' + AND asset.source_name='Tablas de yacimiento(1).xlsx' + AND EXISTS ( + SELECT 1 FROM asset_versions version + WHERE version.asset_id=asset.id AND version.version_number=1 + ) + `); + } + + public async down(): Promise { + throw new Error('F2.2.1 no elimina baselines históricos del maestro importado. Restaurar backup PRE si fuera necesario.'); + } +}