Hide keyboard shortcuts

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 

3 

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 ) 

10 

11 

12class RecommendedContentForGroupModel(db.Model): 

13 """ 

14 RecommendedContent Model for storing recommended contents for a group 

15 """ 

16 __tablename__ = "recommended_content_for_group" 

17 

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)) 

26 

27 

28class GroupModel(db.Model): 

29 """ 

30 Group Model for storing group related details 

31 """ 

32 __tablename__ = "group" 

33 

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")) 

38 

39 invitations = db.relationship("UserModel", secondary=InvitationModel, 

40 lazy="dynamic", backref=db.backref("invitations", lazy="dynamic")) 

41 

42 recommended_contents = db.relationship( 

43 "RecommendedContentForGroupModel", lazy="subquery")