// ---- 83G 2026 Plan Data ----

const BRAND = {
  company: "Krungthai-AXA Life",
  office: "83G",
  primary: "#F47920",       // KTAXA orange
  primarySoft: "#FBD7B5",
  ink: "#171717",
};

const TARGET = {
  fyp: 30000000,
  fypLabel: "30,000,000",
  agents: 110,
  units: 15,
  year: 2026,
};

// Current production progress.
const BASELINE = {
  fyp: 9000000,
  agents: 0,
  units: 15,
};

const PILLARS = [
  {
    key: "R",
    cls: "r",
    name: "Recruiting",
    th: "สรรหา",
    desc: "ขยายฐานตัวแทนใหม่ให้ครบ 110 manpower ผ่าน Open House, CSR, Connect Club",
    full: "สรรหา · Recruiting คือเสาแรกของ R.T.M.S — ขับเคลื่อนการเติบโตของสำนักงาน 83G ด้วยช่องทางสรรหาที่หลากหลาย ครอบคลุมตั้งแต่ผู้สนใจอาชีพไปจนถึงเครือข่ายในชุมชน",
    metric: { label: "ตัวแทนใหม่/เดือน", value: "+110 manpower รวม" },
  },
  {
    key: "T",
    cls: "t",
    name: "Training",
    th: "พัฒนา",
    desc: "ระบบคลับเรียนรู้ 9 คลับครอบคลุมทุกระดับ ตั้งแต่ First Stage ถึง Master Owner",
    full: "พัฒนา · Training คือเครื่องยนต์ของยอดขาย — ทักษะการขายพื้นฐาน, Mindset และการพัฒนาผู้นำ ถูกฝังในระบบคลับ 6 วัน/สัปดาห์",
    metric: { label: "คลับการเรียน", value: "9 คลับ · 6 วัน/สัปดาห์" },
  },
  {
    key: "M",
    cls: "m",
    name: "Motivating",
    th: "สร้างแรงจูงใจ",
    desc: "Morning Mindset, Contest รายไตรมาส, Recognition และ Trip กระตุ้นใจตลอดปี",
    full: "สร้างแรงจูงใจ · Motivating คือเชื้อเพลิง — ใช้ Contest 4 ไตรมาส, Recognition รายเดือน และ Trip ปลายปี เพื่อรักษา momentum ของทีม 110 คน",
    metric: { label: "กิจกรรมจูงใจ/ปี", value: "12+ ครั้ง" },
  },
  {
    key: "S",
    cls: "s",
    name: "Supervising",
    th: "ติดตาม",
    desc: "Daily Tracking · Weekly One-on-One · Monthly Business Review ทุก Unit",
    full: "ติดตาม · Supervising คือพวงมาลัย — ผู้บริหารเห็นข้อมูลจริงตั้งแต่รายวันถึงรายไตรมาส ปรับเกมได้ทันเวลา",
    metric: { label: "วงจรติดตาม", value: "Daily · Weekly · Monthly" },
  },
];

