45 lines
3.5 KiB
Markdown
45 lines
3.5 KiB
Markdown
# Модуль: Договор
|
||
|
||
**Ответственность**: предоставляет расширяемый каркас договора с преамбулой, произвольными разделами, сторонами, реквизитами, подписанием и приложениями.
|
||
**Расположение**: `.template/lib/presentation/profiles/contract.typ`
|
||
|
||
## Публичный интерфейс
|
||
|
||
| Символ | Тип | Описание |
|
||
|--------|-----|----------|
|
||
| `contract-profile()` | конструктор `DocumentProfile` | Принимает номер, дату, место, название, стороны и section options |
|
||
| `render-contract()` | renderer-функция | Собирает header, preamble slot, body sections, requisites, signing и attachments |
|
||
| `contract-section()` | конструктор dictionary | Описывает нумерованный или именованный раздел с body |
|
||
| `contract-validators()` | массив functions | Проверяет стороны, номера, даты и уникальность sections |
|
||
|
||
## Зависимости
|
||
|
||
| Модуль | Что использует |
|
||
|--------|----------------|
|
||
| `.template/lib/domain/document.typ` | `DocumentProfile` и context |
|
||
| `.template/lib/domain/parties.typ` | Contract parties, representatives и signers |
|
||
| `.template/lib/domain/attachments.typ` | Приложения и спецификации |
|
||
| `.template/lib/presentation/foundation.typ` | Base typography и signing-copy mode |
|
||
| `.template/lib/presentation/components.typ` | Requisites table, multi-party signing, tables и numbering primitives |
|
||
|
||
## Инварианты
|
||
|
||
- В v1 поддерживается не менее двух сторон; модель не зашита строго на роли «Заказчик/Исполнитель».
|
||
- Section id и display number уникальны.
|
||
- Юридический текст sections остаётся пользовательским content.
|
||
- Preamble можно передать content или собрать из сторон через явный helper; автоматический текст не является юридической гарантией.
|
||
- Requisites берутся из Party/CompanyProfile, а не дублируются внутри renderer.
|
||
- Signing-copy может резервировать место без реальных изображений подписи и печати.
|
||
- Приложения используют тот же AttachmentSet, что отчёт и ТКП.
|
||
|
||
## Намеренно НЕ обрабатывает
|
||
|
||
- Юридическую достаточность и актуальность условий.
|
||
- Электронную подпись и криптографию.
|
||
- Согласование версий договора и tracked changes.
|
||
- Автоматическую генерацию актов, счетов или УПД.
|
||
|
||
## Заметки для агента
|
||
|
||
> Не превращайте contract-profile в библиотеку юридических формулировок. Профиль отвечает за типографику и композицию. Чтобы будущие лицензионные, сервисные или смешанные договоры не требовали изменения renderer, sections должны быть открытым массивом с устойчивой numbering policy.
|