feat: «Основной РФ» объектом в ответах ЮЛ и ГК (#47) #51
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/47-regional-office-object"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #47
Что сделано
В ответах ЮЛ и ГК филиал приходит объектом
RegionalOfficeBrief {id, name, is_head_office}рядом с прежним*_id(аддитивно, фронт не ломается). Входные схемы не менялись.LegalEntityOut,LegalEntityDetail(список, карточка, create, PATCH, move, withdraw)regional_officeLegalEntityHistoryOutregional_office(филиал снимка)CompanyGroupOut(список, карточка, create, PATCH, archive/unarchive)base_regional_officeCompanyGroupHistoryOutbase_regional_office(филиал снимка)Пример (
GET /directories/legal-entities/{id}):Без филиала:
"regional_office_id": null, "regional_office": null. Для ГК —base_regional_office_id/base_regional_office.Неактивный филиал (
is_active=false) отдаётся объектом как обычно.Rulings I made
regional_offices_by_idsна набор id (списки, карточки, history). Единый путь для живых таблиц и history (в*_historyFK на филиал нет), модели не менялись, DBML не затронут.= None), чтобы прочие места, строящие эти схемы из ORM, не ломались.GET /legal-entitiesи/company-groups— число запросов не зависит от числа строк (+1 SELECT regional_office на страницу); в history — ровно один SELECT по филиалам.test_openapi_routes.pyпо составу маршрутов) — схема обновляется автоматически из pydantic; README дополнен абзацем про объект филиала.Проверка
make check-fullзелёный: lint (ruff, mypy), unit 1199 passed, dbml-check, integration 802 passed, e2e skipped (нет профиля services), web-check/docker-build — успешно.🤖 Generated with Claude Code
https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
В LegalEntityOut/Detail/HistoryOut добавлено regional_office, в CompanyGroupOut/HistoryOut — base_regional_office (RegionalOfficeBrief {id, name, is_head_office} или null); *_id оставлены. Филиалы подгружаются одним батч-запросом на набор id (списки, карточки, history без FK); неактивный филиал отдаётся. Тесты: совпадение с *_id, null, число запросов списка не растёт, history — один запрос на филиалы. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3