// src/stores/infoDisseminationStore.js
import { defineStore } from 'pinia';
import { useAppStore } from './app'; // <--- Import appStore

export const useInfoDisseminationStore = defineStore('infoDissemination', {
    state: () => ({
        allRawDocuments: [],
        allRawPublications: [],
        pdfData: [],
        videos: [],
        galleries: [],
        audio: [],
        isLoading: {
            documents: false,
            publications: false,
            videos: false, // ต้องมีและถูกเซ็ตเป็น true/false ถูกต้อง
            galleries: false, // ต้องมีและถูกเซ็ตเป็น true/false ถูกต้อง
            audio: false,     // ต้องมีและถูกเซ็ตเป็น true/false ถูกต้อง
        },
        errors: {
            documents: null,
            publications: null,
            videos: null, // ต้องมี
            galleries: null, // ต้องมี
            audio: null,     // ต้องมี
        },
    }),

    getters: {
        // --- Mock Data Functions (เหล่านี้คือ getters ที่คุณจะเรียกใช้แบบไม่มีวงเล็บ) ---
        getMockVideosData: () => {
            // ใช้ YouTube URL จริงๆ ที่มี Video ID 11 ตัวอักษร
            return [
                { id: '1', rawUrl: 'https://www.youtube.com/watch?v=ARzfFQZms7Y', title: 'การฝึก Cobra Gold 2024', title_en: 'Cobra Gold 2024 Exercise' },
                { id: '2', rawUrl: 'https://www.youtube.com/watch?v=ARzfFQZms7Y', title: 'เครื่องบินขับไล่ F-16 ของกองทัพอากาศ', title_en: 'Royal Thai Air Force F-16 Fighter Jet' },
                { id: '3', rawUrl: 'https://www.youtube.com/watch?v=ARzfFQZms7Y', title: 'ภารกิจช่วยเหลือผู้ประสบภัย', title_en: 'Disaster Relief Mission' },
                { id: '4', rawUrl: 'https://www.youtube.com/watch?v=ARzfFQZms7Y', title: 'ประวัติกองทัพอากาศไทย', title_en: 'History of Royal Thai Air Force' },
                { id: '5', rawUrl: 'https://www.youtube.com/watch?v=ARzfFQZms7Y', title: 'การแสดงแสนยานุภาพทางอากาศ', title_en: 'Air Power Demonstration' },
                { id: '6', rawUrl: 'https://www.youtube.com/watch?v=ARzfFQZms7Y', title: 'ชีวิตนักบินขับไล่', title_en: 'Life of a Fighter Pilot' },
                { id: '7', rawUrl: 'https://www.youtube.com/watch?v=ARzfFQZms7Y', title: 'เทคโนโลยีอากาศยานไร้คนขับ', title_en: 'UAV Technology' },
                { id: '8', rawUrl: 'https://www.youtube.com/watch?v=ARzfFQZms7Y', title: 'วันเด็กแห่งชาติ กองทัพอากาศ', title_en: 'Children\'s Day at RTAF' },
                { id: '9', rawUrl: 'https://www.youtube.com/watch?v=ARzfFQZms7Y', title: 'การซ้อมรบร่วม', title_en: 'Joint Military Exercise' }
            ];
        },

        getMockGalleriesData: () => {
            return [
                { id: '1', name: 'ภาพการฝึก Cobra Gold', name_en: 'Cobra Gold Training Photos', images: [{ url: '/mock-images/gallery1.jpg' }, { url: '/mock-images/gallery2.jpg' }, { url: '/mock-images/gallery3.jpg' }] },
                { id: '2', name: 'ภาพงานวันเด็ก', name_en: 'Children\'s Day Event Photos', images: [{ url: '/mock-images/gallery4.jpg' }, { url: '/mock-images/gallery5.jpg' }] },
                { id: '3', name: 'ภาพงานกาชาด', name_en: 'Red Cross Fair Photos', images: [{ url: '/mock-images/gallery6.jpg' }, { url: '/mock-images/gallery7.jpg' }] },
                { id: '4', name: 'ภาพวันกองทัพไทย', name_en: 'Thai Armed Forces Day Photos', images: [{ url: '/mock-images/gallery8.jpg' }, { url: '/mock-images/gallery9.jpg' }] },
                { id: '5', name: 'ภาพพิธีสวนสนาม', name_en: 'Parade Ceremony Photos', images: [{ url: '/mock-images/gallery1.jpg' }, { url: '/mock-images/gallery2.jpg' }] },
                { id: '6', name: 'ภาพกิจกรรม CSR', name_en: 'CSR Activities Photos', images: [{ url: '/mock-images/gallery3.jpg' }, { url: '/mock-images/gallery4.jpg' }] },
                { id: '7', name: 'ภาพเยี่ยมชมหน่วยงาน', name_en: 'Unit Visit Photos', images: [{ url: '/mock-images/gallery5.jpg' }, { url: '/mock-images/gallery6.jpg' }] },
                { id: '8', name: 'ภาพการฝึกซ้อม', name_en: 'Training Photos', images: [{ url: '/mock-images/gallery7.jpg' }, { url: '/mock-images/gallery8.jpg' }] },
                { id: '9', name: 'ภาพงานแสดง', name_en: 'Exhibition Photos', images: [{ url: '/mock-images/gallery9.jpg' }, { url: '/mock-images/gallery1.jpg' }] },
            ];
        },

        getMockAudioData: () => {
            return [
                { id: 'a1', title: 'เพลงมาร์ชกองทัพอากาศ', title_en: 'Royal Thai Air Force March', thumbnail: '/mock-images/default-audio-icon.jpg', file: '/mock-audio/rtaf_march.mp3' },
                { id: 'a2', title: 'เพลงพระราชนิพนธ์', title_en: 'Royal Composition by King Rama IX', thumbnail: '/mock-images/default-audio-icon.jpg', file: '/mock-audio/rtaf_march.mp3' },
                { id: 'a3', title: 'เพลงสรรเสริญพระบารมี', title_en: 'The Highest Dream', thumbnail: '/mock-images/default-audio-icon.jpg', file: '/mock-audio/rtaf_march.mp3' },
                { id: 'a4', title: 'เพลงมหาฤกษ์', title_en: 'Auspicious Song', thumbnail: '/mock-images/default-audio-icon.jpg', file: '/mock-audio/rtaf_march.mp3' },
                { id: 'a5', title: 'เพลงมหาชัย', title_en: 'Victory Song', thumbnail: '/mock-images/default-audio-icon.jpg', file: '/mock-audio/rtaf_march.mp3' },
            ];
        },
        // --- สิ้นสุด Mock Data Functions ---

        getYoutubeEmbedUrl: (state) => (url) => {
            const regex = /(?:v=|\/v\/|\/embed\/|youtu\.be\/)([a-zA-Z0-9_-]{11})/;
            const match = url.match(regex);

            const videoId = match && match[1] ? match[1] : null;

            return videoId
                ? `https://www.youtube.com/embed/${videoId}?autoplay=1&rel=0&modestbranding=1&autohide=1&showinfo=0`
                : null;
        },

        getYoutubeThumbnail: (state) => (url) => {
            const regex = /(?:v=|\/v\/|\/embed\/|youtu\.be\/)([a-zA-Z0-9_-]{11})/;
            const match = url.match(regex);

            const videoId = match && match[1] ? match[1] : null;

            return videoId
                ? `https://img.youtube.com/vi/${videoId}/mqdefault.jpg`
                : '/images/youtube-default-thumb.jpg';
        },

        getVideosForDisplay: (state) => {
            const sourceVideos = state.videos.length > 0 ? state.videos : state.getMockVideosData;
            const videos = sourceVideos.map(v => ({
                ...v,
                embedUrl: state.getYoutubeEmbedUrl(v.rawUrl), // ตรงนี้คือที่สร้าง embedUrl
                thumb: state.getYoutubeThumbnail(v.rawUrl),
            }));

            console.log('getVideosForDisplay output (ตรวจสอบ embedUrl):', videos);
            return videos;
        },

        getGalleriesForDisplay: (state) => {

            const sourceGalleries = state.galleries.length > 0 ? state.galleries : state.getMockGalleriesData;
            console.log('getGalleriesForDisplay output:', sourceGalleries);
            return sourceGalleries;
        },
        getAudioForDisplay: (state) => {

            const sourceAudio = state.audio.length > 0 ? state.audio : state.getMockAudioData;
            console.log('getAudioForDisplay output:', sourceAudio);
            return sourceAudio;
        },

        getIsLoadingAny: (state) => {
            return state.isLoading.documents || state.isLoading.publications || state.isLoading.videos || state.isLoading.galleries || state.isLoading.audio;
        },
        getHasError: (state) => {
            return state.errors.documents !== null || state.errors.publications !== null || state.errors.videos !== null || state.errors.galleries !== null || state.errors.audio !== null;
        },

        getMockDocumentsData: () => {
            const mockDocuments = [
                { id: 1, name: 'เอกสารเผยแพร่ฉบับที่ 1', name_en: 'Publication Document 1', thumbnail: { url: '/mock-images/doc1-thumb.jpg' }, file: { url: '/mock-pdfs/doc1.pdf' }, images: [{ url: '/mock-images/doc1-page1.jpg' }, { url: '/mock-images/doc1-page2.jpg' }, { url: '/mock-images/doc1-page3.jpg' },], description: 'รายละเอียดเอกสารฉบับที่ 1', description_en: 'Details of Publication Document 1', content_approved_date: '2024-01-15T10:00:00Z', active: true, active_en: true, },
                { id: 2, name: 'คู่มือการใช้งานระบบ 1', name_en: 'System User Manual 1', thumbnail: { url: '/mock-images/doc2-thumb.jpg' }, file: { url: '/mock-pdfs/doc1.pdf' }, images: [{ url: '/mock-images/doc2-page1.jpg' }, { url: '/mock-images/doc2-page2.jpg' },], description: 'คู่มือการใช้งานระบบสำหรับผู้ใช้', description_en: 'User manual for system operation', content_approved_date: '2024-02-20T11:30:00Z', active: true, active_en: true, },
                { id: 3, name: 'เอกสารเผยแพร่ฉบับที่ 2', name_en: 'Publication Document 2', thumbnail: { url: '/mock-images/doc1-thumb.jpg' }, file: { url: '/mock-pdfs/doc1.pdf' }, images: [{ url: '/mock-images/doc1-page1.jpg' }, { url: '/mock-images/doc1-page2.jpg' }, { url: '/mock-images/doc1-page3.jpg' },], description: 'รายละเอียดเอกสารฉบับที่ 1', description_en: 'Details of Publication Document 1', content_approved_date: '2024-01-15T10:00:00Z', active: true, active_en: true, },
                { id: 4, name: 'คู่มือการใช้งานระบบ 2', name_en: 'System User Manual 2', thumbnail: { url: '/mock-images/doc2-thumb.jpg' }, file: { url: '/mock-pdfs/doc1.pdf' }, images: [{ url: '/mock-images/doc2-page1.jpg' }, { url: '/mock-images/doc2-page2.jpg' },], description: 'คู่มือการใช้งานระบบสำหรับผู้ใช้', description_en: 'User manual for system operation', content_approved_date: '2024-02-20T11:30:00Z', active: true, active_en: true, },
                { id: 5, 'name': 'เอกสารเผยแพร่ฉบับที่ 3', 'name_en': 'Publication Document 3', thumbnail: { url: '/mock-images/doc1-thumb.jpg' }, file: { url: '/mock-pdfs/doc1.pdf' }, images: [{ url: '/mock-images/doc1-page1.jpg' }, { url: '/mock-images/doc1-page2.jpg' }, { url: '/mock-images/doc1-page3.jpg' },], description: 'รายละเอียดเอกสารฉบับที่ 1', description_en: 'Details of Publication Document 1', content_approved_date: '2024-01-15T10:00:00Z', active: true, active_en: true, },
                { id: 6, 'name': 'คู่มือการใช้งานระบบ 3', 'name_en': 'System User Manual 3', thumbnail: { url: '/mock-images/doc2-thumb.jpg' }, file: { url: '/mock-pdfs/doc1.pdf' }, images: [{ url: '/mock-images/doc2-page1.jpg' }, { url: '/mock-images/doc2-page2.jpg' },], description: 'คู่มือการใช้งานระบบสำหรับผู้ใช้', description_en: 'User manual for system operation', content_approved_date: '2024-02-20T11:30:00Z', active: true, active_en: true, },
                { id: 7, 'name': 'เอกสารเผยแพร่ฉบับที่ 4', 'name_en': 'Publication Document 4', thumbnail: { url: '/mock-images/doc1-thumb.jpg' }, file: { url: '/mock-pdfs/doc1.pdf' }, images: [{ url: '/mock-images/doc1-page1.jpg' }, { url: '/mock-images/doc1-page2.jpg' }, { url: '/mock-images/doc1-page3.jpg' },], description: 'รายละเอียดเอกสารฉบับที่ 1', description_en: 'Details of Publication Document 1', content_approved_date: '2024-01-15T10:00:00Z', active: true, active_en: true, },
                { id: 8, 'name': 'คู่มือการใช้งานระบบ 4', 'name_en': 'System User Manual 4', thumbnail: { url: '/mock-images/doc2-thumb.jpg' }, file: { url: '/mock-pdfs/doc1.pdf' }, images: [{ url: '/mock-images/doc2-page1.jpg' }, { url: '/mock-images/doc2-page2.jpg' },], description: 'คู่มือการใช้งานระบบสำหรับผู้ใช้', description_en: 'User manual for system operation', content_approved_date: '2024-02-20T11:30:00Z', active: true, active_en: true, },
                { id: 9, 'name': 'เอกสารเผยแพร่ฉบับที่ 5', 'name_en': 'Publication Document 5', thumbnail: { url: '/mock-images/doc1-thumb.jpg' }, file: { url: '/mock-pdfs/doc1.pdf' }, images: [{ url: '/mock-images/doc1-page1.jpg' }, { url: '/mock-images/doc1-page2.jpg' }, { url: '/mock-images/doc1-page3.jpg' },], description: 'รายละเอียดเอกสารฉบับที่ 1', description_en: 'Details of Publication Document 1', content_approved_date: '2024-01-15T10:00:00Z', active: true, active_en: true, },
                { id: 10, 'name': 'คู่มือการใช้งานระบบ 5', 'name_en': 'System User Manual 5', thumbnail: { url: '/mock-images/doc2-thumb.jpg' }, file: { url: '/mock-pdfs/doc1.pdf' }, images: [{ url: '/mock-images/doc2-page1.jpg' }, { url: '/mock-images/doc2-page2.jpg' },], description: 'คู่มือการใช้งานระบบสำหรับผู้ใช้', description_en: 'User manual for system operation', content_approved_date: '2024-02-20T11:30:00Z', active: true, active_en: true, },
            ];
            return mockDocuments;
        },

        getMockPublicationsData: () => {
            const mockPublications = [
                { id: 101, type: 'magazine', Title_TH: 'หนังสือข่าวฮิวแมนเทคไทยแลนด์ ฉบับที่ 1', Title_EN: 'HumanTech Magazine No. 1', thumbnail: { url: '/mock-images/mag1-thumb.jpg' }, Attachment_TH: [{ url: '/mock-pdfs/mag1.pdf' }], images: [{ url: '/mock-images/mag1-page1.jpg' }, { url: '/mock-images/mag1-page2.jpg' }, { url: '/mock-images/mag1-page3.jpg' },], Active: true, active_en: true, createdAt: '2024-03-01T09:00:00Z', },
                { id: 102, type: 'magazine', Title_TH: 'หนังสือฮิวแมนเทคไทยแลนด์ ฉบับที่ 2', Title_EN: 'HumanTech Magazine No. 2', thumbnail: { url: '/mock-images/mag2-thumb.jpg' }, Attachment_TH: [{ url: '/mock-pdfs/mag2.pdf' }], images: [{ url: '/mock-images/mag2-page1.jpg' }, { url: '/mock-images/mag2-page2.jpg' },], Active: true, active_en: true, createdAt: '2024-04-05T14:00:00Z', },
                { id: 201, type: 'dailynews', Title_TH: 'ข่าวประจำวันฮิวแมนเทคไทยแลนด์ ฉบับ 100', Title_EN: 'HumanTech Daily News No. 100', thumbnail: { url: '/mock-images/daily1-thumb.jpg' }, Attachment_TH: [{ url: '/mock-pdfs/daily1.pdf' }], images: [{ url: '/mock-images/daily1-page1.jpg' }, { url: '/mock-images/daily1-page2.jpg' },], Active: true, active_en: true, createdAt: '2024-05-10T08:00:00Z', },
                { id: 301, type: 'Journal', Title_TH: 'สารชาวฮิวแมนเทคไทยแลนด์ ปีที่ 50 ฉบับที่ 1', Title_EN: 'HumanTech Journal Vol. 50 No. 1', thumbnail: { url: '/mock-images/journal1-thumb.jpg' }, Attachment_TH: [{ url: '/mock-pdfs/journal1.pdf' }], images: [{ url: '/mock-images/journal1-page1.jpg' }, { url: '/mock-images/journal1-page2.jpg' },], Active: true, active_en: true, createdAt: '2024-06-01T10:00:00Z', },
                { id: 103, type: 'magazine', Title_TH: 'หนังสือข่าวฮิวแมนเทคไทยแลนด์ ฉบับที่ 3', Title_EN: 'HumanTech Magazine No. 1', thumbnail: { url: '/mock-images/mag1-thumb.jpg' }, Attachment_TH: [{ url: '/mock-pdfs/mag1.pdf' }], images: [{ url: '/mock-images/mag1-page1.jpg' }, { url: '/mock-images/mag1-page2.jpg' }, { url: '/mock-images/mag1-page3.jpg' },], Active: true, active_en: true, createdAt: '2024-03-01T09:00:00Z', },
                { id: 104, type: 'magazine', Title_TH: 'หนังสือฮิวแมนเทคไทยแลนด์ ฉบับที่ 4', Title_EN: 'HumanTech Magazine No. 2', thumbnail: { url: '/mock-images/mag2-thumb.jpg' }, Attachment_TH: [{ url: '/mock-pdfs/mag2.pdf' }], images: [{ url: '/mock-images/mag2-page1.jpg' }, { url: '/mock-images/mag2-page2.jpg' },], Active: true, active_en: true, createdAt: '2024-04-05T14:00:00Z', },
                { id: 202, type: 'dailynews', Title_TH: 'ข่าวประจำวันฮิวแมนเทคไทยแลนด์ ฉบับ 101', Title_EN: 'HumanTech Daily News No. 100', thumbnail: { url: '/mock-images/daily1-thumb.jpg' }, Attachment_TH: [{ url: '/mock-pdfs/daily1.pdf' }], images: [{ url: '/mock-images/daily1-page1.jpg' }, { url: '/mock-images/daily1-page2.jpg' },], Active: true, active_en: true, createdAt: '2024-05-10T08:00:00Z', },
                { id: 302, type: 'Journal', Title_TH: 'สารชาวฮิวแมนเทคไทยแลนด์ ปีที่ 50 ฉบับที่ 2', Title_EN: 'HumanTech Journal Vol. 50 No. 1', thumbnail: { url: '/mock-images/journal1-thumb.jpg' }, Attachment_TH: [{ url: '/mock-pdfs/journal1.pdf' }], images: [{ url: '/mock-images/journal1-page1.jpg' }, { url: '/mock-images/journal1-page2.jpg' },], Active: true, active_en: true, createdAt: '2024-06-01T10:00:00Z', },
                { id: 105, type: 'magazine', Title_TH: 'หนังสือข่าวฮิวแมนเทคไทยแลนด์ ฉบับที่ 5', Title_EN: 'HumanTech Magazine No. 1', thumbnail: { url: '/mock-images/mag1-thumb.jpg' }, Attachment_TH: [{ url: '/mock-pdfs/mag1.pdf' }], images: [{ url: '/mock-images/mag1-page1.jpg' }, { url: '/mock-images/mag1-page2.jpg' }, { url: '/mock-images/mag1-page3.jpg' },], Active: true, active_en: true, createdAt: '2024-03-01T09:00:00Z', },
                { id: 106, type: 'magazine', Title_TH: 'หนังสือฮิวแมนเทคไทยแลนด์ ฉบับที่ 6', Title_EN: 'HumanTech Magazine No. 2', thumbnail: { url: '/mock-images/mag2-thumb.jpg' }, Attachment_TH: [{ url: '/mock-pdfs/mag2.pdf' }], images: [{ url: '/mock-images/mag2-page1.jpg' }, { url: '/mock-images/mag2-page2.jpg' },], Active: true, active_en: true, createdAt: '2024-04-05T14:00:00Z', },
                { id: 203, type: 'dailynews', Title_TH: 'ข่าวประจำวันฮิวแมนเทคไทยแลนด์ ฉบับ 102', Title_EN: 'HumanTech Daily News No. 100', thumbnail: { url: '/mock-images/daily1-thumb.jpg' }, Attachment_TH: [{ url: '/mock-pdfs/daily1.pdf' }], images: [{ url: '/mock-images/daily1-page1.jpg' }, { url: '/mock-images/daily1-page2.jpg' },], Active: true, active_en: true, createdAt: '2024-05-10T08:00:00Z', },
                { id: 303, type: 'Journal', Title_TH: 'สารชาวฮิวแมนเทคไทยแลนด์ ปีที่ 50 ฉบับที่ 3', Title_EN: 'HumanTech Journal Vol. 50 No. 1', thumbnail: { url: '/mock-images/journal1-thumb.jpg' }, Attachment_TH: [{ url: '/mock-pdfs/journal1.pdf' }], images: [{ url: '/mock-images/journal1-page1.jpg' }, { url: '/mock-images/journal1-page2.jpg' },], Active: true, active_en: true, createdAt: '2024-06-01T10:00:00Z', },
                { id: 107, type: 'magazine', Title_TH: 'หนังสือข่าวฮิวแมนเทคไทยแลนด์ ฉบับที่ 7', Title_EN: 'HumanTech Magazine No. 1', thumbnail: { url: '/mock-images/mag1-thumb.jpg' }, Attachment_TH: [{ url: '/mock-pdfs/mag1.pdf' }], images: [{ url: '/mock-images/mag1-page1.jpg' }, { url: '/mock-images/mag1-page2.jpg' }, { url: '/mock-images/mag1-page3.jpg' },], Active: true, active_en: true, createdAt: '2024-03-01T09:00:00Z', },
                { id: 108, type: 'magazine', Title_TH: 'หนังสือฮิวแมนเทคไทยแลนด์ ฉบับที่ 8', Title_EN: 'HumanTech Magazine No. 2', thumbnail: { url: '/mock-images/mag2-thumb.jpg' }, Attachment_TH: [{ url: '/mock-pdfs/mag2.pdf' }], images: [{ url: '/mock-images/mag2-page1.jpg' }, { url: '/mock-images/mag2-page2.jpg' },], Active: true, active_en: true, createdAt: '2024-04-05T14:00:00Z', },
                { id: 204, type: 'dailynews', Title_TH: 'ข่าวประจำวันฮิวแมนเทคไทยแลนด์ ฉบับ 103', Title_EN: 'HumanTech Daily News No. 100', thumbnail: { url: '/mock-images/daily1-thumb.jpg' }, Attachment_TH: [{ url: '/mock-pdfs/daily1.pdf' }], images: [{ url: '/mock-images/daily1-page1.jpg' }, { url: '/mock-images/daily1-page2.jpg' },], Active: true, active_en: true, createdAt: '2024-05-10T08:00:00Z', },
                { id: 304, type: 'Journal', Title_TH: 'สารชาวฮิวแมนเทคไทยแลนด์ ปีที่ 50 ฉบับที่ 4', Title_EN: 'HumanTech Journal Vol. 50 No. 1', thumbnail: { url: '/mock-images/journal1-thumb.jpg' }, Attachment_TH: [{ url: '/mock-pdfs/journal1.pdf' }], images: [{ url: '/mock-images/journal1-page1.jpg' }, { url: '/mock-images/journal1-page2.jpg' },], Active: true, active_en: true, createdAt: '2024-06-01T10:00:00Z', },
            ];
            return mockPublications;
        },

        getFilteredDocuments: (state) => {
            const appStore = useAppStore();

            const allDocs = state.allRawDocuments.length > 0 ? state.allRawDocuments : state.getMockDocumentsData;
            if (appStore.isTh) { // <--- ใช้ appStore.isTh
                return allDocs.filter(doc => doc.active);
            } else {
                return allDocs.filter(doc => doc.active_en);
            }
        },

        getFilteredPublications: (state) => {
            const appStore = useAppStore();

            let filteredData = state.allRawPublications.length > 0 ? state.allRawPublications : state.getMockPublicationsData;
            if (appStore.isTh) { // <--- ใช้ appStore.isTh
                filteredData = filteredData.filter(pub => pub.Active);
            } else {
                filteredData = filteredData.filter(pub => pub.active_en);
            }
            filteredData.sort((a, b) => new Date(b.createdAt) - new Date(a.createdAt));
            return filteredData;
        },

        getMagazinePublications: (state) => {
            return state.getFilteredPublications.filter(pub => pub.type === 'magazine');
        },
        getDailyNewsPublications: (state) => {
            return state.getFilteredPublications.filter(pub => pub.type === 'dailynews');
        },
        getJournalPublications: (state) => {
            return state.getFilteredPublications.filter(pub => pub.type === 'Journal');
        },

        getCombinedPdfData: (state) => {
            const allDocsPdfData = state.allRawDocuments.map(doc => ({
                url: doc.thumbnail.url,
                collection: "documents",
                link: doc.file.url,
                title_th: doc.name,
                title_en: doc.name_en,
                detail_th: doc.description,
                detail_en: doc.description_en,
                publishdate: doc.content_approved_date,
            }));

            const allPubsPdfData = state.allRawPublications.map(pub => ({
                url: pub.thumbnail.url,
                collection: pub.type,
                link: pub.Attachment_TH[0].url,
                title_th: pub.Title_TH,
                title_en: pub.Title_EN,
            }));

            return [...allDocsPdfData, ...allPubsPdfData];
        }
    },

    actions: {
        async fetchDocuments() {
            this.allRawDocuments = this.getMockDocumentsData;
        },

        async fetchPublications() {

            const rawPublications = this.getMockPublicationsData;
            this.allRawPublications = rawPublications;

            const journal = rawPublications.filter(pub => pub.type === 'Journal');
            const dailynews = rawPublications.filter(pub => pub.type === 'dailynews');
            const magazine = rawPublications.filter(pub => pub.type === 'magazine');

            // คืนค่าเป็น object ที่มี properties ตรงกับที่ JournalView.vue คาดหวัง
            return {
                journal,
                dailynews,
                magazine,
            };
        },

        updatePdfDataState() {
            // **แก้ไข: ลบ () ออก**
            this.pdfData = this.getCombinedPdfData;
        },
        async fetchVideos() {
            this.isLoading.videos = true;
            this.errors.videos = null;
            try {
                await this.simulateDelay();
                this.videos = [
                    { id: '1', rawUrl: 'https://www.youtube.com/watch?v=ARzfFQZms7Y', title: 'การฝึก Cobra Gold 2024', title_en: 'Cobra Gold 2024 Exercise' },
                    { id: '2', rawUrl: 'https://www.youtube.com/watch?v=ARzfFQZms7Y', title: 'เครื่องบินขับไล่ F-16 ของกองทัพอากาศ', title_en: 'Royal Thai Air Force F-16 Fighter Jet' },
                    { id: '3', rawUrl: 'https://www.youtube.com/watch?v=ARzfFQZms7Y', title: 'ภารกิจช่วยเหลือผู้ประสบภัย', title_en: 'Disaster Relief Mission' },
                    { id: '4', rawUrl: 'https://www.youtube.com/watch?v=ARzfFQZms7Y', title: 'ประวัติกองทัพอากาศไทย', title_en: 'History of Royal Thai Air Force' },
                    { id: '5', rawUrl: 'https://www.youtube.com/watch?v=ARzfFQZms7Y', title: 'การแสดงแสนยานุภาพทางอากาศ', title_en: 'Air Power Demonstration' },
                    { id: '6', rawUrl: 'https://www.youtube.com/watch?v=ARzfFQZms7Y', title: 'ชีวิตนักบินขับไล่', title_en: 'Life of a Fighter Pilot' },
                    { id: '7', rawUrl: 'https://www.youtube.com/watch?v=ARzfFQZms7Y', title: 'เทคโนโลยีอากาศยานไร้คนขับ', title_en: 'UAV Technology' },
                    { id: '8', rawUrl: 'https://www.youtube.com/watch?v=ARzfFQZms7Y', title: 'วันเด็กแห่งชาติ กองทัพอากาศ', title_en: 'Children\'s Day at RTAF' },
                    { id: '9', rawUrl: 'https://www.youtube.com/watch?v=ARzfFQZms7Y', title: 'การซ้อมรบร่วม', title_en: 'Joint Military Exercise' }
                ];
            } catch (error) {
                this.errors.videos = 'Failed to fetch videos.';
                console.error('Error fetching videos:', error);
            } finally {
                this.isLoading.videos = false;
            }
        },

        async fetchGalleries() {
            this.isLoading.galleries = true;
            this.errors.galleries = null;
            try {
                await this.simulateDelay();
                this.galleries = [
                    { id: '1', name: 'ภาพการฝึก Cobra Gold', name_en: 'Cobra Gold Training Photos', images: [{ url: '/mock-images/gallery1.jpg' }] },
                    { id: '2', name: 'พิธีสวนสนามทางอากาศ', name_en: 'Air Parade Ceremony', images: [{ url: '/mock-images/gallery2.jpg' }] },
                    { id: '3', name: 'เยี่ยมชมฐานทัพอากาศ', name_en: 'Air Base Visit', images: [{ url: '/mock-images/gallery3.jpg' }] },
                    { id: '4', name: 'กิจกรรมวันเด็ก', name_en: 'Children\'s Day Activities', images: [{ url: '/mock-images/gallery4.jpg' }] },
                    { id: '5', name: 'เครื่องบินใหม่ของกองทัพ', name_en: 'New Aircraft of the Air Force', images: [{ url: '/mock-images/gallery5.jpg' }] },
                    { id: '6', name: 'การช่วยเหลือประชาชน', name_en: 'Public Assistance', images: [{ url: '/mock-images/gallery6.jpg' }] },
                    { id: '7', name: 'การฝึกโดดร่ม', name_en: 'Parachute Training', images: [{ url: '/mock-images/gallery7.jpg' }] },
                    { id: '8', name: 'งานแสดงการบิน', name_en: 'Air Show', images: [{ url: '/mock-images/gallery1.jpg' }] },
                    { id: '9', name: 'เบื้องหลังการทำงาน', name_en: 'Behind the Scenes', images: [{ url: '/mock-images/gallery2.jpg' }] },
                ];
            } catch (error) {
                this.errors.galleries = 'Failed to fetch galleries.';
                console.error('Error fetching galleries:', error);
            } finally {
                this.isLoading.galleries = false;
            }
        },

        // NEW: Action to fetch audio data
        async fetchAudio() {
            this.isLoading.audio = true;
            this.errors.audio = null;
            try {
                await this.simulateDelay();
                this.audio = [
                    { id: 'a1', title: 'เพลงมาร์ชกองทัพอากาศ', title_en: 'Royal Thai Air Force March', file: '/mock-audio/rtaf_march.mp3', thumbnail: '/images/default-audio-icon.png' },
                    { id: 'a2', title: 'เพลงพระราชนิพนธ์ในรัชกาลที่ 9', title_en: 'Royal Composition by King Rama IX', file: '/mock-audio/rtaf_march.mp3', thumbnail: '/images/default-audio-icon.png' },
                    { id: 'a3', title: 'เพลงความฝันอันสูงสุด', title_en: 'The Highest Dream', file: '/mock-audio/rtaf_march.mp3', thumbnail: '/images/default-audio-icon.png' },
                    { id: 'a4', title: 'เพลงเทิดทูนสถาบัน', title_en: 'Honoring the Institution', file: '/mock-audio/rtaf_march.mp3', thumbnail: '/images/default-audio-icon.png' },
                    { id: 'a5', title: 'เพลงบรรเลงไทยเดิม', title_en: 'Traditional Thai Instrumental Music', file: '/mock-audio/rtaf_march.mp3', thumbnail: '/images/default-audio-icon.png' },
                ];
            } catch (error) {
                this.errors.audio = 'Failed to fetch audio.';
                console.error('Error fetching audio:', error);
            } finally {
                this.isLoading.audio = false;
            }
        },

        async simulateDelay() {
            return new Promise(resolve => setTimeout(resolve, 500));
        },
    },
});