fix: align F4 document delivery recipient constraint
This commit is contained in:
+30
-3
@@ -4,9 +4,9 @@ import { MigrationInterface, QueryRunner } from 'typeorm';
|
||||
* Alinea las restricciones físicas heredadas de D5 con el ciclo documental F4.
|
||||
*
|
||||
* F4 incorpora estados LOCKED/SEALED para Actas y WORKING/OFFICIALIZED para INF.
|
||||
* También usa el código visible ACT-NNNNN-DD-MM-YY. Las migraciones históricas
|
||||
* conservaban CHECKs, triggers y el formato ACTA-YYYY-NNNNNN de D5, por lo que
|
||||
* el servicio podía compilar pero PostgreSQL rechazaba las transiciones nuevas.
|
||||
* También usa el código visible ACT-NNNNN-DD-MM-YY y entrega copia al INSPECTOR.
|
||||
* Las migraciones históricas conservaban CHECKs, triggers y contratos de D5, por lo
|
||||
* que el servicio podía compilar pero PostgreSQL rechazaba las transiciones nuevas.
|
||||
*/
|
||||
export class F4AlignDocumentLifecycleConstraints1790000600000 implements MigrationInterface {
|
||||
name = 'F4AlignDocumentLifecycleConstraints1790000600000';
|
||||
@@ -76,6 +76,19 @@ export class F4AlignDocumentLifecycleConstraints1790000600000 implements Migrati
|
||||
)
|
||||
`);
|
||||
|
||||
// F4 retira Director como destinatario activo y agrega copia al inspector.
|
||||
// La migración 040 ya eliminó previamente las filas DIRECTOR existentes.
|
||||
await queryRunner.query(`
|
||||
ALTER TABLE inspection_document_deliveries
|
||||
DROP CONSTRAINT IF EXISTS 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','INSPECTOR')
|
||||
)
|
||||
`);
|
||||
|
||||
// Las firmas F4 pertenecen al snapshot LOCKED. El trigger D5 exigía READY.
|
||||
await queryRunner.query(`
|
||||
CREATE OR REPLACE FUNCTION dhv2_guard_act_signature_ready()
|
||||
@@ -217,6 +230,20 @@ export class F4AlignDocumentLifecycleConstraints1790000600000 implements Migrati
|
||||
)
|
||||
`);
|
||||
|
||||
// Conservamos INSPECTOR en el CHECK de rollback para no destruir ni falsificar
|
||||
// entregas F4 ya auditadas. D5 puede seguir operando con sus tres valores y el
|
||||
// backup PRE-F4 sigue siendo la fuente de una restauración histórica exacta.
|
||||
await queryRunner.query(`
|
||||
ALTER TABLE inspection_document_deliveries
|
||||
DROP CONSTRAINT IF EXISTS 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 OR REPLACE FUNCTION dhv2_guard_act_signature_ready()
|
||||
RETURNS trigger LANGUAGE plpgsql AS $$
|
||||
|
||||
Reference in New Issue
Block a user