2.9 KiB
2.9 KiB
Модуль: Ресурсы компаний
Ответственность: читает публичные данные .template/companies/, нормализует JSON, создаёт устойчивые Typst paths и применяет явные overrides подписи и печати.
Расположение: .template/lib/infrastructure/company-assets.typ
Публичный интерфейс
| Символ | Тип | Описание |
|---|---|---|
load-company() |
функция | Загружает профиль по разрешённому id и принимает logo, signature, stamp overrides |
available-companies() |
функция | Возвращает детерминированный список встроенных ids |
merge-resources() |
чистая функция | Применяет только явно переданные resource overrides |
Зависимости
| Модуль | Что использует |
|---|---|
.template/lib/domain/company.typ |
company-profile() и validate-company() |
.template/companies/*/data.json |
Публичные реквизиты организаций |
.template/companies/*/logo.* |
Публичные логотипы |
.template/lib/assets/placeholders/ |
Безопасные круг и крест |
Инварианты
- Адаптер не сканирует
assets/или.private/. - Относительные внутренние paths создаются в infrastructure-файле.
- Private paths организаций создаются адаптером сотрудников из явной настройки и передаются как готовые
path. - Идентификатор компании выбирается из явного registry.
- Публичные JSON не содержат путей к реальным подписям и печатям.
noneсохраняется как отсутствие ресурса и обрабатывается media policy.- Указанный override не подменяется placeholder при ошибке загрузки.
Намеренно НЕ обрабатывает
- Layout логотипа, подписи или печати.
- Поиск файлов по имени.
- Сетевую загрузку реквизитов.
Заметки для агента
Typst
pathсохраняет контекст файла, в котором создан. Public company paths создавайте здесь, а absolute.private/paths — только в private/employee adapter. Значенияautoиnoneдолжны различаться:autoозначает взять публичное значение профиля,none— осознанно применить media policy.