docs(sprint5): P1-18 done

This commit is contained in:
nns 2026-05-28 16:27:04 +05:00
parent a189a5dd6e
commit ee0cd3ae86

View file

@ -16,10 +16,15 @@ query filter. E2E на изоляцию A vs B где применимо.
(постоплата/дебиторка), `PaidAmount` для отслеживания. Permissions
переиспользуют существующие `DemandsEdit/Post`. Метрики
`documents_posted{type="demand"}`. 3 интеграционных теста.
2. [ ] **P1-18 Аудит мутаций tenant'а** — Domain `OrgAuditLog` (как
2. [x] **P1-18 Аудит мутаций tenant'а** — Domain `OrgAuditLog` (как
`SuperAdminAuditLog`, но per-org). Hook через EF SaveChangesInterceptor
на Supply/Sale/Demand/Product/Counterparty. UI: `/audit-log` для админа.
Multi-tenant строго. Тесты.
`OrgAuditInterceptor` снимает diff на `SavingChanges` (до commit) —
атомарно с мутацией. ChangesJson: `{"field":{"before":X,"after":Y}}`.
Белый список типов: Supply/SupplierReturn/RetailSale/Demand/Product/
ProductPrice/ProductBarcode/Counterparty. Web `/audit-log` с фильтрами
и diff-viewer'ом. Tenant-isolation через query-filter. 3 интеграционных.
3. [ ] **P1-22 Email-шаблоны** — расширить MailKit-сервис:
`Resources/EmailTemplates/*.html`. Шаблоны: приглашение сотрудника с
временным паролем (sendInvite=true), еженедельный summary владельцу