const CLUBS = [
  {
    id: "first-stage",
    name: "First Stage Club",
    desc: "พื้นฐานสำหรับตัวแทนใหม่ — เริ่มต้นอย่างมั่นใจ",
    day: "จันทร์",
    dayIdx: 1,
    weeks: "ทุกสัปดาห์",
    time: "20:00–21:30",
    channel: "Online",
    owners: ["ผจก.ต้อย", "ผจก. ธัช"],
    poster: "photos/First Stage Club.jpg",
    pillar: "t",
    tag: "T",
    perMonth: 4,
  },
  {
    id: "wellness",
    name: "Wellness Club",
    desc: "สุขภาพ ไลฟ์สไตล์ และความรู้ด้านประกันสุขภาพ",
    day: "พุธ",
    dayIdx: 3,
    weeks: "ทุกสัปดาห์",
    time: "20:00–21:30",
    channel: "Online",
    owners: ["ผอ. เพ็ชร", "ผจก. อ๋อย"],
    poster: "photos/Wellness Club.jpg",
    pillar: "t",
    tag: "T",
    perMonth: 4,
  },
  {
    id: "ic-family",
    name: "IC Family Club",
    desc: "สำหรับตัวแทนระดับ IC — สร้างความผูกพันและทีม",
    day: "พฤหัส",
    dayIdx: 4,
    weeks: "สัปดาห์ที่ 2 และ 4",
    time: "20:00–21:30",
    channel: "Online",
    owners: ["ผจก. เอ๊ะ", "ผจก. กระติ๊ก", "ผจก.ชัย"],
    poster: "photos/IC Family Club.jpg",
    pillar: "tm",
    tag: "T",
    perMonth: 2,
  },
  {
    id: "master-owner",
    name: "Master Owner Club",
    desc: "ระดับผู้นำ Unit — ยกระดับฝีมือเจ้าของกิจการ",
    day: "ศุกร์",
    dayIdx: 5,
    weeks: "ทุกสัปดาห์",
    time: "20:00–21:30",
    channel: "Online",
    owners: ["ผอ.เจต", "ผจก. พันเอก"],
    poster: "photos/Master Owner Club.jpg",
    pillar: "t",
    tag: "T",
    perMonth: 4,
  },
  {
    id: "morning-mindset",
    name: "Morning Mindset เปิดสวิตช์คิดบวก",
    desc: "เริ่มวันด้วยแรงบันดาลใจและทัศนคติบวก",
    day: "จันทร์–พุธ",
    dayIdx: [1, 2, 3],
    weeks: "ทุกสัปดาห์",
    time: "08:30–09:30",
    channel: "Online",
    owners: ["ผอ. เพ็ชร", "ผจก. กระติ๊ก", "ผจก. นุช", "ผจก.กุ๊กกิ๊ก"],
    poster: "photos/Morning Mindset เปิดสวิตช์คิดบวก.jpg",
    pillar: "m",
    tag: "M",
    perMonth: 12,
  },
  {
    id: "connect",
    name: "Connect Club",
    desc: "พบปะ networking ที่สำนักงาน — สร้างคอนเนคชั่นและสรรหา",
    day: "เสาร์",
    dayIdx: 6,
    weeks: "สัปดาห์ที่ 2 และ 4",
    time: "13:00–16:30",
    channel: "Offline · สำนักงาน 83G",
    owners: ["ผจก. เอ๊ะ", "ผจก.แคท", "ผจก.ลักกี้"],
    poster: "photos/Connect Club.jpg",
    pillar: "t",
    tag: "T",
    perMonth: 2,
  },
  {
    id: "online-club",
    name: "Online Marketing Club by Phetnada",
    desc: "เรียนรู้การตลาดออนไลน์",
    day: "อังคาร",
    dayIdx: 2,
    weeks: "ทุกสัปดาห์",
    time: "20:00–21:30",
    channel: "Online",
    owners: ["ผอ.กุ๊ก", "ผจก.แอม"],
    poster: "photos/Online Marketing Club by Phetnada.jpg",
    pillar: "m",
    tag: "M",
    perMonth: 4,
  },
  {
    id: "ai-club",
    name: "AI Club ง่ายจนงง",
    desc: "ใช้ AI ช่วยทำงานขาย — เครื่องมือ, prompt, workflow",
    day: "อาทิตย์",
    dayIdx: 7,
    weeks: "ทุกสัปดาห์",
    time: "20:00–21:30",
    channel: "Online",
    owners: ["ผจก. บอย"],
    poster: "photos/AI Club ง่ายจนงง.png",
    pillar: "t",
    tag: "T",
    perMonth: 2,
  },
  {
    id: "83g-club",
    name: "83G Club",
    desc: "คลับพิเศษประจำสำนักงาน 83G สำหรับอัปเดตและพัฒนาทีม",
    day: "เสาร์",
    dayIdx: 6,
    weeks: "สัปดาห์ที่ 3",
    time: "20:00–21:30",
    channel: "Online",
    owners: ["ผอ เจต", "ผจก ต้อย"],
    pillar: "t",
    tag: "T",
    perMonth: 1,
  },
];

