/* =========================================================================
   Çevik Yaşam — TAMAMLAMA TAKİP AKIŞI
   Bir iş bitince: takip gerekiyor mu? Birine bilgi vermek gerekiyor mu?
   Gerekiyorsa otomatik takip görevi oluşturur.
   ========================================================================= */

function CompleteSheet({ task, onClose, onDone, onAddFollowup }) {
  const [needsFollow, setNeedsFollow] = useState(false);
  const [followText, setFollowText] = useState("");
  const [followWhen, setFollowWhen] = useState("3");
  const [needsInform, setNeedsInform] = useState(false);
  const [informWho, setInformWho] = useState(task.notify || "");

  const whenOpts = [
    { key: "1", label: "Yarın", n: 1 },
    { key: "3", label: "3 gün sonra", n: 3 },
    { key: "7", label: "1 hafta sonra", n: 7 },
  ];

  const finish = () => {
    const followups = [];
    if (needsFollow && followText.trim()) {
      const n = whenOpts.find((w) => w.key === followWhen).n;
      const d = new Date(); d.setDate(d.getDate() + n);
      followups.push({
        title: followText.trim(), project: task.project, sub: task.sub || undefined,
        prio: 2, due: d.toISOString().slice(0, 10), today: false, done: false,
        block: "Normal", checklist: [], deferCount: 0, isFollowup: true,
        hint: `Takip: "${task.title}" işinin ardından.`,
      });
    }
    if (needsInform && informWho.trim()) {
      const d = new Date(); d.setDate(d.getDate() + 1);
      followups.push({
        title: `${informWho.trim()} → bilgilendir: "${task.title}" tamamlandı`,
        project: task.project, sub: task.sub || undefined,
        prio: 1, due: d.toISOString().slice(0, 10), today: true, done: false,
        block: "Normal", checklist: [], deferCount: 0, notify: informWho.trim(), isFollowup: true,
        hint: "Tamamlanan işin sonucunu paylaş.",
      });
    }
    followups.forEach((f) => onAddFollowup(f));
    onDone();
  };

  return (
    <Sheet eyebrow="İş tamamlandı" title="Kapanış · takip gerekiyor mu?" onClose={onClose} maxWidth={540}
      footer={<React.Fragment>
        <Btn variant="ghost" onClick={onDone}>Hayır, kapandı</Btn>
        <Btn variant="primary" icon="check" onClick={finish}>{(needsFollow || needsInform) ? "Takip ekle & kapat" : "Kapat"}</Btn>
      </React.Fragment>}>
      <div className="cy-card tint" style={{ padding: 14, marginBottom: 16, display: "flex", gap: 10, alignItems: "center" }}>
        <span style={{ width: 30, height: 30, borderRadius: 999, background: "var(--ml-success)", color: "#fff", display: "grid", placeItems: "center", flex: "none" }}><Icon name="check" style={{ width: 16 }} /></span>
        <div style={{ fontSize: 13.5, lineHeight: 1.45, color: "var(--ml-ink-2)" }}><strong>{task.title}</strong> bitti. Sıradakine atlamadan önce: bir ucu açık kaldı mı?</div>
      </div>

      {/* takip işi */}
      <label className="cy-complete-opt">
        <span className={"cy-check" + (needsFollow ? " on" : "")} style={{ marginTop: 0 }} onClick={(e) => { e.preventDefault(); setNeedsFollow(!needsFollow); }}><Icon name="check" className="ic" /></span>
        <span style={{ flex: 1 }}>
          <b style={{ fontSize: 14 }}>Bir takip işi gerekiyor</b>
          <span className="cy-muted" style={{ display: "block", fontSize: 12.5, marginTop: 2 }}>Sonuç kontrolü, ikinci adım, geri dönüş bekleme…</span>
        </span>
      </label>
      {needsFollow && (
        <div style={{ margin: "10px 0 16px", paddingLeft: 35 }}>
          <input className="cy-input" placeholder="Takip işi ne olsun?" value={followText} onChange={(e) => setFollowText(e.target.value)} autoFocus />
          <div className="cy-seg" style={{ marginTop: 10 }}>
            {whenOpts.map((w) => <button key={w.key} className={"cy-choice" + (followWhen === w.key ? " on" : "")} onClick={() => setFollowWhen(w.key)}>{w.label}</button>)}
          </div>
        </div>
      )}

      {/* bilgilendirme */}
      <label className="cy-complete-opt">
        <span className={"cy-check" + (needsInform ? " on" : "")} style={{ marginTop: 0 }} onClick={(e) => { e.preventDefault(); setNeedsInform(!needsInform); }}><Icon name="check" className="ic" /></span>
        <span style={{ flex: 1 }}>
          <b style={{ fontSize: 14 }}>Birine bilgi vermem gerekiyor</b>
          <span className="cy-muted" style={{ display: "block", fontSize: 12.5, marginTop: 2 }}>Bekleyen biri varsa, bugüne bir bilgilendirme görevi düşer.</span>
        </span>
      </label>
      {needsInform && (
        <div style={{ marginTop: 10, paddingLeft: 35 }}>
          <input className="cy-input" placeholder="Kime? (örn. Ahmet, GSO ekibi, müşteri…)" value={informWho} onChange={(e) => setInformWho(e.target.value)} />
        </div>
      )}
    </Sheet>
  );
}

Object.assign(window, { CompleteSheet });
