- Remove alembic/ directory and alembic.ini file
- Remove Alembic references from pyproject.toml, mypy.ini
- Remove migration logic from main.py
- Update CHANGELOG.md with removal details
- Clean up all configuration files from Alembic settings
### 🚨 Исправлено
- **Удалено поле username из модели Author**: Поле `username` больше не является частью модели `Author`
- Убрано свойство `@property def username` из `orm/author.py`
- Обновлены все сервисы для использования `email` или `slug` вместо `username`
- Исправлены резолверы для исключения `username` при обработке данных автора
- Поле `username` теперь используется только в JWT токенах для совместимости
### 🧪 Исправлено
- **E2E тесты админ-панели**: Полностью переработаны E2E тесты для работы с реальным API
- Тесты теперь делают реальные HTTP запросы к GraphQL API
- Бэкенд для тестов использует выделенную тестовую БД (`test_e2e.db`)
- Создан фикстура `backend_server` для запуска тестового сервера
- Добавлен фикстура `create_test_users_in_backend_db` для регистрации пользователей через API
- Убраны несуществующие GraphQL запросы (`get_community_stats`)
- Тесты корректно работают с системой ролей и правами администратора
### �� Техническое
- **Рефакторинг аутентификации**: Упрощена логика работы с пользователями
- Убраны зависимости от несуществующих полей в ORM моделях
- Обновлены сервисы аутентификации для корректной работы без `username`
- Исправлены все места использования `username` в коде
- **Улучшена тестовая инфраструктура**:
- Тесты теперь используют реальный HTTP API вместо прямых DB проверок
- Правильная изоляция тестовых данных через отдельную БД
- Корректная работа с системой ролей и правами
### 🚨 Исправлено
- **Лимит топиков API**: Убрано жесткое ограничение в 100 топиков, теперь поддерживается до 1000 топиков
- Обновлен лимит функции `get_topics_with_stats` с 100 до 1000
- Обновлен лимит по умолчанию резолвера `get_topics_by_community` с 100 до 1000
- Это решает проблему, когда API искусственно ограничивал получение топиков
### 🧪 Исправлено
- **Тест-сьют**: Исправлены все падающие тесты для достижения 100% прохождения
- Исправлено утверждение теста уведомлений для невалидных действий (fallback к CREATE)
- Исправлены тесты публикации черновиков путем добавления обязательных топиков
- Исправлен контекст авторизации в тестах черновиков (добавлены роли и токен)
- Установлены браузеры Playwright для решения проблем с браузерными тестами
- Все тесты теперь проходят: 361 пройден, 31 пропущен, 0 провален
### 🔧 Техническое
- Улучшены тестовые фикстуры с правильным созданием топиков для черновиков
- Улучшено тестовое мокирование для GraphQL контекста с требуемыми данными авторизации
- Добавлена правильная обработка ошибок для требований публикации черновиков
### 📦 Added
- **Автоматическое определение главного топика**: Система автоматически назначает главный топик при публикации
- **Валидация топиков при публикации**: Проверка наличия хотя бы одного топика перед публикацией
### 🏗️ Changed
- **Исправлена логика публикации черновиков**: Теперь автоматически устанавливается главный топик при отсутствии
- **Обновлена логика создания статей**: Гарантируется наличие главного топика во всех публикациях
### 🐛 Fixed
- **Исправлена критическая ошибка с публикацией статей**: Статьи теперь корректно появляются в фидах после публикации
- **Гарантирован главный топик**: Все опубликованные статьи теперь обязательно имеют главный топик (`main=True`)