diff --git a/docs/sprint6-progress.md b/docs/sprint6-progress.md index 87e363c..d6b283c 100644 --- a/docs/sprint6-progress.md +++ b/docs/sprint6-progress.md @@ -7,10 +7,15 @@ unit + integration тесты, коммит порцией, отметка `[x]` ## Чек-лист -1. [ ] **TD-6 Concurrency-токены на документах** — `RowVersion` (PostgreSQL +1. [x] **TD-6 Concurrency-токены на документах** — `RowVersion` (PostgreSQL `xmin` через `IsRowVersion`) на Supply/Demand/RetailSale/Transfer/Inventory. Миграция. EF concurrency check. 409 при конфликте. Тест: два параллельных PUT → один 200, другой 409. + ✅ Postgres `xmin` (system column, без миграции) через + `UseXminAsConcurrencyToken` для 5 документов + `IVersionedEntity`-marker. + SuppliesController PUT принимает `Xmin`, сверяет, 409 при mismatch. + Bonus: Supply.Update перешёл на ExecuteDelete+AddRange (тот же fix что + в RetailSale). 2 интеграционных теста. 2. [ ] **TD-2 FluentValidation** — `FluentValidation.AspNetCore`, validator'ы для SupplyInputDto/RetailSaleInputDto/ProductInputDto/CounterpartyInputDto/ EmployeeInputDto. Auto-register. Тесты на каждый.