Deduplicate vendor seen by partnumber and fix vendor mappings list

This commit is contained in:
Mikhail Chusavitin
2026-02-20 15:37:41 +03:00
parent 7d402b756d
commit 60563509e4
8 changed files with 396 additions and 91 deletions

View File

@@ -41,7 +41,9 @@ qt_lot_bundle_items: bundle_lot_name, lot_name, qty
### 4. Ignore-логика
- **Не использовать** `stock_ignore_rules` для новой логики.
- Использовать `qt_vendor_partnumber_seen.is_ignored` (cross-source флаг).
- Использовать `qt_vendor_partnumber_seen.is_ignored`.
- `qt_vendor_partnumber_seen` хранится в формате **1 строка на partnumber** (vendor/source не участвуют в уникальности).
- Ignore применяется по `partnumber` (одинаково для записей с vendor и без vendor).
### 5. Клиентская совместимость
@@ -65,9 +67,11 @@ qt_lot_bundle_items: bundle_lot_name, lot_name, qty
| `lot_partnumbers` | Канонические маппинги `(vendor, partnumber)``lot_name` |
| `qt_lot_bundles` | Определения бандлов (bundle LOT → описание) |
| `qt_lot_bundle_items` | Состав бандла: `(bundle_lot_name, lot_name, qty)` |
| `qt_vendor_partnumber_seen` | Реестр seen-записей + флаг `is_ignored` |
| `qt_vendor_partnumber_seen` | Реестр seen-записей (уникально по `partnumber`) + флаг `is_ignored` |
Миграция: `migrations/023_vendor_partnumber_global_mapping.sql`
Миграции:
- `migrations/023_vendor_partnumber_global_mapping.sql`
- `migrations/025_dedup_vendor_seen_by_partnumber.sql`
---
@@ -76,6 +80,7 @@ qt_lot_bundle_items: bundle_lot_name, lot_name, qty
| Роль | Файл |
|------|------|
| Миграция | `migrations/023_vendor_partnumber_global_mapping.sql` |
| Миграция | `migrations/025_dedup_vendor_seen_by_partnumber.sql` |
| Резолвер | `internal/lotmatch/matcher.go` |
| Сервис | `internal/services/vendor_mapping.go` |
| API | `internal/handlers/pricing.go` |