99 lines
2.9 KiB
SQL
99 lines
2.9 KiB
SQL
-- Criar enums
|
|
CREATE TYPE "NaturezaProcesso" AS ENUM (
|
|
'CIVEL',
|
|
'CRIMINAL',
|
|
'PREVIDENCIARIO',
|
|
'TRABALHISTA',
|
|
'FAMILIA',
|
|
'TRIBUTARIO',
|
|
'ADMINISTRATIVO'
|
|
);
|
|
|
|
CREATE TYPE "TipoParte" AS ENUM (
|
|
'AUTOR',
|
|
'REU'
|
|
);
|
|
|
|
CREATE TYPE "StatusProcesso" AS ENUM (
|
|
'INICIAL',
|
|
'EM_ANDAMENTO',
|
|
'SUSPENSO',
|
|
'RECURSO',
|
|
'CONCLUSO',
|
|
'ARQUIVADO'
|
|
);
|
|
|
|
CREATE TYPE "TipoDiligencia" AS ENUM (
|
|
'CITACAO',
|
|
'INTIMACAO',
|
|
'NOTIFICACAO',
|
|
'PERICIA',
|
|
'OFICIAL_JUSTICA',
|
|
'CARTA_PRECATORIA',
|
|
'OUTROS'
|
|
);
|
|
|
|
CREATE TYPE "TipoAudiencia" AS ENUM (
|
|
'CONCILIACAO',
|
|
'INSTRUCAO',
|
|
'INICIAL',
|
|
'JULGAMENTO',
|
|
'MEDIACAO'
|
|
);
|
|
|
|
-- Alterar a tabela de processos existente
|
|
ALTER TABLE "processos"
|
|
ADD COLUMN IF NOT EXISTS "natureza" "NaturezaProcesso",
|
|
ADD COLUMN IF NOT EXISTS "tipoParteCliente" "TipoParte",
|
|
ADD COLUMN IF NOT EXISTS "valorCausa" DECIMAL(15,2),
|
|
ADD COLUMN IF NOT EXISTS "orgaoJulgador" VARCHAR(100),
|
|
ADD COLUMN IF NOT EXISTS "orgaoOrigem" VARCHAR(100),
|
|
ADD COLUMN IF NOT EXISTS "nomeContraparte" VARCHAR(100);
|
|
|
|
-- Criar nova tabela para diligências
|
|
CREATE TABLE IF NOT EXISTS "diligencias" (
|
|
"id" UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
"processoId" UUID NOT NULL,
|
|
"tipo" "TipoDiligencia" NOT NULL,
|
|
"descricao" TEXT NOT NULL,
|
|
"dataLimite" TIMESTAMP NOT NULL,
|
|
"status" VARCHAR(20) DEFAULT 'PENDENTE',
|
|
"responsavel" VARCHAR(100),
|
|
"observacoes" TEXT,
|
|
"dataCriacao" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE
|
|
);
|
|
|
|
-- Criar nova tabela para audiências
|
|
CREATE TABLE IF NOT EXISTS "audiencias" (
|
|
"id" UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
"processoId" UUID NOT NULL,
|
|
"tipo" "TipoAudiencia" NOT NULL,
|
|
"data" TIMESTAMP NOT NULL,
|
|
"local" VARCHAR(200) NOT NULL,
|
|
"modalidade" VARCHAR(20) DEFAULT 'PRESENCIAL',
|
|
"linkVirtual" TEXT,
|
|
"observacoes" TEXT,
|
|
"status" VARCHAR(20) DEFAULT 'AGENDADA',
|
|
"dataCriacao" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE
|
|
);
|
|
|
|
-- Criar nova tabela para movimentações
|
|
CREATE TABLE IF NOT EXISTS "movimentacoes" (
|
|
"id" UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
"processoId" UUID NOT NULL,
|
|
"data" TIMESTAMP NOT NULL,
|
|
"descricao" TEXT NOT NULL,
|
|
"tipo" VARCHAR(50) NOT NULL,
|
|
"documento" TEXT,
|
|
"dataCriacao" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE
|
|
);
|
|
|
|
-- Adicionar índices para melhor performance
|
|
CREATE INDEX IF NOT EXISTS "idx_processo_numero" ON "processos"("numero");
|
|
CREATE INDEX IF NOT EXISTS "idx_diligencias_data" ON "diligencias"("dataLimite");
|
|
CREATE INDEX IF NOT EXISTS "idx_audiencias_data" ON "audiencias"("data");
|
|
CREATE INDEX IF NOT EXISTS "idx_movimentacoes_data" ON "movimentacoes"("data");
|