Coverage for src/model/group_model.py : 100%
Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1from src import db
2from .content_model import ContentType
4InvitationModel = db.Table("invitations",
5 db.Column("user_id", db.Integer, db.ForeignKey(
6 "user.user_id", ondelete="CASCADE"), primary_key=True),
7 db.Column("group_id", db.Integer, db.ForeignKey(
8 "group.group_id", ondelete="CASCADE"), primary_key=True)
9 )
12class RecommendedContentForGroupModel(db.Model):
13 """
14 RecommendedContent Model for storing recommended contents for a group
15 """
16 __tablename__ = "recommended_content_for_group"
18 group_id = db.Column(db.Integer, db.ForeignKey(
19 "group.group_id", ondelete="CASCADE"), primary_key=True)
20 content_id = db.Column(db.Integer, db.ForeignKey(
21 "content.content_id", ondelete="CASCADE"), primary_key=True)
22 score = db.Column(db.Float)
23 engine = db.Column(db.String)
24 engine_priority = db.Column(db.Integer)
25 content_type = db.Column(db.Enum(ContentType))
28class GroupModel(db.Model):
29 """
30 Group Model for storing group related details
31 """
32 __tablename__ = "group"
34 group_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
35 name = db.Column(db.String(45), nullable=False)
36 owner_id = db.Column(db.Integer, db.ForeignKey(
37 "user.user_id", ondelete="CASCADE"))
39 invitations = db.relationship("UserModel", secondary=InvitationModel,
40 lazy="dynamic", backref=db.backref("invitations", lazy="dynamic"))
42 recommended_contents = db.relationship(
43 "RecommendedContentForGroupModel", lazy="subquery")