From 96fa4bf990556b34091b5d2dba3082dd8731fee4 Mon Sep 17 00:00:00 2001 From: nns Date: Thu, 28 May 2026 11:24:38 +0500 Subject: [PATCH] docs(sprint3): P1-11 done Co-Authored-By: Claude Opus 4.7 --- docs/sprint3-progress.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/sprint3-progress.md b/docs/sprint3-progress.md index 33f95a3..86a843c 100644 --- a/docs/sprint3-progress.md +++ b/docs/sprint3-progress.md @@ -31,9 +31,13 @@ Multi-tenant: все запросы фильтруются по `OrganizationId` ✅ Cost-snapshot — `Product.Cost` (скользящее среднее; точный FIFO потребует партий и вынесен из scope). Margin = profit/revenue·100, при revenue=0 возвращаем 0. Возврат вычитает и выручку, и COGS симметрично. 3 интеграционных. -4. [ ] **P1-11 Отчёт «ABC-анализ»** — топ товаров по выручке за период, +4. [x] **P1-11 Отчёт «ABC-анализ»** — топ товаров по выручке за период, классы A/B/C по Парето (A=80%, B=15%, C=5% накопительной выручки). Параметр метрики (выручка/прибыль/маржа). Web с визуализацией. + ✅ `GET /api/reports/abc?metric=revenue|profit|margin`. Граница A — + `cumulativeShare ≤ 80`, B — `≤ 95`, C — остальное. Товары с + неположительной метрикой исключаются. Web: цветные плашки класса + + полоса накопительной доли. 4 интеграционных теста. 5. [ ] **P1-19 OpenAPI / Swagger** — `Swashbuckle.AspNetCore`, `/swagger/v1/swagger.json` в Development. Сгенерировать TS-клиент для food-market.web (`openapi-typescript`/`nswag`) и подключить для пары