// ===== MONITORAMENTO DE PUBLICAÇÕES ===== model ProcessoMonitorado { id String @id @default(cuid()) userId String user User @relation(fields: [userId], references: [id], onDelete: Cascade) numeroProcesso String // Ex: 0001234-56.2024.8.26.0100 tribunal String // Ex: TJSP, TRF3, STJ vara String? comarca String? parteAutora String? parteRe String? status ProcessoStatus @default(ATIVO) // Dados do processo (buscados da API DataJud) classe String? assunto String? dataAjuizamento DateTime? orgaoJulgador String? grau String? valorCausa Float? ultimaAtualizacao DateTime? dadosCompletos Json? // JSON com todos os dados brutos da API createdAt DateTime @default(now()) updatedAt DateTime @updatedAt publicacoes Publicacao[] andamentos Andamento[] } model Andamento { id String @id @default(cuid()) processoId String processo ProcessoMonitorado @relation(fields: [processoId], references: [id], onDelete: Cascade) codigo Int nome String dataHora DateTime complemento String? createdAt DateTime @default(now()) @@unique([processoId, codigo, dataHora]) } model Publicacao { id String @id @default(cuid()) processoId String processo ProcessoMonitorado @relation(fields: [processoId], references: [id], onDelete: Cascade) dataPublicacao DateTime diario String // Ex: DJe, DOU, DOESP conteudo String @db.Text tipo TipoPublicacao prazoCalculado DateTime? prazoTipo String? // Ex: "15 dias úteis", "5 dias" visualizado Boolean @default(false) createdAt DateTime @default(now()) } enum ProcessoStatus { ATIVO ARQUIVADO SUSPENSO } enum TipoPublicacao { INTIMACAO CITACAO SENTENCA DESPACHO ACORDAO OUTROS }