All checks were successful
CD / build (pull_request) Successful in 7s
Consulta Receita em cadeia de fallback e repasse da ANP (ISO-8859-1); autoavaliacao de 17 itens por programa+loja+CNPJ em jsonb; motor de score com regra de gargalo e tres numeros, espelho do frontend. 21 testes novos. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
32 lines
1.2 KiB
TypeScript
32 lines
1.2 KiB
TypeScript
import { MigrationInterface, QueryRunner } from 'typeorm';
|
|
|
|
/**
|
|
* Autoavaliações do Radar de Conformidade — respostas dos 17 itens por
|
|
* (programa, loja, CNPJ). O diagnóstico não é persistido: é recalculado a
|
|
* cada leitura, para regra nova de score valer imediatamente.
|
|
*/
|
|
export class migration1786752000000 implements MigrationInterface {
|
|
name = 'migration1786752000000';
|
|
|
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
await queryRunner.query(`
|
|
CREATE TABLE IF NOT EXISTS public.radar_assessment (
|
|
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
create_date timestamp NOT NULL DEFAULT LOCALTIMESTAMP,
|
|
update_date timestamp NOT NULL DEFAULT LOCALTIMESTAMP,
|
|
"programId" uuid NOT NULL,
|
|
"storeId" uuid NOT NULL,
|
|
"cnpj" varchar(14) NOT NULL,
|
|
"mode" varchar(16) NOT NULL DEFAULT 'own',
|
|
"answers" jsonb NOT NULL DEFAULT '{}'::jsonb
|
|
);
|
|
CREATE UNIQUE INDEX IF NOT EXISTS uq_radar_assessment_tenant_cnpj
|
|
ON public.radar_assessment ("programId","storeId","cnpj");
|
|
`);
|
|
}
|
|
|
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
await queryRunner.query(`DROP TABLE IF EXISTS public.radar_assessment;`);
|
|
}
|
|
}
|