docs(sprint3): P1-11 done

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
nns 2026-05-28 11:24:38 +05:00
parent dcf8f60b67
commit 96fa4bf990

View file

@ -31,9 +31,13 @@ Multi-tenant: все запросы фильтруются по `OrganizationId`
✅ Cost-snapshot — `Product.Cost` (скользящее среднее; точный FIFO потребует ✅ Cost-snapshot — `Product.Cost` (скользящее среднее; точный FIFO потребует
партий и вынесен из scope). Margin = profit/revenue·100, при revenue=0 партий и вынесен из scope). Margin = profit/revenue·100, при revenue=0
возвращаем 0. Возврат вычитает и выручку, и COGS симметрично. 3 интеграционных. возвращаем 0. Возврат вычитает и выручку, и COGS симметрично. 3 интеграционных.
4. [ ] **P1-11 Отчёт «ABC-анализ»** — топ товаров по выручке за период, 4. [x] **P1-11 Отчёт «ABC-анализ»** — топ товаров по выручке за период,
классы A/B/C по Парето (A=80%, B=15%, C=5% накопительной выручки). классы A/B/C по Парето (A=80%, B=15%, C=5% накопительной выручки).
Параметр метрики (выручка/прибыль/маржа). Web с визуализацией. Параметр метрики (выручка/прибыль/маржа). Web с визуализацией.
`GET /api/reports/abc?metric=revenue|profit|margin`. Граница A —
`cumulativeShare ≤ 80`, B — `≤ 95`, C — остальное. Товары с
неположительной метрикой исключаются. Web: цветные плашки класса +
полоса накопительной доли. 4 интеграционных теста.
5. [ ] **P1-19 OpenAPI / Swagger**`Swashbuckle.AspNetCore`, 5. [ ] **P1-19 OpenAPI / Swagger**`Swashbuckle.AspNetCore`,
`/swagger/v1/swagger.json` в Development. Сгенерировать TS-клиент для `/swagger/v1/swagger.json` в Development. Сгенерировать TS-клиент для
food-market.web (`openapi-typescript`/`nswag`) и подключить для пары food-market.web (`openapi-typescript`/`nswag`) и подключить для пары