const ACTIVITIES = [
  {
    id: "open-house",
    name: "Open House",
    pillar: "r",
    tag: "R",
    freq: "เดือนละ 2 ครั้ง",
    timesPerYear: 24,
    venue: "สำนักงาน 83G",
    desc: "สรรหาตัวแทนใหม่ — เปิดสำนักงานต้อนรับผู้สนใจ พร้อม session แชร์อาชีพและโอกาส",
    kpi: "ผู้สนใจ ≥ 12 คน/ครั้ง · Convert 25% → 3 คน/ครั้ง",
  },
  {
    id: "csr-phuket",
    name: "CSR ภูเก็ต",
    pillar: "rm",
    tag: "R",
    freq: "ไตรมาสละ 1 ครั้ง",
    timesPerYear: 4,
    venue: "ชุมชนในภูเก็ต",
    desc: "กิจกรรมเพื่อสังคม — สร้างแบรนด์ 83G และเครือข่ายผู้นำชุมชน เปิดประตูสรรหาและขาย",
    kpi: "ผู้เข้าร่วม ≥ 100 คน · Lead ใหม่ ≥ 30 คน/ครั้ง",
  },
  {
    id: "connect-meet",
    name: "Connect Club Networking",
    pillar: "t",
    tag: "T",
    freq: "เดือนละ 2 ครั้ง",
    timesPerYear: 24,
    venue: "สำนักงาน 83G",
    desc: "พบปะ networking ตัวแทน + พันธมิตร — รักษาแรงและสร้างโอกาสใหม่ในพื้นที่",
    kpi: "Lead ใหม่ ≥ 5 คน/ครั้ง · Renewal contact 100%",
  },
];

const LMS_LESSONS = [
  {
    id: "lms-aiclone-1",
    title: "AI Cloning ตอนที่ 1: แนะนำ AI Cloning คืออะไร",
    module: "AI Cloning",
    duration: "— นาที",
    level: "เริ่มต้น",
    owner: "",
    videoUrl: "https://yovibeztstpexajpuyyb.supabase.co/storage/v1/object/public/lms-videos/EP1.mp4",
    desc: "ทำความรู้จัก AI Cloning คืออะไร ใช้ทำอะไรได้บ้าง และมีประโยชน์อย่างไรในงานขาย",
    outcomes: ["เข้าใจความหมายของ AI Cloning", "รู้ประโยชน์เบื้องต้น", "เตรียมพร้อมสำหรับบทเรียนต่อไป"],
    resources: [],
  },
  {
    id: "lms-aiclone-2",
    title: "AI Cloning ตอนที่ 2",
    module: "AI Cloning",
    duration: "— นาที",
    level: "เริ่มต้น",
    owner: "",
    videoUrl: "",
    desc: "",
    outcomes: [],
    resources: [],
  },
  {
    id: "lms-aiclone-3",
    title: "AI Cloning ตอนที่ 3",
    module: "AI Cloning",
    duration: "— นาที",
    level: "เริ่มต้น",
    owner: "",
    videoUrl: "",
    desc: "",
    outcomes: [],
    resources: [],
  },
  {
    id: "lms-aiclone-4",
    title: "AI Cloning ตอนที่ 4",
    module: "AI Cloning",
    duration: "— นาที",
    level: "เริ่มต้น",
    owner: "",
    videoUrl: "",
    desc: "",
    outcomes: [],
    resources: [],
  },
  {
    id: "lms-aiclone-5",
    title: "AI Cloning ตอนที่ 5",
    module: "AI Cloning",
    duration: "— นาที",
    level: "เริ่มต้น",
    owner: "",
    videoUrl: "",
    desc: "",
    outcomes: [],
    resources: [],
  },
  {
    id: "lms-aiclone-6",
    title: "AI Cloning ตอนที่ 6",
    module: "AI Cloning",
    duration: "— นาที",
    level: "เริ่มต้น",
    owner: "",
    videoUrl: "",
    desc: "",
    outcomes: [],
    resources: [],
  },
  {
    id: "lms-aiclone-7",
    title: "AI Cloning ตอนที่ 7",
    module: "AI Cloning",
    duration: "— นาที",
    level: "เริ่มต้น",
    owner: "",
    videoUrl: "",
    desc: "",
    outcomes: [],
    resources: [],
  },
];

