One_Piece_Bounty_Bot / src /model /GroupChat.py
github-actions[bot]
Automated sync from GitHub
71e71e8
Raw
History Blame Contribute Delete
1.58 kB
import datetime
from peewee import *
from src.model.BaseModel import BaseModel
from src.model.Group import Group
class GroupChat(BaseModel):
"""
Group Chat class
"""
group: Group | ForeignKeyField = ForeignKeyField(
Group, backref="group_chats", on_delete="CASCADE", on_update="CASCADE"
)
tg_topic_id: int | IntegerField = IntegerField(null=True) # Nullable for general group_chat
tg_topic_name: str | CharField = CharField(
null=True
) # Only for topics, it's the first name of the topic (even if it's changed)
last_message_date: datetime.datetime | DateTimeField = DateTimeField(
default=datetime.datetime.now
)
last_error_date: datetime.datetime | DateTimeField = DateTimeField(null=True)
last_error_message: str | CharField = CharField(null=True)
is_active: bool | BooleanField = BooleanField(default=True)
is_muted: bool | BooleanField = BooleanField(default=False)
auto_delete_duration: int | IntegerField = IntegerField(null=True) # In minutes
# Backref
enabled_disabled_features = None
enabled_features_pin = None
class Meta:
db_table = "group_chat"
def get_full_name(self):
"""Get the full name of the group chat"""
# noinspection PyTypeChecker
group: Group = self.group
title = group.tg_group_name
# Group is forum, add forum name if available
if group.is_forum and self.tg_topic_name is not None:
title += " - " + self.tg_topic_name
return title
GroupChat.create_table()