// ── YZ Öngörüleri Sayfası — Akın Haddecilik · Aliağa ───────────────────────

const AI_INSIGHTS_FULL = [
  {
    id:'ai1', priority:'high', category:'Enerji Anomalisi',
    title:'Kaynak İstasyonu 02 — Sürekli Aşırı Tüketim',
    summary:'3 saat boyunca baz değerin %18 üzerinde. Olası neden: aşınmış elektrot veya hatalı kaynak döngüsü.',
    body:'Kaynak İstasyonu 02, 30 günlük baz değeri olan 57.6 kW\'a kıyasla son 3 saatte ortalama 68 kW tüketmiştir. Bu sapma tutarlıdır ve önceki elektrot bozulma olaylarında (3 Nis, 18 Mar) görülen bir örüntüyü izlemektedir. Mevcut kaynak döngü süresi hedef 2.1s yerine 2.4s\'dir ve bu da fazlalığın yaklaşık %12\'sine katkıda bulunmaktadır.',
    action:'Elektrot ucu durumunu inceleyin. P-WLD-204 kaynak programı parametrelerini, özellikle döngü süresi ve akım ayarlarını doğrulayın. Elektrot aşınmışsa (>8.000 kaynak) derhal değiştirin.',
    saving:'Vardiya başı ₺1.240 · Haftalık ₺8.680',
    confidence:91,
    icon:'activity', model:'NEXOR-Ops v2.1', generated:'01 May 2026 · 11:02',
    tags:['Enerji','Kaynak','Elektrot'],
  },
  {
    id:'ai2', priority:'high', category:'İş Emri Maliyeti',
    title:'İE-10247 Birim Enerji Maliyeti Kritik (0.52 kWh/adet)',
    summary:'Hedef birim enerji maliyetinin %37 üzerinde. Kaynak İstasyonu 02 anomalisiyle bağlantılı.',
    body:'İE-10247 (Alüminyum Radyatör 600×1400) İş Emri, 0.38 kWh/adet hedefine karşı 0.52 kWh/adet ile ilerliyor — %37\'lik bir sapma. 680 adetlik mevcut üretim hızında, toplam fazla enerji maliyeti ₺582\'dir. Anomali, Kaynak İstasyonu 02\'nin artan tüketimiyle nedensel olarak bağlantılıdır. Kaynak anomalisinin çözülmesinin birim maliyeti tekrar tolerans aralığına getirmesi beklenmektedir.',
    action:'Kaynak parametreleri 30 dakika içinde düzeltilemezse İE-10247\'yi duraklatın. Alternatif olarak, 44 kW\'ta (baz değer içinde) çalışan Kaynak İstasyonu 01\'e yönlendirin.',
    saving:'Mevcut İE\'de ₺582 · Kalan İE hacminde ₺2.100+',
    confidence:88,
    icon:'workorder', model:'NEXOR-Ops v2.1', generated:'01 May 2026 · 10:31',
    tags:['İş Emri','Maliyet','Kaynak'],
  },
  {
    id:'ai3', priority:'medium', category:'Boşta İsraf',
    title:'Boya Hattı 01 — Bekleme Yükü Kesilmedi',
    summary:'10:58\'den beri boşta, 14 kW bekleme yükü çekiyor. Otomatik bekleme (standby) yapılandırılmamış.',
    body:'Boya Hattı 01 saat 10:58\'de boşta durumuna geçti ancak bekleme modunda 14 kW çekmeye devam ediyor. 8 saatlik bir vardiya boyunca bu, 112 kWh üretken olmayan tüketim anlamına gelir. Tarihsel veriler, bu makinenin partiler arasında sıklıkla 2-4 saat beklemeye alındığını göstermektedir. Otomatik bekleme kesme şu anda bu varlık için etkinleştirilmemiştir.',
    action:'Makine kontrolör ayarlarında otomatik bekleme kesintisini etkinleştirin (PLC parametresi SP-PNT-AUTO-OFF). Önerilen kesme gecikmesi: 15 dakika boşta kalma.',
    saving:'Boşta kalma başına ₺428 · Aylık ₺3.420 (tahmini)',
    confidence:95,
    icon:'zap', model:'NEXOR-Ops v2.1', generated:'01 May 2026 · 11:06',
    tags:['Boşta','Boya Hattı','Yapılandırma'],
  },
  {
    id:'ai4', priority:'medium', category:'Güç Kalitesi',
    title:'Kompresör Odası — Reaktif Güç Ceza Riski',
    summary:'Güç faktörü 0.78, 0.85 eşiğinin altında. Kondansatör bankası kontrolü gerekiyor.',
    body:'Kompresör Odası, 0.85 sözleşme eşiğinin altında olan 0.78 güç faktörü (PF) ile çalışmaktadır. Dağıtım şirketi, sürekli PF < 0.85 için reaktif enerji cezası uygulamaktadır. Mevcut okumalara göre, bu fatura dönemi için tahmini reaktif enerji cezası süreye bağlı olarak ₺2.100–₺2.800 arasındadır. Kondansatör bankası teşhisi, 4 üniteden 2\'sinin aktif olduğunu gösteriyor — muhtemelen 2 ünite çevrimdışı.',
    action:'CB-COMP-01 kondansatör bankasını kontrol edin. 4 kondansatör ünitesini de test edin. Arızalı üniteleri bir sonraki sayaç okumasından (5 Mayıs 2026) önce değiştirin.',
    saving:'Bu fatura döneminde ₺2.100–₺2.800 cezadan kaçının',
    confidence:84,
    icon:'cpu', model:'NEXOR-Ops v2.1', generated:'01 May 2026 · 07:25',
    tags:['Güç Faktörü','Kompresör','Şebeke'],
  },
  {
    id:'ai5', priority:'low', category:'Optimizasyon',
    title:'Vardiya 3 Enerji Yoğunluğu Diğerlerinden Yüksek',
    summary:'Vardiya 3 (22:00–06:00) 0.44 kWh/adet gösterirken, diğer vardiyalarda ortalama 0.35.',
    body:'Vardiya 3, son 14 gün boyunca diğer vardiyalara kıyasla tutarlı bir şekilde daha yüksek enerji yoğunluğu (kWh/adet) kaydetmektedir (0.44 vs 0.35). Analiz, bunun daha az üretimin yanı sıra sabit yüklerin (HVAC, aydınlatma, kompresörler) daha az birime bölünmesinden kaynaklanabileceğini göstermektedir. Vardiya 3\'te makine kullanımı %64.2 iken Vardiya 2\'de %82.1\'dir.',
    action:'Vardiya 3 üretim planlamasını gözden geçirin. Düşük hacimli ürünleri önceki vardiyalarda birleştirmeyi düşünün. Düşük aktivite dönemlerinde kompresör ve HVAC yükünü azaltma olasılığını değerlendirin.',
    saving:'Gece vardiyası iyileştirmesi başına tahmini ₺180',
    confidence:76,
    icon:'production', model:'NEXOR-Ops v2.1', generated:'01 May 2026 · 06:15',
    tags:['Vardiya','Optimizasyon','OEE'],
  },
  {
    id:'ai6', priority:'low', category:'Bakım',
    title:'Kompresör Bakımı Gecikti — Enerji Kaybı Bekleniyor',
    summary:'Bakım 30 gün gecikti. Geçmiş veriler %6-9 oranında enerji artışı gösteriyor.',
    body:'Kompresör Odası bakımı 2026-05-01 (bugün) olarak planlandı ancak yapılmadı. Önceki 12 bakım döngüsünden elde edilen tarihsel kalıplara dayanarak, bakım 30 günden fazla geciktiğinde kompresör verimliliği tipik olarak %6-9 oranında düşer. Mevcut tüketim halihazırda 560 kWh/gün\'dür — %7\'lik bir artış yaklaşık 39 kWh/gün ekleyecektir.',
    action:'Kompresör bakımını derhal planlayın ve tamamlayın. Filtre değişimi, kayış gerginliği kontrolü ve yağ seviyesi incelemesine öncelik verin.',
    saving:'Günlük ~₺150 enerji kaybını önleyin ve plansız duruşlardan kaçının',
    confidence:79,
    icon:'settings', model:'NEXOR-Ops v2.1', generated:'01 May 2026 · 06:00',
    tags:['Bakım','Kompresör','Kayıp'],
  },
];

