From 592399f90e1641784e43240c3461aaec2d80fa9f Mon Sep 17 00:00:00 2001 From: nns Date: Fri, 9 Oct 2026 08:27:15 +0500 Subject: [PATCH] =?UTF-8?q?fix(data-quality):=20=C2=AB=D0=B1=D0=B5=D0=B7?= =?UTF-8?q?=20=D0=B3=D1=80=D1=83=D0=BF=D0=BF=D1=8B=C2=BB=20=E2=80=94=20?= =?UTF-8?q?=D1=82=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20=D1=81=D0=BB=D1=83=D0=B6?= =?UTF-8?q?=D0=B5=D0=B1=D0=BD=D1=8B=D0=B9=20=D0=BA=D0=BE=D1=80=D0=B5=D0=BD?= =?UTF-8?q?=D1=8C,=20=D0=BD=D0=B5=20=D0=BD=D0=B0=D1=81=D1=82=D0=BE=D1=8F?= =?UTF-8?q?=D1=89=D0=B8=D0=B5=20=D0=B2=D0=B5=D1=80=D1=85=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=20=D0=BA=D0=B0=D1=82=D0=B5=D0=B3=D0=BE=D1=80=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Раньше флагировались все товары в группах с ParentId==null (включая реальные верхнеуровневые категории вроде «Молочные»). Теперь — только товары в служебной группе «Все товары»/«Без группы». На seed-demo: было 50 (ложно), стало 3 (верно). Co-Authored-By: Claude Opus 4.8 --- src/food-market.api/Services/DataQualityService.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/food-market.api/Services/DataQualityService.cs b/src/food-market.api/Services/DataQualityService.cs index 1c907e0..0a1141f 100644 --- a/src/food-market.api/Services/DataQualityService.cs +++ b/src/food-market.api/Services/DataQualityService.cs @@ -37,10 +37,12 @@ public static HashSet DisabledChecks(string? csv) // ── Запрос «проблемных» товаров для простых проверок ──────────────────────── private IQueryable ProblemQuery(string checkType) => checkType switch { - // Товар в корневой группе или в «Без группы»/«Все товары» (нужно задать группу). + // Товар в служебной «корневой» группе-каталоге «Все товары»/«Без группы» + // (не задана осмысленная группа). Обычные верхнеуровневые категории + // (напр. «Молочные продукты») НЕ считаем «без группы» — это настоящая группа. "no-group" => from p in _db.Products join g in _db.ProductGroups on p.ProductGroupId equals g.Id - where g.ParentId == null || g.Name == "Без группы" || g.Name == "Все товары" + where g.Name == "Без группы" || g.Name == "Все товары" select p, // Нет цены продажи > 0. "no-sale-price" => _db.Products.Where(p => !p.Prices.Any(pr => pr.Amount > 0m)),