Files
post_bot/models.py
Andrey K. Choi 9793648ee3
Some checks failed
continuous-integration/drone/push Build is failing
security, audit, fom features
2025-09-06 05:03:45 +09:00

49 lines
1.7 KiB
Python

from datetime import datetime
from sqlalchemy import Column, Integer, String, ForeignKey, Text
from sqlalchemy.orm import relationship
from db import Base
class ActionLog(Base):
__tablename__ = 'action_logs'
id = Column(Integer, primary_key=True)
admin_id = Column(Integer)
action = Column(String)
details = Column(String)
timestamp = Column(String, default=lambda: datetime.utcnow().isoformat())
class Admin(Base):
__tablename__ = 'admins'
id = Column(Integer, primary_key=True)
tg_id = Column(Integer, nullable=False)
channel_id = Column(Integer, ForeignKey('channels.id'), nullable=True)
inviter_id = Column(Integer, nullable=True)
invite_token = Column(String, nullable=True, unique=True)
class Channel(Base):
__tablename__ = 'channels'
id = Column(Integer, primary_key=True)
name = Column(String)
link = Column(String)
admin_id = Column(Integer, ForeignKey('admins.id'))
buttons = relationship('Button', back_populates='channel')
class Group(Base):
__tablename__ = 'groups'
id = Column(Integer, primary_key=True)
name = Column(String, nullable=False)
link = Column(String, nullable=False)
admin_id = Column(Integer, ForeignKey('admins.id'))
buttons = relationship('Button', back_populates='group')
class Button(Base):
__tablename__ = 'buttons'
id = Column(Integer, primary_key=True)
name = Column(String, nullable=False)
url = Column(String, nullable=False)
channel_id = Column(Integer, ForeignKey('channels.id'), nullable=True)
group_id = Column(Integer, ForeignKey('groups.id'), nullable=True)
channel = relationship('Channel', back_populates='buttons')
group = relationship('Group', back_populates='buttons')