chore: import DH V2 D5.6.4 production baseline
This commit is contained in:
+89
@@ -0,0 +1,89 @@
|
||||
import { MigrationInterface, QueryRunner } from 'typeorm';
|
||||
|
||||
export class PhaseD538LocalInventoryStructure1787853600000 implements MigrationInterface {
|
||||
name = 'PhaseD538LocalInventoryStructure1787853600000';
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`
|
||||
ALTER TABLE asset_import_plan_items DROP CONSTRAINT chk_asset_import_plan_item_kind
|
||||
`);
|
||||
await queryRunner.query(`
|
||||
ALTER TABLE asset_import_plan_items ADD CONSTRAINT chk_asset_import_plan_item_kind CHECK (
|
||||
entity_kind IN (
|
||||
'DEPARTMENT','ORGANIZATION','AREA','AREA_DEPARTMENT_RELATION','FIELD','OPERATOR_RELATION',
|
||||
'LEGAL_RIGHT','LEGAL_RIGHT_ORGANIZATION','INSTALLATION','LOCAL_STRUCTURE','TECHNICAL_ASSET'
|
||||
)
|
||||
)
|
||||
`);
|
||||
|
||||
await queryRunner.query(`
|
||||
INSERT INTO asset_types (code,name,description,can_be_root,is_active,operational_role)
|
||||
SELECT
|
||||
'estructura_local',
|
||||
'Estructura local (fuente)',
|
||||
'Nodo estructural provisional que conserva la nomenclatura propia de cada operadora o Área/Yacimiento. No implica una clasificación física normalizada por DH hasta su revisión.',
|
||||
false,true,'GENERIC'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM asset_types WHERE lower(code)='estructura_local')
|
||||
`);
|
||||
|
||||
await queryRunner.query(`
|
||||
INSERT INTO asset_attribute_definitions (asset_type_id,code,name,data_type,is_required,is_active,sort_order)
|
||||
SELECT type.id,definition.code,definition.name,'TEXT',false,true,definition.sort_order
|
||||
FROM asset_types type
|
||||
CROSS JOIN (VALUES
|
||||
('nivel_fuente','Nivel informado por la fuente',10),
|
||||
('clasificacion_fuente','Clasificación local informada',20),
|
||||
('ruta_fuente','Ruta / nomenclatura de origen',30)
|
||||
) AS definition(code,name,sort_order)
|
||||
WHERE lower(type.code)='estructura_local'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM asset_attribute_definitions existing
|
||||
WHERE existing.asset_type_id=type.id AND lower(existing.code)=lower(definition.code)
|
||||
)
|
||||
`);
|
||||
|
||||
await queryRunner.query(`
|
||||
INSERT INTO asset_type_parent_rules (child_type_id,parent_type_id)
|
||||
SELECT local.id,parent.id
|
||||
FROM asset_types local
|
||||
JOIN asset_types parent ON lower(parent.code) IN ('area','yacimiento','locacion')
|
||||
WHERE lower(local.code)='estructura_local'
|
||||
ON CONFLICT DO NOTHING
|
||||
`);
|
||||
|
||||
await queryRunner.query(`
|
||||
INSERT INTO asset_type_parent_rules (child_type_id,parent_type_id)
|
||||
SELECT child.id,local.id
|
||||
FROM asset_types child
|
||||
CROSS JOIN asset_types local
|
||||
WHERE lower(local.code)='estructura_local'
|
||||
AND child.operational_role='GENERIC'
|
||||
AND lower(child.code) NOT IN ('yacimiento','locacion','estructura_local','pozo','ducto','colector')
|
||||
ON CONFLICT DO NOTHING
|
||||
`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE asset_import_plan_items DROP CONSTRAINT chk_asset_import_plan_item_kind`);
|
||||
await queryRunner.query(`
|
||||
ALTER TABLE asset_import_plan_items ADD CONSTRAINT chk_asset_import_plan_item_kind CHECK (
|
||||
entity_kind IN (
|
||||
'DEPARTMENT','ORGANIZATION','AREA','AREA_DEPARTMENT_RELATION','FIELD','OPERATOR_RELATION',
|
||||
'LEGAL_RIGHT','LEGAL_RIGHT_ORGANIZATION','INSTALLATION','TECHNICAL_ASSET'
|
||||
)
|
||||
)
|
||||
`);
|
||||
await queryRunner.query(`
|
||||
DELETE FROM asset_type_parent_rules rule
|
||||
USING asset_types local
|
||||
WHERE lower(local.code)='estructura_local'
|
||||
AND (rule.child_type_id=local.id OR rule.parent_type_id=local.id)
|
||||
`);
|
||||
await queryRunner.query(`
|
||||
DELETE FROM asset_attribute_definitions definition
|
||||
USING asset_types local
|
||||
WHERE definition.asset_type_id=local.id AND lower(local.code)='estructura_local'
|
||||
`);
|
||||
await queryRunner.query(`DELETE FROM asset_types WHERE lower(code)='estructura_local'`);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user