Реализованы все улучшения функционала бота

Блок 1: Система никнеймов
-  Добавлено поле nickname в модель User
-  Создана миграция для nickname
-  Обновлена регистрация (3 шага: nickname → карта → телефон)
-  Валидация nickname (длина 2-20, проверка служебных слов)
-  Подписи в чате используют nickname

Блок 2: Админские функции
-  Массовая рассылка (кнопка в админке, поддержка текста/фото/видео/документов)
-  Экспорт пользователей в JSON (бэкап с метаданными)
-  Импорт пользователей из JSON (восстановление с обновлением)

Блок 3: Улучшения розыгрышей
-  Рассылка результатов розыгрыша всем участникам (кроме победителей)
-  Сообщения подтверждения показывают nickname + клубную карту
-  Ручное назначение победителя по номеру счета/telegram ID/username
This commit is contained in:
2026-02-09 20:22:32 +09:00
parent 4e2c8981c2
commit c0407fdb11
7 changed files with 725 additions and 48 deletions

View File

@@ -0,0 +1,26 @@
"""add_nickname_to_users
Revision ID: 64c4f8a81afa
Revises: beb47ddbfc33
Create Date: 2026-02-09 20:10:36.120201
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = '64c4f8a81afa'
down_revision = 'beb47ddbfc33'
branch_labels = None
depends_on = None
def upgrade() -> None:
# Добавляем поле nickname в таблицу users
op.add_column('users', sa.Column('nickname', sa.String(length=100), nullable=True))
def downgrade() -> None:
# Удаляем поле nickname из таблицы users
op.drop_column('users', 'nickname')