# Changelog Все значимые изменения в проекте документируются в этом файле. Формат основан на [Keep a Changelog](https://keepachangelog.com/ru/1.0.0/). --- ## [0.2.0] - 2026-01-21 ### Добавлено #### Core Module (`apps.core`) - **Model Mixins** (`mixins.py`): - `TimestampMixin` — автоматические `created_at`, `updated_at` - `UUIDPrimaryKeyMixin` — UUID вместо auto-increment ID - `SoftDeleteMixin` — мягкое удаление с `is_deleted`, `deleted_at` - `AuditMixin` — отслеживание `created_by`, `updated_by` - `OrderableMixin` — поле `order` для сортировки - `StatusMixin` — статусы draft/active/inactive/archived - `SlugMixin` — URL-friendly идентификаторы - **Base Services** (`services.py`): - `BaseService` — базовый CRUD сервис - `BaseReadOnlyService` — только чтение - `TransactionMixin` — управление транзакциями - `BulkOperationsMixin` — массовые операции (bulk_create_chunked, bulk_update_or_create, bulk_delete, bulk_update_fields) - `QueryOptimizerMixin` — декларативная оптимизация запросов (select_related, prefetch_related, only, defer) - `BackgroundJobService` — управление фоновыми задачами - **Base ViewSets** (`viewsets.py`): - `BaseViewSet` — базовый CRUD ViewSet с пагинацией, фильтрацией, логированием - `ReadOnlyViewSet` — только чтение - `OwnerViewSet` — фильтрация по владельцу - `BulkMixin` — массовые операции через API (bulk_create, bulk_update, bulk_delete) - **Background Job Tracking** (`models.py`): - Модель `BackgroundJob` для отслеживания Celery задач - API endpoints: `GET /api/v1/jobs/`, `GET /api/v1/jobs/{task_id}/` - Статусы: pending, started, success, failure, revoked, retry - Прогресс выполнения и результаты - **Management Commands** (`management/commands/base.py`): - `BaseAppCommand` — базовый класс для команд - Поддержка `--dry-run`, `--silent` - Прогресс-бар, измерение времени, логирование - **Прочее**: - `exceptions.py` — кастомные исключения API - `permissions.py` — базовые permissions (IsOwner, IsAdminOrReadOnly и др.) - `pagination.py` — CursorPagination - `filters.py` — BaseFilterSet - `cache.py` — декораторы кэширования - `tasks.py` — BaseTask для Celery - `logging.py` — структурированное логирование - `middleware.py` — RequestIDMiddleware - `signals.py` — SignalDispatcher - `response.py` — унифицированные API ответы - `openapi.py` — декоратор для документации #### Тестирование - Переход на `factory_boy` + `faker` (вместо model_bakery + uuid) - Фабрики: `UserFactory`, `ProfileFactory` - 297 тестов #### Конфигурация - API versioning: `/api/v1/` - Отдельный `test.py` для настроек тестов - Обновлён `pyproject.toml` - Правила разработки в `.qoder/rules/main.md` ### Изменено - Структура тестов перенесена в `/tests/apps/` - Удалён `conftest.py` (pytest не используется) - Обновлены URLs с namespace ### Удалено - `ruff.toml` (конфигурация перенесена в pyproject.toml) - `CI_CD_SUMMARY.md` - `custom_test_runner.py` --- ## [0.1.0] - 2026-01-20 ### Добавлено - Начальная структура проекта - Приложение `user` с JWT аутентификацией - Базовые модели User и Profile - Docker конфигурация - Pre-commit hooks