class User(db.Model, UserMixin): """User Model""" id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(50), nullable=False) password = db.Column(db.String(50), nullable=False) shopping_list_items = db.relationship( "GroceryItem", secondary="shopping_list_table", back_populates="user_shopping_list", ) shopping_list_table = db.Table( "shopping_list_table", db.Column("grocery_item", db.Integer, db.ForeignKey("grocery_item.id")), db.Column("user", db.Integer, db.ForeignKey("user.id")), )
class GroceryItem(db.Model): """Grocery Item model.""" __tablename__ = 'groceryitem' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=False) price = db.Column(db.Float(precision=2), nullable=False) category = db.Column(db.Enum(ItemCategory), default=ItemCategory.OTHER) photo_url = db.Column(URLType) store_id = db.Column(db.Integer, db.ForeignKey('grocery_store.id'), nullable=False) store = db.relationship('GroceryStore', back_populates='items') created_by_id = db.Column(db.Integer, db.ForeignKey('user.id')) created_by = db.relationship('User') shopping_list_user = db.relationship('User', secondary='shopping_list', back_populates='shopping_list_items') def __repr__(self): return f'<Item: {self.name}>' def __str__(self): return f'<Item: {self.name}>' shopping_list_table = db.Table( 'shopping_list', db.Column('groceryitem_id', db.Integer, db.ForeignKey('groceryitem.id')), db.Column('user_id', db.Integer, db.ForeignKey('user.id')))
users_cart = db.relationship('User', secondary='shopping_cart', back_populates='cart_items') def __str__(self): return f'<Item: {self.name}>' def __repr__(self): return f'<Item: {self.name}>' class User(UserMixin, db.Model): """Grocery Store model.""" id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(50), nullable=False) password = db.Column(db.String(50), nullable=False) cart_items = db.relationship('GroceryItem', secondary='shopping_cart', back_populates='users_cart') def __str__(self): return f'{self.username}' def __repr__(self): return f'{self.username}' shopping_cart = db.Table( 'shopping_cart', db.Column('item_id', db.Integer, db.ForeignKey('grocery_item.id')), db.Column('user_id', db.Integer, db.ForeignKey('user.id')))
photo_url = db.Column(URLType) store_id = db.Column( db.Integer, db.ForeignKey('grocery_store.id'), nullable=False) store = db.relationship('GroceryStore', back_populates='items') created_by_id = db.Column(db.Integer, db.ForeignKey('user.id')) created_by = db.relationship('User') shopping_lists = db.relationship( "User", secondary="shopping_list", back_populates="shopping_list_items" ) class User(db.Model, UserMixin): """User model.""" id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(42), nullable=False) password = db.Column(db.String(80), nullable=False) shopping_list_items = db.relationship( "GroceryItem", secondary="shopping_list", back_populates="shopping_lists" ) shopping_list_table = db.Table( "shopping_list", db.Column("groceryitem_id", db.Integer, db.ForeignKey("grocery_item.id")), db.Column("user_id", db.Integer, db.ForeignKey("user.id")) )