Files
2026-10-09 04:24:38 +00:00

3.1 KiB

Модуль: Организация

Ответственность: описывает единый нормализованный профиль юридического лица и его фирменных ресурсов. Расположение: .template/lib/domain/company.typ

Публичный интерфейс

Символ Тип Описание
company-profile() конструктор dictionary Создаёт профиль из секций legal, contacts, banking, brand, director, resources
validate-company() функция Проверяет обязательные реквизиты и типы необязательных полей
company-display-name() чистая функция Возвращает полное или краткое наименование по политике профиля
company-resource() чистая функция Возвращает нормализованное значение ресурса из уже построенного profile

Зависимости

Модуль Что использует
Нет Domain не читает JSON и не строит пути

Инварианты

  • id, полное наименование и юрисдикция заданы.
  • ИНН/КПП/ОГРН и БИН/КБЕ хранятся как строки, чтобы не терять ведущие нули и формат.
  • Контактные и банковские поля имеют единые ключи для всех компаний; неприменимое поле равно none.
  • Brand color нормализован до color до передачи renderer.
  • Логотип, подпись и печать имеют значение none, path или готовый content; произвольная строка после infrastructure-нормализации не допускается.
  • Director содержит должность и ФИО; ресурсы подписи и печати хранятся отдельно и не задают координаты на странице.

Намеренно НЕ обрабатывает

  • Поиск компании по содержимому документа.
  • Чтение .template/companies/ и .private/.
  • Отрисовку логотипа, подписи, печати и реквизитов.
  • Валидацию законодательства конкретной юрисдикции.

Заметки для агента

Существующие JSON-файлы отличаются по набору полей. Нормализуйте их через infrastructure, не добавляйте условные ключи в renderer. Для РФ и Казахстана используйте общую структуру с none для неприменимых идентификаторов. Не переносите пользовательские изображения в CompanyProfile.