Files
state-corp-backend/CHANGELOG.md
Aleksandr Meshchriakov e9d7f24aaa
Some checks failed
CI/CD Pipeline / Run Tests (push) Failing after 0s
CI/CD Pipeline / Code Quality Checks (push) Failing after 1m43s
CI/CD Pipeline / Build Docker Images (push) Has been skipped
CI/CD Pipeline / Push to Gitea Registry (push) Has been skipped
first commit
2026-01-21 12:07:35 +01:00

92 lines
4.0 KiB
Markdown
Raw 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