/* ============ Тендеры (нативный паттерн портала) ============ */

function Tenders({openTrace, notify, search}){
  const [sourceF,setSourceF]=useState('all');
  const [selected,setSelected]=useState(null);
  const sources=[...new Set(SW_SALES.tenders.map(t=>t.source))];
  const rows=SW_SALES.tenders.filter(t=>{
    if(sourceF!=='all' && t.source!==sourceF) return false;
    const q=(search||'').trim().toLowerCase();
    if(q && !(t.title.toLowerCase().includes(q)||t.customer.toLowerCase().includes(q))) return false;
    return true;
  }).sort((a,b)=>b.relevance-a.relevance);

  return (
    <div className="content fade-in">
      <PageHead title="Тендеры" sub={`${SW_SALES.tenders.length} лотов найдено · агент проверяет площадки 24/7`}/>

      <div style={{marginBottom:16}}>
        <AnnotationStrip agent="Мониторинг тендеров" summary={`нашёл ${SW_SALES.tenders.length} релевантных лотов · ${SW_SALES.tenders.filter(t=>t.draftReady).length} с готовыми черновиками`} confidence={92} artifactsCount={SW_SALES.tenders.length} traceId="TR-2026-08885" onWhy={openTrace}/>
      </div>

      <div className="chips" style={{marginBottom:16}}>
        <button className={'chip'+(sourceF==='all'?' active':'')} onClick={()=>setSourceF('all')}>Все источники <span style={{opacity:.6}}>{SW_SALES.tenders.length}</span></button>
        {sources.map(s=><button key={s} className={'chip'+(sourceF===s?' active':'')} onClick={()=>setSourceF(s)}>{s} <span style={{opacity:.6}}>{SW_SALES.tenders.filter(t=>t.source===s).length}</span></button>)}
      </div>

      <div className="card" style={{padding:'8px 10px'}}>
        <table className="tbl">
          <thead><tr><th>Лот</th><th>Заказчик · источник</th><th>Объём</th><th>Дедлайн</th><th>Релевантность</th><th>Черновик</th></tr></thead>
          <tbody>
            {rows.map(t=>{
              const days=Math.ceil((t.deadline-SW_SALES.today)/86400000);
              return (
                <tr key={t.id} onClick={()=>setSelected(t)}>
                  <td><div style={{fontSize:14,maxWidth:320,overflow:'hidden',textOverflow:'ellipsis',whiteSpace:'nowrap'}}>{t.title}</div><div className="mono t-mut">{t.id}</div></td>
                  <td><div style={{fontSize:14}}>{t.customer}</div><div className="t-mut">{t.source}</div></td>
                  <td className="t-mut" style={{fontSize:14}}>{t.lot}</td>
                  <td><div className="mono">{SW_SALES.dstr(t.deadline)}</div><div className="t-mut">через {days} дн.</div></td>
                  <td><ConfidencePill value={t.relevance}/></td>
                  <td>{t.draftReady ? <span className="row" style={{gap:6,fontSize:13}}><AgentMark size="sm"/>готов</span> : <span className="t-mut">—</span>}</td>
                </tr>
              );
            })}
          </tbody>
        </table>
      </div>

      {selected && <TenderDrawer tender={selected} onClose={()=>setSelected(null)} openTrace={openTrace} notify={notify}/>}
    </div>
  );
}

function TenderDrawer({tender, onClose, openTrace, notify}){
  return (
    <div className="scrim" onClick={onClose}>
      <div className="drawer wide" onClick={e=>e.stopPropagation()}>
        <div className="drawer-head">
          <div style={{flex:1}}>
            <div className="row" style={{gap:10,marginBottom:8}}>
              <ConfidencePill value={tender.relevance}/>
              <span className="pill pill-gray"><span className="pdot"></span>{tender.source}</span>
            </div>
            <div style={{fontFamily:'var(--display)',fontWeight:700,fontSize:21,letterSpacing:'-.4px',lineHeight:1.3}}>{tender.title}</div>
            <div className="muted" style={{marginTop:6}}><span className="mono">{tender.id}</span> · {tender.customer} · дедлайн {SW_SALES.dstr(tender.deadline)}</div>
          </div>
          <button className="x-btn" onClick={onClose}><Icon name="x" size={18}/></button>
        </div>
        <div className="drawer-body">
          <div style={{marginBottom:18}}>
            <AnnotationStrip agent="Мониторинг тендеров" summary={`релевантность ${tender.relevance}% · маршрут совпадает · объём в ICP`} confidence={tender.relevance} artifactsCount={2} traceId={tender.traceId} onWhy={openTrace}/>
          </div>

          <div className="def-row"><span className="k">Объём лота</span><span className="v">{tender.lot}</span></div>
          <div className="def-row"><span className="k">Оценочная сумма</span><span className="v">{tender.estimatedValue||'—'}</span></div>
          <div className="def-row"><span className="k">Заказчик</span><span className="v">{tender.customer}</span></div>

          {tender.draftReady && tender.draftText && (
            <div style={{marginTop:20}}>
              <div className="t-mut" style={{textTransform:'uppercase',letterSpacing:'.5px',marginBottom:10}}>Черновик отклика</div>
              <div className="agent-draft" style={{borderRadius:16,padding:'18px 22px'}}>
                <div className="agent-draft-chip"><AgentMark size="sm"/>Драфт агента · правок: 0</div>
                <div style={{fontSize:14,lineHeight:1.7,whiteSpace:'pre-line',marginTop:6}}>{tender.draftText}</div>
              </div>
            </div>
          )}

          <div className="row" style={{gap:12,marginTop:22}}>
            <button className="btn btn-dark btn-block" onClick={()=>{notify('Отклик отправлен'); onClose();}}><Icon name="send" size={16}/>Отправить отклик</button>
            <button className="btn btn-light btn-block"><Icon name="edit" size={16}/>Редактировать</button>
          </div>
        </div>
      </div>
    </div>
  );
}

window.Tenders = Tenders;
