docs(sprint4): P1-12b done

This commit is contained in:
nns 2026-05-28 12:10:45 +05:00
parent 640c8d9c22
commit 0854c55d9d

View file

@ -16,10 +16,15 @@
с required-полями, конверты `PosSyncResponse` и `PosSaleBatchResponse`,
двойная идемпотентность (batch IdempotencyKey + per-sale ClientSaleId).
3 unit-теста на round-trip сериализации.
2. [ ] **P1-12b POS Sync API**`GET /api/pos/sync?since={iso8601}` возвращает
2. [x] **P1-12b POS Sync API**`GET /api/pos/sync?since={iso8601}` возвращает
изменения после ts (товары, цены, остатки, контрагенты). `POST /api/pos/sales`
принимает батч продаж с idempotency-key (повторный запрос возвращает прежний
результат без дублей). Multi-tenant: POS-токен ↔ один магазин.
`/api/pos/v1/sync` и `/api/pos/v1/sales` (URL-versioned). Двойная
идемпотентность: `PosBatchAck` (unique idx OrgId+Key, race ловится 23505)
+ ClientSaleId через маркер `pos:GUID32` в `RetailSale.Notes`. Pre-flight
на остатки — недостающие позиции попадают в `Failed`, остальные проводятся.
7 интеграционных тестов.
3. [ ] **P1-17 Метрики Prometheus**`prometheus-net.AspNetCore`, `/metrics`.
`http_requests_total`, `http_request_duration_seconds`,
`db_query_duration_seconds` (через EF interceptor), бизнес: