const CHAPTERS = [
  { id: 'patient',     num: '01', label: 'Paciente' },
  { id: 'doctor',      num: '02', label: 'Médico responsável' },
  { id: 'objectives',  num: '03', label: 'Objetivos' },
  { id: 'exercise',    num: '04', label: 'Atividade física' },
  { id: 'nutrition',   num: '05', label: 'Alimentação' },
  { id: 'prescription', num: '06', label: 'Prescrições' },
  { id: 'supplements', num: '07', label: 'Suplementos' },
  { id: 'peptides',    num: '08', label: 'Peptide Therapy' },
  { id: 'followups',   num: '09', label: 'Próximas consultas' },
  { id: 'notes',       num: '10', label: 'Observações finais' },
];

const SAMPLE_PLAN = {
  patient: {
    name: 'Guilherme Hilsdorf',
    processo: 'E102567',
    sns: '',
    birthdate: '',
  },
  doctor: {
    name: 'Joana Costa',
    specialty: 'Medicina Funcional · Health Coach',
    license: '',
    date: '2025-04-12',
  },
  objectives: [
    'Melhorar o ambiente hormonal e resposta ao stress',
    'Melhorar a saúde intestinal',
    'Melhorar a composição corporal',
  ],
  exercise: [
    'Manter os treinos de força e resistência 5×/semana.',
    'Preferencialmente não treinar em jejum — comer snack antes (frutos secos, fruta, ovo, café com leite).',
    'Tomar refeição rica em proteína até 30 minutos depois do treino.',
    'Creatina 3 g diariamente para melhorar a performance.',
  ],
  nutrition: [
    'Reduzir glúten.',
    'Reduzir caseína-1 (proteína do leite de vaca).',
    'Evitar alimentos processados, picantes e reduzir o café para máximo 2/dia até à hora do almoço.',
    'Fazer três refeições principais ricas em ómegas — abacate, frutos secos, sementes, azeite, azeitonas, peixes gordos.',
    'Hidratos low carb — feijão, grão, ervilhas, lentilhas, quinoa, batata-doce, arroz integral ou selvagem, massa integral ou sem glúten.',
    'Salada, sopa ou legumes a cada refeição.',
    'Proteína: mínimo 90 g/dia; 30 g de proteína por refeição (3 refeições).',
    'Aumentar o consumo de prebióticos — crucíferos, folhas verdes — e antioxidantes (berries, chá verde, chá oolong em alternativa ao café).',
    'Fermentados às refeições: kombucha, kefir, miso, pickles, sauerkraut, kimchi para melhorar a metabolização e o microbioma intestinal.',
  ],
  prescription: [
    'Manter a hidratação diária — 2 L de água por dia e eletrólitos nos dias dos treinos.',
    'Sauna sempre que possível para facilitar o detox.',
  ],
  supplements: [
    {
      group: 'Suporte da Metilação',
      items: [
        { name: 'Metilfolato', dose: '400 µg', frequency: '1× ao dia', notes: '' },
        { name: 'Metilcobalamina (B12)', dose: '1000 µg', frequency: '1× ao dia', notes: '' },
        { name: 'P-5-P (vitamina B6 ativa)', dose: '25 mg', frequency: '1× ao dia', notes: '' },
      ],
    },
    {
      group: 'Suporte Detox Hepático',
      items: [
        { name: 'NAC', dose: '600 mg', frequency: '1× ao dia', notes: '' },
        { name: 'Vitamina C', dose: '500 mg', frequency: '1× ao dia', notes: '' },
        { name: 'Astaxantina', dose: '4 mg', frequency: '1× ao dia', notes: '' },
        { name: 'Ácido alfa-lipoico', dose: '100 mg', frequency: '1× ao dia', notes: '' },
      ],
    },
    {
      group: 'Suporte Celular',
      items: [
        { name: 'CoQ10', dose: '100 mg', frequency: '1× ao dia', notes: '' },
        { name: 'Cobre glicinato', dose: '3 mg', frequency: '1× ao dia', notes: '' },
        { name: 'Zinco glicinato', dose: '75 mg', frequency: '1× ao dia', notes: '' },
      ],
    },
    {
      group: 'Suporte Muscular',
      items: [
        { name: 'Creatina', dose: '3 g', frequency: 'Diariamente', notes: '' },
        { name: 'Proteína (refeições principais)', dose: '≥ 30 g', frequency: 'Por refeição', notes: 'Mínimo nas 3 refeições principais' },
      ],
    },
    {
      group: 'Suporte Intestinal',
      items: [
        { name: 'L-Glutamina', dose: '500 mg', frequency: '1× ao dia', notes: '' },
        { name: 'Fibra de acácia', dose: '3 g', frequency: '1× ao dia', notes: '1 colher de chá em copo morno com água' },
        { name: 'Kreon', dose: '—', frequency: 'Às refeições principais', notes: '' },
      ],
    },
    {
      group: 'Suporte Adrenal',
      items: [
        { name: 'Ashwagandha', dose: '450 mg', frequency: '1× ao deitar', notes: '' },
        { name: 'Magnésio glicinato', dose: '300 mg', frequency: '1×/dia ao deitar', notes: '' },
        { name: 'DHEA (Pure Encapsulations)', dose: '10 mg', frequency: '1× ao dia', notes: '' },
      ],
    },
    {
      group: 'Suporte Ósseo / Imunidade',
      items: [
        { name: 'Vitamina D3', dose: '5000 UI / 100 µg', frequency: '1× ao dia', notes: '' },
      ],
    },
  ],
  peptides: [
    { name: 'BPC-157', dose: '10 mg · 0,1 mL', frequency: 'Seg a sex · manhã', route: 'SC', notes: '' },
    { name: 'KPV sublingual', dose: '1 spray', frequency: 'Diariamente · manhã', route: 'SL', notes: '' },
    { name: 'Selank', dose: '20 mg · 1 spray cada narina', frequency: 'Final da tarde', route: 'Intranasal', notes: '' },
    { name: 'Semax', dose: '10 mg · 1 spray cada narina', frequency: 'Pequeno-almoço', route: 'Intranasal', notes: '' },
    { name: 'CJC (no DAC) + Ipamorelina', dose: '5 + 5 mg · 0,1 mL', frequency: 'Diariamente ao deitar', route: 'SC', notes: '' },
    { name: 'MOTS-C', dose: '0,1 mg', frequency: 'Antes do exercício físico', route: 'SC', notes: '' },
  ],
  followups: [
    { title: 'Reavaliação clínica', date: '8 semanas', notes: 'Avaliar resposta hormonal e tolerância aos peptídeos.' },
    { title: 'Nova colheita de biomarcadores', date: '12 semanas', notes: 'Painel completo + cortisol salivar 4 pontos.' },
    { title: 'Consulta de seguimento — Health Coach', date: 'Mensal', notes: 'Acompanhamento de adesão e ajustes.' },
  ],
  notes: 'O plano apresentado tem carácter exclusivamente informativo e deve ser interpretado em contexto de avaliação clínica integrada. Em caso de efeitos adversos ou dúvidas, contactar a equipa B-Life antes de descontinuar qualquer terapêutica.',
};

