import { MigrationInterface, QueryRunner } from 'typeorm'; export class PhaseF31InspectorDocumentDelivery1789845000000 implements MigrationInterface { name = 'PhaseF31InspectorDocumentDelivery1789845000000'; public async up(queryRunner: QueryRunner): Promise { await queryRunner.query(` ALTER TABLE inspection_document_deliveries ADD COLUMN recipient_user_id uuid NULL `); await queryRunner.query(` ALTER TABLE inspection_document_deliveries ADD CONSTRAINT fk_inspection_document_deliveries_recipient_user FOREIGN KEY (recipient_user_id) REFERENCES users(id) ON DELETE SET NULL `); await queryRunner.query(` ALTER TABLE inspection_document_deliveries DROP CONSTRAINT chk_inspection_document_deliveries_recipient_kind `); await queryRunner.query(` ALTER TABLE inspection_document_deliveries ADD CONSTRAINT chk_inspection_document_deliveries_recipient_kind CHECK (recipient_kind IN ('COMPANY','OFFICE','DIRECTOR','INSPECTOR')) `); await queryRunner.query(` CREATE INDEX idx_inspection_document_deliveries_recipient_user ON inspection_document_deliveries(recipient_user_id) WHERE recipient_user_id IS NOT NULL `); } public async down(queryRunner: QueryRunner): Promise { await queryRunner.query(` DELETE FROM inspection_document_deliveries WHERE recipient_kind='INSPECTOR' `); await queryRunner.query(`DROP INDEX IF EXISTS idx_inspection_document_deliveries_recipient_user`); await queryRunner.query(` ALTER TABLE inspection_document_deliveries DROP CONSTRAINT chk_inspection_document_deliveries_recipient_kind `); await queryRunner.query(` ALTER TABLE inspection_document_deliveries ADD CONSTRAINT chk_inspection_document_deliveries_recipient_kind CHECK (recipient_kind IN ('COMPANY','OFFICE','DIRECTOR')) `); await queryRunner.query(` ALTER TABLE inspection_document_deliveries DROP CONSTRAINT IF EXISTS fk_inspection_document_deliveries_recipient_user `); await queryRunner.query(` ALTER TABLE inspection_document_deliveries DROP COLUMN IF EXISTS recipient_user_id `); } }