class DrugItem(db.Model): id = db.Column(db.Integer, primary_key=True) druginfo_id = db.Column(db.Integer, db.ForeignKey("druginfo.id")) pharmacy_id = db.Column(db.Integer, db.ForeignKey("pharmacy.id")) price = db.Column(db.Float) quantity = db.Column(db.Integer) order_items = db.relationship("OrderItem", backref="drugitem", lazy=True) pharmacies = db.relationship("Pharmacy", backref=db.backref("drug_item", lazy="joined")) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) def __repr__(self): return f"<DrugItem id: {self.id}, druginfo id: {self.druginfo_id}, pharmacy id: {self.pharmacy_id}, price: {self.price}, quantity: {self.quantity}>"
class OrderItem(db.Model): id = db.Column(db.Integer, primary_key=True) drugitem_id = db.Column(db.Integer, db.ForeignKey("drug_item.id"), nullable=False) quantity = db.Column(db.Integer) order_id = db.Column(db.Integer, db.ForeignKey("order.id"), nullable=False) drug_item = db.relationship("DrugItem", backref="orderitem", lazy=True) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) def __repr__(self): return f"<OrderItem id: {self.id}, drugitem id: {self.drugitem_id}, quantity: {self.quantity}, order id: {self.order_id}>"
class Client(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(140)) # not null surname = db.Column(db.String(140)) # not null email = db.Column(db.String(140)) # not null phone = db.Column(db.Integer) address = db.Column(db.String(140)) # not null if delivery orders = db.relationship("Order", backref="client", lazy=True) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) def __repr__(self): return f"<Pharmacy id: {self.id}, name: {self.name}, surname: {self.surname}, email: {self.adress}, phone: {self.phone}, address: {self.address}>"
class Druginfo(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(140)) size = db.Column(db.Integer) form = db.Column(db.String) power = db.Column(db.Float) unit = db.Column(db.String) prescription = db.Column(db.Boolean) refundation = db.Column(db.Integer) drugitems = db.relationship("DrugItem", backref=db.backref("druginfo", lazy="joined")) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) def __repr__(self): return f"<Drug id: {self.id}, name: {self.name}, size: {self.size}, power: {self.power}, prescription: {self.prescription}, refundation: {self.refundation}>"
class Order(db.Model): id = db.Column(db.Integer, primary_key=True) client_id = db.Column(db.Integer, db.ForeignKey("client.id"), nullable=False) date_ordered = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) confirmation_send = db.Column(db.Boolean, nullable=False, default=0) expired = db.Column(db.Boolean, nullable=False, default=0) # orders_ids one to many relationship orders_items = db.relationship("OrderItem", backref=db.backref("order", lazy="joined")) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) def __repr__(self): return f"<Order id: {self.id}, client_id: {self.client_id}, date ordered: {self.date_ordered}, confirmation send: {self.confirmation_send}, expired: {self.expired}, orders items: {self.orders_items}>"