// js/components/widgets/orcamentos/ConcurrentEditModal.jsx
// [Wave 4 KIMI 2026-05-15] Extraído de Orcamentos.jsx L1367-1399 — refactor zero-lógica.
// Padrão: IIFE + window.ZNX.widgets.orcamentos.X namespace + props injection explícita.
//
// [ONDA-E E3 2026-05-11] Modal edição concorrente.
// Sentry ZAYNEX-ERP-R: 58 events em 7d. Mostrava erro técnico crú no toast.
// Agora: refetch silencioso + retry automático já feito no saveEdit. Se 2º também falhar, abre este modal.
//
// Props (validadas FASE 1.5 = 5 props):
//   concurrentEditModal: object {freshQuote} | null
//   setConcurrentEditModal: setter (limpa)
//   setQuotes: setter array (atualiza quote local com fresh)
//   setModal: setter (fecha modal edição)
//   editIdemKeyRef: ref ({current}) — reset pra null pós-reload
//
// Globals runtime: toast (window.toast).
(function() {
  'use strict';

  function ConcurrentEditModal({concurrentEditModal, setConcurrentEditModal, setQuotes, setModal, editIdemKeyRef}){
    if(!concurrentEditModal) return null;
    return (
      <div className="modal-overlay" style={{zIndex:1100}}>
        <div className="modal" style={{maxWidth:520,border:'1px solid #F59E0B66'}}>
          <div style={{display:'flex',alignItems:'center',gap:12,marginBottom:16}}>
            <span style={{fontSize:28}}>👥</span>
            <div>
              <div style={{fontSize:16,fontWeight:700,color:'#92400E'}}>Outra pessoa atualizou esse orçamento</div>
              <div style={{fontSize:13,color:'#9CA3AF'}}>Suas alterações não foram salvas pra evitar sobrescrever</div>
            </div>
          </div>
          <div style={{background:'#FFFBEB',border:'1px solid #FCD34D',borderRadius:8,padding:14,marginBottom:16,fontSize:13,color:'#78350F',lineHeight:1.5}}>
            Enquanto você editava esse orçamento, outra pessoa (ou outra aba sua) salvou alterações.
            Pra não perder o trabalho dela, suas alterações ficaram só no formulário aberto.
            <br/><br/>
            <strong>Próximo passo:</strong> recarregue os dados, veja o que mudou e refaça suas alterações em cima da versão nova.
          </div>
          <div style={{display:'flex',gap:10,justifyContent:'flex-end'}}>
            <button className="btn-outline" onClick={()=>{setConcurrentEditModal(null);}}>✕ Continuar editando (não salva)</button>
            <button className="btn-gold" onClick={()=>{
              // Recarregar: fecha modal de conflito, fecha modal de edição, refresca quote local pro fresh
              const fresh=concurrentEditModal.freshQuote;
              if(fresh){
                setQuotes(prev=>prev.map(q=>q.id===fresh.id?{...q,...fresh,updatedAt:fresh.updated_at}:q));
              }
              setConcurrentEditModal(null);
              setModal(null);
              editIdemKeyRef.current=null;
              toast('🔄 Orçamento recarregado. Abra novamente pra editar a versão atualizada.');
            }}>🔄 Recarregar dados</button>
          </div>
        </div>
      </div>
    );
  }

  window.ZNX = window.ZNX || {};
  window.ZNX.widgets = window.ZNX.widgets || {};
  window.ZNX.widgets.orcamentos = window.ZNX.widgets.orcamentos || {};
  window.ZNX.widgets.orcamentos.ConcurrentEditModal = ConcurrentEditModal;
})();
