// src/router/index.js

import { createRouter, createWebHistory } from 'vue-router';

// 1. Import Layouts
import DefaultLayout from "@/layouts/DefaultLayout.vue";
import LandingLayout from "@/layouts/LandingLayout.vue";

// 2. Import Views (สำคัญ: ต้อง import ชื่อที่ถูกต้อง)
import LandingPageView from "@/views/LandingPageView.vue"; // View สำหรับหน้า Landing Page
import HomeView from "@/views/HomeView.vue";             // View สำหรับหน้า Home หลัก (ที่มี Calousels, News ฯลฯ)

import ContentView from "@/views/ContentView.vue";        // View สำหรับแสดงรายละเอียด เรื่องราวดี ๆ ที่อยากบอกต่อ
import NewsCategoryView from "@/views/NewsCategoryView.vue"; // View สำหรับแสดงรายการข่าวตามหมวดหมู่
import NotFoundView from '@/views/NotFoundView.vue'; // View สำหรับแสดงหน้า Not Found
import TabContentView from "@/views/TabContentView.vue";
import AllNewsView from "@/views/AllNewsView.vue"; // // View สำหรับแสดงรายละเอียดข่าวสารอับเดต

// --- เพิ่ม import สำหรับ CommanderBioView ---
import CommanderBioView from "@/views/About/CommanderBioView.vue";
import OrganizationStructureView from "@/views/about/OrganizationStructureView.vue";
import HallView from "@/views/about/HallView.vue";
import PublicationsView from "@/views/info-dissemination/PublicationsView.vue";
import JournalView from "@/views/info-dissemination/JournalView.vue";
import MultimediaGallery from "@/views/info-dissemination/MultimediaGallery.vue"; // ตรวจสอบ path ให้ถูกต้อง

