Enhance bot functionality and refactor database interactions
- Added `ca-certificates` installation to Dockerfile for improved network security. - Updated health check command in Dockerfile to include better timeout handling. - Refactored `run_helper.py` to implement proper signal handling and logging during shutdown. - Transitioned database operations to an asynchronous model in `async_db.py`, improving performance and responsiveness. - Updated database schema to support new foreign key relationships and optimized indexing for better query performance. - Enhanced various bot handlers to utilize async database methods, improving overall efficiency and user experience. - Removed obsolete database and fix scripts to streamline the project structure.
This commit is contained in:
103
database/models.py
Normal file
103
database/models.py
Normal file
@@ -0,0 +1,103 @@
|
||||
from dataclasses import dataclass
|
||||
from datetime import datetime
|
||||
from typing import Optional, List
|
||||
|
||||
|
||||
@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
|
||||
|
||||
|
||||
@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
|
||||
|
||||
|
||||
@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
|
||||
Reference in New Issue
Block a user