basic invitation model with domain class

This commit is contained in:
dandds
2018-10-23 15:49:51 -04:00
parent 2a333a5f2c
commit b8fc92cd14
6 changed files with 184 additions and 0 deletions

View File

@@ -18,3 +18,4 @@ from .request_revision import RequestRevision
from .request_review import RequestReview
from .request_internal_comment import RequestInternalComment
from .audit_event import AuditEvent
from .invitation import Invitation

25
atst/models/invitation.py Normal file
View File

@@ -0,0 +1,25 @@
from sqlalchemy import Column, ForeignKey, Boolean
from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy.orm import relationship
from atst.models import Base, types
from atst.models.mixins.timestamps import TimestampsMixin
class Invitation(Base, TimestampsMixin):
__tablename__ = "invitations"
id = types.Id()
user_id = Column(UUID(as_uuid=True), ForeignKey("users.id"), index=True)
user = relationship("User", backref="invitations")
workspace_id = Column(UUID(as_uuid=True), ForeignKey("workspaces.id"), index=True)
workspace = relationship("Workspace", backref="invitations")
valid = Column(Boolean, default=True)
def __repr__(self):
return "<Invitation(user='{}', workspace='{}', id='{}')>".format(
self.user.id, self.workspace.id, self.id
)