import { defineStore } from 'pinia'
import { getCourseList, getCourseDetail, getCourseChapters } from '../api/courseDemo'

export const useCourseStore = defineStore('course', {
  state: () => ({
    courseList: [],
    currentCourse: null,
    currentCourseChapters: []
  }),
  actions: {
    async fetchCourseList() {
      try {
        // 模拟数据，实际项目中使用 API 请求
        this.courseList = [
          { id: 1, title: 'Vue 3 从入门到精通', cover: 'https://picsum.photos/400/225?random=1', teacher: '张三', price: 99 },
          { id: 2, title: 'JavaScript 高级编程', cover: 'https://picsum.photos/400/225?random=2', teacher: '李四', price: 129 },
          { id: 3, title: 'TypeScript 完全指南', cover: 'https://picsum.photos/400/225?random=3', teacher: '王五', price: 89 },
          { id: 4, title: 'TypeScript 完全指南2', cover: 'https://picsum.photos/400/225?random=4', teacher: '王五', price: 99 },
        ]
        // 真实项目中使用：
        // const data = await getCourseList()
        // this.courseList = data
      } catch (error) {
        console.error('获取课程列表失败:', error)
      }
    },
    async fetchCourseDetail(id) {
      try {
        // 模拟数据
        this.currentCourse = {
          id,
          title: id === 1 ? 'Vue 3 从入门到精通' : id === 2 ? 'JavaScript 高级编程' : 'TypeScript 完全指南',
          cover: `https://picsum.photos/800/450?random=${id}`,
          teacher: id === 1 ? '张三' : id === 2 ? '李四' : '王五',
          price: id === 1 ? 99 : id === 2 ? 129 : 89,
          description: '这是一门非常棒的课程，包含了从基础到进阶的所有内容。'
        }
        // 真实项目中使用：
        // const data = await getCourseDetail(id)
        // this.currentCourse = data
      } catch (error) {
        console.error('获取课程详情失败:', error)
      }
    },
    async fetchCourseChapters(id) {
      try {
        // 模拟数据
        this.currentCourseChapters = [
          { id: 1, title: '第一章：Vue 3 基础', videos: [
            { id: 101, title: 'Vue 3 介绍与环境搭建', duration: '15:00' },
            { id: 102, title: 'Composition API 基础', duration: '20:00' }
          ]},
          { id: 2, title: '第二章：Vue 3 进阶', videos: [
            { id: 201, title: '响应式原理', duration: '25:00' },
            { id: 202, title: '自定义 Hooks', duration: '18:00' }
          ]}
        ]
        // 真实项目中使用：
        // const data = await getCourseChapters(id)
        // this.currentCourseChapters = data
      } catch (error) {
        console.error('获取课程章节失败:', error)
      }
    }
  }
})