ЮЛ: алиасы и ГСК/ГСЗ в POST и PATCH /directories/legal-entities #84

Closed
opened 2026-10-09 12:33:16 +03:00 by aep · 1 comment
Owner

Формы «Добавить юридическое лицо» (макет 51-02) и «Изменить юридическое лицо» (79) отправляют всё одним запросом по кнопке «Добавить»/«Сохранить»: альтернативные наименования (алиасы) и «Входит в ГСК / ГСЗ». Сейчас POST/PATCH /directories/legal-entities их не принимают — только отдельные ручки …/aliases и …/related-groups/{id}/members.

Согласованный дизайн (bounded)

  • LegalEntityCreate и LegalEntityUpdate: aliases: list[str], gsk_id: uuid|null, gsz_id: uuid|null.
  • POST: алиасы и членства создаются в той же транзакции; ошибки как у отдельных ручек (EMPTY_ALIAS, ALIAS_TAKEN, ALIAS_EXISTS — в т.ч. дубль внутри списка; DIFFERENT_COMPANY_GROUP), новая WRONG_GROUP_KIND (в gsk_id передана ГСЗ и наоборот), невидимая группа — 404.
  • PATCH: поле не передано — без изменений. aliases — итоговый набор, diff по normalized_alias (совпавшие не трогаем, недостающие добавляем, лишние удаляем; удаление требует DIRECTORY_DELETE, иначе 403 и откат). gsk_id/gsz_id: null — закрыть текущее членство вида; та же группа — no-op; другая — закрыть и открыть.
  • Снимок legal_entity_history(UPDATE) — только при изменении полей ЮЛ; алиасы и членства — свои события аудита, как в отдельных ручках.
  • Ответ POST и PATCH — LegalEntityDetail (надмножество LegalEntityOut).
  • Логика отдельных ручек выносится в общие функции — поведение одинаковое.
  • Спека directories-api правится напрямую.

Вне объёма: смена ГК из модалки 79 (это move с effective_date).

Формы «Добавить юридическое лицо» (макет 51-02) и «Изменить юридическое лицо» (79) отправляют всё одним запросом по кнопке «Добавить»/«Сохранить»: альтернативные наименования (алиасы) и «Входит в ГСК / ГСЗ». Сейчас `POST`/`PATCH /directories/legal-entities` их не принимают — только отдельные ручки `…/aliases` и `…/related-groups/{id}/members`. ## Согласованный дизайн (bounded) - `LegalEntityCreate` и `LegalEntityUpdate`: `aliases: list[str]`, `gsk_id: uuid|null`, `gsz_id: uuid|null`. - POST: алиасы и членства создаются в той же транзакции; ошибки как у отдельных ручек (`EMPTY_ALIAS`, `ALIAS_TAKEN`, `ALIAS_EXISTS` — в т.ч. дубль внутри списка; `DIFFERENT_COMPANY_GROUP`), новая `WRONG_GROUP_KIND` (в `gsk_id` передана ГСЗ и наоборот), невидимая группа — 404. - PATCH: поле не передано — без изменений. `aliases` — итоговый набор, diff по `normalized_alias` (совпавшие не трогаем, недостающие добавляем, лишние удаляем; удаление требует `DIRECTORY_DELETE`, иначе 403 и откат). `gsk_id`/`gsz_id`: `null` — закрыть текущее членство вида; та же группа — no-op; другая — закрыть и открыть. - Снимок `legal_entity_history(UPDATE)` — только при изменении полей ЮЛ; алиасы и членства — свои события аудита, как в отдельных ручках. - Ответ POST и PATCH — `LegalEntityDetail` (надмножество `LegalEntityOut`). - Логика отдельных ручек выносится в общие функции — поведение одинаковое. - Спека `directories-api` правится напрямую. Вне объёма: смена ГК из модалки 79 (это `move` с `effective_date`).
aep closed this issue 2026-10-09 13:03:07 +03:00
Author
Owner

Сделано: PR #85 (merge b4c7a15, коммит a93ab10) — алиасы и ГСК/ГСЗ в POST/PATCH /directories/legal-entities; гайды фронта и QA — RSHB/arm-ka-docs PR #83 (530267e). Отложенное (O-1 права на удаление алиасов, O-2 смена ГК из модалки 79) — в follow-up issue.

Сделано: PR #85 (merge b4c7a15, коммит a93ab10) — алиасы и ГСК/ГСЗ в POST/PATCH /directories/legal-entities; гайды фронта и QA — RSHB/arm-ka-docs PR #83 (530267e). Отложенное (O-1 права на удаление алиасов, O-2 смена ГК из модалки 79) — в follow-up issue.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

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