first commit

This commit is contained in:
rodrigo committed 2025-04-10 23:07:21 -03:00
commit c9fb67e751
423 files changed
+53287

No files matched your search

@@ -0,0 +1,14 @@
-- CreateTable
CREATE TABLE "usuarios" (
"id" TEXT NOT NULL,
"nome" TEXT NOT NULL,
"email" TEXT NOT NULL,
"senha" TEXT NOT NULL,
"cargo" TEXT NOT NULL,
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "usuarios_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "usuarios_email_key" ON "usuarios"("email");
@@ -0,0 +1,33 @@
-- CreateTable
CREATE TABLE "clientes" (
"id" TEXT NOT NULL,
"nome" TEXT NOT NULL,
"email" TEXT NOT NULL,
"cpfCnpj" TEXT NOT NULL,
"telefone" TEXT NOT NULL,
"endereco" TEXT NOT NULL,
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "clientes_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "processos" (
"id" TEXT NOT NULL,
"numero" TEXT NOT NULL,
"titulo" TEXT NOT NULL,
"descricao" TEXT NOT NULL,
"clienteId" TEXT NOT NULL,
"advogadoResponsavelId" TEXT NOT NULL,
"status" TEXT NOT NULL,
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"dataAtualizacao" TIMESTAMP(3) NOT NULL,
CONSTRAINT "processos_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "clientes_cpfCnpj_key" ON "clientes"("cpfCnpj");
-- AddForeignKey
ALTER TABLE "processos" ADD CONSTRAINT "processos_clienteId_fkey" FOREIGN KEY ("clienteId") REFERENCES "clientes"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
@@ -0,0 +1,47 @@
/*
Warnings:
- Added the required column `bairro` to the `clientes` table without a default value. This is not possible if the table is not empty.
- Added the required column `cep` to the `clientes` table without a default value. This is not possible if the table is not empty.
- Added the required column `cidade` to the `clientes` table without a default value. This is not possible if the table is not empty.
- Added the required column `estado` to the `clientes` table without a default value. This is not possible if the table is not empty.
- Added the required column `numero` to the `clientes` table without a default value. This is not possible if the table is not empty.
*/
-- AlterTable
ALTER TABLE "clientes" ADD COLUMN "bairro" TEXT NOT NULL,
ADD COLUMN "cep" TEXT NOT NULL,
ADD COLUMN "cidade" TEXT NOT NULL,
ADD COLUMN "complemento" TEXT,
ADD COLUMN "conjugeCpf" TEXT,
ADD COLUMN "conjugeNome" TEXT,
ADD COLUMN "contribuiPrevidencia" BOOLEAN NOT NULL DEFAULT false,
ADD COLUMN "dataNascimento" TIMESTAMP(3),
ADD COLUMN "declaraIR" BOOLEAN NOT NULL DEFAULT false,
ADD COLUMN "estado" TEXT NOT NULL,
ADD COLUMN "estadoCivil" TEXT,
ADD COLUMN "instagram" TEXT,
ADD COLUMN "nomeMae" TEXT,
ADD COLUMN "nomePai" TEXT,
ADD COLUMN "numero" TEXT NOT NULL,
ADD COLUMN "orgaoEmissor" TEXT,
ADD COLUMN "possuiFilhos" BOOLEAN NOT NULL DEFAULT false,
ADD COLUMN "profissao" TEXT,
ADD COLUMN "renda" DECIMAL(65,30),
ADD COLUMN "rg" TEXT,
ADD COLUMN "tipoPrevidencia" TEXT,
ADD COLUMN "usaDNI" BOOLEAN NOT NULL DEFAULT false,
ADD COLUMN "vinculoEmpregaticio" TEXT;
-- CreateTable
CREATE TABLE "filhos" (
"id" TEXT NOT NULL,
"nome" TEXT NOT NULL,
"dataNascimento" TIMESTAMP(3) NOT NULL,
"clienteId" TEXT NOT NULL,
CONSTRAINT "filhos_pkey" PRIMARY KEY ("id")
);
-- AddForeignKey
ALTER TABLE "filhos" ADD CONSTRAINT "filhos_clienteId_fkey" FOREIGN KEY ("clienteId") REFERENCES "clientes"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "clientes" ADD COLUMN "estadoRg" TEXT;
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "clientes" ALTER COLUMN "tipoPrevidencia" SET DEFAULT 'NAO_CONTRIBUI';
@@ -0,0 +1,11 @@
/*
Warnings:
- You are about to alter the column `rg` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(10)`.
- You are about to alter the column `estadoRg` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `Char(2)`.
*/
-- AlterTable
ALTER TABLE "clientes" ALTER COLUMN "dataNascimento" SET DATA TYPE DATE,
ALTER COLUMN "rg" SET DATA TYPE VARCHAR(10),
ALTER COLUMN "estadoRg" SET DATA TYPE CHAR(2);
@@ -0,0 +1,51 @@
/*
Warnings:
- You are about to alter the column `nome` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(100)`.
- You are about to alter the column `email` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(100)`.
- You are about to alter the column `cpfCnpj` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(18)`.
- You are about to alter the column `telefone` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(20)`.
- You are about to alter the column `endereco` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(150)`.
- You are about to alter the column `bairro` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(100)`.
- You are about to alter the column `cep` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(9)`.
- You are about to alter the column `cidade` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(100)`.
- You are about to alter the column `complemento` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(50)`.
- You are about to alter the column `conjugeCpf` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(14)`.
- You are about to alter the column `conjugeNome` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(100)`.
- You are about to alter the column `estado` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `Char(2)`.
- You are about to alter the column `estadoCivil` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(20)`.
- You are about to alter the column `instagram` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(50)`.
- You are about to alter the column `nomeMae` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(100)`.
- You are about to alter the column `nomePai` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(100)`.
- You are about to alter the column `numero` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(10)`.
- You are about to alter the column `orgaoEmissor` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(10)`.
- You are about to alter the column `profissao` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(100)`.
- You are about to alter the column `renda` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Decimal(65,30)` to `Decimal(10,2)`.
- You are about to alter the column `tipoPrevidencia` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(20)`.
- You are about to alter the column `vinculoEmpregaticio` on the `clientes` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(50)`.
*/
-- AlterTable
ALTER TABLE "clientes" ALTER COLUMN "nome" SET DATA TYPE VARCHAR(100),
ALTER COLUMN "email" SET DATA TYPE VARCHAR(100),
ALTER COLUMN "cpfCnpj" SET DATA TYPE VARCHAR(18),
ALTER COLUMN "telefone" SET DATA TYPE VARCHAR(20),
ALTER COLUMN "endereco" SET DATA TYPE VARCHAR(150),
ALTER COLUMN "bairro" SET DATA TYPE VARCHAR(100),
ALTER COLUMN "cep" SET DATA TYPE VARCHAR(9),
ALTER COLUMN "cidade" SET DATA TYPE VARCHAR(100),
ALTER COLUMN "complemento" SET DATA TYPE VARCHAR(50),
ALTER COLUMN "conjugeCpf" SET DATA TYPE VARCHAR(14),
ALTER COLUMN "conjugeNome" SET DATA TYPE VARCHAR(100),
ALTER COLUMN "estado" SET DATA TYPE CHAR(2),
ALTER COLUMN "estadoCivil" SET DATA TYPE VARCHAR(20),
ALTER COLUMN "instagram" SET DATA TYPE VARCHAR(50),
ALTER COLUMN "nomeMae" SET DATA TYPE VARCHAR(100),
ALTER COLUMN "nomePai" SET DATA TYPE VARCHAR(100),
ALTER COLUMN "numero" SET DATA TYPE VARCHAR(10),
ALTER COLUMN "orgaoEmissor" SET DATA TYPE VARCHAR(10),
ALTER COLUMN "profissao" SET DATA TYPE VARCHAR(100),
ALTER COLUMN "renda" SET DATA TYPE DECIMAL(10,2),
ALTER COLUMN "rg" SET DATA TYPE VARCHAR(20),
ALTER COLUMN "tipoPrevidencia" SET DATA TYPE VARCHAR(20),
ALTER COLUMN "vinculoEmpregaticio" SET DATA TYPE VARCHAR(50);
@@ -0,0 +1,123 @@
/*
Warnings:
- You are about to drop the column `advogadoResponsavelId` on the `processos` table. All the data in the column will be lost.
- You are about to drop the column `descricao` on the `processos` table. All the data in the column will be lost.
- You are about to drop the column `titulo` on the `processos` table. All the data in the column will be lost.
- The `status` column on the `processos` table would be dropped and recreated. This will lead to data loss if there is data in the column.
- A unique constraint covering the columns `[numero]` on the table `processos` will be added. If there are existing duplicate values, this will fail.
*/
-- CreateEnum
CREATE TYPE "NaturezaProcesso" AS ENUM ('CIVEL', 'CRIMINAL', 'PREVIDENCIARIO', 'TRABALHISTA', 'FAMILIA', 'TRIBUTARIO', 'ADMINISTRATIVO');
-- CreateEnum
CREATE TYPE "TipoParte" AS ENUM ('AUTOR', 'REU');
-- CreateEnum
CREATE TYPE "StatusProcesso" AS ENUM ('INICIAL', 'EM_ANDAMENTO', 'SUSPENSO', 'RECURSO', 'CONCLUSO', 'ARQUIVADO');
-- CreateEnum
CREATE TYPE "TipoDiligencia" AS ENUM ('CITACAO', 'INTIMACAO', 'NOTIFICACAO', 'PERICIA', 'OFICIAL_JUSTICA', 'CARTA_PRECATORIA', 'OUTROS');
-- CreateEnum
CREATE TYPE "TipoAudiencia" AS ENUM ('CONCILIACAO', 'INSTRUCAO', 'INICIAL', 'JULGAMENTO', 'MEDIACAO');
-- AlterTable
ALTER TABLE "processos" DROP COLUMN "advogadoResponsavelId",
DROP COLUMN "descricao",
DROP COLUMN "titulo",
ADD COLUMN "natureza" "NaturezaProcesso",
ADD COLUMN "nomeContraparte" VARCHAR(100),
ADD COLUMN "orgaoJulgador" VARCHAR(100),
ADD COLUMN "orgaoOrigem" VARCHAR(100),
ADD COLUMN "tipoParteCliente" "TipoParte",
ADD COLUMN "valorCausa" DECIMAL(15,2),
DROP COLUMN "status",
ADD COLUMN "status" "StatusProcesso" NOT NULL DEFAULT 'INICIAL';
-- CreateTable
CREATE TABLE "documentos" (
"id" TEXT NOT NULL,
"processoId" TEXT NOT NULL,
"nome" VARCHAR(200) NOT NULL,
"tipo" VARCHAR(50) NOT NULL,
"url" TEXT NOT NULL,
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "documentos_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "diligencias" (
"id" TEXT NOT NULL,
"processoId" TEXT NOT NULL,
"tipo" "TipoDiligencia" NOT NULL,
"descricao" TEXT NOT NULL,
"dataLimite" TIMESTAMP(3) NOT NULL,
"status" TEXT DEFAULT 'PENDENTE',
"responsavel" VARCHAR(100),
"observacoes" TEXT,
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "diligencias_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "audiencias" (
"id" TEXT NOT NULL,
"processoId" TEXT NOT NULL,
"tipo" "TipoAudiencia" NOT NULL,
"data" TIMESTAMP(3) NOT NULL,
"local" VARCHAR(200) NOT NULL,
"modalidade" TEXT DEFAULT 'PRESENCIAL',
"linkVirtual" TEXT,
"observacoes" TEXT,
"status" TEXT DEFAULT 'AGENDADA',
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "audiencias_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "movimentacoes" (
"id" TEXT NOT NULL,
"processoId" TEXT NOT NULL,
"data" TIMESTAMP(3) NOT NULL,
"descricao" TEXT NOT NULL,
"tipo" VARCHAR(50) NOT NULL,
"documento" TEXT,
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "movimentacoes_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "documentos_processoId_idx" ON "documentos"("processoId");
-- CreateIndex
CREATE INDEX "diligencias_dataLimite_idx" ON "diligencias"("dataLimite");
-- CreateIndex
CREATE INDEX "audiencias_data_idx" ON "audiencias"("data");
-- CreateIndex
CREATE INDEX "movimentacoes_data_idx" ON "movimentacoes"("data");
-- CreateIndex
CREATE UNIQUE INDEX "processos_numero_key" ON "processos"("numero");
-- CreateIndex
CREATE INDEX "processos_numero_idx" ON "processos"("numero");
-- AddForeignKey
ALTER TABLE "documentos" ADD CONSTRAINT "documentos_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "diligencias" ADD CONSTRAINT "diligencias_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "audiencias" ADD CONSTRAINT "audiencias_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "movimentacoes" ADD CONSTRAINT "movimentacoes_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,103 @@
-- CreateEnum
CREATE TYPE "StatusAtividade" AS ENUM ('ATIVO', 'BAIXADO', 'SUSPENSO');
-- AlterTable
ALTER TABLE "processos" ADD COLUMN "assuntoCNJ" VARCHAR(100),
ADD COLUMN "codigoAssuntoCNJ" VARCHAR(20),
ADD COLUMN "eventoCalendarioId" TEXT,
ADD COLUMN "orgaoJulgadorId" TEXT,
ADD COLUMN "statusAtividade" "StatusAtividade" NOT NULL DEFAULT 'ATIVO',
ADD COLUMN "ultimaConsulta" TIMESTAMP(3);
-- CreateTable
CREATE TABLE "custas_processuais" (
"id" TEXT NOT NULL,
"processoId" TEXT NOT NULL,
"tipo" VARCHAR(50) NOT NULL,
"valor" DECIMAL(10,2) NOT NULL,
"dataPagamento" TIMESTAMP(3),
"comprovante" TEXT,
"status" TEXT NOT NULL DEFAULT 'PENDENTE',
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "custas_processuais_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "honorarios" (
"id" TEXT NOT NULL,
"processoId" TEXT NOT NULL,
"valor" DECIMAL(10,2) NOT NULL,
"parcelas" INTEGER NOT NULL DEFAULT 1,
"dataVencimento" TIMESTAMP(3) NOT NULL,
"status" TEXT NOT NULL DEFAULT 'PENDENTE',
"observacoes" TEXT,
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "honorarios_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "modelos_documentos" (
"id" TEXT NOT NULL,
"nome" VARCHAR(100) NOT NULL,
"tipo" VARCHAR(50) NOT NULL,
"conteudo" TEXT NOT NULL,
"variaveis" TEXT[],
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "modelos_documentos_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "alertas" (
"id" TEXT NOT NULL,
"usuarioId" TEXT NOT NULL,
"tipo" VARCHAR(50) NOT NULL,
"mensagem" TEXT NOT NULL,
"lido" BOOLEAN NOT NULL DEFAULT false,
"dataAlerta" TIMESTAMP(3) NOT NULL,
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "alertas_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "movimentacoes_tribunal" (
"id" TEXT NOT NULL,
"processoId" TEXT NOT NULL,
"tribunal" VARCHAR(50) NOT NULL,
"dataMovimentacao" TIMESTAMP(3) NOT NULL,
"tipo" VARCHAR(100) NOT NULL,
"conteudo" TEXT NOT NULL,
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "movimentacoes_tribunal_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "orgaos_julgadores" (
"id" TEXT NOT NULL,
"nome" VARCHAR(200) NOT NULL,
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "orgaos_julgadores_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "orgaos_julgadores_nome_key" ON "orgaos_julgadores"("nome");
-- CreateIndex
CREATE INDEX "processos_orgaoJulgadorId_idx" ON "processos"("orgaoJulgadorId");
-- AddForeignKey
ALTER TABLE "processos" ADD CONSTRAINT "processos_orgaoJulgadorId_fkey" FOREIGN KEY ("orgaoJulgadorId") REFERENCES "orgaos_julgadores"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "custas_processuais" ADD CONSTRAINT "custas_processuais_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "honorarios" ADD CONSTRAINT "honorarios_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "movimentacoes_tribunal" ADD CONSTRAINT "movimentacoes_tribunal_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
@@ -0,0 +1,10 @@
/*
Warnings:
- You are about to drop the column `assuntoCNJ` on the `processos` table. All the data in the column will be lost.
- You are about to drop the column `codigoAssuntoCNJ` on the `processos` table. All the data in the column will be lost.
*/
-- AlterTable
ALTER TABLE "processos" DROP COLUMN "assuntoCNJ",
DROP COLUMN "codigoAssuntoCNJ";
@@ -0,0 +1,21 @@
/*
Warnings:
- You are about to drop the column `eventoCalendarioId` on the `processos` table. All the data in the column will be lost.
- You are about to drop the column `ultimaConsulta` on the `processos` table. All the data in the column will be lost.
- Made the column `natureza` on table `processos` required. This step will fail if there are existing NULL values in that column.
- Made the column `nomeContraparte` on table `processos` required. This step will fail if there are existing NULL values in that column.
- Made the column `orgaoJulgador` on table `processos` required. This step will fail if there are existing NULL values in that column.
- Made the column `tipoParteCliente` on table `processos` required. This step will fail if there are existing NULL values in that column.
*/
-- DropIndex
DROP INDEX "processos_orgaoJulgadorId_idx";
-- AlterTable
ALTER TABLE "processos" DROP COLUMN "eventoCalendarioId",
DROP COLUMN "ultimaConsulta",
ALTER COLUMN "natureza" SET NOT NULL,
ALTER COLUMN "nomeContraparte" SET NOT NULL,
ALTER COLUMN "orgaoJulgador" SET NOT NULL,
ALTER COLUMN "tipoParteCliente" SET NOT NULL;
@@ -0,0 +1,29 @@
-- CreateEnum
CREATE TYPE "TipoParticipacao" AS ENUM ('AUTOR', 'REU', 'TERCEIRO_INTERESSADO');
-- CreateTable
CREATE TABLE "partes_processo" (
"id" TEXT NOT NULL,
"processoId" TEXT NOT NULL,
"clienteId" TEXT,
"tipo" "TipoParticipacao" NOT NULL,
"nome" VARCHAR(200) NOT NULL,
"cpfCnpj" VARCHAR(18),
"principal" BOOLEAN NOT NULL DEFAULT false,
"observacoes" TEXT,
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "partes_processo_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "partes_processo_processoId_idx" ON "partes_processo"("processoId");
-- CreateIndex
CREATE INDEX "partes_processo_clienteId_idx" ON "partes_processo"("clienteId");
-- AddForeignKey
ALTER TABLE "partes_processo" ADD CONSTRAINT "partes_processo_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "partes_processo" ADD CONSTRAINT "partes_processo_clienteId_fkey" FOREIGN KEY ("clienteId") REFERENCES "clientes"("id") ON DELETE SET NULL ON UPDATE CASCADE;
@@ -0,0 +1,379 @@
/*
Warnings:
- The primary key for the `alertas` table will be changed. If it partially fails, the table could be left without primary key constraint.
- The `id` column on the `alertas` table would be dropped and recreated. This will lead to data loss if there is data in the column.
- The primary key for the `clientes` table will be changed. If it partially fails, the table could be left without primary key constraint.
- The `id` column on the `clientes` table would be dropped and recreated. This will lead to data loss if there is data in the column.
- The primary key for the `custas_processuais` table will be changed. If it partially fails, the table could be left without primary key constraint.
- The `id` column on the `custas_processuais` table would be dropped and recreated. This will lead to data loss if there is data in the column.
- The `status` column on the `custas_processuais` table would be dropped and recreated. This will lead to data loss if there is data in the column.
- The primary key for the `filhos` table will be changed. If it partially fails, the table could be left without primary key constraint.
- The `id` column on the `filhos` table would be dropped and recreated. This will lead to data loss if there is data in the column.
- The primary key for the `honorarios` table will be changed. If it partially fails, the table could be left without primary key constraint.
- You are about to drop the column `parcelas` on the `honorarios` table. All the data in the column will be lost.
- You are about to drop the column `valor` on the `honorarios` table. All the data in the column will be lost.
- The `id` column on the `honorarios` table would be dropped and recreated. This will lead to data loss if there is data in the column.
- The `status` column on the `honorarios` table would be dropped and recreated. This will lead to data loss if there is data in the column.
- The primary key for the `modelos_documentos` table will be changed. If it partially fails, the table could be left without primary key constraint.
- The `id` column on the `modelos_documentos` table would be dropped and recreated. This will lead to data loss if there is data in the column.
- The primary key for the `orgaos_julgadores` table will be changed. If it partially fails, the table could be left without primary key constraint.
- The `id` column on the `orgaos_julgadores` table would be dropped and recreated. This will lead to data loss if there is data in the column.
- The primary key for the `usuarios` table will be changed. If it partially fails, the table could be left without primary key constraint.
- The `id` column on the `usuarios` table would be dropped and recreated. This will lead to data loss if there is data in the column.
- You are about to drop the `audiencias` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `diligencias` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `documentos` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `movimentacoes` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `movimentacoes_tribunal` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `partes_processo` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `processos` table. If the table is not empty, all the data it contains will be lost.
- Changed the type of `usuarioId` on the `alertas` table. No cast exists, the column would be dropped and recreated, which cannot be done if there is data, since the column is required.
- Added the required column `descricao` to the `custas_processuais` table without a default value. This is not possible if the table is not empty.
- Changed the type of `processoId` on the `custas_processuais` table. No cast exists, the column would be dropped and recreated, which cannot be done if there is data, since the column is required.
- Changed the type of `tipo` on the `custas_processuais` table. No cast exists, the column would be dropped and recreated, which cannot be done if there is data, since the column is required.
- Changed the type of `clienteId` on the `filhos` table. No cast exists, the column would be dropped and recreated, which cannot be done if there is data, since the column is required.
- Changed the type of `processoId` on the `honorarios` table. No cast exists, the column would be dropped and recreated, which cannot be done if there is data, since the column is required.
*/
-- CreateEnum
CREATE TYPE "TipoCustaProcessual" AS ENUM ('INICIAL', 'RECURSO', 'PERICIA', 'OFICIAL_JUSTICA', 'CARTA_PRECATORIA', 'DEPOSITO_JUDICIAL', 'CERTIDAO', 'DIGITALIZACAO', 'CONDUTOR', 'CORREIOS', 'CARTORIO', 'OUTROS');
-- CreateEnum
CREATE TYPE "StatusPagamento" AS ENUM ('PENDENTE', 'PARCIALMENTE_PAGO', 'PAGO', 'VENCIDO', 'CANCELADO');
-- CreateEnum
CREATE TYPE "FormaPagamento" AS ENUM ('VISTA', 'PARCELADO', 'ENTRADA_MAIS_PARCELAS', 'PERCENTUAL_CAUSA', 'PERCENTUAL_EXITO');
-- DropForeignKey
ALTER TABLE "audiencias" DROP CONSTRAINT "audiencias_processoId_fkey";
-- DropForeignKey
ALTER TABLE "custas_processuais" DROP CONSTRAINT "custas_processuais_processoId_fkey";
-- DropForeignKey
ALTER TABLE "diligencias" DROP CONSTRAINT "diligencias_processoId_fkey";
-- DropForeignKey
ALTER TABLE "documentos" DROP CONSTRAINT "documentos_processoId_fkey";
-- DropForeignKey
ALTER TABLE "filhos" DROP CONSTRAINT "filhos_clienteId_fkey";
-- DropForeignKey
ALTER TABLE "honorarios" DROP CONSTRAINT "honorarios_processoId_fkey";
-- DropForeignKey
ALTER TABLE "movimentacoes" DROP CONSTRAINT "movimentacoes_processoId_fkey";
-- DropForeignKey
ALTER TABLE "movimentacoes_tribunal" DROP CONSTRAINT "movimentacoes_tribunal_processoId_fkey";
-- DropForeignKey
ALTER TABLE "partes_processo" DROP CONSTRAINT "partes_processo_clienteId_fkey";
-- DropForeignKey
ALTER TABLE "partes_processo" DROP CONSTRAINT "partes_processo_processoId_fkey";
-- DropForeignKey
ALTER TABLE "processos" DROP CONSTRAINT "processos_clienteId_fkey";
-- DropForeignKey
ALTER TABLE "processos" DROP CONSTRAINT "processos_orgaoJulgadorId_fkey";
-- AlterTable
ALTER TABLE "alertas" DROP CONSTRAINT "alertas_pkey",
DROP COLUMN "id",
ADD COLUMN "id" UUID NOT NULL DEFAULT gen_random_uuid(),
DROP COLUMN "usuarioId",
ADD COLUMN "usuarioId" UUID NOT NULL,
ADD CONSTRAINT "alertas_pkey" PRIMARY KEY ("id");
-- AlterTable
ALTER TABLE "clientes" DROP CONSTRAINT "clientes_pkey",
DROP COLUMN "id",
ADD COLUMN "id" UUID NOT NULL DEFAULT gen_random_uuid(),
ADD CONSTRAINT "clientes_pkey" PRIMARY KEY ("id");
-- AlterTable
ALTER TABLE "custas_processuais" DROP CONSTRAINT "custas_processuais_pkey",
ADD COLUMN "descricao" VARCHAR(200) NOT NULL,
ADD COLUMN "numeroParcelas" INTEGER NOT NULL DEFAULT 1,
ADD COLUMN "observacoes" TEXT,
ADD COLUMN "parcelaAtual" INTEGER NOT NULL DEFAULT 1,
ADD COLUMN "percentual" DECIMAL(5,2),
ADD COLUMN "vencimento" TIMESTAMP(3),
DROP COLUMN "id",
ADD COLUMN "id" UUID NOT NULL DEFAULT gen_random_uuid(),
DROP COLUMN "processoId",
ADD COLUMN "processoId" UUID NOT NULL,
DROP COLUMN "tipo",
ADD COLUMN "tipo" "TipoCustaProcessual" NOT NULL,
DROP COLUMN "status",
ADD COLUMN "status" "StatusPagamento" NOT NULL DEFAULT 'PENDENTE',
ADD CONSTRAINT "custas_processuais_pkey" PRIMARY KEY ("id");
-- AlterTable
ALTER TABLE "filhos" DROP CONSTRAINT "filhos_pkey",
DROP COLUMN "id",
ADD COLUMN "id" UUID NOT NULL DEFAULT gen_random_uuid(),
DROP COLUMN "clienteId",
ADD COLUMN "clienteId" UUID NOT NULL,
ADD CONSTRAINT "filhos_pkey" PRIMARY KEY ("id");
-- AlterTable
ALTER TABLE "honorarios" DROP CONSTRAINT "honorarios_pkey",
DROP COLUMN "parcelas",
DROP COLUMN "valor",
ADD COLUMN "dataContrato" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
ADD COLUMN "diaVencimento" INTEGER NOT NULL DEFAULT 10,
ADD COLUMN "formaPagamento" "FormaPagamento" NOT NULL DEFAULT 'VISTA',
ADD COLUMN "numeroParcelas" INTEGER NOT NULL DEFAULT 1,
ADD COLUMN "percentualCausa" DECIMAL(5,2),
ADD COLUMN "percentualExito" DECIMAL(5,2),
ADD COLUMN "valorEntrada" DECIMAL(10,2),
ADD COLUMN "valorFixo" DECIMAL(10,2),
ADD COLUMN "valorParcela" DECIMAL(10,2),
DROP COLUMN "id",
ADD COLUMN "id" UUID NOT NULL DEFAULT gen_random_uuid(),
DROP COLUMN "processoId",
ADD COLUMN "processoId" UUID NOT NULL,
DROP COLUMN "status",
ADD COLUMN "status" "StatusPagamento" NOT NULL DEFAULT 'PENDENTE',
ADD CONSTRAINT "honorarios_pkey" PRIMARY KEY ("id");
-- AlterTable
ALTER TABLE "modelos_documentos" DROP CONSTRAINT "modelos_documentos_pkey",
DROP COLUMN "id",
ADD COLUMN "id" UUID NOT NULL DEFAULT gen_random_uuid(),
ADD CONSTRAINT "modelos_documentos_pkey" PRIMARY KEY ("id");
-- AlterTable
ALTER TABLE "orgaos_julgadores" DROP CONSTRAINT "orgaos_julgadores_pkey",
DROP COLUMN "id",
ADD COLUMN "id" UUID NOT NULL DEFAULT gen_random_uuid(),
ADD CONSTRAINT "orgaos_julgadores_pkey" PRIMARY KEY ("id");
-- AlterTable
ALTER TABLE "usuarios" DROP CONSTRAINT "usuarios_pkey",
DROP COLUMN "id",
ADD COLUMN "id" UUID NOT NULL DEFAULT gen_random_uuid(),
ADD CONSTRAINT "usuarios_pkey" PRIMARY KEY ("id");
-- DropTable
DROP TABLE "audiencias";
-- DropTable
DROP TABLE "diligencias";
-- DropTable
DROP TABLE "documentos";
-- DropTable
DROP TABLE "movimentacoes";
-- DropTable
DROP TABLE "movimentacoes_tribunal";
-- DropTable
DROP TABLE "partes_processo";
-- DropTable
DROP TABLE "processos";
-- CreateTable
CREATE TABLE "ParteProcesso" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"processoId" UUID NOT NULL,
"clienteId" UUID,
"tipo" VARCHAR(20) NOT NULL,
"nome" VARCHAR(200) NOT NULL,
"cpfCnpj" VARCHAR(18),
"principal" BOOLEAN NOT NULL DEFAULT false,
"observacoes" TEXT,
"dataCriacao" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "ParteProcesso_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Processo" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"numero" TEXT NOT NULL,
"natureza" TEXT NOT NULL,
"valorCausa" DECIMAL(15,2),
"orgaoJulgador" VARCHAR(100) NOT NULL,
"orgaoOrigem" VARCHAR(100),
"nomeContraparte" VARCHAR(100) NOT NULL,
"status" VARCHAR(20) NOT NULL DEFAULT 'INICIAL',
"statusAtividade" VARCHAR(20) NOT NULL DEFAULT 'ATIVO',
"dataCriacao" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
"dataAtualizacao" TIMESTAMP NOT NULL,
"clienteId" UUID NOT NULL,
"tipoParteCliente" VARCHAR(20) NOT NULL,
"orgaoJulgadorId" UUID,
CONSTRAINT "Processo_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Audiencia" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"processoId" UUID NOT NULL,
"tipo" VARCHAR(50) NOT NULL,
"data" TIMESTAMP NOT NULL,
"local" VARCHAR(200) NOT NULL,
"modalidade" VARCHAR(20) NOT NULL DEFAULT 'PRESENCIAL',
"status" VARCHAR(20) NOT NULL DEFAULT 'AGENDADA',
"linkVirtual" TEXT,
"observacoes" TEXT,
"dataCriacao" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "Audiencia_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Diligencia" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"processoId" UUID NOT NULL,
"tipo" VARCHAR(50) NOT NULL,
"descricao" TEXT NOT NULL,
"dataLimite" TIMESTAMP NOT NULL,
"status" VARCHAR(20) NOT NULL DEFAULT 'PENDENTE',
"responsavel" VARCHAR(100),
"observacoes" TEXT,
"dataCriacao" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "Diligencia_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Movimentacao" (
"id" UUID NOT NULL 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 NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "Movimentacao_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Documento" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"processoId" UUID NOT NULL,
"nome" VARCHAR(200) NOT NULL,
"tipo" VARCHAR(50) NOT NULL,
"url" TEXT NOT NULL,
"dataCriacao" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "Documento_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "parcelas_honorario" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"honorarioId" UUID NOT NULL,
"numeroParcela" INTEGER NOT NULL,
"valor" DECIMAL(10,2) NOT NULL,
"valorPago" DECIMAL(10,2),
"vencimento" TIMESTAMP(3) NOT NULL,
"dataPagamento" TIMESTAMP(3),
"status" "StatusPagamento" NOT NULL DEFAULT 'PENDENTE',
"comprovante" TEXT,
"observacoes" TEXT,
CONSTRAINT "parcelas_honorario_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "MovimentacaoTribunal" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"processoId" UUID NOT NULL,
"tribunal" VARCHAR(50) NOT NULL,
"data" TIMESTAMP(3) NOT NULL,
"descricao" TEXT NOT NULL,
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "MovimentacaoTribunal_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "ParteProcesso_processoId_idx" ON "ParteProcesso"("processoId");
-- CreateIndex
CREATE INDEX "ParteProcesso_clienteId_idx" ON "ParteProcesso"("clienteId");
-- CreateIndex
CREATE UNIQUE INDEX "Processo_numero_key" ON "Processo"("numero");
-- CreateIndex
CREATE INDEX "Processo_clienteId_idx" ON "Processo"("clienteId");
-- CreateIndex
CREATE INDEX "Processo_orgaoJulgadorId_idx" ON "Processo"("orgaoJulgadorId");
-- CreateIndex
CREATE INDEX "Audiencia_processoId_idx" ON "Audiencia"("processoId");
-- CreateIndex
CREATE INDEX "Diligencia_processoId_idx" ON "Diligencia"("processoId");
-- CreateIndex
CREATE INDEX "Movimentacao_processoId_idx" ON "Movimentacao"("processoId");
-- CreateIndex
CREATE INDEX "Documento_processoId_idx" ON "Documento"("processoId");
-- CreateIndex
CREATE INDEX "parcelas_honorario_honorarioId_idx" ON "parcelas_honorario"("honorarioId");
-- CreateIndex
CREATE INDEX "MovimentacaoTribunal_processoId_idx" ON "MovimentacaoTribunal"("processoId");
-- CreateIndex
CREATE INDEX "custas_processuais_processoId_idx" ON "custas_processuais"("processoId");
-- CreateIndex
CREATE INDEX "honorarios_processoId_idx" ON "honorarios"("processoId");
-- AddForeignKey
ALTER TABLE "filhos" ADD CONSTRAINT "filhos_clienteId_fkey" FOREIGN KEY ("clienteId") REFERENCES "clientes"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "ParteProcesso" ADD CONSTRAINT "ParteProcesso_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "Processo"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "ParteProcesso" ADD CONSTRAINT "ParteProcesso_clienteId_fkey" FOREIGN KEY ("clienteId") REFERENCES "clientes"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Processo" ADD CONSTRAINT "Processo_clienteId_fkey" FOREIGN KEY ("clienteId") REFERENCES "clientes"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Processo" ADD CONSTRAINT "Processo_orgaoJulgadorId_fkey" FOREIGN KEY ("orgaoJulgadorId") REFERENCES "orgaos_julgadores"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Audiencia" ADD CONSTRAINT "Audiencia_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "Processo"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Diligencia" ADD CONSTRAINT "Diligencia_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "Processo"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Movimentacao" ADD CONSTRAINT "Movimentacao_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "Processo"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Documento" ADD CONSTRAINT "Documento_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "Processo"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "custas_processuais" ADD CONSTRAINT "custas_processuais_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "Processo"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "honorarios" ADD CONSTRAINT "honorarios_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "Processo"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "parcelas_honorario" ADD CONSTRAINT "parcelas_honorario_honorarioId_fkey" FOREIGN KEY ("honorarioId") REFERENCES "honorarios"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "MovimentacaoTribunal" ADD CONSTRAINT "MovimentacaoTribunal_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "Processo"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
@@ -0,0 +1,5 @@
-- AlterEnum
ALTER TYPE "FormaPagamento" ADD VALUE 'PERCENTUAL_CAUSA_COM_ENTRADA';
-- AlterTable
ALTER TABLE "honorarios" ADD COLUMN "valorTotalCausa" DECIMAL(10,2);
@@ -0,0 +1,17 @@
/*
Warnings:
- Added the required column `tribunal` to the `Processo` table without a default value. This is not possible if the table is not empty.
- Added the required column `tribunalUF` to the `Processo` table without a default value. This is not possible if the table is not empty.
*/
-- AlterTable
ALTER TABLE "Processo" ADD COLUMN "numeroOriginal" VARCHAR(50),
ADD COLUMN "tribunal" VARCHAR(50) NOT NULL,
ADD COLUMN "tribunalUF" VARCHAR(20) NOT NULL;
-- CreateIndex
CREATE INDEX "Processo_tribunal_idx" ON "Processo"("tribunal");
-- CreateIndex
CREATE INDEX "Processo_tribunalUF_idx" ON "Processo"("tribunalUF");
@@ -0,0 +1,3 @@
-- AlterTable
ALTER TABLE "Processo" ALTER COLUMN "tribunal" DROP NOT NULL,
ALTER COLUMN "tribunalUF" DROP NOT NULL;
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "Processo" ADD COLUMN "dadosDatajud" JSONB;
@@ -0,0 +1,5 @@
-- AlterTable
ALTER TABLE "Processo" ADD COLUMN "assuntos" TEXT[],
ADD COLUMN "classeProcessual" TEXT,
ADD COLUMN "dataAjuizamento" TIMESTAMP(3),
ADD COLUMN "nivelSigilo" INTEGER;
@@ -0,0 +1,31 @@
/*
Warnings:
- You are about to drop the column `cargo` on the `usuarios` table. All the data in the column will be lost.
- You are about to alter the column `nome` on the `usuarios` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(100)`.
- You are about to alter the column `email` on the `usuarios` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(100)`.
- You are about to alter the column `senha` on the `usuarios` table. The data in that column could be lost. The data in that column will be cast from `Text` to `VarChar(100)`.
*/
-- CreateEnum
CREATE TYPE "PerfilUsuario" AS ENUM ('ADVOGADO_ADMIN', 'ADVOGADO', 'ASSISTENTE', 'ESTAGIARIO');
-- AlterTable
ALTER TABLE "usuarios" DROP COLUMN "cargo",
ADD COLUMN "ativo" BOOLEAN NOT NULL DEFAULT true,
ADD COLUMN "bairro" VARCHAR(100),
ADD COLUMN "cep" VARCHAR(9),
ADD COLUMN "cidade" VARCHAR(100),
ADD COLUMN "complemento" VARCHAR(100),
ADD COLUMN "cpf" VARCHAR(14),
ADD COLUMN "endereco" VARCHAR(200),
ADD COLUMN "estado" VARCHAR(2),
ADD COLUMN "numero" VARCHAR(10),
ADD COLUMN "oab" VARCHAR(20),
ADD COLUMN "oabUF" VARCHAR(2),
ADD COLUMN "perfil" "PerfilUsuario" NOT NULL DEFAULT 'ADVOGADO',
ADD COLUMN "rg" VARCHAR(20),
ADD COLUMN "telefone" VARCHAR(15),
ALTER COLUMN "nome" SET DATA TYPE VARCHAR(100),
ALTER COLUMN "email" SET DATA TYPE VARCHAR(100),
ALTER COLUMN "senha" SET DATA TYPE VARCHAR(100);
@@ -0,0 +1,58 @@
-- CreateEnum
CREATE TYPE "TipoAtendimento" AS ENUM ('INICIAL', 'RETORNO', 'ENCAMINHAMENTO', 'ORIENTACAO', 'ACORDO', 'OUTROS');
-- CreateTable
CREATE TABLE "atendimentos" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"protocolo" TEXT NOT NULL,
"clienteId" UUID NOT NULL,
"processoId" UUID,
"tipo" "TipoAtendimento" NOT NULL DEFAULT 'INICIAL',
"titulo" VARCHAR(200) NOT NULL,
"conteudo" TEXT NOT NULL,
"dataAtendimento" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"usuarioId" UUID NOT NULL,
CONSTRAINT "atendimentos_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "anexos_atendimento" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"atendimentoId" UUID NOT NULL,
"nome" VARCHAR(200) NOT NULL,
"tipo" VARCHAR(50) NOT NULL,
"url" TEXT NOT NULL,
"armazenamento" VARCHAR(20) NOT NULL DEFAULT 'NEXTCLOUD',
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "anexos_atendimento_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "atendimentos_protocolo_key" ON "atendimentos"("protocolo");
-- CreateIndex
CREATE INDEX "atendimentos_clienteId_idx" ON "atendimentos"("clienteId");
-- CreateIndex
CREATE INDEX "atendimentos_processoId_idx" ON "atendimentos"("processoId");
-- CreateIndex
CREATE INDEX "atendimentos_protocolo_idx" ON "atendimentos"("protocolo");
-- CreateIndex
CREATE INDEX "anexos_atendimento_atendimentoId_idx" ON "anexos_atendimento"("atendimentoId");
-- AddForeignKey
ALTER TABLE "atendimentos" ADD CONSTRAINT "atendimentos_clienteId_fkey" FOREIGN KEY ("clienteId") REFERENCES "clientes"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "atendimentos" ADD CONSTRAINT "atendimentos_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "Processo"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "atendimentos" ADD CONSTRAINT "atendimentos_usuarioId_fkey" FOREIGN KEY ("usuarioId") REFERENCES "usuarios"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "anexos_atendimento" ADD CONSTRAINT "anexos_atendimento_atendimentoId_fkey" FOREIGN KEY ("atendimentoId") REFERENCES "atendimentos"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,8 @@
-- AlterTable
ALTER TABLE "atendimentos" ADD COLUMN "atendimentoInicialId" UUID;
-- CreateIndex
CREATE INDEX "atendimentos_atendimentoInicialId_idx" ON "atendimentos"("atendimentoInicialId");
-- AddForeignKey
ALTER TABLE "atendimentos" ADD CONSTRAINT "atendimentos_atendimentoInicialId_fkey" FOREIGN KEY ("atendimentoInicialId") REFERENCES "atendimentos"("id") ON DELETE SET NULL ON UPDATE CASCADE;
@@ -0,0 +1,26 @@
-- CreateEnum
CREATE TYPE "StatusAgendamento" AS ENUM ('AGENDADO', 'CONFIRMADO', 'CANCELADO', 'REALIZADO', 'NAO_COMPARECEU');
-- CreateTable
CREATE TABLE "agendamentos_atendimento" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"clienteId" UUID NOT NULL,
"usuarioId" UUID NOT NULL,
"data" TIMESTAMP NOT NULL,
"observacoes" TEXT,
"status" "StatusAgendamento" NOT NULL DEFAULT 'AGENDADO',
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"atualizadoEm" TIMESTAMP(3) NOT NULL,
"atendimentoId" UUID,
CONSTRAINT "agendamentos_atendimento_pkey" PRIMARY KEY ("id")
);
-- AddForeignKey
ALTER TABLE "agendamentos_atendimento" ADD CONSTRAINT "agendamentos_atendimento_clienteId_fkey" FOREIGN KEY ("clienteId") REFERENCES "clientes"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "agendamentos_atendimento" ADD CONSTRAINT "agendamentos_atendimento_usuarioId_fkey" FOREIGN KEY ("usuarioId") REFERENCES "usuarios"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "agendamentos_atendimento" ADD CONSTRAINT "agendamentos_atendimento_atendimentoId_fkey" FOREIGN KEY ("atendimentoId") REFERENCES "atendimentos"("id") ON DELETE SET NULL ON UPDATE CASCADE;
@@ -0,0 +1,76 @@
-- CreateEnum
CREATE TYPE "StatusTarefa" AS ENUM ('PENDENTE', 'EM_ANDAMENTO', 'CONCLUIDA', 'CANCELADA');
CREATE TYPE "PrioridadeTarefa" AS ENUM ('BAIXA', 'MEDIA', 'ALTA', 'URGENTE');
-- CreateTable
CREATE TABLE "tarefas" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"titulo" TEXT NOT NULL,
"descricao" TEXT,
"status" "StatusTarefa" NOT NULL,
"prioridade" "PrioridadeTarefa" NOT NULL,
"dataInicio" TIMESTAMP(3) NOT NULL,
"dataVencimento" TIMESTAMP(3) NOT NULL,
"progresso" INTEGER NOT NULL DEFAULT 0,
"responsavelId" UUID NOT NULL,
"criadoPorId" UUID NOT NULL,
"processoId" UUID,
"clienteId" UUID,
"etiquetas" TEXT[],
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"atualizadoEm" TIMESTAMP(3) NOT NULL,
CONSTRAINT "tarefas_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "subtarefas" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"titulo" TEXT NOT NULL,
"concluida" BOOLEAN NOT NULL DEFAULT false,
"tarefaId" UUID NOT NULL,
CONSTRAINT "subtarefas_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "comentarios" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"texto" TEXT NOT NULL,
"criadoPorId" UUID NOT NULL,
"tarefaId" UUID NOT NULL,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "comentarios_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "anexos" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"nome" TEXT NOT NULL,
"url" TEXT NOT NULL,
"tipo" TEXT NOT NULL,
"tamanho" INTEGER NOT NULL,
"tarefaId" UUID NOT NULL,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "anexos_pkey" PRIMARY KEY ("id")
);
-- AddForeignKey
ALTER TABLE "tarefas" ADD CONSTRAINT "tarefas_responsavelId_fkey" FOREIGN KEY ("responsavelId") REFERENCES "usuarios"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE "tarefas" ADD CONSTRAINT "tarefas_criadoPorId_fkey" FOREIGN KEY ("criadoPorId") REFERENCES "usuarios"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE "tarefas" ADD CONSTRAINT "tarefas_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE "tarefas" ADD CONSTRAINT "tarefas_clienteId_fkey" FOREIGN KEY ("clienteId") REFERENCES "clientes"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "subtarefas" ADD CONSTRAINT "subtarefas_tarefaId_fkey" FOREIGN KEY ("tarefaId") REFERENCES "tarefas"("id") ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE "comentarios" ADD CONSTRAINT "comentarios_criadoPorId_fkey" FOREIGN KEY ("criadoPorId") REFERENCES "usuarios"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE "comentarios" ADD CONSTRAINT "comentarios_tarefaId_fkey" FOREIGN KEY ("tarefaId") REFERENCES "tarefas"("id") ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE "anexos" ADD CONSTRAINT "anexos_tarefaId_fkey" FOREIGN KEY ("tarefaId") REFERENCES "tarefas"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- CreateIndex
CREATE INDEX "tarefas_responsavelId_idx" ON "tarefas"("responsavelId");
CREATE INDEX "tarefas_criadoPorId_idx" ON "tarefas"("criadoPorId");
CREATE INDEX "tarefas_processoId_idx" ON "tarefas"("processoId");
CREATE INDEX "tarefas_clienteId_idx" ON "tarefas"("clienteId");
@@ -0,0 +1,86 @@
-- CreateEnum
CREATE TYPE IF NOT EXISTS "StatusTarefa" AS ENUM ('PENDENTE', 'EM_ANDAMENTO', 'CONCLUIDA', 'CANCELADA');
CREATE TYPE IF NOT EXISTS "PrioridadeTarefa" AS ENUM ('BAIXA', 'MEDIA', 'ALTA', 'URGENTE');
-- Tarefas first (parent table)
CREATE TABLE IF NOT EXISTS "tarefas" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"titulo" TEXT NOT NULL,
"descricao" TEXT,
"status" "StatusTarefa" NOT NULL,
"prioridade" "PrioridadeTarefa" NOT NULL,
"dataInicio" TIMESTAMP(3) NOT NULL,
"dataVencimento" TIMESTAMP(3) NOT NULL,
"progresso" INTEGER NOT NULL DEFAULT 0,
"responsavelId" UUID NOT NULL,
"criadoPorId" UUID NOT NULL,
"processoId" UUID,
"clienteId" UUID,
"etiquetas" TEXT[],
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"atualizadoEm" TIMESTAMP(3) NOT NULL,
CONSTRAINT "tarefas_pkey" PRIMARY KEY ("id"),
CONSTRAINT "tarefas_responsavelId_fkey"
FOREIGN KEY ("responsavelId") REFERENCES "usuarios"("id"),
CONSTRAINT "tarefas_criadoPorId_fkey"
FOREIGN KEY ("criadoPorId") REFERENCES "usuarios"("id"),
CONSTRAINT "tarefas_clienteId_fkey"
FOREIGN KEY ("clienteId") REFERENCES "clientes"("id")
);
-- Then child tables
CREATE TABLE IF NOT EXISTS "subtarefas" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"titulo" TEXT NOT NULL,
"concluida" BOOLEAN NOT NULL DEFAULT false,
"tarefaId" UUID NOT NULL,
CONSTRAINT "subtarefas_pkey" PRIMARY KEY ("id"),
CONSTRAINT "subtarefas_tarefaId_fkey"
FOREIGN KEY ("tarefaId") REFERENCES "tarefas"("id") ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS "comentarios" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"texto" TEXT NOT NULL,
"criadoPorId" UUID NOT NULL,
"tarefaId" UUID NOT NULL,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "comentarios_pkey" PRIMARY KEY ("id"),
CONSTRAINT "comentarios_criadoPorId_fkey"
FOREIGN KEY ("criadoPorId") REFERENCES "usuarios"("id"),
CONSTRAINT "comentarios_tarefaId_fkey"
FOREIGN KEY ("tarefaId") REFERENCES "tarefas"("id") ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS "anexos" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"nome" TEXT NOT NULL,
"url" TEXT NOT NULL,
"tipo" TEXT NOT NULL,
"tamanho" INTEGER NOT NULL,
"tarefaId" UUID NOT NULL,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "anexos_pkey" PRIMARY KEY ("id"),
CONSTRAINT "anexos_tarefaId_fkey"
FOREIGN KEY ("tarefaId") REFERENCES "tarefas"("id") ON DELETE CASCADE
);
-- Add foreign key for processos after it exists
DO $$
BEGIN
IF EXISTS (
SELECT 1 FROM information_schema.tables
WHERE table_name = 'processos'
) THEN
ALTER TABLE "tarefas"
ADD CONSTRAINT "tarefas_processoId_fkey"
FOREIGN KEY ("processoId")
REFERENCES "processos"("id");
END IF;
END $$;
-- Indexes
CREATE INDEX IF NOT EXISTS "tarefas_responsavelId_idx" ON "tarefas"("responsavelId");
CREATE INDEX IF NOT EXISTS "tarefas_criadoPorId_idx" ON "tarefas"("criadoPorId");
CREATE INDEX IF NOT EXISTS "tarefas_processoId_idx" ON "tarefas"("processoId");
CREATE INDEX IF NOT EXISTS "tarefas_clienteId_idx" ON "tarefas"("clienteId");
@@ -0,0 +1,18 @@
-- Remover colunas se existirem (para evitar conflitos)
ALTER TABLE "atendimentos" DROP COLUMN IF EXISTS "status";
ALTER TABLE "atendimentos" DROP COLUMN IF EXISTS "justificativaCancelamento";
ALTER TABLE "atendimentos" DROP COLUMN IF EXISTS "dataAtualizacao";
-- Adicionar as colunas novamente
ALTER TABLE "atendimentos"
ADD COLUMN "status" VARCHAR(20) DEFAULT 'ATIVO',
ADD COLUMN "justificativaCancelamento" TEXT,
ADD COLUMN "dataAtualizacao" TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
-- Atualizar registros existentes
UPDATE "atendimentos"
SET "status" = 'ATIVO',
"dataAtualizacao" = COALESCE("dataCriacao", CURRENT_TIMESTAMP);
-- Criar índice para melhorar performance de buscas por status
CREATE INDEX IF NOT EXISTS "atendimentos_status_idx" ON "atendimentos"("status");
@@ -0,0 +1,4 @@
-- AlterTable
ALTER TABLE "atendimentos" ADD COLUMN "dataAtualizacao" TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP,
ADD COLUMN "justificativaCancelamento" TEXT,
ADD COLUMN "status" VARCHAR(20) DEFAULT 'ATIVO';
@@ -0,0 +1,84 @@
-- CreateEnum
CREATE TYPE "StatusTarefa" AS ENUM ('PENDENTE', 'EM_ANDAMENTO', 'CONCLUIDA', 'CANCELADA');
-- CreateEnum
CREATE TYPE "PrioridadeTarefa" AS ENUM ('BAIXA', 'MEDIA', 'ALTA', 'URGENTE');
-- CreateTable
CREATE TABLE "tarefas" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"titulo" TEXT NOT NULL,
"descricao" TEXT,
"status" "StatusTarefa" NOT NULL,
"prioridade" "PrioridadeTarefa" NOT NULL,
"dataInicio" TIMESTAMP(3) NOT NULL,
"dataVencimento" TIMESTAMP(3) NOT NULL,
"progresso" INTEGER NOT NULL DEFAULT 0,
"responsavelId" UUID NOT NULL,
"criadoPorId" UUID NOT NULL,
"processoId" UUID,
"clienteId" UUID,
"etiquetas" TEXT[],
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"atualizadoEm" TIMESTAMP(3) NOT NULL,
CONSTRAINT "tarefas_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "subtarefas" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"titulo" TEXT NOT NULL,
"concluida" BOOLEAN NOT NULL DEFAULT false,
"tarefaId" UUID NOT NULL,
CONSTRAINT "subtarefas_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "comentarios" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"texto" TEXT NOT NULL,
"criadoPorId" UUID NOT NULL,
"tarefaId" UUID NOT NULL,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "comentarios_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "anexos" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"nome" TEXT NOT NULL,
"url" TEXT NOT NULL,
"tipo" TEXT NOT NULL,
"tamanho" INTEGER NOT NULL,
"tarefaId" UUID NOT NULL,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "anexos_pkey" PRIMARY KEY ("id")
);
-- AddForeignKey
ALTER TABLE "tarefas" ADD CONSTRAINT "tarefas_responsavelId_fkey" FOREIGN KEY ("responsavelId") REFERENCES "usuarios"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "tarefas" ADD CONSTRAINT "tarefas_criadoPorId_fkey" FOREIGN KEY ("criadoPorId") REFERENCES "usuarios"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "tarefas" ADD CONSTRAINT "tarefas_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "Processo"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "tarefas" ADD CONSTRAINT "tarefas_clienteId_fkey" FOREIGN KEY ("clienteId") REFERENCES "clientes"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "subtarefas" ADD CONSTRAINT "subtarefas_tarefaId_fkey" FOREIGN KEY ("tarefaId") REFERENCES "tarefas"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "comentarios" ADD CONSTRAINT "comentarios_criadoPorId_fkey" FOREIGN KEY ("criadoPorId") REFERENCES "usuarios"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "comentarios" ADD CONSTRAINT "comentarios_tarefaId_fkey" FOREIGN KEY ("tarefaId") REFERENCES "tarefas"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "anexos" ADD CONSTRAINT "anexos_tarefaId_fkey" FOREIGN KEY ("tarefaId") REFERENCES "tarefas"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,5 @@
-- CreateEnum
CREATE TYPE "ResultadoProcesso" AS ENUM ('NAO_JULGADO', 'PROCEDENTE', 'PARCIALMENTE_PROCEDENTE', 'IMPROCEDENTE', 'SEM_ANALISE_MERITO');
-- AlterTable
ALTER TABLE "Processo" ADD COLUMN "resultado" "ResultadoProcesso" NOT NULL DEFAULT 'NAO_JULGADO';
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "tarefas" ADD COLUMN "dataConclusao" TIMESTAMP(3);
@@ -0,0 +1,44 @@
/*
Warnings:
- You are about to drop the `anexos` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `anexos_atendimento` table. If the table is not empty, all the data it contains will be lost.
*/
-- DropForeignKey
ALTER TABLE "anexos" DROP CONSTRAINT "anexos_tarefaId_fkey";
-- DropForeignKey
ALTER TABLE "anexos_atendimento" DROP CONSTRAINT "anexos_atendimento_atendimentoId_fkey";
-- DropTable
DROP TABLE "anexos";
-- DropTable
DROP TABLE "anexos_atendimento";
-- CreateTable
CREATE TABLE "Anexo" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"nome" TEXT NOT NULL,
"url" TEXT NOT NULL,
"tipo" TEXT NOT NULL,
"tamanho" INTEGER NOT NULL,
"atendimentoId" UUID,
"tarefaId" UUID,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "Anexo_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "Anexo_atendimentoId_idx" ON "Anexo"("atendimentoId");
-- CreateIndex
CREATE INDEX "Anexo_tarefaId_idx" ON "Anexo"("tarefaId");
-- AddForeignKey
ALTER TABLE "Anexo" ADD CONSTRAINT "Anexo_atendimentoId_fkey" FOREIGN KEY ("atendimentoId") REFERENCES "atendimentos"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Anexo" ADD CONSTRAINT "Anexo_tarefaId_fkey" FOREIGN KEY ("tarefaId") REFERENCES "tarefas"("id") ON DELETE SET NULL ON UPDATE CASCADE;
@@ -0,0 +1,66 @@
/*
Warnings:
- You are about to drop the `Documento` table. If the table is not empty, all the data it contains will be lost.
*/
-- CreateEnum
CREATE TYPE "TipoDocumento" AS ENUM ('PETICAO', 'CONTRATO', 'PROCURACAO', 'DECLARACAO', 'OUTROS');
-- DropForeignKey
ALTER TABLE "Documento" DROP CONSTRAINT "Documento_processoId_fkey";
-- DropTable
DROP TABLE "Documento";
-- CreateTable
CREATE TABLE "documentos" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"nome" VARCHAR(200) NOT NULL,
"tipo" "TipoDocumento" NOT NULL,
"conteudo" TEXT NOT NULL,
"url" TEXT,
"processoId" UUID,
"atendimentoId" UUID,
"anexoId" UUID,
"criadoPorId" UUID NOT NULL,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"atualizadoEm" TIMESTAMP(3) NOT NULL,
CONSTRAINT "documentos_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "documentos_modelos" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"nome" VARCHAR(200) NOT NULL,
"descricao" TEXT,
"tipo" "TipoDocumento" NOT NULL,
"conteudo" TEXT NOT NULL,
"variaveis" TEXT[],
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"atualizadoEm" TIMESTAMP(3) NOT NULL,
CONSTRAINT "documentos_modelos_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "documentos_anexoId_key" ON "documentos"("anexoId");
-- CreateIndex
CREATE INDEX "documentos_processoId_idx" ON "documentos"("processoId");
-- CreateIndex
CREATE INDEX "documentos_atendimentoId_idx" ON "documentos"("atendimentoId");
-- AddForeignKey
ALTER TABLE "documentos" ADD CONSTRAINT "documentos_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "Processo"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "documentos" ADD CONSTRAINT "documentos_atendimentoId_fkey" FOREIGN KEY ("atendimentoId") REFERENCES "atendimentos"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "documentos" ADD CONSTRAINT "documentos_anexoId_fkey" FOREIGN KEY ("anexoId") REFERENCES "Anexo"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "documentos" ADD CONSTRAINT "documentos_criadoPorId_fkey" FOREIGN KEY ("criadoPorId") REFERENCES "usuarios"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
@@ -0,0 +1,31 @@
/*
Warnings:
- The `variaveis` column on the `modelos_documentos` table would be dropped and recreated. This will lead to data loss if there is data in the column.
*/
-- AlterTable
ALTER TABLE "documentos" ADD COLUMN "protocolo" VARCHAR(20);
-- AlterTable
ALTER TABLE "modelos_documentos" ADD COLUMN "assinatura" BOOLEAN NOT NULL DEFAULT true,
ADD COLUMN "cabecalho" BOOLEAN NOT NULL DEFAULT true,
ADD COLUMN "rodape" BOOLEAN NOT NULL DEFAULT true,
DROP COLUMN "variaveis",
ADD COLUMN "variaveis" JSONB;
-- CreateTable
CREATE TABLE "configuracoes_documentos" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"cabecalhoHtml" TEXT NOT NULL,
"rodapeHtml" TEXT NOT NULL,
"assinaturaHtml" TEXT NOT NULL,
"logoUrl" TEXT,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"atualizadoEm" TIMESTAMP(3) NOT NULL,
CONSTRAINT "configuracoes_documentos_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "documentos_protocolo_idx" ON "documentos"("protocolo");
@@ -0,0 +1,19 @@
/*
Warnings:
- You are about to drop the `configuracoes_documentos` table. If the table is not empty, all the data it contains will be lost.
*/
-- DropTable
DROP TABLE "configuracoes_documentos";
-- CreateTable
CREATE TABLE "configuracao_documento" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"headerImageUrl" TEXT,
"footerImageUrl" TEXT,
"logoUrl" TEXT,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "configuracao_documento_pkey" PRIMARY KEY ("id")
);
@@ -0,0 +1,6 @@
-- AlterTable
ALTER TABLE "configuracao_documento" ADD COLUMN "timbradoMarginBottom" INTEGER DEFAULT 50,
ADD COLUMN "timbradoMarginLeft" INTEGER DEFAULT 50,
ADD COLUMN "timbradoMarginRight" INTEGER DEFAULT 50,
ADD COLUMN "timbradoMarginTop" INTEGER DEFAULT 100,
ADD COLUMN "timbradoUrl" TEXT;
@@ -0,0 +1,19 @@
/*
Warnings:
- You are about to drop the column `footerImageUrl` on the `configuracao_documento` table. All the data in the column will be lost.
- You are about to drop the column `headerImageUrl` on the `configuracao_documento` table. All the data in the column will be lost.
- You are about to drop the column `logoUrl` on the `configuracao_documento` table. All the data in the column will be lost.
- A unique constraint covering the columns `[escritorioId]` on the table `configuracao_documento` will be added. If there are existing duplicate values, this will fail.
*/
-- AlterTable
ALTER TABLE "configuracao_documento" DROP COLUMN "footerImageUrl",
DROP COLUMN "headerImageUrl",
DROP COLUMN "logoUrl",
ADD COLUMN "escritorioId" UUID,
ADD COLUMN "margensTemplate" JSONB DEFAULT '{"top":35,"bottom":29,"left":25,"right":25}',
ADD COLUMN "templatePadrao" TEXT;
-- CreateIndex
CREATE UNIQUE INDEX "configuracao_documento_escritorioId_key" ON "configuracao_documento"("escritorioId");
@@ -0,0 +1,14 @@
/*
Warnings:
- You are about to drop the column `escritorioId` on the `configuracao_documento` table. All the data in the column will be lost.
*/
-- DropIndex
DROP INDEX "configuracao_documento_escritorioId_key";
-- AlterTable
ALTER TABLE "configuracao_documento" DROP COLUMN "escritorioId";
-- CreateIndex
CREATE INDEX "configuracao_documento_criadoEm_idx" ON "configuracao_documento"("criadoEm");
@@ -0,0 +1,59 @@
-- CreateEnum
CREATE TYPE "StatusProcessoAdministrativo" AS ENUM ('INICIAL', 'EM_ANALISE', 'EM_RECURSO', 'FINALIZADO', 'ARQUIVADO');
-- AlterTable
ALTER TABLE "documentos" ADD COLUMN "processoAdministrativoId" UUID;
-- CreateTable
CREATE TABLE "processos_administrativos" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"numero" TEXT NOT NULL,
"descricao" TEXT NOT NULL,
"orgao" VARCHAR(200) NOT NULL,
"clienteId" UUID NOT NULL,
"tipoParteCliente" "TipoParte" NOT NULL,
"valorPretensao" DECIMAL(15,2),
"status" "StatusProcessoAdministrativo" NOT NULL DEFAULT 'INICIAL',
"resultado" VARCHAR(100),
"observacoes" TEXT,
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"dataAtualizacao" TIMESTAMP(3) NOT NULL,
CONSTRAINT "processos_administrativos_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "movimentacoes_administrativas" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"processoId" UUID NOT NULL,
"data" TIMESTAMP(3) NOT NULL,
"descricao" TEXT NOT NULL,
"tipoMovimentacao" VARCHAR(100) NOT NULL,
"numero" VARCHAR(100),
"documentos" TEXT[],
"observacoes" TEXT,
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "movimentacoes_administrativas_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "processos_administrativos_numero_key" ON "processos_administrativos"("numero");
-- CreateIndex
CREATE INDEX "processos_administrativos_clienteId_idx" ON "processos_administrativos"("clienteId");
-- CreateIndex
CREATE INDEX "movimentacoes_administrativas_processoId_idx" ON "movimentacoes_administrativas"("processoId");
-- CreateIndex
CREATE INDEX "documentos_processoAdministrativoId_idx" ON "documentos"("processoAdministrativoId");
-- AddForeignKey
ALTER TABLE "processos_administrativos" ADD CONSTRAINT "processos_administrativos_clienteId_fkey" FOREIGN KEY ("clienteId") REFERENCES "clientes"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "movimentacoes_administrativas" ADD CONSTRAINT "movimentacoes_administrativas_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "processos_administrativos"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "documentos" ADD CONSTRAINT "documentos_processoAdministrativoId_fkey" FOREIGN KEY ("processoAdministrativoId") REFERENCES "processos_administrativos"("id") ON DELETE SET NULL ON UPDATE CASCADE;
@@ -0,0 +1,27 @@
-- CreateEnum
CREATE TYPE "TipoCustaAdministrativa" AS ENUM ('TAXA_ADMINISTRATIVA', 'RECURSO', 'DILIGENCIA', 'CERTIDAO', 'COPIA', 'OUTROS');
-- CreateTable
CREATE TABLE "custas_administrativas" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"processoId" UUID NOT NULL,
"tipo" "TipoCustaAdministrativa" NOT NULL,
"descricao" VARCHAR(200) NOT NULL,
"valor" DECIMAL(10,2) NOT NULL,
"status" "StatusPagamento" NOT NULL DEFAULT 'PENDENTE',
"vencimento" TIMESTAMP(3),
"dataPagamento" TIMESTAMP(3),
"comprovante" TEXT,
"observacoes" TEXT,
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"numeroParcelas" INTEGER NOT NULL DEFAULT 1,
"parcelaAtual" INTEGER NOT NULL DEFAULT 1,
CONSTRAINT "custas_administrativas_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "custas_administrativas_processoId_idx" ON "custas_administrativas"("processoId");
-- AddForeignKey
ALTER TABLE "custas_administrativas" ADD CONSTRAINT "custas_administrativas_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "processos_administrativos"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,21 @@
-- CreateEnum
CREATE TYPE "StatusProva" AS ENUM ('PENDENTE', 'PROCESSANDO', 'CONCLUIDO', 'ERRO');
-- CreateTable
CREATE TABLE "provas" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"fileName" VARCHAR(255) NOT NULL,
"mimeType" VARCHAR(100) NOT NULL,
"checksumSha256" VARCHAR(64) NOT NULL,
"checksumSha512" VARCHAR(128) NOT NULL,
"checksumMd5" VARCHAR(32) NOT NULL,
"timestamp" TEXT NOT NULL,
"metadata" JSONB NOT NULL,
"reportPath" VARCHAR(255) NOT NULL,
"status" "StatusProva" NOT NULL DEFAULT 'PENDENTE',
"error" TEXT,
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"dataValida" TIMESTAMP(3) NOT NULL,
CONSTRAINT "provas_pkey" PRIMARY KEY ("id")
);
@@ -0,0 +1,263 @@
-- CreateTable
CREATE TABLE "calculosjudiciais" (
"id" TEXT NOT NULL,
"titulo" TEXT NOT NULL,
"descricao" TEXT,
"dataBase" TIMESTAMP(3) NOT NULL,
"dataCalculo" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"valorBase" DECIMAL(15,2) NOT NULL,
"valorCorrigido" DECIMAL(15,2) NOT NULL,
"valorFinal" DECIMAL(15,2) NOT NULL,
"status" TEXT NOT NULL DEFAULT 'RASCUNHO',
"usuarioId" UUID,
"processoId" UUID,
"clienteId" UUID,
"configuracoes" JSONB,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"atualizadoEm" TIMESTAMP(3) NOT NULL,
CONSTRAINT "calculosjudiciais_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "correcoes_monetarias" (
"id" TEXT NOT NULL,
"calculoId" TEXT NOT NULL,
"indice" TEXT NOT NULL,
"dataInicial" TIMESTAMP(3) NOT NULL,
"dataFinal" TIMESTAMP(3),
"valorOriginal" DECIMAL(15,2) NOT NULL,
"valorCorrigido" DECIMAL(15,2) NOT NULL,
"fatorCorrecao" DECIMAL(15,6) NOT NULL,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"atualizadoEm" TIMESTAMP(3) NOT NULL,
CONSTRAINT "correcoes_monetarias_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "juros_calculos" (
"id" TEXT NOT NULL,
"calculoId" TEXT NOT NULL,
"tipo" TEXT NOT NULL,
"taxa" DECIMAL(8,6) NOT NULL,
"periodicidade" TEXT NOT NULL,
"natureza" TEXT NOT NULL,
"dataInicial" TIMESTAMP(3) NOT NULL,
"dataFinal" TIMESTAMP(3),
"valorBase" DECIMAL(15,2) NOT NULL,
"valorJuros" DECIMAL(15,2) NOT NULL,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"atualizadoEm" TIMESTAMP(3) NOT NULL,
CONSTRAINT "juros_calculos_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "multas_calculos" (
"id" TEXT NOT NULL,
"calculoId" TEXT NOT NULL,
"tipo" TEXT NOT NULL,
"percentual" DECIMAL(8,6) NOT NULL,
"valorBase" DECIMAL(15,2) NOT NULL,
"valorMulta" DECIMAL(15,2) NOT NULL,
"fundamento" TEXT,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"atualizadoEm" TIMESTAMP(3) NOT NULL,
CONSTRAINT "multas_calculos_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "honorarios_calculos" (
"id" TEXT NOT NULL,
"calculoId" TEXT NOT NULL,
"tipo" TEXT NOT NULL,
"percentual" DECIMAL(8,6) NOT NULL,
"valorBase" DECIMAL(15,2) NOT NULL,
"valorHonorario" DECIMAL(15,2) NOT NULL,
"fundamento" TEXT,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"atualizadoEm" TIMESTAMP(3) NOT NULL,
CONSTRAINT "honorarios_calculos_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "parcelas_calculos" (
"id" TEXT NOT NULL,
"calculoId" TEXT NOT NULL,
"numero" INTEGER NOT NULL,
"dataVencimento" TIMESTAMP(3) NOT NULL,
"valorOriginal" DECIMAL(15,2) NOT NULL,
"valorCorrigido" DECIMAL(15,2) NOT NULL,
"valorJuros" DECIMAL(15,2) NOT NULL,
"valorMulta" DECIMAL(15,2) NOT NULL,
"valorTotal" DECIMAL(15,2) NOT NULL,
"pago" BOOLEAN NOT NULL DEFAULT false,
"dataPagamento" TIMESTAMP(3),
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"atualizadoEm" TIMESTAMP(3) NOT NULL,
CONSTRAINT "parcelas_calculos_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "descontos_calculos" (
"id" TEXT NOT NULL,
"calculoId" TEXT NOT NULL,
"tipo" TEXT NOT NULL,
"descricao" TEXT,
"percentual" DECIMAL(8,6),
"valorFixo" DECIMAL(15,2),
"valorBase" DECIMAL(15,2) NOT NULL,
"valorDesconto" DECIMAL(15,2) NOT NULL,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"atualizadoEm" TIMESTAMP(3) NOT NULL,
CONSTRAINT "descontos_calculos_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "historicos_calculos" (
"id" TEXT NOT NULL,
"calculoId" TEXT NOT NULL,
"usuarioId" UUID,
"acao" TEXT NOT NULL,
"descricao" TEXT NOT NULL,
"valorAnterior" DECIMAL(15,2),
"valorNovo" DECIMAL(15,2),
"metadados" JSONB,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "historicos_calculos_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "exportacoes_calculos" (
"id" TEXT NOT NULL,
"calculoId" TEXT NOT NULL,
"usuarioId" UUID,
"tipo" TEXT NOT NULL,
"arquivo" TEXT NOT NULL,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "exportacoes_calculos_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "indices_monetarios" (
"id" TEXT NOT NULL,
"nome" TEXT NOT NULL,
"mesReferencia" INTEGER NOT NULL,
"anoReferencia" INTEGER NOT NULL,
"valor" DECIMAL(15,6) NOT NULL,
"dataPublicacao" TIMESTAMP(3),
"fonte" TEXT,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"atualizadoEm" TIMESTAMP(3) NOT NULL,
CONSTRAINT "indices_monetarios_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "pensoes_alimenticias" (
"id" TEXT NOT NULL,
"calculoId" TEXT NOT NULL,
"percentualSalarioMinimo" DECIMAL(8,6) NOT NULL,
"multaPactuada" DECIMAL(8,6),
"tipoAtualizacao" TEXT NOT NULL DEFAULT 'INPC',
"dataInicial" TIMESTAMP(3) NOT NULL,
"dataFinal" TIMESTAMP(3),
"observacoes" TEXT,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"atualizadoEm" TIMESTAMP(3) NOT NULL,
CONSTRAINT "pensoes_alimenticias_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "historico_salario_minimo" (
"id" TEXT NOT NULL,
"pensaoId" TEXT NOT NULL,
"dataVigencia" TIMESTAMP(3) NOT NULL,
"valor" DECIMAL(15,2) NOT NULL,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"atualizadoEm" TIMESTAMP(3) NOT NULL,
CONSTRAINT "historico_salario_minimo_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "parcelas_pensao" (
"id" TEXT NOT NULL,
"pensaoId" TEXT NOT NULL,
"competencia" TIMESTAMP(3) NOT NULL,
"valorSalarioMinimo" DECIMAL(15,2) NOT NULL,
"percentual" DECIMAL(8,6) NOT NULL,
"valorOriginal" DECIMAL(15,2) NOT NULL,
"valorCorrigido" DECIMAL(15,2) NOT NULL,
"valorJuros" DECIMAL(15,2) NOT NULL,
"valorMulta" DECIMAL(15,2) NOT NULL,
"valorTotal" DECIMAL(15,2) NOT NULL,
"pago" BOOLEAN NOT NULL DEFAULT false,
"dataPagamento" TIMESTAMP(3),
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"atualizadoEm" TIMESTAMP(3) NOT NULL,
CONSTRAINT "parcelas_pensao_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "indices_monetarios_nome_mesReferencia_anoReferencia_key" ON "indices_monetarios"("nome", "mesReferencia", "anoReferencia");
-- CreateIndex
CREATE UNIQUE INDEX "pensoes_alimenticias_calculoId_key" ON "pensoes_alimenticias"("calculoId");
-- AddForeignKey
ALTER TABLE "calculosjudiciais" ADD CONSTRAINT "calculosjudiciais_usuarioId_fkey" FOREIGN KEY ("usuarioId") REFERENCES "usuarios"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "calculosjudiciais" ADD CONSTRAINT "calculosjudiciais_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "Processo"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "calculosjudiciais" ADD CONSTRAINT "calculosjudiciais_clienteId_fkey" FOREIGN KEY ("clienteId") REFERENCES "clientes"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "correcoes_monetarias" ADD CONSTRAINT "correcoes_monetarias_calculoId_fkey" FOREIGN KEY ("calculoId") REFERENCES "calculosjudiciais"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "juros_calculos" ADD CONSTRAINT "juros_calculos_calculoId_fkey" FOREIGN KEY ("calculoId") REFERENCES "calculosjudiciais"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "multas_calculos" ADD CONSTRAINT "multas_calculos_calculoId_fkey" FOREIGN KEY ("calculoId") REFERENCES "calculosjudiciais"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "honorarios_calculos" ADD CONSTRAINT "honorarios_calculos_calculoId_fkey" FOREIGN KEY ("calculoId") REFERENCES "calculosjudiciais"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "parcelas_calculos" ADD CONSTRAINT "parcelas_calculos_calculoId_fkey" FOREIGN KEY ("calculoId") REFERENCES "calculosjudiciais"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "descontos_calculos" ADD CONSTRAINT "descontos_calculos_calculoId_fkey" FOREIGN KEY ("calculoId") REFERENCES "calculosjudiciais"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "historicos_calculos" ADD CONSTRAINT "historicos_calculos_calculoId_fkey" FOREIGN KEY ("calculoId") REFERENCES "calculosjudiciais"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "historicos_calculos" ADD CONSTRAINT "historicos_calculos_usuarioId_fkey" FOREIGN KEY ("usuarioId") REFERENCES "usuarios"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "exportacoes_calculos" ADD CONSTRAINT "exportacoes_calculos_calculoId_fkey" FOREIGN KEY ("calculoId") REFERENCES "calculosjudiciais"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "exportacoes_calculos" ADD CONSTRAINT "exportacoes_calculos_usuarioId_fkey" FOREIGN KEY ("usuarioId") REFERENCES "usuarios"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "pensoes_alimenticias" ADD CONSTRAINT "pensoes_alimenticias_calculoId_fkey" FOREIGN KEY ("calculoId") REFERENCES "calculosjudiciais"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "historico_salario_minimo" ADD CONSTRAINT "historico_salario_minimo_pensaoId_fkey" FOREIGN KEY ("pensaoId") REFERENCES "pensoes_alimenticias"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "parcelas_pensao" ADD CONSTRAINT "parcelas_pensao_pensaoId_fkey" FOREIGN KEY ("pensaoId") REFERENCES "pensoes_alimenticias"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,11 @@
-- Adicionar campos para relatório de audiência
ALTER TABLE "audiencias"
ADD COLUMN IF NOT EXISTS "relatorio" TEXT,
ADD COLUMN IF NOT EXISTS "dataFinalizacao" TIMESTAMP,
ALTER COLUMN "status" TYPE VARCHAR(20)
USING CASE
WHEN status = 'AGENDADA' THEN 'AGENDADA'::VARCHAR
WHEN status = 'REALIZADA' THEN 'REALIZADA'::VARCHAR
WHEN status = 'CANCELADA' THEN 'CANCELADA'::VARCHAR
ELSE 'AGENDADA'::VARCHAR
END;
@@ -0,0 +1,5 @@
-- AlterTable
ALTER TABLE "clientes"
ADD COLUMN IF NOT EXISTS "usaDNI" BOOLEAN NOT NULL DEFAULT false,
ADD COLUMN IF NOT EXISTS "possuiFilhos" BOOLEAN NOT NULL DEFAULT false,
ADD COLUMN IF NOT EXISTS "orgaoEmissor" TEXT;
@@ -0,0 +1,13 @@
-- Criar tabela para documentos
CREATE TABLE IF NOT EXISTS "documentos" (
"id" UUID PRIMARY KEY DEFAULT gen_random_uuid(),
"processoId" UUID NOT NULL,
"nome" VARCHAR(200) NOT NULL,
"tipo" VARCHAR(50) NOT NULL,
"url" TEXT NOT NULL,
"dataCriacao" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE
);
-- Adicionar índice para melhor performance
CREATE INDEX IF NOT EXISTS "idx_documentos_processo" ON "documentos"("processoId");
@@ -0,0 +1,25 @@
-- AlterTable: Adicionar limites aos campos de texto
ALTER TABLE "clientes"
ALTER COLUMN "nome" TYPE VARCHAR(100),
ALTER COLUMN "email" TYPE VARCHAR(100),
ALTER COLUMN "cpfCnpj" TYPE VARCHAR(18),
ALTER COLUMN "rg" TYPE VARCHAR(20),
ALTER COLUMN "orgaoEmissor" TYPE VARCHAR(10),
ALTER COLUMN "estadoRg" TYPE CHAR(2),
ALTER COLUMN "telefone" TYPE VARCHAR(20),
ALTER COLUMN "instagram" TYPE VARCHAR(50),
ALTER COLUMN "cep" TYPE VARCHAR(9),
ALTER COLUMN "endereco" TYPE VARCHAR(150),
ALTER COLUMN "numero" TYPE VARCHAR(10),
ALTER COLUMN "complemento" TYPE VARCHAR(50),
ALTER COLUMN "bairro" TYPE VARCHAR(100),
ALTER COLUMN "cidade" TYPE VARCHAR(100),
ALTER COLUMN "estado" TYPE CHAR(2),
ALTER COLUMN "estadoCivil" TYPE VARCHAR(20),
ALTER COLUMN "profissao" TYPE VARCHAR(100),
ALTER COLUMN "vinculoEmpregaticio" TYPE VARCHAR(50),
ALTER COLUMN "tipoPrevidencia" TYPE VARCHAR(20),
ALTER COLUMN "nomePai" TYPE VARCHAR(100),
ALTER COLUMN "nomeMae" TYPE VARCHAR(100),
ALTER COLUMN "conjugeNome" TYPE VARCHAR(100),
ALTER COLUMN "conjugeCpf" TYPE VARCHAR(14);
@@ -0,0 +1,11 @@
-- AlterTable: Adicionar novos campos sem modificar os existentes
ALTER TABLE "clientes"
ADD COLUMN IF NOT EXISTS "dataNascimento" TIMESTAMP,
ADD COLUMN IF NOT EXISTS "estadoRg" TEXT,
ADD COLUMN IF NOT EXISTS "orgaoEmissor" TEXT,
ADD COLUMN IF NOT EXISTS "usaDNI" BOOLEAN DEFAULT false,
ADD COLUMN IF NOT EXISTS "possuiFilhos" BOOLEAN DEFAULT false;
-- AlterTable: Modificar valor default do tipoPrevidencia sem afetar dados existentes
ALTER TABLE "clientes"
ALTER COLUMN "tipoPrevidencia" SET DEFAULT 'NAO_CONTRIBUI';
@@ -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
@@ -0,0 +1,98 @@
-- 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");
@@ -0,0 +1,3 @@
-- AlterTable
ALTER TABLE "clientes"
ADD COLUMN IF NOT EXISTS "estadoRg" TEXT;
@@ -0,0 +1,5 @@
-- AlterTable
ALTER TABLE "clientes"
ALTER COLUMN "dataNascimento" TYPE DATE,
ALTER COLUMN "orgaoEmissor" TYPE VARCHAR(10),
ALTER COLUMN "estadoRg" TYPE CHAR(2);
@@ -0,0 +1,15 @@
-- AlterTable
-- Primeiro, atualizar valores existentes para garantir que caibam no novo tipo
UPDATE "clientes"
SET "orgaoEmissor" = LEFT("orgaoEmissor", 10)
WHERE "orgaoEmissor" IS NOT NULL;
UPDATE "clientes"
SET "estadoRg" = UPPER(LEFT("estadoRg", 2))
WHERE "estadoRg" IS NOT NULL;
-- Agora alterar os tipos das colunas
ALTER TABLE "clientes"
ALTER COLUMN "dataNascimento" TYPE DATE USING "dataNascimento"::DATE,
ALTER COLUMN "orgaoEmissor" TYPE VARCHAR(10),
ALTER COLUMN "estadoRg" TYPE CHAR(2);
@@ -0,0 +1,5 @@
-- AlterTable
ALTER TABLE "clientes"
ALTER COLUMN "orgaoEmissor" DROP DEFAULT,
ALTER COLUMN "estadoRg" DROP DEFAULT,
ALTER COLUMN "tipoPrevidencia" SET DEFAULT 'NAO_CONTRIBUI';
@@ -0,0 +1,19 @@
-- Remover campos antigos que não são mais necessários
ALTER TABLE "processos" DROP COLUMN IF EXISTS "orgaoJulgadorId";
ALTER TABLE "processos" DROP COLUMN IF EXISTS "orgaoJulgadorRef";
ALTER TABLE "processos" DROP COLUMN IF EXISTS "eventoCalendarioId";
ALTER TABLE "processos" DROP COLUMN IF EXISTS "ultimaConsulta";
-- Ajustar campos obrigatórios e tipos
ALTER TABLE "processos"
ALTER COLUMN "natureza" SET NOT NULL,
ALTER COLUMN "tipoParteCliente" SET NOT NULL,
ALTER COLUMN "orgaoJulgador" SET NOT NULL,
ALTER COLUMN "nomeContraparte" SET NOT NULL,
ALTER COLUMN "orgaoJulgador" TYPE VARCHAR(100),
ALTER COLUMN "orgaoOrigem" TYPE VARCHAR(100),
ALTER COLUMN "nomeContraparte" TYPE VARCHAR(100);
-- Adicionar índices
CREATE INDEX IF NOT EXISTS "idx_processo_numero" ON "processos"("numero");
CREATE INDEX IF NOT EXISTS "idx_processo_cliente" ON "processos"("clienteId");
@@ -0,0 +1,28 @@
-- Fazer backup da tabela audiencias
CREATE TABLE "audiencias_backup" AS SELECT * FROM "audiencias";
-- Remover constraint existente
ALTER TABLE "audiencias" DROP CONSTRAINT IF EXISTS "audiencias_processoId_fkey";
-- Atualizar colunas
ALTER TABLE "audiencias"
ADD COLUMN IF NOT EXISTS "relatorio" TEXT,
ADD COLUMN IF NOT EXISTS "dataFinalizacao" TIMESTAMP WITH TIME ZONE,
ALTER COLUMN "id" SET DATA TYPE UUID USING (gen_random_uuid()),
ALTER COLUMN "processoId" SET DATA TYPE UUID USING ("processoId"::UUID),
ALTER COLUMN "status" SET DATA TYPE VARCHAR(20);
-- Recriar foreign key com UUID
ALTER TABLE "audiencias"
ADD CONSTRAINT "audiencias_processoId_fkey"
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE;
-- Adicionar check constraint para status
ALTER TABLE "audiencias"
ADD CONSTRAINT "audiencias_status_check"
CHECK (status IN ('AGENDADA', 'REALIZADA', 'CANCELADA', 'REDESIGNADA'));
-- Atualizar status existentes
UPDATE "audiencias"
SET status = 'AGENDADA'
WHERE status IS NULL OR status NOT IN ('AGENDADA', 'REALIZADA', 'CANCELADA', 'REDESIGNADA');
@@ -0,0 +1,24 @@
-- Adicionar colunas novas sem modificar as existentes
ALTER TABLE "audiencias"
ADD COLUMN IF NOT EXISTS "relatorio" TEXT,
ADD COLUMN IF NOT EXISTS "dataFinalizacao" TIMESTAMP WITH TIME ZONE;
-- Atualizar coluna de status mantendo os dados existentes
DO $$
BEGIN
-- Verificar se a constraint já existe antes de tentar remover
IF EXISTS (SELECT 1 FROM information_schema.constraint_column_usage WHERE constraint_name = 'audiencias_status_check') THEN
ALTER TABLE "audiencias" DROP CONSTRAINT "audiencias_status_check";
END IF;
END $$;
-- Adicionar nova constraint de status
ALTER TABLE "audiencias"
ADD CONSTRAINT "audiencias_status_check"
CHECK (status IN ('AGENDADA', 'REALIZADA', 'CANCELADA', 'REDESIGNADA'));
-- Atualizar valores existentes para o novo formato
UPDATE "audiencias"
SET status = 'AGENDADA'
WHERE status NOT IN ('AGENDADA', 'REALIZADA', 'CANCELADA', 'REDESIGNADA')
OR status IS NULL;
@@ -0,0 +1,5 @@
-- Adicionar coluna dadosDatajud
ALTER TABLE "processos" ADD COLUMN "dadosDatajud" JSONB;
-- Criar índice GIN para busca em JSON
CREATE INDEX "idx_processos_datajud" ON "processos" USING gin("dadosDatajud");
@@ -0,0 +1,12 @@
-- Adicionar novas colunas se não existirem
ALTER TABLE "processos"
ADD COLUMN IF NOT EXISTS "dataAjuizamento" TIMESTAMP,
ADD COLUMN IF NOT EXISTS "classeProcessual" VARCHAR(255),
ADD COLUMN IF NOT EXISTS "assuntos" TEXT[],
ADD COLUMN IF NOT EXISTS "nivelSigilo" INTEGER,
ADD COLUMN IF NOT EXISTS "dadosDatajud" JSONB;
-- Criar índices sem forçar
CREATE INDEX IF NOT EXISTS "idx_processos_data_ajuizamento" ON "processos"("dataAjuizamento");
CREATE INDEX IF NOT EXISTS "idx_processos_classe" ON "processos"("classeProcessual");
CREATE INDEX IF NOT EXISTS "idx_processos_datajud" ON "processos" USING gin("dadosDatajud");
@@ -0,0 +1,52 @@
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
async function main() {
await prisma.$executeRaw`
CREATE TYPE "TipoDocumento" AS ENUM ('PETICAO', 'CONTRATO', 'PROCURACAO', 'DECLARACAO', 'OUTROS');
-- Criar tabela de documentos
CREATE TABLE IF NOT EXISTS "documentos" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"nome" VARCHAR(200) NOT NULL,
"tipo" "TipoDocumento" NOT NULL,
"conteudo" TEXT NOT NULL,
"url" TEXT,
"processoId" UUID REFERENCES "processos"(id),
"atendimentoId" UUID REFERENCES "atendimentos"(id),
"anexoId" UUID UNIQUE REFERENCES "anexos"(id),
"criadoPorId" UUID NOT NULL REFERENCES "usuarios"(id),
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"atualizadoEm" TIMESTAMP(3) NOT NULL,
CONSTRAINT "documentos_pkey" PRIMARY KEY ("id")
);
-- Criar tabela de modelos de documentos
CREATE TABLE IF NOT EXISTS "documentos_modelos" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"nome" VARCHAR(200) NOT NULL,
"descricao" TEXT,
"tipo" "TipoDocumento" NOT NULL,
"conteudo" TEXT NOT NULL,
"variaveis" TEXT[] DEFAULT ARRAY[]::TEXT[],
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"atualizadoEm" TIMESTAMP(3) NOT NULL,
CONSTRAINT "documentos_modelos_pkey" PRIMARY KEY ("id")
);
-- Criar índices
CREATE INDEX "documentos_processoId_idx" ON "documentos"("processoId");
CREATE INDEX "documentos_atendimentoId_idx" ON "documentos"("atendimentoId");
`;
}
main()
.catch(e => {
console.error(e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});
Whitespace-only changes.
@@ -0,0 +1,9 @@
ALTER TABLE "processos"
ADD COLUMN IF NOT EXISTS "dataAjuizamento" TIMESTAMP,
ADD COLUMN IF NOT EXISTS "classeProcessual" VARCHAR(255),
ADD COLUMN IF NOT EXISTS "assuntos" TEXT[],
ADD COLUMN IF NOT EXISTS "nivelSigilo" INTEGER;
-- Índices para melhorar performance
CREATE INDEX IF NOT EXISTS "idx_processos_data_ajuizamento" ON "processos"("dataAjuizamento");
CREATE INDEX IF NOT EXISTS "idx_processos_classe" ON "processos"("classeProcessual");
@@ -0,0 +1,19 @@
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
async function main() {
await prisma.$executeRaw`
ALTER TABLE "configuracao_documento"
ADD COLUMN "templatePadrao" TEXT,
ADD COLUMN "margensTemplate" JSONB DEFAULT '{"top": 35, "bottom": 29, "left": 25, "right": 25}'::jsonb;
`;
}
main()
.catch(e => {
console.error(e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});
@@ -0,0 +1,22 @@
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
async function main() {
await prisma.$executeRaw`
ALTER TABLE "configuracao_documento"
ADD COLUMN "timbradoUrl" TEXT,
ADD COLUMN "timbradoMarginTop" INTEGER DEFAULT 100,
ADD COLUMN "timbradoMarginBottom" INTEGER DEFAULT 50,
ADD COLUMN "timbradoMarginLeft" INTEGER DEFAULT 50,
ADD COLUMN "timbradoMarginRight" INTEGER DEFAULT 50;
`;
}
main()
.catch(e => {
console.error(e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});
@@ -0,0 +1,41 @@
-- Passo 1: Adicionar colunas como nullable
ALTER TABLE "processos"
ADD COLUMN "tribunalUF" VARCHAR(20) NULL,
ADD COLUMN "tribunal" VARCHAR(50) NULL,
ADD COLUMN "numeroOriginal" VARCHAR(50) NULL;
-- Passo 2: Preencher dados existentes
UPDATE "processos"
SET
"tribunalUF" =
CASE
WHEN "orgaoJulgador" LIKE '%TJTO%' THEN 'TO'
WHEN "orgaoJulgador" LIKE '%TRF1%' THEN 'DF'
ELSE 'TO' -- Default para processos existentes
END,
"tribunal" =
CASE
WHEN "orgaoJulgador" LIKE '%TJTO%' THEN 'TJTO'
WHEN "orgaoJulgador" LIKE '%TRF1%' THEN 'TRF1'
ELSE 'TJTO' -- Default para processos existentes
END;
-- Passo 3: Verificar se não há valores nulos
DO $$
BEGIN
IF EXISTS (
SELECT 1 FROM "processos"
WHERE "tribunalUF" IS NULL OR "tribunal" IS NULL
) THEN
RAISE EXCEPTION 'Ainda existem registros com valores nulos';
END IF;
END $$;
-- Passo 4: Tornar colunas NOT NULL
ALTER TABLE "processos"
ALTER COLUMN "tribunalUF" SET NOT NULL,
ALTER COLUMN "tribunal" SET NOT NULL;
-- Passo 5: Criar índices
CREATE INDEX IF NOT EXISTS "idx_processos_tribunal" ON "processos"("tribunal");
CREATE INDEX IF NOT EXISTS "idx_processos_tribunalUF" ON "processos"("tribunalUF");
@@ -0,0 +1,30 @@
-- Adicionar novas colunas sem remover as antigas
ALTER TABLE "processos"
ADD COLUMN IF NOT EXISTS "tribunalUF" VARCHAR(20),
ADD COLUMN IF NOT EXISTS "tribunal" VARCHAR(50),
ADD COLUMN IF NOT EXISTS "numeroOriginal" VARCHAR(50);
-- Migrar dados existentes mantendo os dados antigos
UPDATE "processos"
SET
"tribunalUF" =
CASE
WHEN "orgaoJulgador" LIKE '%TJTO%' THEN 'TO'
WHEN "orgaoJulgador" LIKE '%TRF1%' THEN 'DF'
ELSE 'TO'
END
WHERE "tribunalUF" IS NULL;
UPDATE "processos"
SET
"tribunal" =
CASE
WHEN "orgaoJulgador" LIKE '%TJTO%' THEN 'TJTO'
WHEN "orgaoJulgador" LIKE '%TRF1%' THEN 'TRF1'
ELSE 'TJTO'
END
WHERE "tribunal" IS NULL;
-- Criar índices sem interferir nos existentes
CREATE INDEX IF NOT EXISTS "idx_processos_tribunal" ON "processos"("tribunal");
CREATE INDEX IF NOT EXISTS "idx_processos_tribunalUF" ON "processos"("tribunalUF");
@@ -0,0 +1,23 @@
-- Criar tipo temporário com todos os valores
CREATE TYPE "StatusPagamento_new" AS ENUM ('PENDENTE', 'PARCIALMENTE_PAGO', 'PAGO', 'VENCIDO', 'CANCELADO');
-- Converter a coluna antiga para a nova
ALTER TABLE "parcelas_honorario"
ALTER COLUMN status TYPE "StatusPagamento_new"
USING status::text::"StatusPagamento_new";
-- Remover o tipo antigo
DROP TYPE "StatusPagamento";
-- Renomear o novo tipo para o nome original
ALTER TYPE "StatusPagamento_new" RENAME TO "StatusPagamento";
-- Adicionar a coluna valorPago se ela não existir
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM information_schema.columns
WHERE table_name = 'parcelas_honorario'
AND column_name = 'valorpago') THEN
ALTER TABLE "parcelas_honorario" ADD COLUMN "valorPago" DECIMAL(10,2);
END IF;
END $$;
@@ -0,0 +1,23 @@
CREATE TABLE IF NOT EXISTS "Anexo" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"nome" TEXT NOT NULL,
"url" TEXT NOT NULL,
"tipo" TEXT NOT NULL,
"tamanho" INTEGER NOT NULL,
"atendimentoId" UUID,
"tarefaId" UUID,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "Anexo_pkey" PRIMARY KEY ("id")
);
-- Criar índices
CREATE INDEX IF NOT EXISTS "Anexo_atendimentoId_idx" ON "Anexo"("atendimentoId");
CREATE INDEX IF NOT EXISTS "Anexo_tarefaId_idx" ON "Anexo"("tarefaId");
-- Adicionar foreign keys
ALTER TABLE "Anexo" ADD CONSTRAINT "Anexo_atendimentoId_fkey"
FOREIGN KEY ("atendimentoId") REFERENCES "Atendimento"("id") ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE "Anexo" ADD CONSTRAINT "Anexo_tarefaId_fkey"
FOREIGN KEY ("tarefaId") REFERENCES "Tarefa"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,34 @@
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
async function main() {
await prisma.$executeRaw`
CREATE TABLE IF NOT EXISTS "configuracao_documento" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"headerImageUrl" TEXT,
"footerImageUrl" TEXT,
"logoUrl" TEXT,
"criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "configuracao_documento_pkey" PRIMARY KEY ("id")
);
`;
// Inserir configuração padrão
await prisma.configuracaoDocumento.create({
data: {
headerImageUrl: '',
footerImageUrl: '',
logoUrl: ''
}
});
}
main()
.catch(e => {
console.error(e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});
@@ -0,0 +1,9 @@
-- AlterTable
ALTER TABLE "processos"
ADD COLUMN IF NOT EXISTS "statusAtividade" VARCHAR(20) NOT NULL DEFAULT 'ATIVO';
-- AlterTable
ALTER TABLE "audiencias"
ADD COLUMN IF NOT EXISTS "relatorio" TEXT,
ADD COLUMN IF NOT EXISTS "dataFinalizacao" TIMESTAMP WITH TIME ZONE,
ALTER COLUMN "status" SET DEFAULT 'AGENDADA';
@@ -0,0 +1,2 @@
-- Forçar sincronização do estado atual
SELECT 1;
@@ -0,0 +1,16 @@
-- Primeiro, alterar as foreign keys existentes
ALTER TABLE "audiencias" DROP CONSTRAINT IF EXISTS "audiencias_processoId_fkey";
ALTER TABLE "partes_processo" DROP CONSTRAINT IF EXISTS "fk_partes_processo_processo";
-- Converter a coluna id para UUID
ALTER TABLE "processos"
ALTER COLUMN "id" TYPE UUID USING id::UUID;
-- Recriar as foreign keys
ALTER TABLE "audiencias"
ADD CONSTRAINT "audiencias_processoId_fkey"
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE;
ALTER TABLE "partes_processo"
ADD CONSTRAINT "fk_partes_processo_processo"
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE;
+13
View File
@@ -0,0 +1,13 @@
-- Criar as tabelas principais
CREATE TABLE "usuarios" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"nome" VARCHAR(255) NOT NULL,
"email" VARCHAR(255) NOT NULL UNIQUE,
"senha" VARCHAR(255) NOT NULL,
"cargo" VARCHAR(50) NOT NULL,
"dataCriacao" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "usuarios_pkey" PRIMARY KEY ("id")
);
-- ... resto da criação das tabelas conforme schema.prisma ...
@@ -0,0 +1,15 @@
-- Verificar se todos os registros têm os valores
DO $$
BEGIN
IF EXISTS (
SELECT 1 FROM "processos"
WHERE "tribunalUF" IS NULL OR "tribunal" IS NULL
) THEN
RAISE EXCEPTION 'Ainda existem registros com valores nulos';
END IF;
END $$;
-- Se passar da verificação, tornar as colunas NOT NULL
ALTER TABLE "processos"
ALTER COLUMN "tribunalUF" SET NOT NULL,
ALTER COLUMN "tribunal" SET NOT NULL;
@@ -0,0 +1,43 @@
-- Limpar migrações anteriores
DELETE FROM "_prisma_migrations"
WHERE migration_name LIKE '%add_audiencia_report%';
-- Atualizar tabela de audiências de forma segura
DO $$
BEGIN
-- Adicionar novas colunas se não existirem
BEGIN
ALTER TABLE "audiencias"
ADD COLUMN IF NOT EXISTS "relatorio" TEXT,
ADD COLUMN IF NOT EXISTS "dataFinalizacao" TIMESTAMP WITH TIME ZONE;
EXCEPTION
WHEN duplicate_column THEN
NULL;
END;
-- Atualizar tipo da coluna status
ALTER TABLE "audiencias"
ALTER COLUMN "status" TYPE VARCHAR(20);
-- Remover constraint antiga se existir
IF EXISTS (
SELECT 1
FROM information_schema.constraint_column_usage
WHERE constraint_name = 'audiencias_status_check'
) THEN
ALTER TABLE "audiencias"
DROP CONSTRAINT "audiencias_status_check";
END IF;
-- Adicionar nova constraint
ALTER TABLE "audiencias"
ADD CONSTRAINT "audiencias_status_check"
CHECK (status IN ('AGENDADA', 'REALIZADA', 'CANCELADA', 'REDESIGNADA'));
-- Atualizar registros existentes
UPDATE "audiencias"
SET status = 'AGENDADA'
WHERE status NOT IN ('AGENDADA', 'REALIZADA', 'CANCELADA', 'REDESIGNADA')
OR status IS NULL;
END $$;
@@ -0,0 +1,22 @@
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
async function main() {
await prisma.$executeRaw`
ALTER TABLE "configuracao_documento"
ADD COLUMN IF NOT EXISTS "timbradoUrl" TEXT,
ADD COLUMN IF NOT EXISTS "timbradoMarginTop" INTEGER DEFAULT 100,
ADD COLUMN IF NOT EXISTS "timbradoMarginBottom" INTEGER DEFAULT 50,
ADD COLUMN IF NOT EXISTS "timbradoMarginLeft" INTEGER DEFAULT 50,
ADD COLUMN IF NOT EXISTS "timbradoMarginRight" INTEGER DEFAULT 50;
`;
}
main()
.catch(e => {
console.error(e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});
@@ -0,0 +1,18 @@
-- Adicionando novas colunas
ALTER TABLE "processos" ADD COLUMN "tribunalUF" VARCHAR(20);
ALTER TABLE "processos" ADD COLUMN "tribunal" VARCHAR(50);
ALTER TABLE "processos" ADD COLUMN "numeroOriginal" VARCHAR(50);
-- Preenchendo dados existentes (temporário)
UPDATE "processos" SET
"tribunalUF" = 'TO',
"tribunal" = 'TJTO'
WHERE "tribunalUF" IS NULL;
-- Tornando colunas NOT NULL após migração
ALTER TABLE "processos" ALTER COLUMN "tribunalUF" SET NOT NULL;
ALTER TABLE "processos" ALTER COLUMN "tribunal" SET NOT NULL;
-- Removendo colunas antigas
ALTER TABLE "processos" DROP COLUMN "orgaoJulgador";
ALTER TABLE "processos" DROP COLUMN "orgaoOrigem";
+35
View File
@@ -0,0 +1,35 @@
DO $$
BEGIN
-- 1. Remover constraints existentes se existirem
IF EXISTS (SELECT 1 FROM information_schema.table_constraints WHERE constraint_name = 'audiencias_processoId_fkey') THEN
ALTER TABLE "audiencias" DROP CONSTRAINT "audiencias_processoId_fkey";
END IF;
IF EXISTS (SELECT 1 FROM information_schema.table_constraints WHERE constraint_name = 'fk_partes_processo_processo') THEN
ALTER TABLE "partes_processo" DROP CONSTRAINT "fk_partes_processo_processo";
END IF;
IF EXISTS (SELECT 1 FROM information_schema.table_constraints WHERE constraint_name = 'movimentacoes_processoId_fkey') THEN
ALTER TABLE "movimentacoes" DROP CONSTRAINT "movimentacoes_processoId_fkey";
END IF;
-- 2. Garantir que todas as colunas são UUID
ALTER TABLE "processos" ALTER COLUMN "id" TYPE UUID USING COALESCE("id"::UUID, gen_random_uuid());
ALTER TABLE "audiencias" ALTER COLUMN "processoId" TYPE UUID USING "processoId"::UUID;
ALTER TABLE "partes_processo" ALTER COLUMN "processoId" TYPE UUID USING "processoId"::UUID;
ALTER TABLE "movimentacoes" ALTER COLUMN "processoId" TYPE UUID USING "processoId"::UUID;
-- 3. Recriar as foreign keys
ALTER TABLE "audiencias"
ADD CONSTRAINT "audiencias_processoId_fkey"
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE;
ALTER TABLE "partes_processo"
ADD CONSTRAINT "fk_partes_processo_processo"
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE;
ALTER TABLE "movimentacoes"
ADD CONSTRAINT "movimentacoes_processoId_fkey"
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE;
END $$;
+51
View File
@@ -0,0 +1,51 @@
DO $$
BEGIN
-- 1. Remover todas as foreign keys primeiro
ALTER TABLE "documentos" DROP CONSTRAINT IF EXISTS "documentos_processoId_fkey";
ALTER TABLE "audiencias" DROP CONSTRAINT IF EXISTS "audiencias_processoId_fkey";
ALTER TABLE "partes_processo" DROP CONSTRAINT IF EXISTS "fk_partes_processo_processo";
ALTER TABLE "movimentacoes" DROP CONSTRAINT IF EXISTS "movimentacoes_processoId_fkey";
-- 2. Alterar todos os IDs e chaves estrangeiras para UUID
-- Processos
ALTER TABLE "processos"
ALTER COLUMN "id" TYPE UUID USING COALESCE("id"::UUID, gen_random_uuid());
-- Documentos
ALTER TABLE "documentos"
ALTER COLUMN "id" TYPE UUID USING COALESCE("id"::UUID, gen_random_uuid()),
ALTER COLUMN "processoId" TYPE UUID USING "processoId"::UUID;
-- Audiências
ALTER TABLE "audiencias"
ALTER COLUMN "id" TYPE UUID USING COALESCE("id"::UUID, gen_random_uuid()),
ALTER COLUMN "processoId" TYPE UUID USING "processoId"::UUID;
-- Partes do Processo
ALTER TABLE "partes_processo"
ALTER COLUMN "id" TYPE UUID USING COALESCE("id"::UUID, gen_random_uuid()),
ALTER COLUMN "processoId" TYPE UUID USING "processoId"::UUID;
-- Movimentações
ALTER TABLE "movimentacoes"
ALTER COLUMN "id" TYPE UUID USING COALESCE("id"::UUID, gen_random_uuid()),
ALTER COLUMN "processoId" TYPE UUID USING "processoId"::UUID;
-- 3. Recriar todas as foreign keys
ALTER TABLE "documentos"
ADD CONSTRAINT "documentos_processoId_fkey"
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE;
ALTER TABLE "audiencias"
ADD CONSTRAINT "audiencias_processoId_fkey"
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE;
ALTER TABLE "partes_processo"
ADD CONSTRAINT "fk_partes_processo_processo"
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE;
ALTER TABLE "movimentacoes"
ADD CONSTRAINT "movimentacoes_processoId_fkey"
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE;
END $$;
+24
View File
@@ -0,0 +1,24 @@
-- Remove todas as foreign keys primeiro
ALTER TABLE "audiencias" DROP CONSTRAINT IF EXISTS "audiencias_processoId_fkey";
ALTER TABLE "partes_processo" DROP CONSTRAINT IF EXISTS "fk_partes_processo_processo";
ALTER TABLE "movimentacoes" DROP CONSTRAINT IF EXISTS "movimentacoes_processoId_fkey";
-- Corrige o tipo das colunas de ID
ALTER TABLE "processos" ALTER COLUMN "id" TYPE UUID USING COALESCE("id"::UUID, gen_random_uuid());
ALTER TABLE "audiencias" ALTER COLUMN "id" TYPE UUID USING COALESCE("id"::UUID, gen_random_uuid());
ALTER TABLE "audiencias" ALTER COLUMN "processoId" TYPE UUID USING "processoId"::UUID;
ALTER TABLE "partes_processo" ALTER COLUMN "processoId" TYPE UUID USING "processoId"::UUID;
ALTER TABLE "movimentacoes" ALTER COLUMN "processoId" TYPE UUID USING "processoId"::UUID;
-- Recria as foreign keys
ALTER TABLE "audiencias"
ADD CONSTRAINT "audiencias_processoId_fkey"
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE;
ALTER TABLE "partes_processo"
ADD CONSTRAINT "fk_partes_processo_processo"
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE;
ALTER TABLE "movimentacoes"
ADD CONSTRAINT "movimentacoes_processoId_fkey"
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE;
@@ -0,0 +1,30 @@
-- Drop constraints first
ALTER TABLE "partes_processo"
DROP CONSTRAINT IF EXISTS "partes_processo_pkey",
DROP CONSTRAINT IF EXISTS "partes_processo_processoId_fkey",
DROP CONSTRAINT IF EXISTS "partes_processo_clienteId_fkey";
-- Fix columns and constraints
ALTER TABLE "partes_processo"
ALTER COLUMN "id" TYPE UUID USING id::UUID,
ALTER COLUMN "processoId" TYPE UUID USING "processoId"::UUID,
ALTER COLUMN "clienteId" TYPE UUID USING "clienteId"::UUID,
ALTER COLUMN "tipo" TYPE VARCHAR(20),
ALTER COLUMN "nome" TYPE VARCHAR(200),
ALTER COLUMN "cpfCnpj" TYPE VARCHAR(18),
ADD PRIMARY KEY ("id");
-- Recreate foreign keys
ALTER TABLE "partes_processo"
ADD CONSTRAINT "partes_processo_processoId_fkey"
FOREIGN KEY ("processoId")
REFERENCES "processos"("id")
ON DELETE CASCADE,
ADD CONSTRAINT "partes_processo_clienteId_fkey"
FOREIGN KEY ("clienteId")
REFERENCES "clientes"("id")
ON DELETE SET NULL;
-- Create indexes
CREATE INDEX IF NOT EXISTS "partes_processo_processoId_idx" ON "partes_processo"("processoId");
CREATE INDEX IF NOT EXISTS "partes_processo_clienteId_idx" ON "partes_processo"("clienteId");
@@ -0,0 +1,2 @@
ALTER TABLE "processos"
ALTER COLUMN "id" SET DEFAULT gen_random_uuid();
+44
View File
@@ -0,0 +1,44 @@
-- Garantir que todas as colunas de ID sejam UUID
BEGIN;
-- Remover constraints existentes para evitar conflitos
ALTER TABLE "audiencias" DROP CONSTRAINT IF EXISTS "audiencias_processoId_fkey";
ALTER TABLE "partes_processo" DROP CONSTRAINT IF EXISTS "fk_partes_processo_processo";
ALTER TABLE "diligencias" DROP CONSTRAINT IF EXISTS "diligencias_processoId_fkey";
ALTER TABLE "movimentacoes" DROP CONSTRAINT IF EXISTS "movimentacoes_processoId_fkey";
-- Converter IDs para UUID
ALTER TABLE "processos"
ALTER COLUMN "id" TYPE UUID USING id::UUID;
ALTER TABLE "audiencias"
ALTER COLUMN "id" TYPE UUID USING id::UUID,
ALTER COLUMN "processoId" TYPE UUID USING "processoId"::UUID;
ALTER TABLE "partes_processo"
ALTER COLUMN "processoId" TYPE UUID USING "processoId"::UUID;
ALTER TABLE "diligencias"
ALTER COLUMN "processoId" TYPE UUID USING "processoId"::UUID;
ALTER TABLE "movimentacoes"
ALTER COLUMN "processoId" TYPE UUID USING "processoId"::UUID;
-- Recriar as foreign keys
ALTER TABLE "audiencias"
ADD CONSTRAINT "audiencias_processoId_fkey"
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE;
ALTER TABLE "partes_processo"
ADD CONSTRAINT "fk_partes_processo_processo"
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE;
ALTER TABLE "diligencias"
ADD CONSTRAINT "diligencias_processoId_fkey"
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE;
ALTER TABLE "movimentacoes"
ADD CONSTRAINT "movimentacoes_processoId_fkey"
FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE;
COMMIT;
+3
View File
@@ -0,0 +1,3 @@
# Please do not edit this file manually
# It should be added in your version-control system (e.g., Git)
provider = "postgresql"
+29
View File
@@ -0,0 +1,29 @@
import { PrismaClient } from "@prisma/client";
import * as bcrypt from "bcryptjs";
const prisma = new PrismaClient();
async function main() {
const senhaHash = await bcrypt.hash("34641747", 10);
await prisma.usuario.upsert({
where: { email: "rodrigo@advx.com" },
update: {},
create: {
email: "rodrigo@advx.com",
nome: "Rodrigo",
senha: senhaHash,
cargo: "admin",
dataCriacao: new Date(),
},
});
}
main()
.catch((e) => {
console.error(e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});
+1069
View File
File diff suppressed because it is too large. Load diff
+46
View File
@@ -0,0 +1,46 @@
import { PrismaClient, PerfilUsuario } from "@prisma/client";
import bcrypt from "bcryptjs";
const prisma = new PrismaClient();
async function main() {
// Criar usuário admin inicial
const adminEmail = "admin@advx.com.br";
const existingAdmin = await prisma.usuario.findUnique({
where: { email: adminEmail },
});
if (existingAdmin) {
await prisma.usuario.update({
where: { email: adminEmail },
data: {
perfil: PerfilUsuario.ADVOGADO_ADMIN,
nome: "Administrador",
senha: await bcrypt.hash("admin123", 10),
ativo: true,
},
});
} else {
await prisma.usuario.create({
data: {
nome: "Administrador",
email: adminEmail,
senha: await bcrypt.hash("admin123", 10),
perfil: PerfilUsuario.ADVOGADO_ADMIN,
ativo: true,
},
});
}
console.log(`Seed concluído com sucesso!`);
}
main()
.catch((e) => {
console.error("Erro durante o seed:", e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});