generator client { provider = "prisma-client-js" } datasource db { provider = "postgresql" url = env("DATABASE_URL") } enum Role { ADMIN OPERADOR } enum StatusAvaliacao { RASCUNHO EM_ANALISE APROVADA REPROVADA } enum NivelRisco { BAIXO MEDIO ALTO CRITICO } model User { id Int @id @default(autoincrement()) email String @unique password String nome String role Role @default(OPERADOR) ativo Boolean @default(true) createdAt DateTime @default(now()) @map("created_at") updatedAt DateTime @updatedAt @map("updated_at") avaliacoes Avaliacao[] documentos Documento[] @@map("users") } model Empresa { id Int @id @default(autoincrement()) razaoSocial String @map("razao_social") nomeFantasia String? @map("nome_fantasia") cnpj String @unique inscricaoEstadual String? @map("inscricao_estadual") atividadeAgricola String? @map("atividade_agricola") endereco String? cidade String? estado String? cep String? telefone String? email String? responsavel String? ativo Boolean @default(true) createdAt DateTime @default(now()) @map("created_at") updatedAt DateTime @updatedAt @map("updated_at") propriedades Propriedade[] @@map("empresas") } model Propriedade { id Int @id @default(autoincrement()) nome String empresaId Int @map("empresa_id") codigoCar String? @map("codigo_car") areaHa Float? @map("area_ha") latitude Float? longitude Float? bioma String? endereco String? cidade String? estado String? nivelRisco NivelRisco @default(BAIXO) @map("nivel_risco") flagDesmatamento String? @map("flag_desmatamento") geojson String? @db.Text ativo Boolean @default(true) createdAt DateTime @default(now()) @map("created_at") updatedAt DateTime @updatedAt @map("updated_at") empresa Empresa @relation(fields: [empresaId], references: [id], onDelete: Cascade) avaliacoes Avaliacao[] documentos Documento[] @@map("propriedades") } model Avaliacao { id Int @id @default(autoincrement()) propriedadeId Int @map("propriedade_id") userId Int @map("user_id") referencia String @unique status StatusAvaliacao @default(RASCUNHO) nivelRisco NivelRisco @default(BAIXO) @map("nivel_risco") dataAvaliacao DateTime? @map("data_avaliacao") dataSubmissao DateTime? @map("data_submissao") observacoes String? @db.Text resultadoDds String? @map("resultado_dds") @db.Text referenciaEu String? @map("referencia_eu") createdAt DateTime @default(now()) @map("created_at") updatedAt DateTime @updatedAt @map("updated_at") propriedade Propriedade @relation(fields: [propriedadeId], references: [id], onDelete: Cascade) user User @relation(fields: [userId], references: [id]) documentos Documento[] @@map("avaliacoes") } model Documento { id Int @id @default(autoincrement()) nome String tipo String? tamanho Int? mimeType String? @map("mime_type") path String propriedadeId Int? @map("propriedade_id") avaliacaoId Int? @map("avaliacao_id") userId Int @map("user_id") createdAt DateTime @default(now()) @map("created_at") propriedade Propriedade? @relation(fields: [propriedadeId], references: [id], onDelete: Cascade) avaliacao Avaliacao? @relation(fields: [avaliacaoId], references: [id], onDelete: Cascade) user User @relation(fields: [userId], references: [id]) @@map("documentos") }