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.
|
* 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.
|
* 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
|
* También usa el código visible ACT-NNNNN-DD-MM-YY y entrega copia al INSPECTOR.
|
||||||
* conservaban CHECKs, triggers y el formato ACTA-YYYY-NNNNNN de D5, por lo que
|
* Las migraciones históricas conservaban CHECKs, triggers y contratos de D5, por lo
|
||||||
* el servicio podía compilar pero PostgreSQL rechazaba las transiciones nuevas.
|
* que el servicio podía compilar pero PostgreSQL rechazaba las transiciones nuevas.
|
||||||
*/
|
*/
|
||||||
export class F4AlignDocumentLifecycleConstraints1790000600000 implements MigrationInterface {
|
export class F4AlignDocumentLifecycleConstraints1790000600000 implements MigrationInterface {
|
||||||
name = 'F4AlignDocumentLifecycleConstraints1790000600000';
|
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.
|
// Las firmas F4 pertenecen al snapshot LOCKED. El trigger D5 exigía READY.
|
||||||
await queryRunner.query(`
|
await queryRunner.query(`
|
||||||
CREATE OR REPLACE FUNCTION dhv2_guard_act_signature_ready()
|
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(`
|
await queryRunner.query(`
|
||||||
CREATE OR REPLACE FUNCTION dhv2_guard_act_signature_ready()
|
CREATE OR REPLACE FUNCTION dhv2_guard_act_signature_ready()
|
||||||
RETURNS trigger LANGUAGE plpgsql AS $$
|
RETURNS trigger LANGUAGE plpgsql AS $$
|
||||||
|
|||||||
Reference in New Issue
Block a user