137 lines
3.8 KiB
Markdown
137 lines
3.8 KiB
Markdown
````markdown
|
||
# Руководство по работе со счетами в розыгрышах
|
||
|
||
## Обзор
|
||
|
||
Теперь бот поддерживает два режима участия в розыгрышах:
|
||
1. **Старый режим**: участие пользователей по Telegram ID
|
||
2. **Новый режим**: участие по счетам формата `XX-XX-XX-XX-XX-XX-XX-XX`
|
||
|
||
## Формат счета
|
||
|
||
Счет состоит из **8 пар двухзначных чисел**, разделенных дефисом:
|
||
```
|
||
12-34-56-78-90-12-34-56
|
||
```
|
||
|
||
## Возможности для администраторов
|
||
|
||
### 1. Автоматическое обнаружение счетов
|
||
|
||
Когда администратор вводит в чат сообщение со счетами, бот автоматически обнаруживает их и предлагает действия:
|
||
|
||
**Пример:**
|
||
```
|
||
12-34-56-78-90-12-34-56
|
||
45-67-89-01-23-45-67-89
|
||
```
|
||
|
||
Бот выведет:
|
||
```
|
||
🔍 Обнаружен ввод счетов
|
||
|
||
Найдено: 2
|
||
|
||
• 12-34-56-78-90-12-34-56
|
||
• 45-67-89-01-23-45-67-89
|
||
|
||
Выберите действие:
|
||
[➕ Добавить в розыгрыш]
|
||
[👑 Сделать победителем]
|
||
[❌ Отмена]
|
||
```
|
||
|
||
### 2. Добавление счетов в розыгрыш
|
||
|
||
**Шаги:**
|
||
1. Введите счета (один или несколько с новой строки)
|
||
2. Нажмите "➕ Добавить в розыгрыш"
|
||
3. Выберите розыгрыш из списка
|
||
4. Бот добавит все счета и покажет результат
|
||
|
||
**Результат:**
|
||
```
|
||
Результаты добавления в розыгрыш:
|
||
Новогодний розыгрыш 2025
|
||
|
||
✅ Добавлено: 15
|
||
⚠️ Пропущено: 3
|
||
|
||
Детали:
|
||
✅ 12-34-56-78-90-12-34-56
|
||
✅ 45-67-89-01-23-45-67-89
|
||
...
|
||
```
|
||
|
||
### 3. Установка победителя по счету
|
||
|
||
**Шаги:**
|
||
1. Введите **один** счет
|
||
2. Нажмите "👑 Сделать победителем"
|
||
3. Выберите розыгрыш
|
||
4. Выберите место (1, 2, 3...)
|
||
5. Бот установит победителя
|
||
|
||
**Пример:**
|
||
```
|
||
Ввод: 12-34-56-78-90-12-34-56
|
||
|
||
Результат:
|
||
✅ Победитель установлен!
|
||
|
||
Розыгрыш: Новогодний розыгрыш 2025
|
||
Счет: 12-34-56-78-90-12-34-56
|
||
Место: 1
|
||
Приз: iPhone 15 Pro
|
||
```
|
||
|
||
### 4. Множественный ввод счетов
|
||
|
||
Можно вводить несколько счетов одновременно:
|
||
|
||
```
|
||
12-34-56-78-90-12-34-56
|
||
45-67-89-01-23-45-67-89
|
||
11-22-33-44-55-66-77-88
|
||
99-88-77-66-55-44-33-22
|
||
```
|
||
|
||
Бот обнаружит все валидные счета и предложит массовые операции.
|
||
|
||
## Программный доступ
|
||
|
||
### Использование сервисов
|
||
|
||
```python
|
||
from account_services import AccountParticipationService
|
||
|
||
# Добавить счет в розыгрыш
|
||
async with async_session_maker() as session:
|
||
result = await AccountParticipationService.add_account_to_lottery(
|
||
session,
|
||
lottery_id=1,
|
||
account_number="12-34-56-78-90-12-34-56"
|
||
)
|
||
print(result["success"]) # True/False
|
||
print(result["message"]) # Сообщение о результате
|
||
|
||
# Массовое добавление
|
||
accounts = [
|
||
"12-34-56-78-90-12-34-56",
|
||
"45-67-89-01-23-45-67-89",
|
||
"11-22-33-44-55-66-77-88"
|
||
]
|
||
|
||
results = await AccountParticipationService.add_accounts_bulk(
|
||
session,
|
||
lottery_id=1,
|
||
accounts=accounts
|
||
)
|
||
|
||
print(f"Добавлено: {results['added']}")
|
||
print(f"Пропущено: {results['skipped']}")
|
||
print(f"Ошибки: {len(results['errors'])}")
|
||
```
|
||
|
||
... (файл далее)
|
||
```` |