docs(sprint5): P1-22 done
This commit is contained in:
parent
25d92c989a
commit
2f9bbc858f
|
|
@ -25,10 +25,16 @@ query filter. E2E на изоляцию A vs B где применимо.
|
|||
Белый список типов: Supply/SupplierReturn/RetailSale/Demand/Product/
|
||||
ProductPrice/ProductBarcode/Counterparty. Web `/audit-log` с фильтрами
|
||||
и diff-viewer'ом. Tenant-isolation через query-filter. 3 интеграционных.
|
||||
3. [ ] **P1-22 Email-шаблоны** — расширить MailKit-сервис:
|
||||
3. [x] **P1-22 Email-шаблоны** — расширить MailKit-сервис:
|
||||
`Resources/EmailTemplates/*.html`. Шаблоны: приглашение сотрудника с
|
||||
временным паролем (sendInvite=true), еженедельный summary владельцу
|
||||
(Hangfire recurring), low-stock alert (Hangfire daily). Тесты рендеринга.
|
||||
✅ `IEmailSender.SendHtmlAsync` (multipart/alternative с plain fallback);
|
||||
`EmailTemplateRenderer` (mustache-light: `{{key}}` escape, `{{{raw}}}`,
|
||||
`{{#key}}…{{/key}}` условие); `EmailTemplates` загружает embedded
|
||||
`Resources/EmailTemplates/*.html` (Subject: первой строкой). Шаблоны:
|
||||
invite/weekly-summary/low-stock. Hangfire: weekly понедельник 07:00,
|
||||
low-stock ежедневно 08:00. 8 unit-тестов.
|
||||
4. [ ] **TD-5 ImportJobRegistry в БД** — сейчас in-memory `ConcurrentDictionary`,
|
||||
теряется при рестарте. Перевод на таблицу `ImportJobs` (Id, OrgId, Status,
|
||||
Progress, Total, StartedAt, FinishedAt, Errors JSON). Миграция.
|
||||
|
|
|
|||
Loading…
Reference in a new issue