export default defineNuxtPlugin(() => { const config = useRuntimeConfig(); if (!config.public.useMockData) { return; // ใช้ API จริง } // Mock Data const mockUsers = [ { id: '1', email: 'instructor@test.com', fullName: 'อาจารย์ทดสอบ', role: 'INSTRUCTOR' }, { id: '2', email: 'admin@test.com', fullName: 'ผู้ดูแลระบบ', role: 'ADMIN' } ]; const mockCourses = [ { id: '1', title: 'Python เบื้องต้น', description: 'เรียนรู้ Python จากพื้นฐาน', instructorId: '1', status: 'PUBLISHED', thumbnail: '/images/python.jpg' }, { id: '2', title: 'JavaScript สำหรับเว็บ', description: 'พัฒนาเว็บด้วย JavaScript', instructorId: '1', status: 'DRAFT', thumbnail: '/images/javascript.jpg' } ]; // Mock API Functions const mockApi = { // Auth login: async (email: string, password: string) => { await new Promise(resolve => setTimeout(resolve, 500)); // Simulate delay const user = mockUsers.find(u => u.email === email); if (user) { return { token: 'mock-jwt-token', user }; } throw new Error('Invalid credentials'); }, // Courses getCourses: async () => { await new Promise(resolve => setTimeout(resolve, 300)); return mockCourses; }, getCourse: async (id: string) => { await new Promise(resolve => setTimeout(resolve, 300)); return mockCourses.find(c => c.id === id); }, createCourse: async (data: any) => { await new Promise(resolve => setTimeout(resolve, 500)); const newCourse = { id: String(mockCourses.length + 1), ...data, status: 'DRAFT' }; mockCourses.push(newCourse); return newCourse; }, // Users getUsers: async () => { await new Promise(resolve => setTimeout(resolve, 300)); return mockUsers; } }; return { provide: { mockApi } }; });