89 lines
2.8 KiB
Plaintext
89 lines
2.8 KiB
Plaintext
datasource db {
|
|
provider = "sqlite"
|
|
url = "file:./dev.db"
|
|
}
|
|
|
|
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
model Usuario {
|
|
id String @id @default(uuid())
|
|
nome String
|
|
email String @unique
|
|
senha String
|
|
role String @default("GARCOM") // ADMIN, CAIXA, GARCOM, COZINHA, BARMAN
|
|
ativo Boolean @default(true)
|
|
criadoEm DateTime @default(now())
|
|
comandas Comanda[]
|
|
itensPedido ItemPedido[]
|
|
}
|
|
|
|
model Categoria {
|
|
id String @id @default(uuid())
|
|
nome String
|
|
produtos Produto[]
|
|
}
|
|
|
|
model Produto {
|
|
id String @id @default(uuid())
|
|
nome String
|
|
descricao String?
|
|
fotoUrl String?
|
|
preco Float
|
|
custo Float?
|
|
estoqueAtual Int @default(0)
|
|
estoqueMinimo Int @default(0)
|
|
itemCozinha Boolean
|
|
ativo Boolean @default(true)
|
|
categoriaId String
|
|
categoria Categoria @relation(fields: [categoriaId], references: [id])
|
|
itensPedido ItemPedido[]
|
|
}
|
|
|
|
model Comanda {
|
|
id String @id @default(uuid())
|
|
identificador String
|
|
nomeCliente String?
|
|
status String @default("ABERTA") // ABERTA, FECHADA, PAGA, CANCELADA
|
|
total Float @default(0.0)
|
|
valorPago Float @default(0.0)
|
|
desconto Float @default(0.0)
|
|
acrescimo Float @default(0.0)
|
|
taxaServico Boolean @default(false)
|
|
formaPagamento String? // DINHEIRO, CARTAO_CREDITO, CARTAO_DEBITO, PIX
|
|
motivoCancelamento String?
|
|
criadoEm DateTime @default(now())
|
|
fechadoEm DateTime?
|
|
usuarioId String?
|
|
usuario Usuario? @relation(fields: [usuarioId], references: [id])
|
|
itens ItemPedido[]
|
|
pagamentos Pagamento[]
|
|
}
|
|
|
|
model ItemPedido {
|
|
id String @id @default(uuid())
|
|
quantidade Int
|
|
precoUnitario Float
|
|
observacao String?
|
|
status String @default("PENDENTE") // PENDENTE, PREPARANDO, PRONTO, ENTREGUE
|
|
produtoId String
|
|
produto Produto @relation(fields: [produtoId], references: [id])
|
|
comandaId String
|
|
comanda Comanda @relation(fields: [comandaId], references: [id])
|
|
usuarioId String?
|
|
usuario Usuario? @relation(fields: [usuarioId], references: [id])
|
|
criadoEm DateTime @default(now())
|
|
}
|
|
|
|
model Pagamento {
|
|
id String @id @default(uuid())
|
|
comandaId String
|
|
comanda Comanda @relation(fields: [comandaId], references: [id])
|
|
valor Float
|
|
formaPagamento String // DINHEIRO, CARTAO_CREDITO, CARTAO_DEBITO, PIX
|
|
observacao String?
|
|
estornado Boolean @default(false)
|
|
criadoEm DateTime @default(now())
|
|
}
|