jabajke

Untitled

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