const PRI_M = {
  high:   { color:'var(--signal-err)',  bg:'rgba(142,58,58,0.08)',   label:'Yüksek Öncelik' },
  medium: { color:'var(--signal-warn)', bg:'rgba(160,122,46,0.08)',  label:'İnceleme'        },
  low:    { color:'var(--signal-ok)',   bg:'rgba(74,123,78,0.08)',   label:'Bilgi / Tavsiye' },
};

function AICard({ insight, tweaks }) {
  const [exp, setExp] = React.useState(false);
  const p = PRI_M[insight.priority];
  const r = tweaks.radius === 'round' ? 12 : tweaks.radius === 'medium' ? 7 : 4;

  return (
    <div style={{ background:'var(--bg-elevated)', border:'1px solid var(--border)', borderRadius:r, overflow:'hidden', boxShadow:'var(--shadow-1)', transition:'box-shadow 160ms' }}>
      <button onClick={()=>setExp(e=>!e)} style={{ width:'100%', padding:'14px 16px', display:'grid', gridTemplateColumns:'32px 1fr auto', gap:12, alignItems:'flex-start', background:'none', border:0, cursor:'pointer', textAlign:'left', borderBottom: exp?'1px solid var(--border)':'none' }}>
        <div style={{ width:32, height:32, borderRadius:r-2, background:p.bg, color:p.color, display:'flex', alignItems:'center', justifyContent:'center', flexShrink:0, marginTop:1 }}>
          <DashIcon name={insight.icon} size={14} color={p.color}/>
        </div>
        <div style={{ minWidth:0 }}>
          <div style={{ display:'flex', gap:6, flexWrap:'wrap', marginBottom:4, alignItems:'center' }}>
            <span style={{ fontSize:9.5, fontFamily:'var(--font-mono)', letterSpacing:'0.05em', textTransform:'uppercase', color:p.color, padding:'1px 5px', background:p.bg, borderRadius:2, border:`1px solid ${p.color}22` }}>{p.label}</span>
            <span style={{ fontSize:10, fontFamily:'var(--font-mono)', padding:'1px 5px', background:'var(--surface)', border:'1px solid var(--border)', borderRadius:2, color:'var(--text-muted)' }}>{insight.category}</span>
            <span style={{ fontSize:10, fontFamily:'var(--font-mono)', color:'var(--signal-ok)' }}>Güven: %{insight.confidence}</span>
          </div>
          <div style={{ fontSize:13, fontWeight:600, color:'var(--text)', lineHeight:1.4, marginBottom:4 }}>{insight.title}</div>
          <div style={{ fontSize:12, color:'var(--text-secondary)', lineHeight:1.5 }}>{insight.summary}</div>
          <div style={{ display:'flex', gap:6, marginTop:6, flexWrap:'wrap' }}>
            {insight.tags.map(t=><span key={t} style={{ fontSize:9.5, fontFamily:'var(--font-mono)', padding:'1px 6px', borderRadius:2, background:'var(--surface)', border:'1px solid var(--border)', color:'var(--text-muted)' }}>{t}</span>)}
          </div>
        </div>
        <div style={{ display:'flex', flexDirection:'column', alignItems:'flex-end', gap:6, flexShrink:0 }}>
          <span style={{ fontFamily:'var(--font-mono)', fontSize:9.5, color:'var(--signal-ok)', fontWeight:600, textAlign:'right', maxWidth:160 }}>{insight.saving}</span>
          <DashIcon name={exp?'chevron-down':'chevron-right'} size={13} color="var(--text-muted)"/>
        </div>
      </button>

      {exp && (
        <div style={{ background:'var(--surface)', padding:'14px 16px 16px', paddingLeft:60 }}>
          <p style={{ margin:'0 0 12px', fontSize:13, color:'var(--text-secondary)', lineHeight:1.65 }}>{insight.body}</p>
          <div style={{ background:'var(--bg-elevated)', border:'1px solid var(--border)', borderRadius:r-2, padding:'10px 14px', marginBottom:10 }}>
            <div style={{ fontFamily:'var(--font-mono)', fontSize:9.5, color:'var(--accent)', textTransform:'uppercase', letterSpacing:'0.05em', marginBottom:5 }}>→ Önerilen Aksiyon</div>
            <div style={{ fontSize:13, color:'var(--text)', lineHeight:1.6 }}>{insight.action}</div>
          </div>
          <div style={{ display:'flex', gap:16, alignItems:'center' }}>
            <div style={{ fontFamily:'var(--font-mono)', fontSize:10, color:'var(--text-muted)' }}>Model: {insight.model}</div>
            <div style={{ fontFamily:'var(--font-mono)', fontSize:10, color:'var(--text-muted)' }}>Oluşturuldu: {insight.generated}</div>
            <div style={{ flex:1 }}/>
            <button style={{ padding:'5px 10px', border:'1px solid var(--border)', borderRadius:3, background:'var(--bg-elevated)', fontSize:11, color:'var(--text-secondary)', cursor:'pointer', fontFamily:'var(--font-sans)', display:'flex', alignItems:'center', gap:5 }}>
              <DashIcon name="check" size={12}/>Çözüldü İşaretle
            </button>
          </div>
        </div>
      )}
    </div>
  );
}