const CALENDAR_EVENTS = [
  {
    id: "open-house-2026-06-06",
    name: "Open House",
    date: "2026-06-06",
    time: "14:00–16:00",
    pillar: "r",
    desc: "กิจกรรม Open House ที่สำนักงาน 83G",
  },
  {
    id: "open-house-2026-07-04",
    name: "Open House",
    date: "2026-07-04",
    time: "14:00–16:00",
    pillar: "r",
    desc: "กิจกรรม Open House ที่สำนักงาน 83G",
  },
  {
    id: "open-house-2026-07-18",
    name: "Open House",
    date: "2026-07-18",
    time: "14:00–16:00",
    pillar: "r",
    desc: "กิจกรรม Open House ที่สำนักงาน 83G",
  },
  {
    id: "open-house-2026-08-08",
    name: "Open House",
    date: "2026-08-08",
    time: "14:00–16:00",
    pillar: "r",
    desc: "กิจกรรม Open House ที่สำนักงาน 83G",
  },
  {
    id: "open-house-2026-08-22",
    name: "Open House",
    date: "2026-08-22",
    time: "14:00–16:00",
    pillar: "r",
    desc: "กิจกรรม Open House ที่สำนักงาน 83G",
  },
  {
    id: "open-house-2026-09-05",
    name: "Open House",
    date: "2026-09-05",
    time: "14:00–16:00",
    pillar: "r",
    desc: "กิจกรรม Open House ที่สำนักงาน 83G",
  },
  {
    id: "open-house-2026-09-19",
    name: "Open House",
    date: "2026-09-19",
    time: "14:00–16:00",
    pillar: "r",
    desc: "กิจกรรม Open House ที่สำนักงาน 83G",
  },
  {
    id: "open-house-2026-10-03",
    name: "Open House",
    date: "2026-10-03",
    time: "14:00–16:00",
    pillar: "r",
    desc: "กิจกรรม Open House ที่สำนักงาน 83G",
  },
  {
    id: "open-house-2026-10-17",
    name: "Open House",
    date: "2026-10-17",
    time: "14:00–16:00",
    pillar: "r",
    desc: "กิจกรรม Open House ที่สำนักงาน 83G",
  },
  {
    id: "open-house-2026-11-07",
    name: "Open House",
    date: "2026-11-07",
    time: "14:00–16:00",
    pillar: "r",
    desc: "กิจกรรม Open House ที่สำนักงาน 83G",
  },
  {
    id: "open-house-2026-11-21",
    name: "Open House",
    date: "2026-11-21",
    time: "14:00–16:00",
    pillar: "r",
    desc: "กิจกรรม Open House ที่สำนักงาน 83G",
  },
  {
    id: "open-house-2026-12-12",
    name: "Open House",
    date: "2026-12-12",
    time: "14:00–16:00",
    pillar: "r",
    desc: "กิจกรรม Open House ที่สำนักงาน 83G",
  },
];

// Plan runs 1 Jun → 31 Dec 2569 (7 months)
const ZOOM_URL = "https://us06web.zoom.us/j/5999256977?pwd=06akkltqJWqEeOgWiWTjNMBHc3VGNa.1";
const MONTHS = ["มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค."];
const KICKOFF = "1 มิ.ย. 2569";
const CLOSE = "31 ธ.ค. 2569";

