Первый модуль src/domain/ (чистые функции, без I/O, mypy strict): VisibilityScope, scope_for/scope_of, SQL-фильтры company_groups_visible/legal_entities_visible, проверки company_group_is_visible/legal_entity_is_visible, office_for_create (чужой филиал → 422 OFFICE_NOT_ALLOWED). Код роли не читается; business_segment не фильтрует (ASSUMPTION(OQ-86)). Принадлежность ЮЛ ГК филиала — подзапросом IN, а не JOIN (число строк не меняется, нет конфликта с JOIN вызывающего). Тесты: unit без БД (компиляция Select под PostgreSQL, все ветки) + один integration-тест семантики фильтров и их согласованности с проверками объектов. Отмечены шаги Task 4 в плане и 2.1 в tasks.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2 lines
177 B
Python
2 lines
177 B
Python
"""Доменный слой: чистые функции по §§ правил `05-domain-rules.md`, без I/O (ни сессий БД, ни сети, ни файлов)."""
|