docs(sprint5): TD-5 done — все 4 пункта выполнены, итог
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
b963adfa2e
commit
c43f68c39b
|
|
@ -35,10 +35,41 @@ query filter. E2E на изоляцию A vs B где применимо.
|
|||
`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. [x] **TD-5 ImportJobRegistry в БД** — сейчас in-memory `ConcurrentDictionary`,
|
||||
теряется при рестарте. Перевод на таблицу `ImportJobs` (Id, OrgId, Status,
|
||||
Progress, Total, StartedAt, FinishedAt, Errors JSON). Миграция.
|
||||
`MoySkladImportController` использует. Тесты.
|
||||
✅ `Domain.Integrations.ImportJob` (TenantEntity); миграция `Phase8c_ImportJobs`.
|
||||
`ImportJobRegistry` теперь IServiceScopeFactory-backed: `Create` пишет
|
||||
строку немедленно, `SaveAsync` обновляет, `Get/RecentlyFinished` читают
|
||||
из БД. Контроллер `MoySkladImportController.RunInBackgroundAsync` дополнен
|
||||
periodic flush через Timer (каждые 2 сек) + финальный flush в finally —
|
||||
UI видит реальный прогресс, terminal-state сохраняется через рестарт.
|
||||
3 интеграционных теста (survives across scope, RecentlyFinished, tenant-isolation).
|
||||
|
||||
## Итог
|
||||
|
||||
**Все 4 пункта выполнены.** Спринт 5 завершён 2026-05-28.
|
||||
|
||||
Сводка:
|
||||
- **P1-5 Demand** — оптовая отгрузка контрагенту-юрлицу с `DemandPayment.Credit`
|
||||
и `PaidAmount`-полем; 3 интеграционных.
|
||||
- **P1-18 OrgAuditLog** — per-tenant журнал через `SaveChangesInterceptor`,
|
||||
atomic с мутацией, diff в jsonb; 3 интеграционных.
|
||||
- **P1-22 Email** — `IEmailSender.SendHtmlAsync` (multipart) + mustache-light
|
||||
renderer + 3 шаблона + 2 recurring Hangfire-джоба; 8 unit.
|
||||
- **TD-5 ImportJob** — persistence в БД, переживает рестарт, periodic flush
|
||||
для live-прогресса; 3 интеграционных.
|
||||
|
||||
**Сборка:** зелёная.
|
||||
**Тесты:** 35 unit + 68 integration = **103 зелёных**.
|
||||
|
||||
### Что осталось вне scope
|
||||
- ОФД-оператор (нужен внешний участник: `Транском`/`Касса24`);
|
||||
- MoySklad webhook-токены прод;
|
||||
- WPF/POS UI (Windows-SDK);
|
||||
- Стейдж→прод-деплой;
|
||||
- Real SMTP-сервер для прод (Mailgun/Sendgrid/etc).
|
||||
|
||||
## Лог
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue