// Nuxt 3 + Quasar + Tailwind + TypeScript
// Configuration for E-Learning Platform - Refreshed
// ไฟล์ตั้งค่าหลักของ Nuxt.js ใช้สำหรับกำหนด Modules, Plugins, CSS และ Environment Variables
export default defineNuxtConfig({
  // Modules ที่ใช้ในโปรเจกต์
  // - nuxt-quasar-ui: สำหรับ UI Component Library (Quasar)
  // - @nuxtjs/tailwindcss: สำหรับ Utility-first CSS Framework
  // - @nuxtjs/i18n: สำหรับระบบหลายภาษา (Internationalization)
  modules: ["nuxt-quasar-ui", "@nuxtjs/tailwindcss", "@nuxtjs/i18n"],
  
  // การตั้งค่า i18n (ระบบภาษา)
  i18n: {
    strategy: 'no_prefix', // ไม่ใส่ prefix URL สำหรับภาษา default
    defaultLocale: 'th',   // ภาษาเริ่มต้นเป็นภาษาไทย
    langDir: 'locales',    // โฟลเดอร์เก็บไฟล์แปลภาษา
    locales: [
      { code: 'th', name: 'ไทย', iso: 'th-TH', file: 'th.json' },
      { code: 'en', name: 'English', iso: 'en-US', file: 'en.json' }
    ],
    detectBrowserLanguage: {
      useCookie: true,
      cookieKey: 'i18n_redirected',
      redirectOn: 'root'
    }
  },

  // ไฟล์ CSS หลักของโปรเจกต์
  css: ["~/assets/css/main.css"],

  typescript: {
    strict: true,
  },

  // การตั้งค่า Quasar Framework
  quasar: {
    extras: {
      fontIcons: ["material-icons"],
    },
    plugins: ["Notify"], // เปิดใช้ Plugin Notify
    config: {
      brand: { // กำหนดชุดสีหลัก (Theme Colors)
        primary: "#4b82f7",
        secondary: "#2f5ed7",
        accent: "#44d4a8",
        dark: "#0f1827",
      },
    },
  },

  // กำหนดให้ Nuxt สแกน Components ในโฟลเดอร์ ~/components โดยอัตโนมัติ
  components: [
    {
      path: "~/components",
      pathPrefix: false, // เรียกใช้ Component ได้โดยไม่ต้องมี prefix ชื่อโฟลเดอร์
    },
  ],

  // การตั้งค่า HTML Head (Meta tags, Google Fonts)
  app: {
    head: {
      htmlAttrs: {
        lang: 'th',
      },
      title: "E-Learning System",
      meta: [
        { name: "viewport", content: "width=device-width, initial-scale=1" },
      ],
      link: [
        {
          rel: "stylesheet",
          // โหลด Font: Inter, Prompt, Sarabun
          href: "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Prompt:wght@300;400;500;600;700;800;900&family=Sarabun:wght@300;400;500;600;700;800&display=swap",
        },
      ],
    },
  },

  // Environment Variables ที่ใช้ในโปรเจกต์ (เข้าถึงได้ทั้ง Server และ Client)
  runtimeConfig: {
    public: {
      apiBase: process.env.NUXT_PUBLIC_API_BASE || 'http://localhost:4000/api'
    }
  }
});
