import BaseStore from '@src/stores/base';

export default class CourseStore extends BaseStore {
  /**
   * 所有vs课程
   */
  allVs() {
    return this.apiGet('/course/vs');
  }

  listVideo(params) {
    return this.apiGet('/course/video/list', params);
  }

  get(courseId) {
    return this.apiGet('/course/simple', { courseId });
  }

  detail(courseId) {
    return this.apiGet('/course/detail', { courseId });
  }

  listAsk({ keyword, courseId, courseNoId, position, order, direction }) {
    return this.apiGet('/course/ask/list', { keyword, courseId, courseNoId, position, order, direction });
  }

  askView(id) {
    return this.apiPost('/course/ask/view', { id });
  }

  noProgress(courseId, courseNoId, progress, time, currentCourseNoId) {
    return this.apiPut('/course/no/progress', { courseId, courseNoId, progress, time, currentCourseNoId });
  }

  trailView(id) {
    return this.apiPost('/course/trail/view', { id });
  }

  listPackage(params) {
    return this.apiGet('/course/package/list', params);
  }

  getPackage(packageId) {
    return this.apiGet('/course/package/detail', { packageId });
  }

  listData(params) {
    return this.apiGet('/course/data/list', params);
  }

  getData(dataId) {
    return this.apiGet('/course/data/detail', { dataId });
  }

  dataView(id) {
    return this.apiPost('/course/data/view', { id });
  }

  historyData({ page, size, dataId }) {
    return this.apiGet('/course/data/history', { page, size, dataId });
  }

  allTeacher(courseId) {
    return this.apiGet('/course/teacher/all', { courseId });
  }

  listExperience({ page, size, perpareStatus, experienceDay, experienceScore, experiencePercent, order, direction }) {
    return this.apiGet('/course/experience/list', { page, size, perpareStatus, experienceDay, experienceScore, experiencePercent, order, direction });
  }

  getExperience(experienceId) {
    return this.apiGet('/course/experience/detail', { experienceId });
  }

  experienceView(id) {
    return this.apiPost('/course/experience/view', { id });
  }

  /**
   * 获取课程进度
   */
  progress(courseModule, structId, courseId) {
    return this.apiGet('/course/progress', { courseModule, structId, courseId });
  }

  /**
   * 课程记录信息
   * @param {*} recordId
   */
  record(recordId) {
    return this.apiGet('/course/record', { recordId });
  }

  /**
   * 获取预习作业列表
   * @param {*} param0
   */
  listPreview({ page, size, recordId, finish, endTime }) {
    return this.apiGet('/course/preview/list', { page, size, recordId, endTime, times: finish });
  }
}

export const Course = new CourseStore({ key: 'course' });