// data.jsx — mock data for FitKit prototype

const TRAINEES = [
  { id: 't1', name: 'มินตรา ใจดี', nick: 'มิ้น', age: 28, goal: 'Lose 6kg', startW: 64, currentW: 60.2, targetW: 58, streak: 12, adherence: 92, lastActive: '2 ชม.', avatar: 'mint', tone: '#9BE36B', status: 'on-track', notes: 'ติดของหวานมาก ต้องคุมน้ำตาล', joined: 'ก.พ. 2026', package:'3mo', packageEndsIn:18, packageLabel:'3 เดือน', archived:false },
  { id: 't2', name: 'พีรพล ตันติกุล', nick: 'พี', age: 34, goal: 'Build muscle', startW: 71, currentW: 73.5, targetW: 78, streak: 24, adherence: 88, lastActive: '12 นาที', avatar: 'pee', tone: '#FFD66B', status: 'on-track', notes: 'นอนน้อย ต้องเตือนเรื่อง recovery', joined: 'ม.ค. 2026', package:'6mo', packageEndsIn:42, packageLabel:'6 เดือน', archived:false },
  { id: 't3', name: 'ชนิกานต์ ภิรมย์', nick: 'นิว', age: 31, goal: 'Lose 4kg', startW: 58, currentW: 57.6, targetW: 54, streak: 0, adherence: 41, lastActive: '4 วัน', avatar: 'new', tone: '#FF8A6B', status: 'at-risk', notes: 'หายไป 4 วัน — เครียดงาน', joined: 'ก.พ. 2026', package:'1mo', packageEndsIn:-1, packageLabel:'1 เดือน', archived:false },
  { id: 't4', name: 'ธนกร ศรีวิชัย', nick: 'กร', age: 26, goal: 'Run sub-50 10K', startW: 76, currentW: 74.1, targetW: 72, streak: 8, adherence: 78, lastActive: '1 ชม.', avatar: 'korn', tone: '#6BC9FF', status: 'on-track', notes: '', joined: 'มี.ค. 2026', package:'3mo', packageEndsIn:30, packageLabel:'3 เดือน', archived:false },
  { id: 't5', name: 'อภิชญา รุ่งโรจน์', nick: 'แอม', age: 24, goal: 'Tone & flexibility', startW: 52, currentW: 51.8, targetW: 50, streak: 18, adherence: 95, lastActive: '30 นาที', avatar: 'aim', tone: '#C49BFF', status: 'on-track', notes: 'top performer ของสัปดาห์นี้', joined: 'ม.ค. 2026', package:'3mo', packageEndsIn:5, packageLabel:'3 เดือน', archived:false },
  { id: 't6', name: 'วรเมธ คงทรัพย์', nick: 'เมธ', age: 38, goal: 'Lose 8kg', startW: 88, currentW: 86.4, targetW: 80, streak: 5, adherence: 65, lastActive: '1 วัน', avatar: 'meth', tone: '#FFB36B', status: 'watching', notes: 'sticking points: คาร์บมื้อเย็น', joined: 'ก.พ. 2026', package:'1mo', packageEndsIn:12, packageLabel:'1 เดือน', archived:false },
  // archived / past trainees — kept for history
  { id: 't7', name: 'ฐิตินันท์ พรหมศิริ', nick: 'นัท', age: 29, goal: 'Lose 8kg', startW: 72, currentW: 64, targetW: 64, streak: 0, adherence: 91, lastActive: '2 เดือน', avatar: 'nut', tone: '#9C9C92', status: 'graduated', notes: 'จบหลักสูตร — ลด 8kg สำเร็จ 🎉', joined: 'ส.ค. 2025', package:'6mo', packageEndsIn:-58, packageLabel:'6 เดือน', archived:true, archivedReason:'graduated', archivedDate:'1 มี.ค. 2026' },
  { id: 't8', name: 'ปิยะดา จันทร์เพ็ญ', nick: 'ฟ้า', age: 33, goal: 'Lose 5kg', startW: 65, currentW: 62, targetW: 60, streak: 0, adherence: 48, lastActive: '5 เดือน', avatar: 'fa', tone: '#9C9C92', status: 'archived', notes: 'ไม่ต่อหลังครบ 3 เดือน — ติดงาน', joined: 'พ.ย. 2025', package:'3mo', packageEndsIn:-148, packageLabel:'3 เดือน', archived:true, archivedReason:'no-renew', archivedDate:'15 ธ.ค. 2025' },
];

// 7 days of weight (latest last)
const WEIGHT_SERIES = [60.8, 60.6, 60.5, 60.4, 60.3, 60.3, 60.2];
const ADHERENCE_SERIES = [85, 90, 88, 95, 92, 90, 92];

