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

+275
View File
@@ -0,0 +1,275 @@
// ...existing code...
// Modelos para o sistema de cálculo judicial
model CalculoJudicial {
id String @id @default(uuid())
titulo String
descricao String?
dataBase DateTime
dataCalculo DateTime @default(now())
valorBase Decimal @db.Decimal(15, 2)
valorCorrigido Decimal @db.Decimal(15, 2)
valorFinal Decimal @db.Decimal(15, 2)
status String @default("RASCUNHO") // RASCUNHO, FINALIZADO, ARQUIVADO
usuarioId String?
processoId String?
clienteId String?
// Relações
usuario Usuario? @relation(fields: [usuarioId], references: [id])
processo Processo? @relation(fields: [processoId], references: [id])
cliente Cliente? @relation(fields: [clienteId], references: [id])
// Componentes do cálculo
correcoes CorrecaoMonetaria[]
juros JuroCalculo[]
multas MultaCalculo[]
honorarios HonorarioCalculo[]
parcelas ParcelaCalculo[]
descontos DescontoCalculo[]
pensaoAlimenticia PensaoAlimenticia?
// Metadados
configuracoes Json?
historico HistoricoCalculo[]
exportacoes ExportacaoCalculo[]
criadoEm DateTime @default(now())
atualizadoEm DateTime @updatedAt
@@map("calculosjudiciais")
}
model CorrecaoMonetaria {
id String @id @default(uuid())
calculoId String
indice String // INPC, IPCA-E, TR, SELIC etc.
dataInicial DateTime
dataFinal DateTime?
valorOriginal Decimal @db.Decimal(15, 2)
valorCorrigido Decimal @db.Decimal(15, 2)
fatorCorrecao Decimal @db.Decimal(15, 6)
calculo CalculoJudicial @relation(fields: [calculoId], references: [id], onDelete: Cascade)
criadoEm DateTime @default(now())
atualizadoEm DateTime @updatedAt
@@map("correcoes_monetarias")
}
model JuroCalculo {
id String @id @default(uuid())
calculoId String
tipo String // SIMPLES, COMPOSTO
taxa Decimal @db.Decimal(8, 6) // Taxa percentual (ex: 0.01 para 1%)
periodicidade String // MENSAL, ANUAL, DIARIO
natureza String // MORATORIO, COMPENSATORIO, CONVENCIONAL, LEGAL
dataInicial DateTime
dataFinal DateTime?
valorBase Decimal @db.Decimal(15, 2)
valorJuros Decimal @db.Decimal(15, 2)
calculo CalculoJudicial @relation(fields: [calculoId], references: [id], onDelete: Cascade)
criadoEm DateTime @default(now())
atualizadoEm DateTime @updatedAt
@@map("juros_calculos")
}
model MultaCalculo {
id String @id @default(uuid())
calculoId String
tipo String // CONTRATUAL, LEGAL
percentual Decimal @db.Decimal(8, 6)
valorBase Decimal @db.Decimal(15, 2)
valorMulta Decimal @db.Decimal(15, 2)
fundamento String? // Artigo de lei ou cláusula contratual
calculo CalculoJudicial @relation(fields: [calculoId], references: [id], onDelete: Cascade)
criadoEm DateTime @default(now())
atualizadoEm DateTime @updatedAt
@@map("multas_calculos")
}
model HonorarioCalculo {
id String @id @default(uuid())
calculoId String
tipo String // CONTRATUAL, SUCUMBENCIAL, EXECUCAO
percentual Decimal @db.Decimal(8, 6)
valorBase Decimal @db.Decimal(15, 2)
valorHonorario Decimal @db.Decimal(15, 2)
fundamento String? // Fundamentação legal ou contratual
calculo CalculoJudicial @relation(fields: [calculoId], references: [id], onDelete: Cascade)
criadoEm DateTime @default(now())
atualizadoEm DateTime @updatedAt
@@map("honorarios_calculos")
}
model ParcelaCalculo {
id String @id @default(uuid())
calculoId String
numero Int
dataVencimento DateTime
valorOriginal Decimal @db.Decimal(15, 2)
valorCorrigido Decimal @db.Decimal(15, 2)
valorJuros Decimal @db.Decimal(15, 2)
valorMulta Decimal @db.Decimal(15, 2)
valorTotal Decimal @db.Decimal(15, 2)
pago Boolean @default(false)
dataPagamento DateTime?
calculo CalculoJudicial @relation(fields: [calculoId], references: [id], onDelete: Cascade)
criadoEm DateTime @default(now())
atualizadoEm DateTime @updatedAt
@@map("parcelas_calculos")
}
model DescontoCalculo {
id String @id @default(uuid())
calculoId String
tipo String // INSS, IRRF, CUSTAS, OUTRO
descricao String?
percentual Decimal? @db.Decimal(8, 6)
valorFixo Decimal? @db.Decimal(15, 2)
valorBase Decimal @db.Decimal(15, 2)
valorDesconto Decimal @db.Decimal(15, 2)
calculo CalculoJudicial @relation(fields: [calculoId], references: [id], onDelete: Cascade)
criadoEm DateTime @default(now())
atualizadoEm DateTime @updatedAt
@@map("descontos_calculos")
}
model HistoricoCalculo {
id String @id @default(uuid())
calculoId String
usuarioId String?
acao String // CRIACAO, ATUALIZACAO, RECALCULO, EXCLUSAO
descricao String
valorAnterior Decimal? @db.Decimal(15, 2)
valorNovo Decimal? @db.Decimal(15, 2)
metadados Json?
calculo CalculoJudicial @relation(fields: [calculoId], references: [id], onDelete: Cascade)
usuario Usuario? @relation(fields: [usuarioId], references: [id])
criadoEm DateTime @default(now())
@@map("historicos_calculos")
}
model ExportacaoCalculo {
id String @id @default(uuid())
calculoId String
usuarioId String?
tipo String // PDF, EXCEL, WORD
arquivo String // Caminho do arquivo gerado
calculo CalculoJudicial @relation(fields: [calculoId], references: [id], onDelete: Cascade)
usuario Usuario? @relation(fields: [usuarioId], references: [id])
criadoEm DateTime @default(now())
@@map("exportacoes_calculos")
}
model IndiceMonetario {
id String @id @default(uuid())
nome String // INPC, IPCA-E, TR, SELIC etc.
mesReferencia Int // 1-12 (representando os meses do ano)
anoReferencia Int
valor Decimal @db.Decimal(15, 6)
dataPublicacao DateTime?
fonte String? // IBGE, BACEN, etc.
criadoEm DateTime @default(now())
atualizadoEm DateTime @updatedAt
@@unique([nome, mesReferencia, anoReferencia])
@@map("indices_monetarios")
}
model PensaoAlimenticia {
id String @id @default(uuid())
calculoId String @unique
percentualSalarioMinimo Decimal @db.Decimal(8, 6)
multaPactuada Decimal? @db.Decimal(8, 6)
tipoAtualizacao String @default("INPC") // Tipo de índice para atualização monetária
dataInicial DateTime
dataFinal DateTime?
observacoes String?
calculo CalculoJudicial @relation(fields: [calculoId], references: [id], onDelete: Cascade)
historicoSalarios HistoricoSalarioMinimo[]
parcelasPensao ParcelaPensao[]
criadoEm DateTime @default(now())
atualizadoEm DateTime @updatedAt
@@map("pensoes_alimenticias")
}
model HistoricoSalarioMinimo {
id String @id @default(uuid())
pensaoId String
dataVigencia DateTime
valor Decimal @db.Decimal(15, 2)
pensao PensaoAlimenticia @relation(fields: [pensaoId], references: [id], onDelete: Cascade)
criadoEm DateTime @default(now())
atualizadoEm DateTime @updatedAt
@@map("historico_salario_minimo")
}
model ParcelaPensao {
id String @id @default(uuid())
pensaoId String
competencia DateTime // Mês/ano a que se refere a parcela
valorSalarioMinimo Decimal @db.Decimal(15, 2)
percentual Decimal @db.Decimal(8, 6)
valorOriginal Decimal @db.Decimal(15, 2)
valorCorrigido Decimal @db.Decimal(15, 2)
valorJuros Decimal @db.Decimal(15, 2)
valorMulta Decimal @db.Decimal(15, 2)
valorTotal Decimal @db.Decimal(15, 2)
pago Boolean @default(false)
dataPagamento DateTime?
pensao PensaoAlimenticia @relation(fields: [pensaoId], references: [id], onDelete: Cascade)
criadoEm DateTime @default(now())
atualizadoEm DateTime @updatedAt
@@map("parcelas_pensao")
}
// Atualizar relações existentes
model Usuario {
// ...existing code...
calculos CalculoJudicial[]
historicoCalculos HistoricoCalculo[]
exportacoes ExportacaoCalculo[]
}
model Processo {
// ...existing code...
calculos CalculoJudicial[]
}
model Cliente {
// ...existing code...
calculos CalculoJudicial[]
}