from enum import Enum as Enumeration from sqlalchemy import Column, ForeignKey, String from sqlalchemy.orm import relationship from services.db import Base class InviteStatus(Enumeration): PENDING = 'PENDING' ACCEPTED = 'ACCEPTED' REJECTED = 'REJECTED' class Invite(Base): __tablename__ = 'invite' inviter_id = Column(ForeignKey('author.id'), primary_key=True) author_id = Column(ForeignKey('author.id'), primary_key=True) shout_id = Column(ForeignKey('shout.id'), primary_key=True) status = Column(String, default=InviteStatus.PENDING.value) inviter = relationship('author', foreign_keys=[inviter_id]) author = relationship('author', foreign_keys=[author_id]) shout = relationship('shout')