class FavFriendsSchema(ma.SQLAlchemyAutoSchema): class Meta: model = FavFriends fav_friends_id = ma.Integer(required=True) user_id = ma.Integer(required=True) friend_id = ma.Integer(required=True) user = ma.Nested(UserSchema)
class FavPizzaSchema(ma.SQLAlchemyAutoSchema): class Meta: model = FavPizza fav_pizza_id = ma.Integer(required=True) user_id = ma.Integer(required=True) pizza_id = ma.Integer(required=True) user = ma.Nested(UserSchema)
class PizzaRatingSchema(ma.SQLAlchemyAutoSchema): class Meta: model = PizzaRating rating_id = ma.Integer(required=True) pizza_id = ma.Integer(required=True) user_id = ma.Integer(required=True) user_rating = ma.Integer(required=True) user = ma.Nested(UserSchema)
class CommentsSchema(ma.SQLAlchemyAutoSchema): class Meta: model = Comments comment_id = ma.Integer(required=True) pizza_id = ma.Integer(required=True) user_id = ma.Integer(required=True) comment = ma.String(required=True) user = ma.Nested(UserSchema)
class LikesSchema(ma.SQLAlchemyAutoSchema): class Meta: model = Likes likes_id = ma.Integer(required=True) comment_id = ma.Integer(required=True) user_id = ma.Integer(required=True) likes = ma.String(required=True) user = ma.Nested(UserSchema)
class TrackSchema(ma.SQLAlchemyAutoSchema): class Meta: model = Track name = ma.String(required=True, validate=Length(min=1)) track_num = ma.Integer(required=True) disc_num = ma.Integer(required=True) duration_ms = ma.Integer(required=True) explicit = ma.Boolean(required=True) album = ma.Nested(AlbumSchema)
class PostSchema(ma.SQLAlchemyAutoSchema): class Meta: model = Post caption = ma.String() created_at = ma.DateTime() updated_at = ma.DateTime() total_likes = ma.Integer() total_dislikes = ma.Integer() total_comments = ma.Integer() user = ma.Nested(UserSchema)
class UserSchema(ma.SQLAlchemyAutoSchema): class Meta: model = User # Validation by specifying datatypes and allocating length. email = ma.Email(required=True) first_name = ma.String(required=False, validate=Length(1, 50)) Surname = ma.String(required=False, validate=Length(1, 50)) password = ma.String(required=True, validate=Length(1, 200)) Age = ma.Integer(required=False, validate=Range(0, 150)) Address = ma.String(required=False, validate=Length(1, 100)) City = ma.String(required=False, validate=Length(1, 50)) State = ma.String(required=False, validate=Length(1, 50)) Country = ma.String(required=False, validate=Length(1, 50)) Postcode = ma.Integer(required=False, validate=Range(1000, 9999))
class PageSchema(ma.SQLAlchemyAutoSchema): class Meta: model = Page page_content = ma.String(required=True, validate=Length(min=1)) book_id = ma.Integer() title = ma.String(validate=Length(min=1))
class OrderSchema(ma.SQLAlchemyAutoSchema): class Meta: model = Order order_placed = ma.Boolean() cart = ma.List(ma.Integer()) customer = ma.Nested(CustomerSchema(only=("firstname", )))
class GroupMemberSchema(ma.SQLAlchemyAutoSchema): class Meta: model = GroupMembers profile_id = ma.Integer(required=True) admin = ma.Boolean(required=True) groups = ma.Nested(GroupSchema)
class ContentSchema(ma.SQLAlchemyAutoSchema): class Meta: model = Content title = ma.String(required=True, validate=Length(min=1)) genre = ma.String() year = ma.Integer()
class MenuSchema(ma.SQLAlchemyAutoSchema): class Meta: model = Menu title = ma.String(required=True, validate=Length(max=20)) price = ma.Integer(required=False) vegetarian = ma.Boolean(required=False) portion = ma.String(required=False)
class OrderShippingSchema(ma.SQLAlchemyAutoSchema): class Meta: model = OrderShipping address = ma.String(required=True) state = ma.String(required=True) zip_code = ma.Integer(required=True) first_name = ma.String(required=True) last_name = ma.String(required=True)
class PostSchema(ma.SQLAlchemyAutoSchema): class Meta: model = Post username = ma.String(required=True, validate=Length(min=4)) content = ma.String(required=True) likes = ma.Integer(default=0, validate=Range(min=0)) last_updated = ma.DateTime(required=True, nullable=False, default=datetime.utcnow)
class MemberSchema(ma.SQLAlchemyAutoSchema): class Meta: model = Member user_id = ma.Integer(required=True, validate=Length(min=1)) league_id = ma.Integer(required=True, validate=Length(min=1))
class AdminGroupSchema(ma.Schema): group_id = ma.Integer() members = ma.Integer()
class AdminContentSchema(ma.Schema): content_id = ma.Integer() unrecommended = ma.Integer()
class AdminGroupContentSchema(ma.Schema): content_id = ma.Integer() group_count = ma.Integer()
class ItemSchema(ma.SQLAlchemyAutoSchema): class Meta: model = Item title = ma.String(required=True, validate=Length(min=1)) cost = ma.Integer(required=True)
class Meta: username = ma.String(required=True) count = ma.Integer(required=True)
class MoodSchema(ma.SQLAlchemyAutoSchema): class Meta: model = Moods amusement = ma.Integer() joy = ma.Integer() beauty = ma.Integer() relaxation = ma.Integer() sadness = ma.Integer() dreaminess = ma.Integer() triumph = ma.Integer() anxiety = ma.Integer() scariness = ma.Integer() annoyance = ma.Integer() defiance = ma.Integer() feelingpumped = ma.Integer()
class AdminUserSchema(ma.Schema): email = ma.Email() profile_count = ma.Integer()
class QuerySchema(ma.SQLAlchemyAutoSchema): class Meta: model = Query user_id = ma.Integer(required=True, validate=Length(min=1))