// js/components/widgets/produtos/CatalogoPdfModal.jsx
// [Wave 7 KIMI 2026-05-17] Extraído de Produtos.jsx L1156-1195 (40L).
// Padrão: IIFE + window.ZNX.widgets.produtos.CatalogoPdfModal namespace + props injection.
//
// Modal "Gerar Catálogo PDF" — filtros (marca/categoria/gênero) + opções (preço/estoque) +
// preview count + botões cancelar/gerar.
//
// Props (6):
//   allBrands: array — marcas disponíveis
//   catOpts: object {brands, categoria, genero, includePrice, includeStock}
//   setCatOpts: setter — atualiza opções
//   products: array — preview count
//   onClose: fn — fecha modal
//   onGenerate: fn — dispara gerarCatalogoPDF do pai (async)
//
// Deps runtime globals: Modal, SmartSelect, extractBrand (top-level globals, escopo lexical).
(function() {
  'use strict';

  function CatalogoPdfModal({allBrands, catOpts, setCatOpts, products, onClose, onGenerate}){
    return (
      <Modal title="Gerar Catálogo PDF" onClose={onClose}>
        <div className="form-grid">
          <div className="form-group full">
            <label>Filtrar por Marca(s) <span style={{color:'#6B7280',fontWeight:400}}>(deixe vazio para todas)</span></label>
            <div style={{display:'flex',flexWrap:'wrap',gap:6,marginTop:4}}>
              {allBrands.map(b=>(
                <label key={b} style={{display:'flex',alignItems:'center',gap:4,fontSize:12,cursor:'pointer',background:catOpts.brands.includes(b)?'#2a2010':'#1A1A1A',padding:'4px 10px',borderRadius:16,border:`1px solid ${catOpts.brands.includes(b)?'#2563EB55':'#333'}`}}>
                  <input type="checkbox" style={{display:'none'}} checked={catOpts.brands.includes(b)} onChange={()=>setCatOpts(o=>({...o,brands:o.brands.includes(b)?o.brands.filter(x=>x!==b):[...o.brands,b]}))}/>
                  {b}
                </label>
              ))}
            </div>
          </div>
          <div className="form-group">
            <label>Gênero</label>
            <SmartSelect value={catOpts.genero} onChange={val=>setCatOpts(o=>({...o,genero:val}))} options={[{value:'',label:'Todos'},...['Masculino','Feminino','Unissex'].map(g=>({value:g,label:g}))]}/>
          </div>
          <div className="form-group">
            <label>Categoria</label>
            <SmartSelect value={catOpts.categoria} onChange={val=>setCatOpts(o=>({...o,categoria:val}))} options={[{value:'',label:'Todas'},...['Perfume','Creme','Body Mist','Óleo Perfumado','Home Spray','Outro'].map(c=>({value:c,label:c}))]}/>
          </div>
          <div className="form-group" style={{display:'flex',alignItems:'center',gap:10,gridColumn:'1/-1'}}>
            <label style={{display:'flex',alignItems:'center',gap:8,cursor:'pointer',fontWeight:400}}>
              <input type="checkbox" checked={catOpts.includePrice} onChange={e=>setCatOpts(o=>({...o,includePrice:e.target.checked}))}/> Incluir Preço de Venda
            </label>
            <label style={{display:'flex',alignItems:'center',gap:8,cursor:'pointer',fontWeight:400}}>
              <input type="checkbox" checked={catOpts.includeStock} onChange={e=>setCatOpts(o=>({...o,includeStock:e.target.checked}))}/> Incluir Estoque
            </label>
          </div>
        </div>
        <div style={{marginTop:16,padding:'10px 14px',background:'#F8FAFB',borderRadius:6,fontSize:12,color:'#9CA3AF'}}>
          {(()=>{const n=products.filter(p=>{if(catOpts.brands.length>0&&!catOpts.brands.includes(p.brand||extractBrand(p.name)))return false;if(catOpts.categoria&&p.categoria!==catOpts.categoria)return false;if(catOpts.genero&&p.genero!==catOpts.genero)return false;return true;}).length;return`${n} produto${n!==1?'s':''} serão incluídos no catálogo.`;})()}
        </div>
        <div style={{display:'flex',gap:10,marginTop:16,justifyContent:'flex-end'}}>
          <button className="btn-outline" onClick={onClose}>Cancelar</button>
          <button className="btn-gold" onClick={onGenerate}>📄 Gerar PDF</button>
        </div>
      </Modal>
    );
  }

  window.ZNX = window.ZNX || {};
  window.ZNX.widgets = window.ZNX.widgets || {};
  window.ZNX.widgets.produtos = window.ZNX.widgets.produtos || {};
  window.ZNX.widgets.produtos.CatalogoPdfModal = CatalogoPdfModal;
})();
