Files
advx/prisma/migrations/[timestamp]_add_documentos_tables.ts
T
rodrigo 5acec6b71e Lint errors
Signed-off-by: Rodrigo Martins <rodrigo.sousa.577@gmail.com>
2025-04-12 20:32:39 -03:00

53 lines
1.7 KiB
TypeScript

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();
});