// 하루결 — 병기(Stage)별 컨텍스트
// 0기 ~ 4기에 따라 정보·응원·운동·식단 강도를 다르게 보여줍니다.
// 출처: 국가암정보센터, 한국유방암학회 권고안 일반 정보 종합.

const STAGES = [
  {
    id: '0',
    label: '0기',
    fullLabel: '0기 — 상피내암 (DCIS)',
    short: '암세포가 유관·소엽 내에 머무는 상태',
    color: '#8FA67E',
    bg: 'var(--hg-sage-tint)',
    focus: '대부분 수술로 완치 가능. 항호르몬·방사선 보조요법을 권장받기도 합니다.',
    pace: '회복은 비교적 빠릅니다. 일상 복귀와 추적관찰이 중심.',
    treatments: ['수술', '방사선', '항호르몬'],
    encouragement: 'gentle-recovery',  // 메시지 톤 키
  },
  {
    id: 'I',
    label: '1기',
    fullLabel: '1기 — 종양 2cm 이하, 림프절 전이 없음',
    short: '조기 유방암. 수술로 종양 제거 후 보조요법.',
    color: '#8FA67E',
    bg: 'var(--hg-sage-tint)',
    focus: '수술 + 호르몬·항암·표적·방사선을 환자 특성에 맞춰 조합.',
    pace: '체력 회복과 일상 복귀에 집중. 부작용 관리가 핵심.',
    treatments: ['수술', '방사선', '항호르몬', '항암(선택적)'],
    encouragement: 'gentle-recovery',
  },
  {
    id: 'II',
    label: '2기',
    fullLabel: '2기 — 종양 2~5cm 또는 림프절 1~3개 전이',
    short: '국소 유방암. 항암화학요법이 흔히 포함됩니다.',
    color: '#D9A66C',
    bg: 'var(--hg-honey-tint)',
    focus: '수술 전후 항암 + 방사선 + 호르몬/표적의 종합 치료.',
    pace: '항암 사이클 내내 컨디션·식사·부작용 관리가 중요.',
    treatments: ['수술', '항암화학요법', '방사선', '항호르몬', '표적(HER2+)'],
    encouragement: 'steady-strength',
  },
  {
    id: 'III',
    label: '3기',
    fullLabel: '3기 — 림프절 4개 이상 또는 피부·흉벽 침범',
    short: '국소 진행 유방암. 다중 치료 전략이 적용됩니다.',
    color: '#B5755A',
    bg: 'var(--hg-clay-tint)',
    focus: '선행 항암 → 수술 → 방사선 → 보조요법 순으로 진행되기도.',
    pace: '치료 기간이 길어요. 작은 일상 챙김과 마음 돌봄이 함께 중요.',
    treatments: ['선행 항암', '수술', '방사선', '항호르몬/표적', '면역'],
    encouragement: 'steady-strength',
  },
  {
    id: 'IV',
    label: '4기',
    fullLabel: '4기 — 원격 전이 (뼈·간·폐·뇌 등)',
    short: '전이 유방암. 완치보다는 진행을 막고 삶의 질을 지키는 치료',
    color: '#ADA8C2',
    bg: 'var(--hg-mist-tint)',
    focus: '항호르몬·표적·항암·면역치료의 장기 관리. 증상 완화도 중요.',
    pace: '치료가 길게 이어집니다. 통증·증상·정서 케어가 핵심.',
    treatments: ['항호르몬', '표적', '항암', '면역', '방사선(증상)', '완화 의료'],
    encouragement: 'quality-life',
  },
];

function getStage(id) {
  return STAGES.find(s => s.id === id) || STAGES[1]; // 기본 1기
}

// 기수별 응원 메시지 풀
const STAGE_ENCOURAGEMENTS = {
  'gentle-recovery': [
    { e: '오늘도',  t: '회복은 차분히 진행 중이에요',   s: '몸이 회복할 시간을 충분히 주세요.' },
    { e: '하루',    t: '작은 일상이 회복의 시작',         s: '아침 커피 한 잔, 짧은 산책, 좋아하는 책.' },
    { e: '오늘',    t: '치료 일정을 잘 따라가고 있어요', s: '담당 진료팀이 함께합니다.' },
    { e: '하루',    t: '몸의 작은 변화에 귀 기울이세요', s: '회복은 보이지 않게 진행돼요.' },
    { e: '오늘은',  t: '서두를 필요 없어요',             s: '한 걸음씩, 그대로 충분합니다.' },
  ],
  'steady-strength': [
    { e: '오늘도',  t: '치료 한 차수를 잘 보내고 있어요', s: '회복 일차마다 작은 승리를 쌓아가요.' },
    { e: '하루',    t: '몸의 신호를 들어주세요',          s: '피곤하면 쉬고, 입맛 없으면 천천히.' },
    { e: '오늘',    t: '단백질 한 끼, 물 한 잔이면 충분', s: '체력은 작은 것들로 만들어집니다.' },
    { e: '하루',    t: '부작용은 곧 지나가요',           s: '대부분 2~3주 안에 회복합니다.' },
    { e: '오늘은',  t: '내가 할 수 있는 만큼만',          s: '오늘의 \'최선\'은 매일 달라도 좋아요.' },
    { e: '하루',    t: '진료팀에게 무엇이든 물어보세요',   s: '작은 변화도 진료에 도움이 됩니다.' },
  ],
  'quality-life': [
    { e: '오늘',    t: '오늘 하루를 잘 살아내요',         s: '내일은 내일의 빛이 있어요.' },
    { e: '하루',    t: '아픈 것을 참지 않아도 돼요',     s: '편안한 것이 가장 중요합니다.' },
    { e: '오늘도',  t: '함께하는 사람을 기억하세요',     s: '진료팀과 사랑하는 사람들이 있어요.' },
    { e: '하루',    t: '작은 기쁨 하나를 챙기세요',       s: '햇살, 좋아하는 음악, 따뜻한 차.' },
    { e: '오늘은',  t: '몸이 \'쉬자\'면 쉬어주세요',      s: '오늘은 그것이 가장 옳은 결정.' },
    { e: '하루',    t: '오늘 이 자리에 있다는 것',        s: '그 자체가 충분히 의미 있어요.' },
  ],
};

function getStageEncouragement(stage) {
  const profile = stage || 'I';
  const stg = getStage(profile);
  const pool = STAGE_ENCOURAGEMENTS[stg.encouragement] || STAGE_ENCOURAGEMENTS['steady-strength'];
  const today = todayISO();
  const seed = today.split('-').reduce((a, b) => a + parseInt(b, 10), 0);
  return pool[seed % pool.length];
}

// 도서관 글에 stages 필드가 있으면 우선 노출
function filterArticlesByStage(articles, stage) {
  if (!stage) return articles;
  return [...articles].sort((a, b) => {
    const aRel = (a.stages || []).includes(stage) ? 0 : 1;
    const bRel = (b.stages || []).includes(stage) ? 0 : 1;
    return aRel - bRel;
  });
}

Object.assign(window, { STAGES, getStage, getStageEncouragement, STAGE_ENCOURAGEMENTS, filterArticlesByStage });
