Update bible: competitors API endpoints and pricelist deletion/competitor sections

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Mikhail Chusavitin
2026-03-13 10:24:34 +03:00
parent 9fde087d0a
commit 9b9b343f0c
2 changed files with 36 additions and 0 deletions

View File

@@ -129,3 +129,22 @@ Task type: `TaskTypePricelistCreate`.
- Service: `internal/services/pricelist/service.go`
- Warehouse calc: `internal/warehouse/snapshot.go`
- Handler: `internal/handlers/pricelist.go`
---
## Pricelist Deletion Guard
`CountUsage(id)` checks `qt_configurations` for references across **all three** pricelist columns:
`pricelist_id`, `warehouse_pricelist_id`, `competitor_pricelist_id`.
A pricelist is only deletable when all three counts are zero.
---
## Competitor Pricelist
- **Source**: `competitor`
- **Rebuilt via**: `POST /api/competitors/pricelist` (task type: `competitor_import`)
- **Logic**: Latest quote per `(competitor_id, partnumber)` across ALL active competitors → apply each competitor's `expected_discount_pct``weighted_median` per lot → insert into `qt_pricelist_items`
- **price_method**: `weighted_median`, **price_period_days**: `0`
- Quotes stored in `partnumber_log_competitors`; unmapped p/ns recorded in `qt_vendor_partnumber_seen` with `source_type = 'competitor:<code>'`