[C28-50][@ant] feat(factory): перенести инфру doc_data из marketplace2 (приватные данные документа off-chain)
Выборочный перенос переиспользуемого паттерна doc_data из marketplace2
(исходный коммит 10158b5b33, 598-8) — БЕЗ marketplace-документов 1102/1103,
которых нет в dev (их cooptypes-реестры и controller-сервисы тянули конфликты
modify/delete и сломали бы сборку). 1102/1103 придут штатно при мерже marketplace2.
Что такое doc_data: приватные поля документа (реквизиты/ПДн) сохраняются в Mongo
(коллекция doc_private_data) через DocDataService.save(payload, registry_id) →
{hash}; on-chain в meta публикуется только doc_data_hash (sha256). При генерации
фабрика подгружает payload по хэшу и отдаёт шаблону под зарезервированной
переменной {{ doc_data.* }}. Так реквизиты в блокчейн не попадают, но документ
регенерируем и верифицируем по слепку.
Перенесено (идентично marketplace2 — будущий мерж без конфликтов):
- factory: Services/DocData + обвязка Factory/index.ts (saveDocData/getDocData) +
реэкспорт в Services/Databazor + Generator.saveDocData/getDocData в src/index.ts;
- controller: GeneratorPort/GeneratorInfrastructureService/DocumentDomainService —
проброс saveDocData/getDocData;
- cooptypes: IDocDataRef { doc_data_hash } в модели документа.
cooptypes build + factory typecheck/build зелёные. Контур: следующим шагом
перенастроить СЗ-2010 на doc_data для реквизитов (отдельной задачей).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -112,6 +112,18 @@ export interface IGenerate extends Omit<Partial<IMetaDocument>, 'title'> {
|
||||
[key: string]: any
|
||||
}
|
||||
|
||||
/**
|
||||
* Зарезервированная ссылка на приватный payload документа.
|
||||
* Action конкретного документа расширяет этот интерфейс, если хочет
|
||||
* хранить персональные/приватные данные off-chain — payload лежит в
|
||||
* коллекции `doc_private_data` фабрики, on-chain публикуется только
|
||||
* `doc_data_hash`. См. раздел «Document Generation Pattern: doc_data»
|
||||
* в архитектуре.
|
||||
*/
|
||||
export interface IDocDataRef {
|
||||
doc_data_hash?: string
|
||||
}
|
||||
|
||||
/**
|
||||
* Интерфейс генерации заявления на вступление в кооператив
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user