Deduplicate vendor seen by partnumber and fix vendor mappings list
This commit is contained in:
@@ -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` |
|
||||
|
||||
Reference in New Issue
Block a user