const AIInsightsPage = ({ tweaks }) => {
  const [filter, setFilter] = React.useState('All');
  const r = tweaks.radius === 'round' ? 14 : tweaks.radius === 'medium' ? 8 : 4;

  const filtered = filter === 'All' ? AI_INSIGHTS_FULL : AI_INSIGHTS_FULL.filter(i=>i.priority===filter.toLowerCase()||i.category===filter);
  const totalSaving = '₺14.820+';

  return (
    <div className="page-enter" style={{ display:'flex', flexDirection:'column', gap:20 }}>
      {/* Header summary */}
      <div style={{ background:'var(--bg-elevated)', border:'1px solid var(--border)', borderRadius:r, padding:'16px 20px', boxShadow:'var(--shadow-1)', display:'grid', gridTemplateColumns:'1fr auto' }}>
        <div>
          <div style={{ display:'flex', alignItems:'center', gap:8, marginBottom:6 }}>
            <DashIcon name="ai" size={16} color="var(--accent)"/>
            <span style={{ fontSize:14, fontWeight:600, letterSpacing:'-0.015em' }}>NEXOR YZ Operasyonel Zeka</span>
            <span style={{ fontFamily:'var(--font-mono)', fontSize:10, padding:'2px 7px', borderRadius:3, background:'var(--accent-weak)', color:'var(--accent)', border:'1px solid var(--accent)22' }}>Model v2.1</span>
          </div>
          <div style={{ fontSize:13, color:'var(--text-secondary)', lineHeight:1.5 }}>
            Enerji, üretim ve bakım genelinde 6 aktif öneri. Tahmini haftalık tasarruf potansiyeli: <strong style={{ color:'var(--signal-ok)' }}>{totalSaving}</strong>
          </div>
        </div>
        <div style={{ display:'flex', flexDirection:'column', alignItems:'flex-end', gap:4, justifyContent:'center' }}>
          <div style={{ fontFamily:'var(--font-mono)', fontSize:10, color:'var(--text-muted)' }}>Son model çalışması</div>
          <div style={{ fontFamily:'var(--font-mono)', fontSize:12, fontWeight:500 }}>01 May 2026 · 11:09</div>
        </div>
      </div>

      {/* Summary chips */}
      <div style={{ display:'grid', gridTemplateColumns:'repeat(3,1fr)', gap:10 }}>
        {[
          { label:'Yüksek Öncelik', value:AI_INSIGHTS_FULL.filter(i=>i.priority==='high').length,   color:'var(--signal-err)' },
          { label:'İnceleme',       value:AI_INSIGHTS_FULL.filter(i=>i.priority==='medium').length, color:'var(--signal-warn)' },
          { label:'Bilgi / Tavsiye',value:AI_INSIGHTS_FULL.filter(i=>i.priority==='low').length,    color:'var(--signal-ok)' },
        ].map((s,i)=>(
          <div key={i} style={{ background:'var(--bg-elevated)', border:'1px solid var(--border)', borderRadius:r, padding:'12px 16px', boxShadow:'var(--shadow-1)', display:'flex', alignItems:'center', gap:12 }}>
            <div style={{ fontSize:28, fontWeight:700, letterSpacing:'-0.04em', color:s.color }}>{s.value}</div>
            <div style={{ fontFamily:'var(--font-mono)', fontSize:10, color:'var(--text-muted)', textTransform:'uppercase', letterSpacing:'0.05em' }}>{s.label}</div>
          </div>
        ))}
      </div>

      {/* Filter */}
      <div style={{ display:'flex', gap:6 }}>
        {['All','high','medium','low'].map(f=>{
          const label=f==='All'?'Tümü':f==='high'?'Yüksek Öncelik':f==='medium'?'İnceleme':'Bilgi / Tavsiye';
          return <button key={f} onClick={()=>setFilter(f)} style={{ padding:'5px 12px', borderRadius:r-4, border:`1px solid ${filter===f?'var(--accent)':'var(--border)'}`, background:filter===f?'var(--accent-weak)':'var(--bg-elevated)', color:filter===f?'var(--accent)':'var(--text-secondary)', fontSize:12, fontFamily:'var(--font-sans)', cursor:'pointer', transition:'all 140ms', fontWeight:filter===f?500:400 }}>{label}</button>;
        })}
      </div>

      {/* Insight cards */}
      <div style={{ display:'flex', flexDirection:'column', gap:8 }}>
        {filtered.map(i=><AICard key={i.id} insight={i} tweaks={tweaks}/>)}
      </div>
    </div>
  );
};

Object.assign(window, { PageAI: AIInsightsPage });
