class UserModel(db.Model): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80)) password = db.Column(db.String(80)) isAdmin = db.Column(db.Boolean) def __init__(self, username, password): self.username = username self.password = password self.isAdmin = False def save_to_db(self): db.session.add(self) db.session.commit() def json(self): return { "username": self.username, "password": self.password, "isAdmin": self.isAdmin } @classmethod def find_by_username(cls, username): return cls.query.filter_by(username=username).first() @classmethod def find_by_id(cls, _id): return cls.query.filter_by(id=_id).first()
class EventModel(db.Model): __tablename__ = 'events' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=True) user = db.relationship('UserModel', uselist=False, backref='events') event = db.Column(db.String(1000)) createdOn = db.Column(db.String(90)) def __init__(self, event, createdOn): self.event = event self.createdOn = createdOn def save_to_db(self): db.session.add(self) db.session.commit() def json(self): return { "id": self.id, "event": self.event, "createdOn": self.createdOn, "user": self.user.json() } @classmethod def find_session(cls, user, createdOn): return cls.query.filter_by(user_id=user.id).filter_by( createdOn=createdOn).first() @classmethod def get_all_events(cls): return cls.query.all()
class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String, unique=False, nullable=False) ordersCount = db.Column(db.Integer, default=0) balance = db.Column(db.Integer, default=0) def toDict(self): return { "userId": self.id, "name": self.name, "ordersCount": self.ordersCount, "balance": self.balance, }
class Product(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String, unique=False, nullable=False) price = db.Column(db.Integer, unique=False, nullable=False) quantity = db.Column(db.Integer, unique=False, nullable=False) def toDict(self): return { "id": self.id, "name": self.name, "price": self.price, "quantity": self.quantity, }
class Order(db.Model): id = db.Column(db.Integer, primary_key=True) userId = db.Column(db.Integer, unique=False, nullable=True) productId = db.Column(db.Integer, unique=False, nullable=True) totalPrice = db.Column(db.Integer, unique=False, nullable=True) totalQuantity = db.Column(db.Integer, unique=False, nullable=True) status = db.Column(db.String, unique=False, nullable=False) def toDict(self): return { "id": self.id, "userId": self.userId, "productId": self.productId, "totalPrice": self.totalPrice, "totalQuantity": self.totalQuantity, "status": self.status }
class Event(db.Model): id = db.Column(db.Integer, primary_key=True) type = db.Column(db.String, unique=False, nullable=True) orderId = db.Column(db.Integer, unique=False, nullable=True) payload = db.Column(db.String, unique=False, nullable=False)