// js/components/widgets/produtos-insights/RankingsSection.jsx
// [Wave 29 v224.10 NUCLEAR] Section 'rankings' (Top 15 Receita + Top 15 Qtd + Maior Margem)
// Extraído de ProdutosInsightsTab.jsx L288-311 (literal)
(function(){
  'use strict';

  function RankingsSection(props){
    const STitle = window.ZNX && window.ZNX.widgets && window.ZNX.widgets.STitle;
    const HBar = window.ZNX && window.ZNX.widgets && window.ZNX.widgets.HBar;
    const fmt = window.fmt || function(v){return 'R$ '+Number(v||0).toFixed(2);};
    const {topProducts} = props;
    if(!STitle || !HBar) return null;

    const topByQty = topProducts.slice().sort(function(a,b){return b.qty-a.qty;});
    const topByMargin = topProducts.filter(function(p){return p.qty>=5;}).sort(function(a,b){return b.margin-a.margin;});

    return (
      <>
        <div style={{display:'grid',gridTemplateColumns:'1fr 1fr',gap:16,marginBottom:16}}>
          <div className="card">
            <STitle t="🏆 Top 15 — Receita" s="Todos os tempos"/>
            {topProducts.slice(0,15).map(function(p, i){
              return <HBar key={p.id} label={(i+1)+'. '+p.name+(p.is_decant?' 🧪':'')} value={p.revenue} max={(topProducts[0]&&topProducts[0].revenue)||1} fmtFn={fmt} color={i===0?'#2563EB':i<3?'#EA580C':'#3a3020'} sub={p.qty+'un · '+p.margin.toFixed(0)+'%mg'} width={170} minWidth={90}/>;
            })}
          </div>
          <div className="card">
            <STitle t="📊 Top 15 — Unidades Vendidas"/>
            {topByQty.slice(0,15).map(function(p, i){
              return <HBar key={p.id} label={(i+1)+'. '+p.name+(p.is_decant?' 🧪':'')} value={p.qty} max={(topByQty[0]&&topByQty[0].qty)||1} fmtFn={function(v){return v+' un';}} color={i===0?'#2196f3':i<3?'#2563EB':'#1a2a3a'} sub={fmt(p.revenue)} width={170} minWidth={90}/>;
            })}
          </div>
        </div>
        <div className="card">
          <STitle t="💎 Maior Margem de Lucro" s="Mínimo 5 unidades vendidas"/>
          <div style={{display:'grid',gridTemplateColumns:'1fr 1fr',gap:30}}>
            {topByMargin.slice(0,20).map(function(p, i){
              return <HBar key={p.id} label={(i+1)+'. '+p.name} value={p.margin} max={100} fmtFn={function(v){return v.toFixed(1)+'%';}} color={p.margin>60?'#16A34A':p.margin>35?'#2563EB':'#EA580C'} sub={fmt(p.revenue)} width={170} minWidth={90}/>;
            })}
          </div>
        </div>
      </>
    );
  }

  window.ZNX = window.ZNX || {};
  window.ZNX.widgets = window.ZNX.widgets || {};
  window.ZNX.widgets.produtosInsights = window.ZNX.widgets.produtosInsights || {};
  window.ZNX.widgets.produtosInsights.RankingsSection = RankingsSection;
  window.ProdutosInsightsRankings_v224_10_wave29 = true;
})();
