-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodels.py
More file actions
71 lines (56 loc) · 2.37 KB
/
models.py
File metadata and controls
71 lines (56 loc) · 2.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
from sqlalchemy import create_engine, Column, Integer, String, Boolean, Float, ForeignKey
from sqlalchemy.orm import declarative_base, relationship
from sqlalchemy_utils.types import ChoiceType
# Criar a conexão com o banco de dados SQLite
db = create_engine('sqlite:///banco.db', echo=True)
# Criar a classe base para os modelos
Base = declarative_base()
# Definir o modelo de dados para a tabela "usuarios"
class Usuario(Base):
__tablename__ = 'usuarios'
id = Column("id", Integer, primary_key=True, autoincrement=True)
nome = Column("nome", String)
email = Column("email", String, nullable=False, unique=True)
senha = Column("senha", String)
ativo = Column("ativo", Boolean)
admin = Column("admin", Boolean, default=False)
def __init__(self, nome, email, senha, ativo=False, admin=False):
self.nome = nome
self.email = email
self.senha = senha
self.ativo = ativo
self.admin = admin
# Pedido
class Pedido(Base):
__tablename__ = 'pedidos'
# STATUS_PEDIDOS = (
# ('PENDENTE', 'Pendente'),
# ('CANCELADO', 'Cancelado'),
# ('FINALIZADO', 'Finalizado')
# )
id = Column("id", Integer, primary_key=True, autoincrement=True)
status = Column("status", String) #ChoiceType(STATUS_PEDIDOS))
usuario_id = Column("usuario_id", Integer, ForeignKey('usuarios.id'))
preco = Column("preco", Float)
itens = relationship("ItemPedido", cascade="all, delete")
def __init__(self, usuario_id, status="PENDENTE", preco=0):
self.usuario_id = usuario_id
self.status = status
self.preco = preco
def calcular_preco(self):
self.preco = sum(item.preco_unitario * item.quantidade for item in self.itens)
# Itens do Pedido
class ItemPedido(Base):
__tablename__ = 'itens_pedido'
id = Column("id", Integer, primary_key=True, autoincrement=True)
pedido_id = Column("pedido_id", Integer, ForeignKey('pedidos.id'))
quantidade = Column("quantidade", Integer)
sabor = Column("sabor", String)
tamanho = Column("tamanho", String)
preco_unitario = Column("preco_unitario", Float)
def __init__(self, pedido_id, quantidade, sabor, tamanho, preco_unitario):
self.pedido_id = pedido_id
self.quantidade = quantidade
self.sabor = sabor
self.tamanho = tamanho
self.preco_unitario = preco_unitario