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.'); } }