From d5d185cba39833ab39a01198e2947a2edb357f5a Mon Sep 17 00:00:00 2001 From: nns Date: Thu, 28 May 2026 12:00:25 +0500 Subject: [PATCH] =?UTF-8?q?docs(sprint4):=20=D1=87=D0=B5=D0=BA-=D0=BB?= =?UTF-8?q?=D0=B8=D1=81=D1=82=20=E2=80=94=20POS=20Sync=20API=20+=20Prometh?= =?UTF-8?q?eus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 3 пункта (WPF UI вынесен на Windows-этап). Co-Authored-By: Claude Opus 4.7 --- docs/sprint4-progress.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 docs/sprint4-progress.md diff --git a/docs/sprint4-progress.md b/docs/sprint4-progress.md new file mode 100644 index 0000000..3162def --- /dev/null +++ b/docs/sprint4-progress.md @@ -0,0 +1,28 @@ +# Спринт 4 (частичный) — POS Sync API + observability + +Автономная работа. WPF/POS-UI (`food-market.pos`, net8.0-windows) на Linux +не собирается — пропускаем. Здесь только API-сторона синхронизации +и метрики. + +После каждого пункта: `dotnet build` (SDK 8.0.126), unit + integration +тесты, коммит порцией, отметка `[x]`, коммит прогресса. + +## Чек-лист + +1. [ ] **P1-12a Контракты POS в food-market.shared** — DTO `ProductSyncDto`, + `PriceSyncDto`, `StockSyncDto`, `CounterpartySyncDto`, `PosSaleBatchDto` + (с idempotency-key). Версионирование через namespace v1. +2. [ ] **P1-12b POS Sync API** — `GET /api/pos/sync?since={iso8601}` возвращает + изменения после ts (товары, цены, остатки, контрагенты). `POST /api/pos/sales` + принимает батч продаж с idempotency-key (повторный запрос возвращает прежний + результат без дублей). Multi-tenant: POS-токен ↔ один магазин. +3. [ ] **P1-17 Метрики Prometheus** — `prometheus-net.AspNetCore`, `/metrics`. + `http_requests_total`, `http_request_duration_seconds`, + `db_query_duration_seconds` (через EF interceptor), бизнес: + `sales_posted_total`, `supplies_posted_total`, `documents_error_total`. + `docs/observability.md` с образцом Grafana dashboard. + +## Лог + +- Каждый пункт: build + тесты + коммит порцией + отметка [x] + коммит прогресса. +- Все правки на `main` (origin Forgejo), без коммита `global.json`.