const TODAY_TASKS = [
  { id: 'w1', kind: 'workout', title: 'Lower body strength', detail: '45 นาที · 6 ท่า', sets: '4×10', done: false, time: '07:00', cover: 'lower' },
  { id: 'm1', kind: 'meal', title: 'มื้อเช้า', detail: 'โปรตีน 30g · คาร์บ 50g', done: true, time: '08:30', cover: 'meal' },
  { id: 'm2', kind: 'meal', title: 'มื้อกลางวัน', detail: 'ข้าวกล้อง + อกไก่ + สลัด', done: true, time: '12:30', cover: 'meal' },
  { id: 'c1', kind: 'cardio', title: 'Zone 2 cardio', detail: 'เดินเร็ว 30 นาที', done: false, time: '17:30', cover: 'cardio' },
  { id: 'm3', kind: 'meal', title: 'มื้อเย็น', detail: 'ห้ามคาร์บหลัง 19:00', done: false, time: '19:00', cover: 'meal' },
  { id: 'h1', kind: 'habit', title: 'น้ำเปล่า 2.5L', detail: '1.6L / 2.5L', done: false, progress: 0.64 },
  { id: 'h2', kind: 'habit', title: 'นอน 7 ชม.', detail: 'ก่อน 23:30', done: false },
];

const WORKOUT_BLOCK = {
  title: 'Lower body strength',
  duration: 45,
  difficulty: 'Moderate',
  coachNote: 'พักระหว่างเซ็ต 60 วินาที — focus ที่ form อย่ารีบ ถ้าหนักไปลดน้ำหนักลง 2.5kg ได้',
  exercises: [
    { name: 'Goblet squat', sets: '4×10', weight: '12kg', rest: '60s', tempo: '3-1-1', done: 2 },
    { name: 'Romanian deadlift', sets: '4×10', weight: '20kg', rest: '60s', tempo: '3-0-1', done: 0 },
    { name: 'Bulgarian split squat', sets: '3×10/leg', weight: '8kg', rest: '60s', tempo: '2-0-1', done: 0 },
    { name: 'Hip thrust', sets: '4×12', weight: '30kg', rest: '60s', tempo: '2-1-2', done: 0 },
    { name: 'Calf raise', sets: '3×15', weight: 'BW', rest: '45s', tempo: '2-2-1', done: 0 },
    { name: 'Plank', sets: '3×45s', weight: '—', rest: '45s', tempo: '—', done: 0 },
  ],
};

const MEAL_LOGS = [
  { id: 'ml1', meal: 'มื้อเช้า', time: '08:24', img: 'breakfast', verdict: 'good', score: 92, ai: 'โปรตีนพอดี ~32g คาร์บคุณภาพ ✓ ถ้าเพิ่มผักใบเขียวจะดีขึ้น', trainer: null, kcal: 420 },
  { id: 'ml2', meal: 'ของว่าง', time: '10:42', img: 'snack', verdict: 'warn', score: 64, ai: 'ขนมแปรรูป น้ำตาล ~22g เกินเป้า — ลองเปลี่ยนเป็นกรีกโยเกิร์ต + ผลไม้', trainer: 'พรุ่งนี้ลองอัลมอนด์ 1 กำมือแทนนะ 💪', kcal: 280 },
  { id: 'ml3', meal: 'มื้อกลางวัน', time: '12:31', img: 'lunch', verdict: 'good', score: 88, ai: 'plate balance ดี — ข้าวกล้อง อกไก่ สลัด สมส่วน ~620 kcal', trainer: null, kcal: 620 },
];

