Files
new_lottery_bot/docs/QUICK_GUIDE.md
Andrew K. Choi 505d26f0e9
Some checks reported errors
continuous-integration/drone/push Build encountered an error
feat: Система автоматического подтверждения выигрышей с поддержкой множественных счетов
Основные изменения:

 Новые функции:
- Система регистрации пользователей с множественными счетами
- Автоматическое подтверждение выигрышей через inline-кнопки
- Механизм переигровки для неподтвержденных выигрышей (24 часа)
- Подтверждение на уровне счетов (каждый счет подтверждается отдельно)
- Скрипт полной очистки базы данных

🔧 Технические улучшения:
- Исправлена ошибка MissingGreenlet при lazy loading (добавлен joinedload/selectinload)
- Добавлено поле claimed_at для отслеживания времени подтверждения
- Пакетное добавление счетов с выбором розыгрыша
- Проверка владения конкретным счетом при подтверждении

📚 Документация:
- docs/AUTO_CONFIRM_SYSTEM.md - Полная документация системы подтверждения
- docs/ACCOUNT_BASED_CONFIRMATION.md - Подтверждение на уровне счетов
- docs/REGISTRATION_SYSTEM.md - Система регистрации
- docs/ADMIN_COMMANDS.md - Команды администратора
- docs/CLEAR_DATABASE.md - Очистка БД
- docs/QUICK_GUIDE.md - Быстрое начало
- docs/UPDATE_LOG.md - Журнал обновлений

🗄️ База данных:
- Миграция 003: Таблицы accounts, winner_verifications
- Миграция 004: Поле claimed_at в таблице winners
- Скрипт scripts/clear_database.py для полной очистки

🎮 Новые команды:
Админские:
- /check_unclaimed <lottery_id> - Проверка неподтвержденных выигрышей
- /redraw <lottery_id> - Повторный розыгрыш
- /add_accounts - Пакетное добавление счетов
- /list_accounts <telegram_id> - Список счетов пользователя

Пользовательские:
- /register - Регистрация с вводом данных
- /my_account - Просмотр своих счетов
- Callback confirm_win_{id} - Подтверждение выигрыша

🛠️ Makefile:
- make clear-db - Очистка всех данных из БД (с подтверждением)

🔒 Безопасность:
- Проверка владения счетом при подтверждении
- Защита от подтверждения чужих счетов
- Независимое подтверждение каждого выигрышного счета

📊 Логика работы:
1. Пользователь регистрируется и добавляет счета
2. Счета участвуют в розыгрыше
3. Победители получают уведомление с кнопкой подтверждения
4. Каждый счет подтверждается отдельно (24 часа на подтверждение)
5. Неподтвержденные выигрыши переигрываются через /redraw
2025-11-16 14:01:30 +09:00

4.5 KiB
Raw Blame History

Быстрая шпаргалка - Команды администратора

🚀 Основные команды

Добавление счетов

Один счет (быстро):

/add_account 2223 11-22-33-44-55-66-77

Несколько счетов (пакетом):

/add_account

2223 11-22-33-44-55-66-77
2223 88-99-00-11-22-33-44
3334 12-34-56-78-90-12-34

Управление счетами

/remove_account 11-22-33-44-55-66-77    # Деактивировать
/user_info 2223                         # Информация о пользователе

Работа с розыгрышами

/winner_status 1                        # Статус победителей
/verify_winner AB12CD34 1               # Подтвердить выигрыш

📋 Типичные сценарии

Новый клиент (полный цикл)

  1. Клиент регистрируется: /start → "Зарегистрироваться"
  2. Админ добавляет счета:
    /add_account 2223 11-22-33-44-55-66-77
    
  3. Выбрать розыгрыш из списка
  4. Готово!

Массовое добавление (10+ счетов)

/add_account

2223 11-22-33-44-55-66-77
2223 22-33-44-55-66-77-88
3334 33-44-55-66-77-88-99
3334 44-55-66-77-88-99-00
5556 55-66-77-88-99-00-11

→ Выбрать розыгрыш → Готово!

Проведение розыгрыша

  1. В боте: "Розыгрыши" → Выбрать → "Провести розыгрыш"
  2. Победители получат уведомления автоматически
  3. Проверить: /winner_status 1

Подтверждение победителя

  1. Победитель сообщает код: AB12CD34
  2. Админ: /verify_winner AB12CD34 1
  3. Система подтверждает и уведомляет победителя

💡 Полезные советы

  • Формат счета: XX-XX-XX-XX-XX-XX-XX (7 пар цифр)
  • Клубная карта: Любые цифры (например: 2223, 5556)
  • Код верификации: Генерируется автоматически при регистрации
  • Отмена операции: /cancel во время ввода данных

⚠️ Частые ошибки

Ошибка Причина Решение
"Пользователь не найден" Клубная карта не зарегистрирована Попросить зарегистрироваться через /start
"Счет уже существует" Номер занят другим пользователем Проверить номер или деактивировать старый
"Неверный формат" Формат счета неправильный Использовать XX-XX-XX-XX-XX-XX-XX
Нет розыгрышей Нет активных розыгрышей Создать розыгрыш через админ-панель

🔍 Проверка данных

Проверить пользователя:

/user_info 2223

Увидите:

  • Все счета пользователя
  • Код верификации
  • Историю выигрышей

Проверить победителей:

/winner_status 1

Увидите:

  • Список всех победителей
  • Статус подтверждения (/)
  • Информацию о владельцах

📞 Пользовательские команды

Клиенты используют:

  • /start - Главное меню / регистрация
  • /my_code - Показать код верификации
  • /my_accounts - Список счетов
  • "Мой счет" (через меню) - Подробная информация

🎯 Быстрый старт (за 1 минуту)

# 1. Клиент регистрируется
Клиент → /start → "Зарегистрироваться" → Вводит данные

# 2. Админ добавляет счета
/add_account
2223 11-22-33-44-55-66-77
2223 88-99-00-11-22-33-44

# 3. Выбрать розыгрыш
Нажать "🎯 Новогодний розыгрыш"

# 4. Провести розыгрыш
"Розыгрыши" → Выбрать → "Провести"

# 5. Подтвердить победителя
/verify_winner AB12CD34 1

✅ Готово!