// APE monthly progress — update `achieved` each month
const APE_MONTHLY_PROGRESS = [
  { month: "มิ.ย.", focus: "Kick-off",  target: 3000000, achieved: 0 },
  { month: "ก.ค.", focus: "Recruit",   target: 3000000, achieved: 0 },
  { month: "ส.ค.", focus: "Push",      target: 3000000, achieved: 0 },
  { month: "ก.ย.", focus: "Review",    target: 3000000, achieved: 0 },
  { month: "ต.ค.", focus: "Comeback",  target: 3000000, achieved: 0 },
  { month: "พ.ย.", focus: "Pipeline",  target: 3000000, achieved: 0 },
  { month: "ธ.ค.", focus: "Final",     target: 3000000, achieved: 0 },
];

const APE_RATE = {
  daily:   136364,   // 3,000,000 ÷ 22 วันทำการ
  weekly:  750000,   // 3,000,000 ÷ 4 สัปดาห์
  monthly: 3000000,
};

// Roadmap rows — each row is an initiative with start/end months (1-12) and pillar
// Roadmap cells use 1–7 (มิ.ย.–ธ.ค. 2569)
const ROADMAP = [
  { name: "Kick-off + Target Setting", pillar: "s", cells: [[1,1]], type: "dot" },
  { name: "Open House (สรรหา)", pillar: "r", cells: [[1,7]], type: "bar", label: "× 2/เดือน · รวม 14 ครั้ง" },
  { name: "CSR ภูเก็ต", pillar: "r", cells: [[2,2],[5,5]], type: "dot" },
  { name: "Connect Club", pillar: "t", cells: [[1,7]], type: "bar", label: "× 2/เดือน" },
  { name: "Training Clubs (9 คลับ)", pillar: "t", cells: [[1,7]], type: "bar", label: "ทุกสัปดาห์" },
  { name: "Phase 1 Contest — New Star", pillar: "m", cells: [[1,2]], type: "bar", label: "Launch" },
  { name: "Phase 2 Contest — Production Push", pillar: "m", cells: [[3,4]], type: "bar", label: "Push" },
  { name: "Phase 3 Contest — Comeback", pillar: "m", cells: [[5,6]], type: "bar", label: "Comeback" },
  { name: "Phase 4 — Finish Strong", pillar: "m", cells: [[7,7]], type: "bar", label: "Final" },
  { name: "Monthly Business Review", pillar: "s", cells: [[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7]], type: "dot" },
  { name: "Mid-Project Convention", pillar: "m", cells: [[4,4]], type: "dot" },
  { name: "Year-End Recognition Gala", pillar: "m", cells: [[7,7]], type: "dot" },
];

const NAV = [
  { id: "overview",  label: "ภาพรวม",            num: "01" },
  { id: "ape-goal",  label: "เป้าหมาย APE",       num: "02" },
  { id: "rtms",      label: "R.T.M.S Framework",  num: "03" },
  { id: "training",  label: "ระบบคลับเรียนรู้",    num: "04" },
  { id: "roadmap",   label: "Roadmap 2026",        num: "05" },
  { id: "login",     label: "ล็อกอิน",             num: "06", href: "login.html" },
];

// Dashboard menu items shown after login.
const AGENT_NAV = [
  { id: "overview",     label: "ภาพรวม",              num: "01" },
  { id: "ape",          label: "บันทึก APE",            num: "02" },
  { id: "lms",          label: "บทเรียน LMS",          num: "03" },
  { id: "schedule",     label: "ตารางเรียน",            num: "04" },
  { id: "activities",   label: "คะแนนกิจกรรม",         num: "05" },
  { id: "history",      label: "ประวัติการเข้าร่วม",    num: "06" },
  { id: "leaderboard",  label: "อันดับคะแนน",          num: "07" },
  { id: "achievements", label: "เหรียญรางวัล",          num: "08" },
  { id: "rewards",      label: "ของรางวัล",             num: "09" },
  { id: "goals",        label: "เป้าหมายของฉัน",        num: "10" },
  { id: "profile",      label: "โปรไฟล์",              num: "11" },
];