const CHAT_THREAD = [
  { who: 'trainer', t: '08:30', msg: 'อรุณสวัสดิ์ค่ะมิ้น เมื่อวานนี้ทำได้ดีมาก 👏 วันนี้มี lower body นะคะ' },
  { who: 'trainee', t: '08:42', msg: 'รับทราบค่ะ พอดีเมื่อคืนนอนดึก 1 ทุ่มจะไหวมั้ยคะ' },
  { who: 'trainer', t: '08:43', msg: 'ไหวค่ะ ถ้าหนักจริงๆ ลดน้ำหนักลง 2.5kg ทุกท่า แต่ครบเซ็ต' },
  { who: 'trainer', t: '08:44', kind: 'video', img: 'gym', dur: 42, caption: 'ref: form ของท่า hip thrust — ดูตำแหน่งเท้านะคะ', label:'FORM REF' },
  { who: 'trainee', t: '08:45', msg: 'จัดให้ค่ะโค้ช 🔥', kind: 'short' },
  { who: 'trainee', t: '09:12', kind: 'image', img: 'pills', caption: 'วิตามิน + ยาประจำที่กินอยู่ค่ะ คุมแบบนี้ได้มั้ย?', label:'ยา/วิตามิน' },
  { who: 'trainer', t: '09:15', msg: 'OK ค่ะ ไม่ชนกับ plan — กินตามนี้ต่อได้เลย' },
  { who: 'trainer', t: '12:35', msg: '', kind: 'mealReact', mealId: 'ml3', reaction: '👏 plate balance สวยมาก' },
  { who: 'trainee', t: '12:36', msg: 'ขอบคุณค่ะ! กลัวคาร์บเย็นนี่แหละ', kind: 'short' },
  { who: 'trainer', t: '12:37', msg: 'มื้อเย็นวันนี้คุมคาร์บนะคะ ผัก + โปรตีนเป็นหลัก ทำได้แน่นอน', kind: 'voice', dur: 14 },
  { who: 'trainee', t: '14:08', kind: 'doc', docName:'ผลตรวจเลือด · 24 เม.ย.', docKind:'PDF · 4 หน้า', caption:'ผลตรวจประจำปีค่ะ — ฝากดูค่า cholesterol นะคะ' },
  { who: 'trainer', t: '14:22', kind: 'image', img:'lunch', caption:'ตัวอย่างมื้อสำหรับเย็นนี้ — ลองทำดูค่ะ', label:'MEAL REF' },
];

const SESSIONS = [
  { day: 'จ.', date: 27, items: [{ time: '07:00', title: 'Lower body', who: 'มิ้น', type: 'workout' }, { time: '18:00', title: 'Check-in call', who: 'พี', type: 'call' }] },
  { day: 'อ.', date: 28, items: [{ time: '07:30', title: 'Cardio Z2', who: 'มิ้น', type: 'cardio' }, { time: '17:00', title: 'Upper body', who: 'กร', type: 'workout' }] },
  { day: 'พ.', date: 29, items: [{ time: '08:00', title: 'Yoga flow', who: 'แอม', type: 'yoga' }] },
  { day: 'พฤ.', date: 30, items: [{ time: '07:00', title: 'Pull day', who: 'พี', type: 'workout' }, { time: '12:00', title: 'Meal review', who: 'มิ้น', type: 'review' }, { time: '18:00', title: 'Run intervals', who: 'กร', type: 'cardio' }] },
  { day: 'ศ.', date: 1, items: [{ time: '06:30', title: 'Push day', who: 'พี', type: 'workout' }] },
  { day: 'ส.', date: 2, items: [{ time: '09:00', title: 'Long run 10K', who: 'กร', type: 'cardio' }, { time: '15:00', title: 'Rest day check', who: 'แอม', type: 'review' }] },
  { day: 'อา.', date: 3, items: [] },
];

const GOALS = [
  { title: 'น้ำหนัก 58 kg', current: 60.2, start: 64, target: 58, unit: 'kg', dir: 'down', dueIn: '6 สัปดาห์', pct: 0.63 },
  { title: 'Body fat 22%', current: 24.8, start: 28, target: 22, unit: '%', dir: 'down', dueIn: '8 สัปดาห์', pct: 0.53 },
  { title: 'วิ่ง 5K สับ-30', current: 32.4, start: 36, target: 30, unit: 'นาที', dir: 'down', dueIn: '4 สัปดาห์', pct: 0.6 },
  { title: 'ออกกำลัง 4×/สัปดาห์', current: 4, start: 1, target: 4, unit: 'ครั้ง', dir: 'up', dueIn: 'ต่อเนื่อง', pct: 1.0 },
];

const ACHIEVEMENTS = [
  { name: 'Streak 7 วัน', earned: true, date: '20 เม.ย.' },
  { name: 'Streak 14 วัน', earned: false, locked: 'เหลือ 2 วัน' },
  { name: 'ลด 5 กก. แรก', earned: false, locked: 'อีก 1.2 kg' },
  { name: 'Meal-log ครบ 30 มื้อ', earned: true, date: '24 เม.ย.' },
  { name: 'Personal Best — Squat', earned: true, date: '18 เม.ย.' },
  { name: 'Early bird × 5', earned: false, locked: 'อีก 2 ครั้ง' },
];

Object.assign(window, {
  TRAINEES, WEIGHT_SERIES, ADHERENCE_SERIES, TODAY_TASKS,
  WORKOUT_BLOCK, MEAL_LOGS, CHAT_THREAD, SESSIONS, GOALS, ACHIEVEMENTS,
});
