Обновление управления статусами сообщений и схемы базы данных

- Добавлены методы в `AsyncBotDB` и `PostRepository` для обновления статусов сообщений по идентификатору сообщения и для групп медиафайлов.

- Добавлено поле `status` в модель `TelegramPost` и обновлена ​​схема базы данных, чтобы включить это поле со значением по умолчанию 'suggest'.

- Обновлен `PostPublishService` для установки статусов сообщений на 'approved' или 'declined' в процессе публикации.
This commit is contained in:
2026-01-22 23:37:27 +03:00
parent 422c36074e
commit 09e894e48f
7 changed files with 142 additions and 16 deletions

View File

@@ -158,7 +158,19 @@ class AsyncBotDB:
async def get_author_id_by_helper_message_id(self, helper_text_message_id: int) -> Optional[int]:
"""Получает ID автора по helper_text_message_id."""
return await self.factory.posts.get_author_id_by_helper_message_id(helper_text_message_id)
async def update_status_by_message_id(self, message_id: int, status: str) -> None:
"""Обновление статуса поста по message_id (одиночные посты)."""
await self.factory.posts.update_status_by_message_id(message_id, status)
async def update_status_for_media_group_by_helper_id(
self, helper_message_id: int, status: str
) -> None:
"""Обновление статуса постов медиагруппы по helper_message_id."""
await self.factory.posts.update_status_for_media_group_by_helper_id(
helper_message_id, status
)
# Методы для работы с черным списком
async def set_user_blacklist(self, user_id: int, user_name: str = None,
message_for_user: str = None, date_to_unban: int = None):