// Wish categories for the agent "เป้าหมายของฉัน" tab — each has its own
// follow-up questions. Shared by the agent dashboard and admin panel.
const WISH_TYPES = [
  { id: "house", label: "บ้าน", icon: "🏠", fields: [
    { key: "price", label: "ราคาบ้าน", type: "money", unit: "บาท" },
    { key: "down", label: "เงินดาวน์", type: "money", unit: "บาท" },
    { key: "location", label: "ทำเล / ที่ตั้ง", type: "text", placeholder: "เช่น ใกล้รถไฟฟ้าสายสีเขียว" },
  ] },
  { id: "car", label: "รถยนต์", icon: "🚗", fields: [
    { key: "model", label: "ยี่ห้อ / รุ่น", type: "text", placeholder: "เช่น Toyota Camry" },
    { key: "price", label: "ราคา", type: "money", unit: "บาท" },
  ] },
  { id: "trip", label: "ทริปท่องเที่ยว", icon: "✈️", fields: [
    { key: "destination", label: "จุดหมายปลายทาง", type: "text", placeholder: "เช่น ญี่ปุ่น" },
    { key: "budget", label: "งบประมาณ", type: "money", unit: "บาท" },
    { key: "when", label: "ช่วงเวลาที่อยากไป", type: "text", placeholder: "เช่น ปลายปี 2026" },
  ] },
  { id: "cash", label: "เงินสด", icon: "💵", fields: [
    { key: "amount", label: "จำนวนเงินที่อยากมี", type: "money", unit: "บาท" },
  ] },
  { id: "other", label: "อื่นๆ", icon: "✨", fields: [
    { key: "name", label: "สิ่งที่ต้องการ", type: "text", placeholder: "ระบุสิ่งที่ต้องการ" },
    { key: "price", label: "ราคา / งบประมาณ", type: "money", unit: "บาท" },
  ] },
];
const wishTypeOf = (id) => WISH_TYPES.find(t => t.id === id);
const wishImageUrl = (path, bust) =>
  `${window.SUPABASE_URL}/storage/v1/object/public/avatars/${path}?bust=${bust || 0}`;


// ---- Meeting structure (โครงสร้างการประชุม) ----
const MEETINGS = [
  {
    id: "morning-brief",
    name: "Morning Brief",
    cadence: "ทุกวันทำการ",
    time: "08:30–09:30",
    duration: "60 นาที",
    audience: "ผู้จัดการ Unit + ตัวแทน",
    owner: "ผู้จัดการสำนักงาน + ทีม Morning Mindset",
    agenda: [
      "Mindset & Quote of the day",
      "Sales board ของวันก่อน (APE / Activity)",
      "Focus ของวันนี้: นัด/ปิด/บริการ",
      "Announcement / Contest standing",
    ],
    pillar: "m",
  },
  {
    id: "weekly-coach",
    name: "Weekly Coaching · 1-on-1",
    cadence: "ทุกสัปดาห์",
    time: "นัดส่วนตัว",
    duration: "30–45 นาที/คน",
    audience: "ผจก. Unit ↔ ตัวแทน",
    owner: "ผู้จัดการ Unit แต่ละ Unit",
    agenda: [
      "Activity Sheet สัปดาห์ที่ผ่านมา",
      "Pipeline review (Hot / Warm / Cold)",
      "แก้ปัญหา / Roleplay กรณีจริง",
      "ตั้งเป้า + commit สำหรับสัปดาห์หน้า",
    ],
    pillar: "s",
  },
  {
    id: "weekly-manager",
    name: "Weekly Manager Sync",
    cadence: "ทุกวันจันทร์",
    time: "10:00–11:30",
    duration: "90 นาที",
    audience: "ผู้จัดการ 15 Unit",
    owner: "ผู้จัดการสำนักงาน",
    agenda: [
      "Scorecard แต่ละ Unit (APE / Recruit / Active)",
      "Gap analysis vs. เป้ารายไตรมาส",
      "แผนงาน 1 สัปดาห์ + กิจกรรมที่ต้องผลัก",
      "Best practice แลกเปลี่ยน",
    ],
    pillar: "s",
  },
  {
    id: "monthly-review",
    name: "Monthly Business Review (MBR)",
    cadence: "ทุกสิ้นเดือน",
    time: "13:00–17:00",
    duration: "4 ชม.",
    audience: "ผู้บริหารสำนักงาน + ผจก. Unit ทั้งหมด",
    owner: "ผู้จัดการสำนักงาน",
    agenda: [
      "Performance Review: APE / Headcount / Active Agent",
      "Pipeline & Forecast เดือนถัดไป",
      "Recognition ผู้ทำผลงานเด่น",
      "ปรับ Roadmap + Contest กลยุทธ์",
    ],
    pillar: "s",
  },
];

