fixes, chat handlers
Some checks reported errors
continuous-integration/drone/push Build encountered an error

This commit is contained in:
2025-11-16 14:53:23 +09:00
parent a0e6a385b6
commit 4e06e6296c
6 changed files with 292 additions and 71 deletions

View File

@@ -11,6 +11,7 @@ from src.core.registration_services import AccountService, WinnerNotificationSer
from src.core.services import UserService, LotteryService, ParticipationService
from src.core.models import User, Winner, Account, Participation
from src.core.config import ADMIN_IDS
from src.core.permissions import admin_only
router = Router()
@@ -21,21 +22,14 @@ class AddAccountStates(StatesGroup):
choosing_lottery = State()
def is_admin(user_id: int) -> bool:
"""Проверка прав администратора"""
return user_id in ADMIN_IDS
@router.message(Command("add_account"))
@admin_only
async def add_account_command(message: Message, state: FSMContext):
"""
Добавить счет пользователю по клубной карте
Формат: /add_account <club_card> <account_number>
Или: /add_account (затем вводить данные построчно)
"""
if not is_admin(message.from_user.id):
await message.answer("❌ Недостаточно прав")
return
parts = message.text.split(maxsplit=2)
@@ -308,14 +302,12 @@ async def skip_lottery_add(callback: CallbackQuery, state: FSMContext):
@router.message(Command("remove_account"))
@admin_only
async def remove_account_command(message: Message):
"""
Деактивировать счет
Формат: /remove_account <account_number>
"""
if not is_admin(message.from_user.id):
await message.answer("❌ Недостаточно прав")
return
parts = message.text.split()
if len(parts) != 2:
@@ -341,15 +333,13 @@ async def remove_account_command(message: Message):
@router.message(Command("verify_winner"))
@admin_only
async def verify_winner_command(message: Message):
"""
Подтвердить выигрыш по коду верификации
Формат: /verify_winner <verification_code> <lottery_id>
Пример: /verify_winner AB12CD34 1
"""
if not is_admin(message.from_user.id):
await message.answer("❌ Недостаточно прав")
return
parts = message.text.split()
if len(parts) != 3:
@@ -434,14 +424,12 @@ async def verify_winner_command(message: Message):
@router.message(Command("winner_status"))
@admin_only
async def winner_status_command(message: Message):
"""
Показать статус всех победителей розыгрыша
Формат: /winner_status <lottery_id>
"""
if not is_admin(message.from_user.id):
await message.answer("❌ Недостаточно прав")
return
parts = message.text.split()
if len(parts) != 2:
@@ -509,14 +497,12 @@ async def winner_status_command(message: Message):
@router.message(Command("user_info"))
@admin_only
async def user_info_command(message: Message):
"""
Показать информацию о пользователе
Формат: /user_info <club_card>
"""
if not is_admin(message.from_user.id):
await message.answer("❌ Недостаточно прав")
return
parts = message.text.split()
if len(parts) != 2: