init: Initial commit
This commit is contained in:
19
models/channel.py
Normal file
19
models/channel.py
Normal file
@@ -0,0 +1,19 @@
|
||||
from sqlalchemy import Column, String, DateTime, UUID, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from uuid import uuid4
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
from models.base import Base
|
||||
|
||||
class Channel(Base):
|
||||
__tablename__ = "channels"
|
||||
id = Column(UUID, primary_key=True, default=uuid4)
|
||||
name = Column(String)
|
||||
microsoft_channel_id = Column(UUID, nullable=False, unique=True)
|
||||
team_id = Column(UUID, ForeignKey("teams.id"), nullable=False)
|
||||
created_at = Column(DateTime, default=datetime.now)
|
||||
updated_at = Column(DateTime, default=datetime.now)
|
||||
|
||||
team = relationship("Team", back_populates="channels")
|
||||
webhooks = relationship("Webhook", back_populates="channel", cascade="all, delete-orphan")
|
||||
17
models/service.py
Normal file
17
models/service.py
Normal file
@@ -0,0 +1,17 @@
|
||||
from sqlalchemy import Column, String, DateTime, UUID, ForeignKey, Boolean
|
||||
from sqlalchemy.orm import relationship
|
||||
from uuid import uuid4
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
from models.base import Base
|
||||
|
||||
class Service(Base):
|
||||
__tablename__ = "services"
|
||||
id = Column(UUID, primary_key=True, default=uuid4)
|
||||
name = Column(String)
|
||||
important = Column(Boolean, default=False)
|
||||
created_at = Column(DateTime, default=datetime.now)
|
||||
updated_at = Column(DateTime, default=datetime.now)
|
||||
|
||||
webhooks = relationship("Webhook", back_populates="service", cascade="all, delete-orphan")
|
||||
@@ -1,14 +1,17 @@
|
||||
from sqlalchemy import Column, String, DateTime, UUID
|
||||
from sqlalchemy import Column, String, DateTime, UUID
|
||||
from sqlalchemy.orm import relationship
|
||||
from uuid import uuid4
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
from models.base import Base
|
||||
|
||||
class Team(Base):
|
||||
__tablename__ = "teams"
|
||||
id = Column(UUID, primary_key=True, default=uuid4)
|
||||
name = Column(String)
|
||||
microsoft_team_id = Column(UUID)
|
||||
created_at = Column(DateTime)
|
||||
updated_at = Column(DateTime)
|
||||
webhooks = relationship("Webhook", back_populates="team", cascade="all, delete-orphan")
|
||||
microsoft_team_id = Column(UUID, nullable=False, unique=True)
|
||||
created_at = Column(DateTime, default=datetime.now)
|
||||
updated_at = Column(DateTime, default=datetime.now)
|
||||
|
||||
channels = relationship("Channel", back_populates="team", cascade="all, delete-orphan")
|
||||
@@ -2,14 +2,18 @@ from sqlalchemy import Column, String, DateTime, UUID, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from uuid import uuid4
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
from models.base import Base
|
||||
|
||||
class Webhook(Base):
|
||||
__tablename__ = "webhooks"
|
||||
id = Column(UUID, primary_key=True, default=uuid4)
|
||||
url = Column(String)
|
||||
secret = Column(String)
|
||||
team_id = Column(UUID, ForeignKey("teams.id"), nullable=False)
|
||||
created_at = Column(DateTime)
|
||||
updated_at = Column(DateTime)
|
||||
team = relationship("Team", back_populates="webhooks")
|
||||
secret = Column(String, nullable=False, unique=True)
|
||||
service_id = Column(UUID, ForeignKey("services.id"), nullable=False)
|
||||
channel_id = Column(UUID, ForeignKey("channels.id"), nullable=False)
|
||||
created_at = Column(DateTime, default=datetime.now)
|
||||
updated_at = Column(DateTime, default=datetime.now)
|
||||
|
||||
channel = relationship("Channel", back_populates="webhooks")
|
||||
service = relationship("Service", back_populates="webhooks")
|
||||
Reference in New Issue
Block a user