// ---- Tracking & Review system ----
const TRACKING = [
  { layer: "Daily", who: "ตัวแทน", what: "Activity Sheet — นัด/พบ/เสนอ/ปิด", tool: "Line group + Sheet" },
  { layer: "Daily", who: "ผจก. Unit", what: "APE board · Activity ratio", tool: "Dashboard สำนักงาน" },
  { layer: "Weekly", who: "ผจก. Unit", what: "Pipeline review · 1-on-1 coaching", tool: "Coaching log" },
  { layer: "Weekly", who: "ผู้บริหารสำนักงาน", what: "Scorecard 15 Unit · Gap vs target", tool: "Weekly sync deck" },
  { layer: "Monthly", who: "ทุกระดับ", what: "MBR — Performance + Forecast + Recognition", tool: "MBR report" },
  { layer: "Quarterly", who: "ผู้บริหารสำนักงาน", what: "Strategy review · Contest result · Roadmap update", tool: "QBR deck" },
];

// ---- Contest & Incentive plan ----
const CONTESTS = [
  {
    q: "Phase 1",
    name: "New Star Launch",
    period: "มิ.ย.–ก.ค. 2569",
    focus: "Kick-off · สรรหาตัวแทนใหม่ + Activate ratio",
    prize: "Trip ภายในประเทศ + Recognition",
    pillar: "m",
  },
  {
    q: "Phase 2",
    name: "Production Push",
    period: "ส.ค.–ก.ย. 2569",
    focus: "Top 10 APE per unit · ผลัก production สูงสุดของปี",
    prize: "โบนัสพิเศษ + เข็มเกียรติยศ",
    pillar: "m",
  },
  {
    q: "Phase 3",
    name: "Comeback Quarter",
    period: "ต.ค.–พ.ย. 2569",
    focus: "Reactivate + Renewal + ยอดต่อเนื่อง ถึง 24M",
    prize: "Voucher + ตั๋ว Convention",
    pillar: "m",
  },
  {
    q: "Phase 4",
    name: "Finish Strong Gala",
    period: "ธ.ค. 2569",
    focus: "ปิดเป้า 30,000,000 APE · Top Unit Award",
    prize: "Trip ต่างประเทศ + Year-End Gala",
    pillar: "m",
  },
];

// Sandbox: set to "YYYY-MM-DD" to override today's date for testing, null for production
const SANDBOX_DATE = null;

const getNow = () => SANDBOX_DATE ? new Date(SANDBOX_DATE + "T12:00:00") : new Date();

Object.assign(window, {
  BRAND, TARGET, BASELINE, PILLARS, CLUBS, ACTIVITIES, CALENDAR_EVENTS, LMS_LESSONS, MONTHS, ROADMAP, NAV,
  MEETINGS, TRACKING, CONTESTS, AGENT_NAV, APE_MONTHLY_PROGRESS, APE_RATE, SANDBOX_DATE, getNow,
  WISH_TYPES, wishTypeOf, wishImageUrl,
});
