Имя ГК (company_group_name) в ответах ЮЛ (#67) #68

Merged
aep merged 1 commits from feat/67-le-group-name into main 2026-10-08 16:04:29 +03:00
Owner

Closes #67. Bounded-задача: без OpenSpec change и плана.

Что сделано

  • LegalEntityOut (и LegalEntityDetail): новое поле company_group_name: str | null рядом с company_group_id. Это текущее имя ГК (архивной тоже), у монозаёмщика null.
  • Поле приходит во всех ответах /directories/legal-entities: список, карточка, POST, PATCH, move, withdraw. В /history его нет.
  • Имена ГК по набору ЮЛ загружаются одним запросом: repositories.directories.company_group_names_by_ids. Число SQL-запросов списка от числа строк не зависит (проверено тестом).
  • Дополнены спека openspec/specs/directories-api (одно предложение в требовании ЮЛ) и README.

Тесты

api/tests/test_api_company_group_name.py: поле есть во всех ответах; после move приходит имя новой ГК, после withdraw — null; имя архивной ГК отдаётся; в списке ровно один SELECT по company_group.

make check-full: exit 0. Unit — 1262 passed; integration — 828 passed; e2e — 1 passed; ruff, mypy, biome, tsc, docker build и dbml-check — чисто.

Rulings I made

  • R-1: в снимках истории поля нет. Снимок хранит ГК прошлого периода, а имя было бы текущим, это вводило бы в заблуждение. Если имя понадобится в истории, добавим его по образцу regional_office.
  • R-2: имя архивной ГК отдаётся, как и неактивный филиал в regional_office.
  • R-3: спека directories-api поправлена прямо в openspec/specs/, без change. Задача bounded, но спека — источник истины, и без правки она отставала бы от API.

Находки

Нет.

🤖 Generated with Claude Code

https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2

Closes #67. Bounded-задача: без OpenSpec change и плана. ## Что сделано - `LegalEntityOut` (и `LegalEntityDetail`): новое поле `company_group_name: str | null` рядом с `company_group_id`. Это текущее имя ГК (архивной тоже), у монозаёмщика `null`. - Поле приходит во всех ответах `/directories/legal-entities`: список, карточка, `POST`, `PATCH`, `move`, `withdraw`. В `/history` его нет. - Имена ГК по набору ЮЛ загружаются одним запросом: `repositories.directories.company_group_names_by_ids`. Число SQL-запросов списка от числа строк не зависит (проверено тестом). - Дополнены спека `openspec/specs/directories-api` (одно предложение в требовании ЮЛ) и README. ## Тесты `api/tests/test_api_company_group_name.py`: поле есть во всех ответах; после `move` приходит имя новой ГК, после `withdraw` — `null`; имя архивной ГК отдаётся; в списке ровно один SELECT по `company_group`. `make check-full`: exit 0. Unit — 1262 passed; integration — 828 passed; e2e — 1 passed; ruff, mypy, biome, tsc, docker build и dbml-check — чисто. ## Rulings I made - R-1: в снимках истории поля нет. Снимок хранит ГК прошлого периода, а имя было бы текущим, это вводило бы в заблуждение. Если имя понадобится в истории, добавим его по образцу `regional_office`. - R-2: имя архивной ГК отдаётся, как и неактивный филиал в `regional_office`. - R-3: спека `directories-api` поправлена прямо в `openspec/specs/`, без change. Задача bounded, но спека — источник истины, и без правки она отставала бы от API. ## Находки Нет. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
aep added 1 commit 2026-10-08 16:01:44 +03:00
В LegalEntityOut (а значит и LegalEntityDetail) добавлено company_group_name: текущее имя ГК company_group_id,
архивной тоже; у монозаёмщика null. Есть во всех ответах /directories/legal-entities: список, карточка, POST,
PATCH, move, withdraw; в снимках истории нет. Имена набора ЮЛ подгружаются одним батч-запросом
(repositories.directories.company_group_names_by_ids), число запросов списка от числа строк не зависит.
Спека directories-api и README дополнены.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
aep merged commit 2295d19f98 into main 2026-10-08 16:04:29 +03:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RSHB/arm-core#68
No description provided.