feat: sistema GastroBar PDV completo
- Backend: Fastify + Prisma/SQLite com autenticacao JWT - CRUD completo: usuarios, categorias, produtos, comandas - Sistema de comandas com itens, status, pagamento - Controle de estoque (entrada/saida automatica) - Relatorios e dashboard com KPIs - Notificacoes sonoras na cozinha - Frontend: SPA vanilla TS com tema dark glassmorphism - Mobile-first com bottom-sheet e cards compactos - Busca de comandas por periodo - Modal de detalhes com secao editavel colapsavel
This commit is contained in:
69
prisma/schema.prisma
Normal file
69
prisma/schema.prisma
Normal file
@@ -0,0 +1,69 @@
|
||||
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())
|
||||
}
|
||||
|
||||
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)
|
||||
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?
|
||||
itens ItemPedido[]
|
||||
}
|
||||
|
||||
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])
|
||||
criadoEm DateTime @default(now())
|
||||
}
|
||||
Reference in New Issue
Block a user