docs(sprint4): P1-12b done
This commit is contained in:
parent
640c8d9c22
commit
0854c55d9d
|
|
@ -16,10 +16,15 @@
|
||||||
с required-полями, конверты `PosSyncResponse` и `PosSaleBatchResponse`,
|
с required-полями, конверты `PosSyncResponse` и `PosSaleBatchResponse`,
|
||||||
двойная идемпотентность (batch IdempotencyKey + per-sale ClientSaleId).
|
двойная идемпотентность (batch IdempotencyKey + per-sale ClientSaleId).
|
||||||
3 unit-теста на round-trip сериализации.
|
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`
|
изменения после ts (товары, цены, остатки, контрагенты). `POST /api/pos/sales`
|
||||||
принимает батч продаж с idempotency-key (повторный запрос возвращает прежний
|
принимает батч продаж с idempotency-key (повторный запрос возвращает прежний
|
||||||
результат без дублей). Multi-tenant: POS-токен ↔ один магазин.
|
результат без дублей). 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`.
|
3. [ ] **P1-17 Метрики Prometheus** — `prometheus-net.AspNetCore`, `/metrics`.
|
||||||
`http_requests_total`, `http_request_duration_seconds`,
|
`http_requests_total`, `http_request_duration_seconds`,
|
||||||
`db_query_duration_seconds` (через EF interceptor), бизнес:
|
`db_query_duration_seconds` (через EF interceptor), бизнес:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue