/* global React */

// Placeholder YouTube videos (real embeds)
const YT = {
  v1: "dQw4w9WgXcQ",
  v2: "aircAruvnKk",
  v3: "2ePf9rue1Ao",
  v4: "LPZh9BOjkQs",
  v5: "kCc8FmEb1nY",
  v6: "JhCl-GeT4jw",
  v7: "bZQun8Y4L2A",
  v8: "zjkBMFhNj_g",
};

const COURSE = {
  id: "ai-course",
  title: "สอนทำคลิป AI แบบครบสูตร ใช้งานได้จริง 🎬✨",
  tag: "🤖 AI Content Creator",
  desc: "สนุก มันส์ และทำเงินได้จริง! 🚀 มาเรียนทำคลิปด้วย AI กับครูแบงค์ ดอทคอม ตั้งแต่เขียนบท✨ สร้างภาพ🎨 พากย์เสียง🎤 ตัดต่อ✂️ ไปจนยอดหลายล้าน view 🔥",
  instructor: "ครูแบงค์ ดอทคอม",
  rating: 4.9,
  students: 3247,
  totalMinutes: 400,
  about: [
    "คอร์สนี้ออกแบบมาเพื่อคนที่ไม่เคยทำคลิปมาก่อน 👶 สอนแบบพี่สอนน้องชิลๆ ไม่ต้องมีพื้นฐานขอแค่มีมือถือกับใจที่อยากทำ! 💪",
    "แต่ละบทเรียน 20 นาที แบ่งเป็น module ย่อยๆ ดูจบไว โดยครอบคลุมเครื่องมือยอดนิยม✨ ChatGPT · Midjourney · ElevenLabs · Runway · CapCut · HeyGen และกลยุทธ์ทำให้คลิปไวรัลบน TikTok · YouTube · Reels 📱",
    "ทุกบทเรียนมีไฟล์คู่มือ .doc ให้ดาวน์โหลด 📄 รวมตัวอย่าง prompt · checklist · template ที่ใช้งานได้ทันที เอาไป copy ใช้ได้เลยเก็บไว้เป็นคลังเลย! 🎉",
  ],
};

const EPISODES = [
  { n: 1,  yt: YT.v1, emoji: "🚀", title: "เริ่มต้นโลก AI Creator",              duration: "20:12", desc: "ภาพรวมอุตสาหกรรม AI ปี 2026 + workflow ของเรา",   manual: "01-Introduction.doc", size: "1.4 MB", free: true },
  { n: 2,  yt: YT.v2, emoji: "✍️", title: "เขียนบทคลิปด้วย ChatGPT ให้ปัง",      duration: "20:04", desc: "สูตร hook-body-CTA แบบ 3-5-8 ที่ใช้ได้จริง",         manual: "02-ChatGPT.doc",      size: "2.1 MB", free: true },
  { n: 3,  yt: YT.v3, emoji: "🎨", title: "สร้างภาพสวยๆ ด้วย Midjourney V7",    duration: "19:58", desc: "style reference, character consistency, batch",     manual: "03-Midjourney.doc",   size: "3.2 MB" },
  { n: 4,  yt: YT.v4, emoji: "🎤", title: "โคลนเสียงตัวเองด้วย ElevenLabs",     duration: "20:30", desc: "อัด clone ภาษาไทย ปรับให้ฟังเป็นธรรมชาติ",             manual: "04-ElevenLabs.doc",   size: "1.8 MB" },
  { n: 5,  yt: YT.v5, emoji: "🎬", title: "สร้างวิดีโอ AI ด้วย Runway Gen-3",   duration: "20:45", desc: "text-to-video, image-to-video, camera motion",      manual: "05-Runway.doc",       size: "2.6 MB" },
  { n: 6,  yt: YT.v6, emoji: "✂️", title: "ตัดต่อคลิปสั้นใน CapCut",            duration: "20:08", desc: "keyframes, transition, auto-captions ภาษาไทย",      manual: "06-CapCut.doc",       size: "1.9 MB" },
  { n: 7,  yt: YT.v7, emoji: "🖼️", title: "ทำ Thumbnail ที่คนอดกดไม่ได้",       duration: "19:50", desc: "หลักการออกแบบ, Canva+Photoshop, การทำ A/B test",   manual: "07-Thumbnail.doc",    size: "2.3 MB" },
  { n: 8,  yt: YT.v8, emoji: "🔥", title: "กลยุทธ์ Viral บน TikTok",            duration: "20:15", desc: "hook 3 วินาที, trending sound, ช่วงเวลาทอง",         manual: "08-TikTok.doc",       size: "1.7 MB" },
  { n: 9,  yt: YT.v1, emoji: "📺", title: "YouTube Shorts และช่องระยะยาว",     duration: "20:22", desc: "title/description/tag และการสร้าง series",          manual: "09-YouTube.doc",      size: "2.0 MB" },
  { n: 10, yt: YT.v2, emoji: "📱", title: "Instagram Reels + Facebook Reels",  duration: "19:55", desc: "วิธีรีไซเคิลคอนเทนต์ข้ามแพลตฟอร์ม",                    manual: "10-Reels.doc",        size: "1.6 MB" },
  { n: 11, yt: YT.v3, emoji: "🧑‍💻", title: "AI Avatar กับ HeyGen และ D-ID",     duration: "20:10", desc: "สร้าง avatar ตัวเองพูดภาษาไทย",                      manual: "11-AI-Avatar.doc",    size: "2.4 MB" },
  { n: 12, yt: YT.v4, emoji: "⚙️", title: "Workflow อัตโนมัติ Zapier+Make",    duration: "20:33", desc: "GPT→Midjourney→Drive→Post ทุกวันอัตโนมัติ",           manual: "12-Automation.doc",   size: "2.8 MB" },
  { n: 13, yt: YT.v5, emoji: "📚", title: "คลิปสอนและคลิปรีวิวสินค้า",         duration: "19:48", desc: "โครง demo, b-roll จาก AI, การเล่าให้จบ",              manual: "13-Tutorial.doc",     size: "2.2 MB" },
  { n: 14, yt: YT.v6, emoji: "👄", title: "Lip-sync และ Dub ข้ามภาษา",          duration: "20:18", desc: "HeyGen Translate + Sync ปากขยับตรงเป๊ะ",              manual: "14-Lipsync.doc",      size: "1.9 MB" },
  { n: 15, yt: YT.v7, emoji: "🎁", title: "Prompt Template 50 อัน พร้อมใช้",    duration: "20:02", desc: "5 หมวด: การตลาด ไลฟ์สไตล์ ข่าว สอน บันเทิง",         manual: "15-Prompts.doc",      size: "3.5 MB" },
  { n: 16, yt: YT.v8, emoji: "🎭", title: "ช่อง Faceless ด้วย AI 100%",          duration: "20:28", desc: "ทำช่องไม่ต้องโชว์หน้า รับเงินจากยอดวิว",              manual: "16-Faceless.doc",     size: "2.5 MB" },
  { n: 17, yt: YT.v1, emoji: "💰", title: "ทำเงินจากคอนเทนต์ AI",               duration: "19:52", desc: "monetization, sponsor, affiliate, ขายคอร์ส",          manual: "17-Money.doc",        size: "2.1 MB" },
  { n: 18, yt: YT.v2, emoji: "⚖️", title: "ลิขสิทธิ์และจริยธรรม AI",            duration: "20:06", desc: "deepfake, disclaimer, กฎแพลตฟอร์ม",                    manual: "18-Ethics.doc",       size: "1.5 MB" },
  { n: 19, yt: YT.v3, emoji: "📊", title: "Analytics และปรับปรุงคลิป",          duration: "20:14", desc: "retention graph, CTR, A/B test",                      manual: "19-Analytics.doc",    size: "2.0 MB" },
  { n: 20, yt: YT.v4, emoji: "🏆", title: "แผน 90 วันแรกให้ช่องโต",             duration: "20:20", desc: "KPI + ระบบรีวิวรายสัปดาห์",                          manual: "20-90Day.doc",        size: "2.7 MB" },
];

// Fake PromptPay QR (static SVG pattern, not a real code)
const QR_SVG = (
  'data:image/svg+xml;utf8,' + encodeURIComponent(`
<svg xmlns="http://www.w3.org/2000/svg" width="240" height="240" viewBox="0 0 24 24">
  <rect width="24" height="24" fill="#fff"/>
  ${(() => {
    const cells = [];
    // Deterministic pseudo-random pattern
    const seed = (x,y) => ((x*31 + y*17 + (x^y)*7) % 13) > 6;
    for (let y=0; y<24; y++) {
      for (let x=0; x<24; x++) {
        // finder patterns (corners)
        const inFinder = (x<7 && y<7) || (x>=17 && y<7) || (x<7 && y>=17);
        if (inFinder) {
          const cx = x<7 ? 3 : 20;
          const cy = y<7 ? 3 : 20;
          const d = Math.max(Math.abs(x-cx), Math.abs(y-cy));
          if (d<=3 && d!==2) cells.push(`<rect x="${x}" y="${y}" width="1" height="1" fill="#000"/>`);
          continue;
        }
        if (seed(x,y)) cells.push(`<rect x="${x}" y="${y}" width="1" height="1" fill="#000"/>`);
      }
    }
    return cells.join('');
  })()}
</svg>
  `).replace(/\n/g,'')
);

window.CourseData = { COURSE, EPISODES, QR_SVG };
