Files
mostovik-backend/CHANGELOG.md
Aleksandr Meshchriakov f121445313 feat(core): add core module with mixins, services, and background jobs
- Add Model Mixins: TimestampMixin, SoftDeleteMixin, AuditMixin, etc.
- Add Base Services: BaseService, BulkOperationsMixin, QueryOptimizerMixin
- Add Base ViewSets with bulk operations
- Add BackgroundJob model for Celery task tracking
- Add BaseAppCommand for management commands
- Add permissions, pagination, filters, cache, logging
- Migrate tests to factory_boy + faker
- Add CHANGELOG.md
- 297 tests passing
2026-01-21 11:47:26 +01:00

92 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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