Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
54 lines
5.5 KiB
Markdown
54 lines
5.5 KiB
Markdown
# Proposal: Срез 1 (сквозное) — DBML v5.14, правила импорта из ЕЦП CRM, политика видимости, OQ
|
||
|
||
**Срез:** 1 «Справочники» (`docs/context/09-delivery-plan.md`), сокращённый по решению владельца 04.10.2026: без UI
|
||
справочника, минимальный экран администратора — цель быстрее дойти до Среза 2 (`tabular-parser`).
|
||
**Репозиторий:** arm-ka-docs. **Issue:** RSHB/arm-ka-docs#6. **Дочерние change'и:** `arm-core/openspec/changes/slice-1-directories`
|
||
(RSHB/arm-core#5), фикстура — RSHB/arm-ka-fixtures#2.
|
||
|
||
## Why
|
||
|
||
Срез 1 требует двух решений, которые нельзя принять в коде молча: модель данных (ЮЛ одновременно в одной ГСК и одной
|
||
ГСЗ — DBML v5.13 это запрещает) и правила импорта реальной выгрузки ЕЦП CRM, формат которой появился только сейчас
|
||
(`docs/source/biq/ecp-export-lagal-entity.xlsx`, 8400 строк) и отличается от макета [38] и от предположений ТЗ. По
|
||
CLAUDE.md изменение модели идёт только через новую версию DBML с changelog, алгоритмы — только через `05-domain-rules.md`.
|
||
|
||
## What Changes
|
||
|
||
- **DBML v5.14** (`docs/model/data-model-v5.14.dbml`, v5.13 остаётся в истории): `related_group_member.kind`
|
||
(денормализация `related_group.kind`) и частичный уникальный индекс `(legal_entity_id, kind) WHERE is_current` вместо
|
||
`legal_entity_id` — ЮЛ может состоять одновременно в одной ГСК и одной ГСЗ (решение владельца, отменяет ANL-030);
|
||
КПП не вводится; `audit_action` + `LEGAL_ENTITY_CHANGE`, `USER_CHANGE` (ТЗ 8.2 требует журнал изменений ЮЛ и пользователей,
|
||
в v5.13 для них не было действия); уточнена семантика `company_group.crm_id` / `base_regional_office_id` по выгрузке ЕЦП.
|
||
`entities-v5.14.md`, `04-data-model-guide.md`, ссылки в `CLAUDE.md` репозиториев — на v5.14.
|
||
- **`05-domain-rules.md`:** новый **§13 «Импорт справочников из выгрузки ЕЦП CRM»** (формат файла, построчные правила,
|
||
коды отчёта, транзакция, след в `audit_event` и S3, ручные операции справочника: перевод в другую ГК, вывод из состава,
|
||
алиасы, ГСК/ГСЗ); **§10.1 «Видимость справочников»** — policy через данные (`regional_office.is_head_office`), без кода роли;
|
||
ЗО не фильтрует (OQ-86).
|
||
- **`07-open-questions.md`:** OQ-31 и OQ-32 закрыты решением владельца; OQ-25 частично закрыт по выгрузке (состав ГК
|
||
«Русский Бисквит»); новые OQ-86…OQ-91 (ЗО-фильтр, типы `нерез.`/`ФЛ`, контрольные разряды ИНН, «ЦКБ»/«Головная
|
||
организация», ИНН в нескольких ГК, одна ГСК/ГСЗ на ГК в выгрузке).
|
||
- **Выгрузка ЕЦП** `docs/source/biq/ecp-export-lagal-entity.xlsx` закоммичена как первоисточник формата (добавлена
|
||
владельцем); срез по ГК «Русский Бисквит» — фикстура `fixtures/directories/ecp-export-russkiy-biskvit.xlsx`.
|
||
- **`09-delivery-plan.md`:** Срез 1 по факту (без UI справочника; минимальный экран администратора; импорт из ЕЦП);
|
||
**`10-user-journey.md`:** пометка, что экраны справочника (50, 51, 61, 77–80) реализуются позже, API — в Срезе 1.
|
||
- **`08-source-docs-index.md`:** строка про выгрузку ЕЦП.
|
||
|
||
## Capabilities
|
||
|
||
Change документный: поведение описывается спеками дочернего change'а в `arm-core` (`directories-api`, `directory-import`,
|
||
`directory-policy`, `users-admin`). Здесь — `skip_specs: true`.
|
||
|
||
## Impact
|
||
|
||
- Таблицы DBML: `related_group_member` (новая колонка, новый индекс) — миграция 0002 в `arm-core`; остальные таблицы
|
||
частей 01–02 без изменений структуры.
|
||
- Правила: §13 — новый; §10.1 — уточнение §10; §3 (алиасы) — без изменений.
|
||
- Потребители: `arm-core` (ORM, миграция, `check_dbml_vs_orm.py` на v5.14, импорт, policy), `fixtures` (срез выгрузки).
|
||
|
||
## Non-goals
|
||
|
||
- UI справочника по макету (экраны 50, 51, 61, 77–80) — отдельный срез по решению владельца.
|
||
- Расширение `entity_type` (нерезиденты, ФЛ), контрольные разряды ИНН, маппинг «ЦКБ» на ГО — после ответов на OQ-87…OQ-89.
|
||
- Онлайн-интеграция с ЕЦП CRM — только файл.
|
||
- Контракт сервисов распознавания — не затрагивается.
|