jabajke

Untitled

May 10th, 2023 (edited)
18
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. # ---------------------------------------------------------------------
  2. class AccountEventAssociation(Base):
  3. __tablename__ = 'account_event_association'
  4.  
  5. account_id = sa.Column(
  6. sa.Integer,
  7. sa.ForeignKey('accounts.id'),
  8. primary_key=True
  9. )
  10. event_id = sa.Column(
  11. sa.Integer,
  12. sa.ForeignKey('events.id'),
  13. primary_key=True
  14. )
  15. # -----------------------------------------------------------------------
  16. class Event(Base):
  17. __tablename__ = 'events'
  18.  
  19. id = sa.Column(sa.Integer, primary_key=True, index=True)
  20. title = sa.Column(sa.String, nullable=False)
  21. description = sa.Column(sa.Text, nullable=True)
  22. address = sa.Column(sa.String, nullable=False)
  23. start_time = sa.Column(sa.DateTime, nullable=False)
  24. end_time = sa.Column(sa.DateTime, nullable=True)
  25. is_closed = sa.Column(sa.Boolean, default=False, nullable=False)
  26. number_of_members = sa.Column(
  27. sa.Integer,
  28. nullable=False
  29. )
  30. min_age = sa.Column(
  31. sa.Integer,
  32. nullable=False
  33. )
  34. max_age = sa.Column(
  35. sa.Integer,
  36. nullable=False
  37. )
  38. type = sa.Column(sa.Enum('online', 'offline', name='type_enum'), nullable=False)
  39. created_at = sa.Column(sa.DateTime, default=datetime.now, nullable=False)
  40. updated_at = sa.Column(sa.DateTime, onupdate=datetime.now, nullable=False)
  41. is_active = sa.Column(sa.Boolean, default=True, nullable=False)
  42.  
  43. account = relationship(
  44. 'Account'
  45. secondary=AccountEventAssociation,
  46. back_populates='events'
  47. )
  48.  
  49. notes = sa.Column(sa.Text, nullable=True)
  50. # ------------------------------------------------------------------------------
  51.  
  52. class Account(Base):
  53. __tablename__ = 'accounts'
  54.  
  55. id = sa.Column(sa.Integer, primary_key=True, index=True)
  56. rating = sa.Column(
  57. sa.Numeric(3, 2),
  58. default=1,
  59. nullable=False
  60. ) # There is also constraint, that checks 1 <= rating <= 5
  61. username = sa.Column(sa.String, unique=True, nullable=False)
  62.  
  63. photo = sa.Column(sa.String, unique=True, nullable=True)
  64. user_id = sa.Column(sa.Integer, sa.ForeignKey('users.id'))
  65. event = relationship(
  66. 'Account'
  67. secondary=AccountEventAssociation,
  68. back_populates='accounts',
  69. )
  70.  
  71.  
Advertisement
Add Comment
Please, Sign In to add comment