Initial commit
This commit is contained in:
commit
c534d5ce80
163 files changed
+11500
No files matched your search
@@ -0,0 +1,41 @@
|
||||
# Модуль: Ресурсы компаний
|
||||
|
||||
**Ответственность**: читает публичные данные `.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.
|
||||
Reference in new issue
Block a user