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()