docs(sprint5): P1-22 done

This commit is contained in:
nns 2026-05-28 16:37:51 +05:00
parent 25d92c989a
commit 2f9bbc858f

View file

@ -25,10 +25,16 @@ query filter. E2E на изоляцию A vs B где применимо.
Белый список типов: Supply/SupplierReturn/RetailSale/Demand/Product/ Белый список типов: Supply/SupplierReturn/RetailSale/Demand/Product/
ProductPrice/ProductBarcode/Counterparty. Web `/audit-log` с фильтрами ProductPrice/ProductBarcode/Counterparty. Web `/audit-log` с фильтрами
и diff-viewer'ом. Tenant-isolation через query-filter. 3 интеграционных. и diff-viewer'ом. Tenant-isolation через query-filter. 3 интеграционных.
3. [ ] **P1-22 Email-шаблоны** — расширить MailKit-сервис: 3. [x] **P1-22 Email-шаблоны** — расширить MailKit-сервис:
`Resources/EmailTemplates/*.html`. Шаблоны: приглашение сотрудника с `Resources/EmailTemplates/*.html`. Шаблоны: приглашение сотрудника с
временным паролем (sendInvite=true), еженедельный summary владельцу временным паролем (sendInvite=true), еженедельный summary владельцу
(Hangfire recurring), low-stock alert (Hangfire daily). Тесты рендеринга. (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`, 4. [ ] **TD-5 ImportJobRegistry в БД** — сейчас in-memory `ConcurrentDictionary`,
теряется при рестарте. Перевод на таблицу `ImportJobs` (Id, OrgId, Status, теряется при рестарте. Перевод на таблицу `ImportJobs` (Id, OrgId, Status,
Progress, Total, StartedAt, FinishedAt, Errors JSON). Миграция. Progress, Total, StartedAt, FinishedAt, Errors JSON). Миграция.