class Category(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) categoryname = db.Column(db.String(100), nullable=False) items = db.relationship('Item', backref='type', lazy=True) def __repr__(self): return f"Category('{self.categoryname}')"
class Ordereditem(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) order_id = db.Column(db.Integer, db.ForeignKey('order.id'), nullable=False) item_id = db.Column(db.Integer, db.ForeignKey('item.id'), nullable=False) quantity = db.Column(db.Integer, nullable=False) def __repr__(self): return f"Ordereditem('{self.orderid}','{self.productid}','{self.quantity}')"
class Order(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) total_price = db.Column(db.Integer, nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) item_id = db.Column(db.Integer, db.ForeignKey('item.id'), nullable=False) def __repr__(self): return f"Order('{self.order_date}','{self.total_price}','{self.userid}'')"
class Cart(db.Model): item_id = db.Column(db.String, db.ForeignKey('item.name'), nullable=False, primary_key=True) user_id = db.Column(db.String, db.ForeignKey('user.username'), nullable=False, primary_key=True) quantity = db.Column(db.Integer, nullable=False) item = db.relationship(Item) user = db.relationship(User) def __repr__(self): return f"Cart('{self.user_id}','{self.item_id}','{self.quantity}')"
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True, autoincrement=True) username = db.Column(db.String(40), unique=True, nullable=False) email = db.Column(db.String(200), unique=True, nullable=False) password = db.Column(db.String(60), nullable=False) is_admin = db.Column(db.Boolean, default=False) address = db.Column(db.String(100), nullable=True) post_code = db.Column(db.String(100), nullable=True) county = db.Column(db.String(100), nullable=True) ward = db.Column(db.String(100), nullable=True) tell = db.Column(db.String(100), nullable=True) orders = db.relationship('Order', backref='consumer', lazy=True) carts = db.relationship('Order', backref='shopper', lazy=True) def __repr__(self): return f"User('{self.username}','{self.email}','{self.address}','{self.tell}','{self.post_code}','{self.county}', '{self.ward}')"
class Item(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) item_pic1 = db.Column(db.String(80), nullable=False) item_pic2 = db.Column(db.String(80), nullable=False) item_pic3 = db.Column(db.String(80), nullable=False) name = db.Column(db.String(200), nullable=False) description = db.Column(db.Text, nullable=False) price = db.Column(db.Integer, nullable=False) orders = db.relationship('Order', backref='buying', lazy=True) Ordereditems = db.relationship('Ordereditem', backref='paid_goods', lazy=True) carts = db.relationship('Cart', backref='product', lazy=True) category_id = db.Column(db.Integer, db.ForeignKey('category.id'), nullable=True) def __repr__(self): return f"Item('{self.item_pic1}', '{self.item_pic2}', '{self.item_pic3}', '{self.name}','{self.description}','{self.price}')"