const WA_NUM='96599300074';
function AssistantSection({t,lang}){
  const {Button}=window.IonMediaDesignSystem_c5c366;
  const [msgs,setMsgs]=React.useState([]);
  const [input,setInput]=React.useState('');
  const [busy,setBusy]=React.useState(false);
  const [summary,setSummary]=React.useState(null);
  const logRef=React.useRef(null);
  React.useEffect(()=>{if(logRef.current)logRef.current.scrollTop=logRef.current.scrollHeight},[msgs,busy,summary]);
  const sys=`You are the studio assistant for Ion Media Studio (آيون ميديا), a boutique photography studio in Kuwait run by Sulaiman Boodai. Visitors describe what they need; you qualify them for a quote.
Tone: calm, warm, precise. No hype, no exclamation marks, no emoji. Reply in the visitor's language and register: English gets English; Arabic gets Arabic — and if they write in Kuwaiti/Gulf dialect (e.g. ابي، ابغى، شكم، جم، وايد، الحين), answer in natural, polite Kuwaiti dialect, not formal فصحى. Keep numbers and prices in Western digits (KWD). Technical terms like ريلز/سوشيال ميديا are fine.
You close the ENTIRE booking in chat — never say someone will contact them later to coordinate. Never assume the visitor's gender; use gender-neutral phrasing until they state it. Collect, conversationally, ONE OR TWO questions per turn (max), only what is still missing:
1. Shoot type (portrait session / corporate event / conference / product launch / wedding or private celebration / sports / social-media content) 2. Date AND start time 3. Exact location/venue in Kuwait 4. Duration in hours 5. Deliverables (photo count, digital or prints, video/reels?) 6. If social media marketing interests them: platforms + monthly management? 7. Payment method — KNET link, cash, or bank transfer; a 50% deposit confirms the booking (rest on delivery) 8. Name and WhatsApp number or email.
Pricing anchors (KWD, starting): portraits Essential 45 / Signature 85 / Editorial 150; events Half-Day(3h) 120 / Full-Day(6h) 220 / Premium(2 shooters,reel) 380; social retainers scoped separately. Never promise a final price.
When you have items 1,2,3,4,5,7 and 8, STOP asking and output your final message: ONE short sentence confirming the booking request is complete and the order summary is on its way to the studio, then on a new line exactly:
<summary>{"type":"…","date":"…","time":"…","location":"…","hours":"…","deliverables":"…","social":"…","payment":"…","name":"…","contact":"…","estimate_kd":"120–180","package":"closest package name"}</summary>
Fields you never learned: "-". estimate_kd is an indicative range built from the anchors. Keep every reply under 80 words before the summary tag.`;
  async function send(){
    const text=input.trim();
    if(!text||busy)return;
    const next=[...msgs,{role:'user',content:text}];
    setMsgs(next);setInput('');setBusy(true);
    try{
      const raw=await window.claude.complete({system:sys,max_tokens:600,messages:next.map(m=>({role:m.role,content:m.content}))});
      const m=raw.match(/<summary>([\s\S]*?)<\/summary>/);
      const visible=raw.replace(/<summary>[\s\S]*?<\/summary>/,'').trim();
      setMsgs(v=>[...v,{role:'assistant',content:visible}]);
      if(m){try{const sj=JSON.parse(m[1]);setSummary(sj);fetch('/api/order',{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify({order:sj,lang})}).catch(()=>{})}catch(e){}}
    }catch(e){
      setMsgs(v=>[...v,{role:'assistant',content:lang==='ar'?'تعذر الاتصال الآن — راسلنا مباشرة على واتساب 99300074.':'We could not connect just now — message us directly on WhatsApp 99300074.'}]);
    }
    setBusy(false);
  }
  function waLink(){
    const s=summary||{};
    const lines=lang==='ar'
      ?['مرحبًا آيون ميديا، هذا ملخص طلبي:','النوع: '+(s.type||'-'),'التاريخ: '+(s.date||'-'),'الوقت: '+(s.time||'-'),'الموقع: '+(s.location||'-'),'المدة: '+(s.hours||'-'),'التسليمات: '+(s.deliverables||'-'),'سوشيال ميديا: '+(s.social||'-'),'الدفع: '+(s.payment||'-'),'الاسم: '+(s.name||'-')]
      :['Hello Ion Media, here is my brief:','Type: '+(s.type||'-'),'Date: '+(s.date||'-'),'Time: '+(s.time||'-'),'Location: '+(s.location||'-'),'Duration: '+(s.hours||'-'),'Deliverables: '+(s.deliverables||'-'),'Social media: '+(s.social||'-'),'Payment: '+(s.payment||'-'),'Name: '+(s.name||'-')];
    return 'https://wa.me/'+WA_NUM+'?text='+encodeURIComponent(lines.join('\n'));
  }
  const rows=[['type',lang==='ar'?'النوع':'Type'],['date',lang==='ar'?'التاريخ':'Date'],['time',lang==='ar'?'الوقت':'Time'],['location',lang==='ar'?'الموقع':'Location'],['hours',lang==='ar'?'المدة':'Duration'],['deliverables',lang==='ar'?'التسليمات':'Deliverables'],['social',lang==='ar'?'سوشيال ميديا':'Social'],['payment',lang==='ar'?'الدفع':'Payment'],['name',lang==='ar'?'الاسم':'Name'],['contact',lang==='ar'?'التواصل':'Contact']];
  return <div className="rgrid" style={{display:'grid',gridTemplateColumns:'minmax(0,1fr) minmax(0,1.25fr)',gap:'56px',alignItems:'start'}}>
    <div>
      <SectionHead t={t.ai}/>
      <p style={{margin:'18px 0 0',fontSize:'15px',lineHeight:1.75,color:'var(--text-secondary)',maxWidth:'380px'}}>{t.ai.body}</p>
      <p style={{margin:'14px 0 0',font:'11px var(--font-mono)',letterSpacing:'.08em',color:'var(--text-tertiary)'}}>{t.ai.disclaimer}</p>
    </div>
    <div style={{background:'var(--surface-card)',border:'1px solid var(--border-soft)',borderRadius:'var(--radius-lg)',boxShadow:'var(--shadow-card)',overflow:'hidden',display:'flex',flexDirection:'column',minHeight:'440px'}}>
      <div style={{padding:'14px 22px',borderBottom:'1px solid var(--border-hairline)',display:'flex',alignItems:'center',gap:'10px'}}>
        <span style={{width:'20px',height:'20px',borderRadius:'50%',border:'1px solid var(--red-tint)',background:'var(--surface-tint)',display:'inline-flex',alignItems:'center',justifyContent:'center'}}><span style={{width:'6px',height:'6px',borderRadius:'50%',background:'var(--accent)'}}></span></span>
        <span style={{font:'600 11px var(--font-sans)',letterSpacing:'.14em',textTransform:'uppercase'}}>{t.ai.kicker}</span>
        {msgs.length>0&&<button onClick={()=>{setMsgs([]);setSummary(null)}} style={{marginInlineStart:'auto',background:'none',border:'none',cursor:'pointer',font:'600 10px var(--font-sans)',letterSpacing:'.12em',textTransform:'uppercase',color:'var(--text-tertiary)'}}>{t.ai.restart}</button>}
      </div>
      <div ref={logRef} style={{flex:1,overflowY:'auto',padding:'22px',display:'flex',flexDirection:'column',gap:'12px',maxHeight:'420px'}}>
        {msgs.length===0&&<div style={{margin:'auto',textAlign:'center',color:'var(--text-tertiary)',fontSize:'13px',maxWidth:'300px',lineHeight:1.7}}>{lang==='ar'?'ابدأ بوصف ما تحتاجه — جلسة، فعالية، أو محتوى.':'Start by describing what you need — a session, an event, or content.'}</div>}
        {msgs.map((m,i)=><div key={i} dir="auto" style={{alignSelf:m.role==='user'?'flex-end':'flex-start',maxWidth:'82%',padding:'11px 16px',borderRadius:'var(--radius-md)',fontSize:'14px',lineHeight:1.65,background:m.role==='user'?'var(--charcoal)':'var(--off-white)',color:m.role==='user'?'var(--off-white)':'var(--text-primary)'}}>{m.content}</div>)}
        {busy&&<div style={{alignSelf:'flex-start',padding:'11px 16px',borderRadius:'var(--radius-md)',fontSize:'13px',background:'var(--off-white)',color:'var(--text-tertiary)'}}>{t.ai.thinking}</div>}
        {summary&&<div style={{border:'1px solid var(--border-soft)',borderRadius:'var(--radius-md)',overflow:'hidden',marginTop:'6px'}}>
          <div style={{background:'var(--accent)',color:'#fff',padding:'10px 16px',font:'600 11px var(--font-sans)',letterSpacing:'.14em',textTransform:'uppercase'}}>{t.ai.sum}</div>
          <div style={{padding:'14px 16px',display:'flex',flexDirection:'column',gap:'6px'}}>
            {rows.map(([k,label])=>summary[k]&&summary[k]!=='-'&&<div key={k} style={{display:'flex',gap:'12px',fontSize:'13px'}}><span style={{width:'96px',flexShrink:0,color:'var(--text-tertiary)',font:'11px var(--font-mono)',letterSpacing:'.06em',paddingTop:'2px'}}>{label.toUpperCase()}</span><span>{summary[k]}</span></div>)}
            {summary.estimate_kd&&summary.estimate_kd!=='-'&&<div style={{display:'flex',gap:'12px',fontSize:'13px',borderTop:'1px solid var(--border-hairline)',paddingTop:'10px',marginTop:'6px'}}><span style={{width:'96px',flexShrink:0,color:'var(--text-tertiary)',font:'11px var(--font-mono)',letterSpacing:'.06em',paddingTop:'2px'}}>{t.ai.est.toUpperCase()}</span><span style={{fontWeight:600,color:'var(--accent)'}}>{summary.estimate_kd} {t.pack.kd}{summary.package&&summary.package!=='-'&&<span style={{fontWeight:400,color:'var(--text-secondary)'}}> · {summary.package}</span>}</span></div>}
            <div style={{display:'flex',gap:'12px',alignItems:'center',marginTop:'10px'}}>
              <a href={waLink()} target="_blank" rel="noopener" style={{display:'inline-flex',alignItems:'center',gap:'8px',background:'var(--accent)',color:'#fff',borderRadius:'var(--radius-sm)',padding:'11px 20px',font:'600 11px var(--font-sans)',letterSpacing:'.12em',textTransform:'uppercase'}}>{t.ai.wa}</a>
              <span style={{fontSize:'12px',color:'var(--text-tertiary)'}}>{t.ai.reply}</span>
            </div>
          </div>
        </div>}
      </div>
      <div style={{borderTop:'1px solid var(--border-hairline)',padding:'14px',display:'flex',gap:'10px'}}>
        <textarea value={input} onChange={e=>setInput(e.target.value)} onKeyDown={e=>{if(e.key==='Enter'&&!e.shiftKey){e.preventDefault();send()}}} placeholder={t.ai.ph} rows={2} style={{flex:1,resize:'none',fontFamily:lang==='ar'?'var(--font-arabic)':'var(--font-sans)',fontSize:'14px',lineHeight:1.6,color:'var(--text-primary)',background:'var(--off-white)',border:'1px solid var(--border-soft)',borderRadius:'var(--radius-sm)',padding:'11px 14px',outline:'none'}}></textarea>
        <Button onClick={send} disabled={busy||!input.trim()} style={{alignSelf:'flex-end'}}>{t.ai.send}</Button>
      </div>
    </div>
  </div>;
}
window.AssistantSection=AssistantSection;
