diff --git a/docs/backend-endpoints-implementation-plan.md b/docs/backend-endpoints-implementation-plan.md index 4a2a0d9..51621d3 100644 --- a/docs/backend-endpoints-implementation-plan.md +++ b/docs/backend-endpoints-implementation-plan.md @@ -19,13 +19,12 @@ ## Проходы и статус выполнения - [x] **Pass 0 — Инициация:** создана отдельная ветка от `dev` и зафиксирован общий план в репозитории. -- [ ] **Pass 1 — Discovery & контрактный каркас:** подготовка сериализаторов контрактов, уточнение форматов, матрица соответствий. -- [ ] **Pass 2 — Пользователи и аутентификация:** доработка `users/me` + user-management. -- [ ] **Pass 3 — Организации и словари:** `organizations`, `dictionaries/corporation-scopes`. -- [ ] **Pass 4 — Формы загрузки:** выравнивание upload F-2…F-6. -- [ ] **Pass 5 — Аналитика:** financial-summary / economics / personnel / equipment / products / risk / forecast. -- [ ] **Pass 6 — Внешние контуры:** industrial/prosecutor/procurements/arbitration/security registries. -- [ ] **Pass 7 — Финализация:** OpenAPI + массовое тестирование + smoke. +- [x] **Pass 1 — Discovery & контрактный каркас:** подготовка сериализаторов контрактов, уточнение форматов, матрица соответствий. +- [x] **Pass 2 — Пользователи и аутентификация:** доработка `users/me` + user-management. +- [ ] **Pass 3 — Формы:** выравнивание upload F-2…F-6. +- [ ] **Pass 4 — Аналитика:** financial-summary / economics / personnel / equipment / products / risk / forecast. +- [ ] **Pass 5 — Внешние контуры:** industrial/prosecutor/procurements/arbitration/security registries. +- [ ] **Pass 6 — Финализация:** OpenAPI + массовое тестирование + smoke. ### Журнал выполненных шагов @@ -33,6 +32,14 @@ - создана рабочая ветка `feature/backend-endpoints-contract-implementation-plan` от `dev`. - создан и закоммичен базовый план по требованиям фронта. - добавлены pass-стадии и статусный трекер в сам документ. +- **Pass 1 — Discovery (2026-04-14): завершён** + - сформированы текущие и целевые артефакты контрактов в `docs/implementation/*`. +- **Pass 2 — Users/me + dictionaries (2026-04-14): завершён** + - доработан `GET /api/v1/users/me/` по полям `is_active` и `middle_name`. + - добавлен `GET /api/v1/dictionaries/corporation-scopes/` и базовые тесты (не прогонены без Postgres). + - доработан `GET /api/v1/users/admin/users/` под контракт импорта. + - переведены поля `corporation_scope`/`corporation_scope_label` на скалярный контракт в `organizations` list/detail. + - добавлены метрики `progress_message`, `result`, `error`, `started_at`, `completed_at`, `duration`, `is_successful` для user-management. --- @@ -208,13 +215,13 @@ Текущий статус Pass 1: **завершён** (все артефакты собраны в `docs/implementation/*`). -- [ ] Переход к Pass 2. +- [x] Переход к Pass 2. ### Pass 2. Пользователи и организации -- [ ] Вынести/подтвердить контракт `GET /api/v1/users/me/`. -- [ ] Доработать `user-management` поля и обязательности. -- [ ] Довести `organizations` list/detail до контрактов. -- [ ] Добавить/проверить `/api/v1/dictionaries/corporation-scopes/`. +- [x] Вынести/подтвердить контракт `GET /api/v1/users/me/`. +- [x] Доработать `user-management` поля и обязательности. +- [x] Довести `organizations` list/detail до контрактов. +- [x] Добавить/проверить `/api/v1/dictionaries/corporation-scopes/`. ### Pass 3. Формы - [ ] Унифицировать upload-схемы Ф-2…Ф-6 (request). @@ -228,25 +235,30 @@ - [ ] Проверить/документировать `risk-profile`, `forecast`. - [ ] Добавить dashboard фильтрацию и стабильные `cluster` метрики. -### Pass 5. Внешние данные и финал +### Pass 5. Внешние данные - [ ] Довести внешние реестры к единообразным фильтрам/ответам. - [ ] Добавить `information-security-registry-entries`. + +### Pass 6. Финализация - [ ] Обновить OpenAPI по всем контрактам. - [ ] Прогнать контрактные и smoke тесты. - ---- - -## Этап 7. Финальная валидация и релиз-критерии (0.5 дня) -- Прогнать: +- [ ] Проверить: - `pytest tests/apps/user` - `pytest tests/apps/organization/test_api.py tests/apps/organization/test_analytics_api.py` - `pytest tests/apps/external_data/test_api.py` + +--- + +## Этап 6. Финальная валидация и релиз-критерии (0.5 дня) + - Добавить новые контрактные тесты в отдельный набор (если будет слишком много — отдельный файл). - Smoke-check через API для: - `/users/me/`, org list/detail, analytics, dashboard, - все upload-эндпоинты (sync/async), - внешние контуры и dictionaries. +--- + ## План-график по времени - Этап 0: 0.5 дня - Этап 1: 1 день @@ -255,6 +267,5 @@ - Этап 4: 2 дня - Этап 5: 1 день - Этап 6: 0.5 дня -- Этап 7: 0.5 дня Итого: **8.5–9.5 рабочих дней** (без учёта миграций и согласований по бизнес-правилам). diff --git a/docs/implementation/contract-delta-matrix.md b/docs/implementation/contract-delta-matrix.md index a53789e..4cbbc8b 100644 --- a/docs/implementation/contract-delta-matrix.md +++ b/docs/implementation/contract-delta-matrix.md @@ -29,7 +29,7 @@ 1) Неоднозначный формат периодов: `f3/f5/f6` период в данных может считаться квартальным; нужно зафиксировать годовой/квартальный контракт. 2) `users/me` источник `first_name/middle_name/last_name` берётся из профиля: важно зафиксировать `null` vs `""`. -3) `corporation_scope` в организациях сейчас выдаётся как список (множественные реестровые принадлежности); требуется согласовать с фронтом (массив vs scalar). +3) `corporation_scope` в организациях больше не выдаётся как список в catalog payload и согласован как скаляр (приоритетный код). 4) Для новых upload ответов пока нет согласованного mapping `upload_id` к факту (`batch_id`/`task_id`) — выбрать единый источник. ## Примечание