Enviar arquivos para "/"
This commit is contained in:
64
schema.prisma
Normal file
64
schema.prisma
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
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)
|
||||||
|
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())
|
||||||
|
}
|
||||||
34
seed.ts
Normal file
34
seed.ts
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
import { PrismaClient } from '@prisma/client';
|
||||||
|
import bcrypt from 'bcrypt';
|
||||||
|
|
||||||
|
const prisma = new PrismaClient();
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
console.log('Iniciando o seed...');
|
||||||
|
|
||||||
|
const passwordHash = await bcrypt.hash('123456', 10);
|
||||||
|
|
||||||
|
const admin = await prisma.usuario.upsert({
|
||||||
|
where: { email: 'admin@gastrobar.com' },
|
||||||
|
update: {},
|
||||||
|
create: {
|
||||||
|
nome: 'Administrador',
|
||||||
|
email: 'admin@gastrobar.com',
|
||||||
|
senha: passwordHash,
|
||||||
|
role: 'ADMIN',
|
||||||
|
ativo: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log('Usuário admin criado:', admin.email);
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
.then(async () => {
|
||||||
|
await prisma.$disconnect();
|
||||||
|
})
|
||||||
|
.catch(async (e) => {
|
||||||
|
console.error(e);
|
||||||
|
await prisma.$disconnect();
|
||||||
|
process.exit(1);
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user