import React from 'react'; interface VendorStockBadgeProps { asin: string; vendorStockMap?: Map; mode: 'eu' | 'uk'; avgWeeklySales?: number; } export const VendorStockBadge: React.FC = ({ asin, vendorStockMap, mode, avgWeeklySales }) => { if (!vendorStockMap || !asin) return null; const stockData = vendorStockMap.get(asin.toUpperCase()); if (!stockData) return null; const stock = mode === 'uk' ? stockData.uk : stockData.eu; // Calculate Weeks of Coverage (WOC) // If we have sales velocity, calculate coverage. // If sales are 0 but we have stock, coverage is effectively infinite (> 4 weeks) -> Green. // If sales are 0 and stock is 0, coverage is 0 -> Red. let woc: number | null = null; const velocity = avgWeeklySales || 0; if (velocity > 0) { woc = stock / velocity; } else if (stock > 0) { woc = 999; // Infinite/Safe } else { woc = 0; // No stock, no sales -> Empty/Red } const wocColor = woc < 4 ? 'text-rose-500' : 'text-emerald-500'; const wocText = woc === 999 ? '> 52 Weeks' : `${woc.toFixed(1)} Weeks Cover`; const themeClasses = "bg-slate-200 text-slate-800 border-slate-300 shadow-sm"; return (
Vendor {stock.toLocaleString('de-DE')}
{wocText}
); };