Files
Report-showcase/.template/development/modules/infrastructure-assets.md
T
2026-10-09 01:45:17 +00:00

42 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Модуль: Ресурсы компаний
**Ответственность**: читает публичные данные `.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.