// js/components/widgets/clientes/BlockedClientAlert.jsx
// [v224.123 NUCLEAR] Popup educativo quando vendedora tenta operar (venda/orçamento/receber)
// um cliente bloqueado. Padrão window.Modal + title/onClose (SEM isOpen; o PAI renderiza
// condicional). Display-only — lê blocked_reason do objeto client (snake_case via blob).
(function(){
  'use strict';

  function BlockedClientAlert(props){
    var client = props.client || {};
    var onClose = props.onClose || function(){};
    var Modal = window.Modal;
    if (!Modal) {
      if (window.Sentry && typeof window.Sentry.captureMessage === 'function') {
        try { window.Sentry.captureMessage('[v224.123] BlockedClientAlert missing Modal', 'error'); } catch(e){}
      }
      console.error('[BlockedClientAlert] Modal faltando');
      return null;
    }
    var name = client.name || props.name || 'Cliente';
    var reason = (typeof window.znxClientBlockedReason === 'function')
      ? window.znxClientBlockedReason(client)
      : (client.blocked_reason || client.blockedReason || '');
    if (!reason) reason = props.reason || '';

    return (
      <Modal title="🚫 Cliente bloqueado" onClose={onClose}>
        <div style={{display:'flex',flexDirection:'column',gap:14}}>
          <div style={{background:'#FEF2F2',border:'1px solid #FCA5A5',borderRadius:10,padding:'14px 16px'}}>
            <div style={{fontSize:14,fontWeight:800,color:'#B91C1C',marginBottom:6}}>{name} está bloqueado</div>
            <div style={{fontSize:13,color:'#7F1D1D',lineHeight:1.5}}>
              Não é possível criar vendas, orçamentos ou contas a receber para este cliente.
            </div>
          </div>
          {reason && (
            <div style={{fontSize:13,color:'#374151'}}>
              <span style={{fontWeight:700,color:'#1B2A4A'}}>Motivo: </span>{reason}
            </div>
          )}
          <div style={{fontSize:12,color:'#6B7280',background:'#F9FAFB',borderRadius:8,padding:'10px 12px'}}>
            ℹ️ Apenas um administrador pode desbloquear este cliente. Fale com o admin se precisar operar com ele.
          </div>
          <div style={{display:'flex',justifyContent:'flex-end'}}>
            <button className="btn-gold" onClick={onClose}>Entendi</button>
          </div>
        </div>
      </Modal>
    );
  }

  window.ZNX = window.ZNX || {};
  window.ZNX.widgets = window.ZNX.widgets || {};
  window.ZNX.widgets.clientes = window.ZNX.widgets.clientes || {};
  window.ZNX.widgets.clientes.BlockedClientAlert = BlockedClientAlert;
})();
