/* ============================================================
   EDUCARE — Relatório para pais / escola (linguagem acessível)
   ============================================================ */
(function () {
  const Icon = window.Icon, Logo = window.Logo, fmtBirth = window.fmtBirth;

  const MOOD_LABEL = { 5: "ótimo", 4: "bom", 3: "regular", 2: "variável", 1: "desafiador" };
  const MES_EXT = ["janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"];
  const dataPorExtenso = () => { const n = new Date(); return `${String(n.getDate()).padStart(2, "0")} de ${MES_EXT[n.getMonth()]} de ${n.getFullYear()}`; };

  function Relatorio({ patientId, audience = "pais", onBack, onAudience }) {
    const p = window.PATIENTS.find((x) => x.id === patientId) || window.PATIENTS[0];
    const prof = window.getProfile ? window.getProfile() : { name: "", profession: "", regLine: "", phone: "", email: "" };
    const avg = p.moodSeries.reduce((a, b) => a + b, 0) / p.moodSeries.length;
    const moodWord = MOOD_LABEL[Math.round(avg)] || "bom";
    const totalGoals = p.goals.reduce((a, g) => a + g.total, 0);
    const doneGoals = p.goals.reduce((a, g) => a + g.done, 0);
    const att = Math.round(p.attendance * 100);
    const firstName = p.name.split(" ")[0];
    const isSchool = audience === "escola";

    // recomendações simples por contexto
    const homeRecs = [
      `Reserve um tempo curto e tranquilo por dia para atividades com ${firstName}, sem pressa.`,
      "Valorize cada tentativa e esforço, não apenas o acerto — isso fortalece a autoconfiança.",
      "Leiam juntos histórias curtas e conversem sobre elas de forma leve e divertida.",
      "Mantenha uma rotina previsível de estudos, com pausas e poucos estímulos distrativos.",
    ];
    const schoolRecs = [
      `Conceda tempo adicional para leitura e produção escrita nas atividades de ${firstName}.`,
      "Prefira instruções curtas e objetivas, uma de cada vez, com apoio visual quando possível.",
      "Evite leitura em voz alta sem aviso prévio; combine antes para reduzir a ansiedade.",
      "Considere a criança pelo conteúdo aprendido, valorizando a evolução e não só a forma.",
    ];

    return (
      <>
        <div className="report-toolbar">
          <button className="pt-back" style={{ margin: 0 }} onClick={onBack}><Icon name="chevL" size={16} /> Voltar ao prontuário</button>
          <div className="seg rt-seg" style={{ marginLeft: 8 }}>
            <button className={!isSchool ? "on" : ""} onClick={() => onAudience("pais")}>Para os pais</button>
            <button className={isSchool ? "on" : ""} onClick={() => onAudience("escola")}>Para a escola</button>
          </div>
          <button className="btn btn-primary btn-sm" style={{ marginLeft: "auto" }} onClick={() => window.print()}>
            <Icon name="fileText" size={16} /> Imprimir / Salvar PDF
          </button>
        </div>

        <div className="report-stage">
          <div className="report-page">
            <div className="rep-head">
              <div className="rep-brand">
                <Logo size={40} />
                <div className="bk"><b>Educare</b><span>ACOMPANHAMENTO PSICOPEDAGÓGICO</span></div>
              </div>
              <div className="rep-doc">
                <b>{prof.name || "—"}</b>
                {[prof.profession, prof.regLine].filter(Boolean).join(" · ")}
                <br />Emitido em {dataPorExtenso()}
              </div>
            </div>

            <h1 className="rep-title">Relatório de acompanhamento {isSchool ? "para a escola" : "para a família"}</h1>
            <p className="rep-subtitle">Documento informativo em linguagem acessível, elaborado a partir das sessões realizadas.</p>

            <div className="rep-meta">
              <div className="rm"><b>Criança</b>{p.name}</div>
              <div className="rm"><b>Idade / Ano escolar</b>{p.age} anos · {p.grade}</div>
              <div className="rm"><b>Responsável</b>{p.guardian} ({p.guardianRel})</div>
              <div className="rm"><b>Período do relatório</b>Março a maio de 2026 · {p.sessions} sessões</div>
            </div>

            <div className="rep-sec">
              <h3>Como começamos</h3>
              <p>{firstName} chegou ao acompanhamento com a seguinte necessidade: <b>{p.complaint.toLowerCase()}</b> Desde então, vimos trabalhando de forma lúdica e respeitando o ritmo da criança, com foco em construir confiança e desenvolver as habilidades passo a passo.</p>
            </div>

            <div className="rep-sec">
              <h3>Como tem sido a evolução</h3>
              <div className="rep-stats">
                <div className="rep-stat"><b>{att}%</b><span>de presença nas sessões</span></div>
                <div className="rep-stat"><b>{doneGoals}/{totalGoals}</b><span>metas alcançadas</span></div>
                <div className="rep-stat"><b style={{ textTransform: "capitalize" }}>{moodWord}</b><span>engajamento médio</span></div>
              </div>
              <p style={{ marginTop: 12 }}>Ao longo das sessões, {firstName} demonstrou um engajamento <b>{moodWord}</b> e vem evoluindo de forma consistente. As metas combinadas estão sendo alcançadas no ritmo esperado, e a criança tem participado das atividades com cada vez mais autonomia e segurança.</p>
            </div>

            <div className="rep-sec">
              <h3>{isSchool ? "Como a escola pode ajudar" : "Como ajudar em casa"}</h3>
              <ul>
                {(isSchool ? schoolRecs : homeRecs).map((r, i) => <li key={i}>{r}</li>)}
              </ul>
            </div>

            <div className="rep-sec">
              <h3>Próximos passos</h3>
              <div className="rep-callout">
                <p style={{ margin: 0 }}>Vamos seguir com os encontros {isSchool ? "e manter o diálogo com a escola" : "no mesmo ritmo"}, acompanhando de perto a evolução de {firstName}. <b>Estamos à disposição</b> para conversar sempre que necessário.</p>
              </div>
            </div>

            <div className="rep-foot">
              <div className="rep-sign">
                <div className="line"></div>
                <span>{prof.name || "—"}</span><br />
                <small>{[prof.profession || "Profissional responsável", prof.regLine].filter(Boolean).join(" · ")}</small>
                {(prof.phone || prof.email) && <><br /><small>{[prof.phone, prof.email].filter(Boolean).join(" · ")}</small></>}
              </div>
              <p className="rep-disclaimer">Documento gerado pela plataforma Educare a partir dos registros clínicos. Contém dados sensíveis de saúde — uso restrito conforme a LGPD.</p>
            </div>
          </div>
        </div>
      </>
    );
  }

  window.Relatorio = Relatorio;
})();
