/* =========================================================================
   Çevik Yaşam — HAFTA (sadeleş · düşün · tek deney)
   Kanban değil; sakin bir haftalık düşünme/zihin boşaltma alanı.
   ADHD dostu: az kutu, çok nefes. Tek niyet, tek deney.
   ========================================================================= */

function WeekField({ label, hint, value, onChange, rows, placeholder }) {
  return (
    <div style={{ marginBottom: 4 }}>
      <label className="cy-label" style={{ marginBottom: 4 }}>{label}</label>
      {hint && <div className="cy-muted" style={{ fontSize: 12, marginBottom: 8, lineHeight: 1.4 }}>{hint}</div>}
      <textarea className="cy-textarea" rows={rows || 2} placeholder={placeholder} value={value} onChange={(e) => onChange(e.target.value)} />
    </div>
  );
}

function Hafta() {
  // tek, sade haftalık günlük — hafta koduna göre saklanır
  const wk = CY.today.week;
  const [data, setData] = useStore("week-journal-" + wk, {
    intent: "", braindump: "", simplify: "", experiment: "", learned: "", mood: 0,
  });
  const set = (k, v) => setData((d) => ({ ...d, [k]: v }));

  // geçmiş haftalardan öğrenmeler (kaydedilenler)
  const archive = useCollection("week-archive", []);
  const T = useCollection("tasks", CY.todayTasks);

  const closeWeek = () => {
    if (!data.intent && !data.braindump && !data.learned) return;
    archive.add({ week: wk, range: CY.today.range, ...data });
    setData({ intent: "", braindump: "", simplify: "", experiment: "", learned: "", mood: 0 });
  };

  // bu hafta tamamlanan iş sayısı (hafifbir geri bildirim)
  const doneThisWeek = T.active.filter((t) => t.done).length;
  const openCount = T.active.filter((t) => !t.done).length;

  return (
    <div className="cy-canvas narrow cy-fade-in">
      <SectionHead eyebrow={"Haftalık döngü · " + wk + " · " + CY.today.range}
        title="Bu hafta: sadeleş, düşün, bir şey dene"
        sub="Koca yaşamı değil — haftayı dönüştür. Burada kutu doldurmazsın; düşünür, hafifler, tek bir niyet ve tek bir deney bırakırsın."
        right={<Btn variant="ghost" icon="archive" onClick={() => window.cyGoto && window.cyGoto("ogrenme")}>Öğrenmeler</Btn>} />

      <HowTo id="hafta" when="Haftada 1 · pazar akşamı"
        summary="Çevik yaşamın <strong>kalbi.</strong> Haftada bir kez 15 dk: geçen haftayı boşalt, neyi bırakacağını seç, tek bir niyet ve tek bir deneyle yeni haftaya gir. Çok kutu yok — kafanı dağıtmasın."
        steps={[
          "Önce <strong>zihin boşaltma</strong>: kafandaki her şeyi dök. Düzen sonra gelir.",
          "<strong>Neyi bırakıyorum?</strong> — bu hafta yaşamından çıkaracağın bir şey seç (ayıkla).",
          "<strong>Tek niyet + tek deney</strong> belirle. Birden fazlası ADHD'de dağıtır.",
          "Hafta sonunda <strong>ne öğrendim</strong> yaz ve haftayı kapat — arşive geçsin, yenisi başlasın.",
        ]} />

      {/* hafif geri bildirim şeridi */}
      <div className="cy-week-strip">
        <div><b>{doneThisWeek}</b><span>tamamlanan</span></div>
        <div><b>{openCount}</b><span>açık iş</span></div>
        <div><b>{archive.active.length}</b><span>kapanmış hafta</span></div>
      </div>

      {/* 1. ZİHİN BOŞALTMA — en üstte, en büyük */}
      <Card style={{ marginTop: 20 }}>
        <div style={{ display: "flex", alignItems: "center", gap: 9, marginBottom: 4 }}>
          <Icon name="brain" style={{ width: 18, color: "var(--ml-red)" }} />
          <h4 className="cy-h4">Zihin boşaltma</h4>
        </div>
        <WeekField hint="Kafanda ne dönüyorsa dök — sıralama, düzeltme yok. Sadece çıkar. (ADHD: dışarı yazınca yük hafifler.)"
          value={data.braindump} onChange={(v) => set("braindump", v)} rows={5}
          placeholder="Bu hafta aklımı meşgul eden şeyler…" />
      </Card>

      {/* 2. SADELEŞTİR + NİYET + DENEY */}
      <div className="cy-grid" style={{ gridTemplateColumns: "1fr 1fr", marginTop: 18 }}>
        <Card>
          <div style={{ display: "flex", alignItems: "center", gap: 9, marginBottom: 10 }}>
            <Icon name="scale" style={{ width: 17, color: "var(--ml-warn)" }} />
            <h4 className="cy-h4">Neyi bırakıyorum?</h4>
          </div>
          <WeekField hint="Eklemeden önce ayıkla. Bu hafta yaşamından çıkaracağın bir yük, bir alışkanlık, bir 'evet'."
            value={data.simplify} onChange={(v) => set("simplify", v)} rows={3}
            placeholder="örn. Pazartesi metrik kontrolünü tek sefere indireceğim…" />
        </Card>
        <Card>
          <div style={{ display: "flex", alignItems: "center", gap: 9, marginBottom: 10 }}>
            <Icon name="target" style={{ width: 17, color: "var(--ml-red)" }} />
            <h4 className="cy-h4">Bu haftanın tek niyeti</h4>
          </div>
          <WeekField hint="Tek cümle. Bu hafta her şeyin üstünde tutacağın şey."
            value={data.intent} onChange={(v) => set("intent", v)} rows={3}
            placeholder="örn. 2 platform kuralına sadık kalmak." />
        </Card>
      </div>

      {/* 3. TEK DENEY */}
      <Card style={{ marginTop: 18 }}>
        <div style={{ display: "flex", alignItems: "center", gap: 9, marginBottom: 4 }}>
          <Icon name="zap" style={{ width: 18, color: "var(--ml-info)" }} />
          <h4 className="cy-h4">Bu haftanın tek deneyi</h4>
        </div>
        <WeekField hint="Bir gözlemi küçük bir denemeye çevir. 'Şunu denersem ne olur?' Sonucu hafta sonunda göreceksin."
          value={data.experiment} onChange={(v) => set("experiment", v)} rows={2}
          placeholder="örn. Her iş bitişinde 90 sn toplu uzaklaştırma yaparsam boşluk hissi azalır mı?" />
      </Card>

      {/* 4. KAPANIŞ — ne öğrendim */}
      <Card className="tint" style={{ marginTop: 18 }}>
        <div className="cy-between" style={{ marginBottom: 4, flexWrap: "wrap", gap: 10 }}>
          <div style={{ display: "flex", alignItems: "center", gap: 9 }}>
            <Icon name="graduationCap" style={{ width: 18, color: "var(--ml-success)" }} />
            <h4 className="cy-h4">Hafta kapanışı — ne öğrendim?</h4>
          </div>
          <Btn variant="primary" size="sm" icon="check" onClick={closeWeek}
            style={{ opacity: (data.intent || data.braindump || data.learned) ? 1 : .5, pointerEvents: (data.intent || data.braindump || data.learned) ? "auto" : "none" }}>
            Haftayı kapat & arşivle
          </Btn>
        </div>
        <WeekField hint="Deney ne gösterdi? Yaşamına ne geçti? Tek bir dersle bile hafta kazançlı."
          value={data.learned} onChange={(v) => set("learned", v)} rows={3}
          placeholder="Bu haftadan çıkardığım…" />
        <div className="cy-muted" style={{ fontSize: 12, marginTop: 8, lineHeight: 1.5 }}>
          Kapattığında bu hafta arşive geçer, temiz bir sayfa açılır. Geçmiş haftalarını <b style={{ color: "var(--ml-ink-2)", cursor: "pointer" }} onClick={() => window.cyGoto && window.cyGoto("ogrenme")}>Öğrenme</b>'de izleyebilirsin.
        </div>
      </Card>

      {/* arşiv */}
      {!!archive.active.length && (
        <div style={{ marginTop: 24 }}>
          <Eyebrow style={{ marginBottom: 12 }}>Kapanmış haftalar · {archive.active.length}</Eyebrow>
          <div className="cy-stack" style={{ gap: 10 }}>
            {archive.active.map((w) => (
              <Card key={w.id} className="flat" style={{ padding: 16 }}>
                <div className="cy-between" style={{ alignItems: "flex-start" }}>
                  <div style={{ minWidth: 0 }}>
                    <span className="cy-mono cy-muted" style={{ fontSize: 11.5 }}>{w.week} · {w.range}</span>
                    {w.intent && <div style={{ fontSize: 14, fontWeight: 600, marginTop: 6 }}>Niyet: {w.intent}</div>}
                    {w.learned && <div className="cy-muted" style={{ fontSize: 13, marginTop: 6, lineHeight: 1.45 }}><b style={{ color: "var(--ml-success)" }}>Öğrenme:</b> {w.learned}</div>}
                    {w.simplify && <div className="cy-muted" style={{ fontSize: 12.5, marginTop: 4, lineHeight: 1.45 }}><b style={{ color: "var(--ml-warn)" }}>Bıraktığım:</b> {w.simplify}</div>}
                  </div>
                  <RowMenu onDelete={() => archive.remove(w.id)} />
                </div>
              </Card>
            ))}
          </div>
        </div>
      )}
    </div>
  );
}

Object.assign(window, { Hafta });
