first commit
This commit is contained in:
commit
c9fb67e751
423 files changed
+53287
No files matched your search
@@ -0,0 +1,83 @@
|
||||
-- Criar enum TipoParticipacao se não existir
|
||||
DO $$ BEGIN
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'tipoparticipacao') THEN
|
||||
CREATE TYPE "TipoParticipacao" AS ENUM (
|
||||
'AUTOR',
|
||||
'REU',
|
||||
'TERCEIRO_INTERESSADO'
|
||||
);
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- Criar tabela de partes_processo mantendo dados existentes
|
||||
CREATE TABLE IF NOT EXISTS "partes_processo" (
|
||||
"id" UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
"processoId" UUID NOT NULL,
|
||||
"clienteId" UUID,
|
||||
"tipo" "TipoParticipacao" NOT NULL,
|
||||
"nome" VARCHAR(200) NOT NULL,
|
||||
"cpfCnpj" VARCHAR(18),
|
||||
"principal" BOOLEAN NOT NULL DEFAULT false,
|
||||
"observacoes" TEXT,
|
||||
"dataCriacao" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "fk_partes_processo_processo"
|
||||
FOREIGN KEY ("processoId")
|
||||
REFERENCES "processos"("id")
|
||||
ON DELETE CASCADE,
|
||||
CONSTRAINT "fk_partes_processo_cliente"
|
||||
FOREIGN KEY ("clienteId")
|
||||
REFERENCES "clientes"("id")
|
||||
ON DELETE SET NULL
|
||||
);
|
||||
|
||||
-- Criar índices para melhor performance
|
||||
CREATE INDEX IF NOT EXISTS "idx_partes_processo_processo" ON "partes_processo"("processoId");
|
||||
CREATE INDEX IF NOT EXISTS "idx_partes_processo_cliente" ON "partes_processo"("clienteId");
|
||||
|
||||
-- Migrar dados existentes para a nova estrutura
|
||||
INSERT INTO "partes_processo" (
|
||||
"processoId",
|
||||
"clienteId",
|
||||
"tipo",
|
||||
"nome",
|
||||
"principal"
|
||||
)
|
||||
SELECT
|
||||
p.id as "processoId",
|
||||
p."clienteId",
|
||||
p."tipoParteCliente"::TipoParticipacao as "tipo",
|
||||
c.nome as "nome",
|
||||
true as "principal"
|
||||
FROM "processos" p
|
||||
JOIN "clientes" c ON p."clienteId" = c.id
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM "partes_processo" pp
|
||||
WHERE pp."processoId" = p.id AND pp."clienteId" = p."clienteId"
|
||||
);
|
||||
|
||||
-- Adicionar partes contraparte
|
||||
INSERT INTO "partes_processo" (
|
||||
"processoId",
|
||||
"tipo",
|
||||
"nome",
|
||||
"principal"
|
||||
)
|
||||
SELECT
|
||||
p.id as "processoId",
|
||||
CASE
|
||||
WHEN p."tipoParteCliente" = 'AUTOR' THEN 'REU'::TipoParticipacao
|
||||
ELSE 'AUTOR'::TipoParticipacao
|
||||
END as "tipo",
|
||||
p."nomeContraparte" as "nome",
|
||||
false as "principal"
|
||||
FROM "processos" p
|
||||
WHERE p."nomeContraparte" IS NOT NULL
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM "partes_processo" pp
|
||||
WHERE pp."processoId" = p.id AND pp.nome = p."nomeContraparte"
|
||||
);
|
||||
|
||||
-- Não remover colunas antigas ainda para manter compatibilidade
|
||||
-- Em uma futura migração, após garantir que tudo está funcionando,
|
||||
-- podemos remover as colunas redundantes
|
||||
Reference in new issue
Block a user