Semih Yesilyurt
532e1ad9ef
feat(part-prices): parça kodu bazlı tedarikçi fiyat geçmişi + OEM sayfasında p50/p95/p99 grafiği
- pg: part_price_tracks + part_price_daily (0018) — (kod, kaynak, gün) başına
stoktaki tekliflerin p50/p95/p99 + teklif sayısı; source='supplier' şimdilik,
perakende ileride aynı tabloya 'retail' olarak girer. Tedarikçi kimliği yok.
- API: GET /part-prices/series (ilk istekte takip history'sinden lazy-backfill,
sonrası salt-pg + Redis) ve POST /part-prices/current-batch (sayfadaki kodlar
için canlı güncel istatistik). P-servisi sözleşmesi: asla throw yok, fail-open.
- Worker: part-price-refresh cron'u 19:30 Europe/Istanbul (takip sync'i 19:05'te
bitiyor) — izlenen kodlara bugünün satırını upsert eder, sku_map'i artımlı
bakar, Redis cache düşürür. SUPPLIER_PRICE_DB_* yoksa sessiz no-op.
- Kaynak köprüsü: takip.sku_map (code_norm → product_id; tam sku / ilk-boşluk /
ilk-tire sonrası normalize adayları) vmi MySQL'inde kurulu; 6,8M satır.
- Web: OEM detayında "Tedarikçi fiyat analizi" kartı (güncel medyan + P95/P99 +
teklif sayısı + 30g delta, 30G/90G/Tümü aralıklı step grafik, recharts) ve
article/muadil/OE satırlarında fiyat çipi → dialog'da tam geçmiş.
- Fix(p): td snapshot'ında gerçek üretici kodu articles.name'de (article_number
%96 upstream sayısal ID) — sayfa artık kopyalanabilir gerçek kodu gösteriyor.
- compose: SUPPLIER_PRICE_DB_ENABLED/URL api+worker bloklarına eklendi.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 13:33:37 +03:00
..
2026-06-12 13:33:37 +03:00
2026-05-12 07:22:51 +00:00
2026-05-12 06:13:34 +00:00
2026-05-12 11:35:05 +00:00
2026-05-12 12:04:23 +00:00
2026-05-13 22:42:28 +00:00
2026-05-18 00:48:39 +03:00
2026-05-18 09:34:52 +03:00
2026-05-24 01:02:00 +03:00
2026-05-24 17:40:10 +03:00
2026-05-25 13:28:32 +03:00
2026-06-02 02:08:57 +03:00
2026-06-04 14:28:39 +03:00
2026-06-04 17:04:17 +03:00
2026-06-09 23:47:33 +03:00
2026-06-11 17:27:48 +03:00
2026-06-12 00:00:51 +03:00
2026-06-12 00:26:20 +03:00
2026-06-12 10:48:36 +03:00
2026-06-12 13:33:37 +03:00