134 lines
3.9 KiB
Plaintext
134 lines
3.9 KiB
Plaintext
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")
|
|
}
|