docs(sprint4): P1-12b done
This commit is contained in:
parent
640c8d9c22
commit
0854c55d9d
|
|
@ -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), бизнес:
|
||||
|
|
|
|||
Loading…
Reference in a new issue