Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # event.associations.AccountEventAssociations
- import sqlalchemy as sa
- from src.core.database import Base
- AccountEventAssociation = sa.Table(
- 'account_event_association',
- Base.metadata,
- sa.Column(
- 'account_id',
- sa.ForeignKey('accounts.id'),
- primary_key=True
- ),
- sa.Column(
- 'event_id',
- sa.ForeignKey('events.id'),
- primary_key=True
- )
- )
- # event.models.Event
- from datetime import datetime
- import sqlalchemy as sa
- from sqlalchemy.orm import relationship
- from src.core.database import Base
- from .associations import AccountEventAssociation
- class Event(Base):
- __tablename__ = 'events'
- id = sa.Column(sa.Integer, primary_key=True, index=True)
- title = sa.Column(sa.String, nullable=False)
- description = sa.Column(sa.Text, nullable=True)
- address = sa.Column(sa.String, nullable=False)
- start_time = sa.Column(sa.DateTime, nullable=False)
- end_time = sa.Column(sa.DateTime, nullable=True)
- is_closed = sa.Column(sa.Boolean, default=False, nullable=False)
- number_of_members = sa.Column(
- sa.Integer,
- nullable=False
- )
- min_age = sa.Column(
- sa.Integer,
- nullable=False
- )
- max_age = sa.Column(
- sa.Integer,
- nullable=False
- )
- type = sa.Column(sa.Enum('online', 'offline', name='type_enum'), nullable=False)
- created_at = sa.Column(sa.DateTime, default=datetime.now, nullable=False)
- updated_at = sa.Column(sa.DateTime, onupdate=datetime.now, nullable=False)
- is_active = sa.Column(sa.Boolean, default=True, nullable=False)
- accounts = relationship(
- 'Account',
- secondary=AccountEventAssociation,
- back_populates='events'
- )
- notes = sa.Column(sa.Text, nullable=True)
Advertisement
Add Comment
Please, Sign In to add comment