from dataclasses import dataclass from datetime import datetime from typing import List, Optional @dataclass class User: """Модель пользователя.""" user_id: int first_name: str full_name: str username: Optional[str] = None is_bot: bool = False language_code: str = "ru" emoji: str = "😊" has_stickers: bool = False date_added: Optional[str] = None date_changed: Optional[str] = None voice_bot_welcome_received: bool = False @dataclass class BlacklistUser: """Модель пользователя в черном списке.""" user_id: int message_for_user: Optional[str] = None date_to_unban: Optional[int] = None created_at: Optional[int] = None ban_author: Optional[int] = None @dataclass class BlacklistHistoryRecord: """Модель записи истории банов/разбанов.""" user_id: int message_for_user: Optional[str] = None date_ban: int = 0 date_unban: Optional[int] = None ban_author: Optional[int] = None id: Optional[int] = None created_at: Optional[int] = None updated_at: Optional[int] = None @dataclass class UserMessage: """Модель сообщения пользователя.""" message_text: str user_id: int telegram_message_id: int date: int @dataclass class TelegramPost: """Модель поста из Telegram.""" message_id: int text: str author_id: int helper_text_message_id: Optional[int] = None created_at: Optional[int] = None status: str = "suggest" is_anonymous: Optional[bool] = None @dataclass class PostContent: """Модель контента поста.""" message_id: int content_name: str content_type: str @dataclass class MessageContentLink: """Модель связи сообщения с контентом.""" post_id: int message_id: int @dataclass class Admin: """Модель администратора.""" user_id: int role: str = "admin" created_at: Optional[str] = None @dataclass class Migration: """Модель миграции.""" version: int script_name: str created_at: Optional[str] = None @dataclass class AudioMessage: """Модель аудио сообщения.""" file_name: str author_id: int date_added: str file_id: str listen_count: int = 0 @dataclass class AudioListenRecord: """Модель записи прослушивания аудио.""" file_name: str user_id: int is_listen: bool = False @dataclass class AudioModerate: """Модель для voice bot.""" message_id: int user_id: int