diff --git a/docs/sprint6-progress.md b/docs/sprint6-progress.md index 5d508ab..ed21a96 100644 --- a/docs/sprint6-progress.md +++ b/docs/sprint6-progress.md @@ -30,9 +30,13 @@ unit + integration тесты, коммит порцией, отметка `[x]` `X-Correlation-ID` или генерируется. Business-логи на Supply.Post / RetailSale.Post с именованными плейсхолдерами. `docs/logging.md` с паттерном + анти-паттернами (string interpolation, PII в логах). -4. [ ] **TD-1 CQRS partial (MediatR)** — `CreateSupplyCommand`, +4. [x] **TD-1 CQRS partial (MediatR)** — `CreateSupplyCommand`, `PostRetailSaleCommand`, `GetSalesReportQuery`. Показать паттерн, не полный рефакторинг. Тесты на handlers. + ✅ MediatR подключён в `food-market.api` с авторегистрацией из + `food-market.application`. 3 handler-образца с абстракциями + (`ISupplyWriter`, `IRetailSalePoster`) — testable без EF/БД. + Контроллеры остались на прежнем flow (поэтапная миграция). 6 unit-тестов. 5. [ ] **P2-4 2FA для админов (TOTP)** — `AuthenticatorTokenProvider`, endpoints `/api/me/2fa/enroll`, `/api/me/2fa/verify`, `/api/me/2fa/disable`. Опционально для Admin+SuperAdmin. При логине с включённым 2FA — два шага.