const EMPTY_PLAN = {
  patient:  { name: '', processo: '', sns: '', birthdate: '' },
  doctor:   { name: '', specialty: '', license: '', date: '' },
  objectives:  [''],
  exercise:    [''],
  nutrition:   [''],
  prescription:[''],
  supplements: [
    { group: 'Novo grupo', items: [{ name: '', dose: '', frequency: '', notes: '' }] },
  ],
  peptides:    [{ name: '', dose: '', frequency: '', route: '', notes: '' }],
  followups:   [{ title: '', date: '', notes: '' }],
  notes: '',
};

const STORAGE_KEY = 'blife.actionplan.v1';

function loadPlan() {
  try {
    const raw = localStorage.getItem(STORAGE_KEY);
    if (!raw) return EMPTY_PLAN;
    return { ...EMPTY_PLAN, ...JSON.parse(raw) };
  } catch (e) {
    return EMPTY_PLAN;
  }
}

function savePlan(plan) {
  try {
    localStorage.setItem(STORAGE_KEY, JSON.stringify(plan));
  } catch (e) { /* ignore quota */ }
}

const MONTHS_PT = ['jan','fev','mar','abr','mai','jun','jul','ago','set','out','nov','dez'];
function formatDate(iso) {
  if (!iso) return '—';
  const [y, m, d] = iso.split('-').map(Number);
  if (!y || !m || !d) return iso;
  return `${d} ${MONTHS_PT[m - 1]} ${y}`;
}

function chapterProgress(plan) {
  const checks = {
    patient:    !!plan.patient.name,
    doctor:     !!plan.doctor.name && !!plan.doctor.date,
    objectives: plan.objectives.some(s => s && s.trim()),
    exercise:   plan.exercise.some(s => s && s.trim()),
    nutrition:  plan.nutrition.some(s => s && s.trim()),
    prescription: plan.prescription.some(s => s && s.trim()),
    supplements: plan.supplements.some(g => g.items.some(i => i.name && i.name.trim())),
    peptides:   plan.peptides.some(p => p.name && p.name.trim()),
    followups:  plan.followups.some(f => f.title && f.title.trim()),
    notes:      !!plan.notes && plan.notes.trim().length > 0,
  };
  const filled = Object.values(checks).filter(Boolean).length;
  return { checks, filled, total: Object.keys(checks).length };
}

Object.assign(window, {
  CHAPTERS, SAMPLE_PLAN, EMPTY_PLAN, STORAGE_KEY,
  loadPlan, savePlan, formatDate, chapterProgress,
});
