3.1 KiB
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.