const routes = [
    // --- Route สำหรับหน้า Landing Page (ใช้ LandingLayout) ---
    {
        path: '/',
        component: LandingLayout, // LandingLayout คือกรอบของหน้า Landing
        children: [
            {
                path: '', // นี่คือ path สำหรับเนื้อหาที่แสดงเมื่อเข้าถึง '/'
                name: 'landing',
                component: LandingPageView, // ชี้ไปที่ View ที่มีเนื้อหาเฉพาะ Landing
            },
        ],
    },

    // --- Route สำหรับหน้า Home และหน้าอื่นๆ ที่ใช้ DefaultLayout ---
    {
        path: '/',
        component: DefaultLayout, // DefaultLayout คือกรอบของหน้า Home หลัก
        children: [
            {
                path: 'home', // HomeView จะถูกโหลดเมื่อเข้าถึง /home
                name: 'home',
                component: HomeView, // HomeView ที่มี Calousels, News, ฯลฯ
            },
            // !!! เพิ่ม Route สำหรับ ContentView !!!
            {
                path: 'news-content/:id', // Path สำหรับรายละเอียดข่าว เช่น /news-content/1, /news-content/2
                name: 'ContentView',
                component: ContentView,
                props: true // ส่งค่า parameter (id) เป็น props ไปยัง component ได้
            },
            // !!! เพิ่ม Route สำหรับ NewsCategoryView !!!
            {
                path: 'tab-news/:category', // Path สำหรับข่าวตามหมวดหมู่ เช่น /news/HumanTechNews
                name: 'NewsCategoryView',
                component: NewsCategoryView,
                props: true // ส่งค่า parameter (category) เป็น props ไปยัง component ได้
            },
            // !!! เพิ่ม Route สำหรับ ContentView !!!
            {
                path: 'tab-news-content/:id', // Path สำหรับรายละเอียดข่าว เช่น /tab-news-content/1, /tab-news-content/2
                name: 'TabContentView',
                component: TabContentView,
                props: true // ส่งค่า parameter (id) เป็น props ไปยัง component ได้
            },
            // !!! เพิ่ม Route สำหรับ AllNewsView !!!
            {
                path: '/all-news', // กำหนด path ใหม่
                name: 'AllNewsView',
                component: AllNewsView
            },
            // --- เพิ่ม Route สำหรับ About HumanTech Sub-menus ---
            {
                path: '/about/history',
                name: 'about-history',
                component: () => import('@/views/about/HistoryView.vue'), // วางในโฟลเดอร์ย่อย 'about'
                props: { menuId: 21 } // ส่ง ID เมนูย่อยไปให้ Component (ถ้าจำเป็น)
            },
            // --- เพิ่ม Route สำหรับ About HumanTech Sub-menus ---
            {
                path: '/about/vision-mission',
                name: 'vision-mission',
                component: () => import('@/views/about/VisionMissionView.vue'), // วางในโฟลเดอร์ย่อย 'about'
                props: { menuId: 22 } // ส่ง ID เมนูย่อยไปให้ Component (ถ้าจำเป็น)
            },
            {
                path: '/about/commander',
                name: 'commander',
                component: () => import('@/views/about/CommandingOfficersView.vue'), // วางในโฟลเดอร์ย่อย 'about'
                props: { menuId: 23 } // ส่ง ID เมนูย่อยไปให้ Component (ถ้าจำเป็น)
            },
            // --- เพิ่ม Route สำหรับ Commander Bio (ประวัติผู้บริหาร) ---
            {
                // Path ควรเป็น /about/commander/:id เพื่อให้สอดคล้องกับโครงสร้าง URL ที่คุณใช้
                // และให้สัมพันธ์กับ path: '/about/commander' ด้านบน
                path: '/about/commander/:id', // หรือถ้าต้องการให้เป็น `/about/bio/c101` ก็เปลี่ยนเป็น `path: '/about/bio/c:id'`
                name: 'CommanderBio', // ตั้งชื่อ Route
                component: CommanderBioView, // ชี้ไปที่ Component ที่สร้างไว้
                props: true // ส่งค่า parameter 'id' ไปยัง component ได้
            },
            {
                path: '/about/organization',
                name: 'organizationStructure',
                component: OrganizationStructureView
            },
            {
                path: '/about/commanders-list',
                name: 'HallOfFame', // ชื่อ Route ยังคงเป็น HallOfFame
                component: HallView // Component ก็ยังคงเป็น HallView
            },
            {
                path: '/data/publications', // URL สำหรับหน้าเอกสารเผยแพร่ทั่วไป
                name: 'Publications',
                component: PublicationsView,
                meta: {
                    title: 'เอกสารเผยแพร่', // สำหรับตั้งค่า Title ของหน้า (ถ้าใช้)
                    isPublic: true,
                },
            },
            {
                path: '/data/journal', // <-- กำหนด Path สำหรับ JournalView
                name: 'journal', // <-- ตั้งชื่อ Route
                component: JournalView, // <-- ชี้ไปที่ Component JournalView ที่ import มา
            },
            {
                path: '/data/gallery-media', // <-- กำหนด Path สำหรับ คลังภาพ/สื่อผสม
                name: 'gallery-media', // <-- ตั้งชื่อ Route
                component: MultimediaGallery, // <-- ชี้ไปที่ Component MultimediaGallery ที่ import มา
            },
            // ... ( routes อื่นๆ ที่อาจจะใช้ DefaultLayout )

            // *** เส้นทาง 404 (ต้องอยู่สุดท้ายเสมอ!) ***
            {
                path: '/:pathMatch(.*)*', // นี้คือ catch-all route ที่จะจับ URL ที่ไม่ตรงกับข้างบนทั้งหมด
                name: 'NotFound',
                component: NotFoundView
            }
        ],
    },

];

const router = createRouter({
    history: createWebHistory(import.meta.env.BASE_URL),
    routes,
});

// อย่าลืม export default router; ที่ท้ายไฟล์
export default router;