DuOrigin v2 - React + NestJS + Prisma + EUDR API Integration
This commit is contained in:
133
backend/prisma/schema.prisma
Normal file
133
backend/prisma/schema.prisma
Normal file
@@ -0,0 +1,133 @@
|
||||
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")
|
||||
}
|
||||
Reference in New Issue
Block a user