-- Migration para adicionar tabela de operações de PDF -- Created: 2026-02-27 -- Criar ENUM para tipo de operação CREATE TYPE "TipoOperacaoPDF" AS ENUM ('COMPRIMIR', 'DIVIDIR', 'MESCLAR', 'PDF_PARA_IMAGEM', 'IMAGEM_PARA_PDF', 'OCR'); -- Criar ENUM para status da operação CREATE TYPE "StatusOperacaoPDF" AS ENUM ('PROCESSANDO', 'CONCLUIDO', 'ERRO'); -- Criar tabela de operações de PDF CREATE TABLE "operacoes_pdf" ( "id" UUID NOT NULL DEFAULT gen_random_uuid(), "tipoOperacao" "TipoOperacaoPDF" NOT NULL, "status" "StatusOperacaoPDF" NOT NULL DEFAULT 'PROCESSANDO', "usuarioId" UUID NOT NULL, "arquivosOriginais" TEXT[] NOT NULL, "arquivosResultado" TEXT[] NOT NULL, "tamanhoOriginal" BIGINT NOT NULL, "tamanhoResultado" BIGINT, "parametros" JSONB, "mensagemErro" TEXT, "detalhesOCR" JSONB, "tempoProcessamento" INTEGER, "criadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "atualizadoEm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "operacoes_pdf_pkey" PRIMARY KEY ("id") ); -- Adicionar foreign key para usuarios ALTER TABLE "operacoes_pdf" ADD CONSTRAINT "operacoes_pdf_usuarioId_fkey" FOREIGN KEY ("usuarioId") REFERENCES "usuarios"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- Criar índice para melhor performance nas consultas CREATE INDEX "operacoes_pdf_usuarioId_idx" ON "operacoes_pdf"("usuarioId"); CREATE INDEX "operacoes_pdf_criadoEm_idx" ON "operacoes_pdf"("criadoEm" DESC); CREATE INDEX "operacoes_pdf_status_idx" ON "operacoes_pdf"("status");