2021-08-26 21:14:20 +00:00
|
|
|
from datetime import datetime
|
|
|
|
from sqlalchemy import Column, Integer, String, ForeignKey, DateTime
|
|
|
|
from sqlalchemy.orm import relationship, backref
|
2021-12-08 12:51:30 +00:00
|
|
|
from orm.base import Base, local_session
|
2021-08-26 21:14:20 +00:00
|
|
|
|
2022-06-12 07:51:22 +00:00
|
|
|
class CommunitySubscription(Base):
|
|
|
|
__tablename__ = 'community_subscription'
|
|
|
|
|
|
|
|
id = None
|
|
|
|
subscriber = Column(ForeignKey('user.slug'), primary_key = True)
|
|
|
|
community = Column(ForeignKey('community.slug'), primary_key = True)
|
|
|
|
createdAt: str = Column(DateTime, nullable=False, default = datetime.now, comment="Created at")
|
|
|
|
|
2021-08-26 21:14:20 +00:00
|
|
|
|
|
|
|
class Community(Base):
|
|
|
|
__tablename__ = 'community'
|
2021-12-08 12:51:30 +00:00
|
|
|
|
2021-08-26 21:14:20 +00:00
|
|
|
name: str = Column(String, nullable=False, comment="Name")
|
|
|
|
slug: str = Column(String, unique = True, nullable = False)
|
2021-08-28 10:13:50 +00:00
|
|
|
desc: str = Column(String, nullable=False, default='')
|
|
|
|
pic: str = Column(String, nullable=False, default='')
|
2021-08-26 21:14:20 +00:00
|
|
|
createdAt: str = Column(DateTime, nullable=False, default = datetime.now, comment="Created at")
|
|
|
|
createdBy: str = Column(ForeignKey("user.id"), nullable=False, comment="Creator")
|
2021-12-08 12:51:30 +00:00
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
def init_table():
|
|
|
|
with local_session() as session:
|
2021-12-16 19:16:59 +00:00
|
|
|
default = session.query(Community).filter(Community.slug == "discours").first()
|
2021-12-10 13:52:55 +00:00
|
|
|
if not default:
|
|
|
|
default = Community.create(
|
2021-12-16 11:34:16 +00:00
|
|
|
name = "Дискурс",
|
|
|
|
slug = "discours",
|
2021-12-10 13:52:55 +00:00
|
|
|
createdBy = 0 #TODO: use default user
|
|
|
|
)
|
2021-12-08 12:51:30 +00:00
|
|
|
|
|
|
|
Community.default_community = default
|