init commit
This commit is contained in:
33
app/models/group.py
Normal file
33
app/models/group.py
Normal file
@@ -0,0 +1,33 @@
|
||||
from sqlalchemy import Column, Integer, String, Float, DateTime, Boolean
|
||||
from sqlalchemy.orm import relationship
|
||||
from datetime import datetime
|
||||
from .base import Base
|
||||
|
||||
|
||||
class Group(Base):
|
||||
"""Модель для хранения Telegram групп"""
|
||||
__tablename__ = 'groups'
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
chat_id = Column(String, unique=True, nullable=False) # ID группы в Telegram
|
||||
title = Column(String, nullable=False) # Название группы
|
||||
slow_mode_delay = Column(Integer, default=0) # Задержка между сообщениями (сек)
|
||||
last_message_time = Column(DateTime, nullable=True) # Время последнего отправленного сообщения
|
||||
is_active = Column(Boolean, default=True) # Активна ли группа
|
||||
description = Column(String, nullable=True) # Описание группы (для поиска)
|
||||
member_count = Column(Integer, default=0) # Количество участников
|
||||
creator_id = Column(String, nullable=True) # ID создателя группы
|
||||
created_at = Column(DateTime, default=datetime.utcnow)
|
||||
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
|
||||
|
||||
# Связь со многими сообщениями (через таблицу связей)
|
||||
messages = relationship('MessageGroup', back_populates='group', cascade='all, delete-orphan')
|
||||
# Связь с участниками группы
|
||||
members = relationship('GroupMember', back_populates='group', cascade='all, delete-orphan')
|
||||
# Связь с ключевыми словами
|
||||
keywords = relationship('GroupKeyword', back_populates='group', cascade='all, delete-orphan')
|
||||
# Связь со статистикой
|
||||
statistics = relationship('GroupStatistics', back_populates='group', cascade='all, delete-orphan', uselist=False)
|
||||
|
||||
def __repr__(self):
|
||||
return f'<Group {self.chat_id} - {self.title}>'
|
||||
Reference in New Issue
Block a user