core/orm/community.py

37 lines
1.3 KiB
Python
Raw Normal View History

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
from orm.base import Base, local_session
2021-08-26 21:14:20 +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-08-26 21:14:20 +00:00
name: str = Column(String, nullable=False, comment="Name")
2022-07-07 13:55:13 +00:00
slug: str = Column(String, 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")
2022-07-07 13:55:13 +00:00
createdBy: str = Column(ForeignKey("user.slug"), nullable=False, comment="Creator")
@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
)
Community.default_community = default