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

export default class SystemStore extends BaseStore {
  listManager(params) {
    return this.apiGet('/manager/list', params);
  }

  addManager(params) {
    return this.apiPost('/manager/add', params);
  }

  getManager(params) {
    return this.apiGet('/manager/detail', params);
  }

  putManager(params) {
    return this.apiPut('/manager/edit', params);
  }

  delManager(params) {
    return this.apiDel('/manager/delete', params);
  }

  getIndex() {
    return this.apiGet('/setting/index');
  }

  setIndex(params) {
    return this.apiPut('/setting/index', params);
  }

  getBase() {
    return this.apiGet('/setting/base');
  }

  setBase(params) {
    return this.apiPut('/setting/base', params);
  }

  getPlace() {
    return this.apiGet('/setting/place');
  }

  setPlace(params) {
    return this.apiPut('/setting/place', params);
  }

  getSentence() {
    return this.apiGet('/setting/sentence');
  }

  setSentence(params) {
    return this.apiPut('/setting/sentence', params);
  }

  getFilterTime() {
    return this.apiGet('/setting/filter_time');
  }

  setFilterTime(params) {
    return this.apiPut('/setting/filter_time', params);
  }

  getExercisePaperAuto() {
    return this.apiGet('/setting/exercise_paper_auto');
  }

  setExercisePaperAuto(params) {
    return this.apiPut('/setting/exercise_paper_auto', params);
  }

  getExerciseTime() {
    return this.apiGet('/setting/exercise_time');
  }

  setExerciseTime(params) {
    return this.apiPut('/setting/exercise_time', params);
  }

  getSentenceTime() {
    return this.apiGet('/setting/sentence_time');
  }

  setSentenceTime(params) {
    return this.apiPut('/setting/sentence_time', params);
  }

  getTextbookTime() {
    return this.apiGet('/setting/textbook_time');
  }

  setTextbookTime(params) {
    return this.apiPut('/setting/textbook_time', params);
  }

  getTextbookConfig() {
    return this.apiGet('/setting/textbook_config');
  }

  setTextbookConfig(params) {
    return this.apiPut('/setting/textbook_config', params);
  }

  getExaminationTime() {
    return this.apiGet('/setting/examination_time');
  }

  setExaminationTime(params) {
    return this.apiPut('/setting/examination_time', params);
  }

  getScoreSwitch() {
    return this.apiGet('/setting/score_switch');
  }

  setScoreSwitch(params) {
    return this.apiPut('/setting/score_switch', params);
  }

  getServiceVip() {
    return this.apiGet('/setting/service_vip');
  }

  setServiceVip(params) {
    return this.apiPut('/setting/service_vip', params);
  }

  getServiceTextbook() {
    return this.apiGet('/setting/service_textbook');
  }

  setServiceTextbook(params) {
    return this.apiPut('/setting/service_textbook', params);
  }

  getServiceQxCat() {
    return this.apiGet('/setting/service_qx_cat');
  }

  setServiceQxCat(params) {
    return this.apiPut('/setting/service_qx_cat', params);
  }

  getCourseIndex() {
    return this.apiGet('/setting/course_index');
  }

  setCourseIndex(params) {
    return this.apiPut('/setting/course_index', params);
  }

  getPromote() {
    return this.apiGet('/setting/promote');
  }

  setPromote(params) {
    return this.apiPut('/setting/promote', params);
  }

  getExperienceInfo() {
    return this.apiGet('/setting/experience_info');
  }

  setExperienceInfo(params) {
    return this.apiPut('/setting/experience_info', params);
  }

  getWechatInfo() {
    return this.apiGet('/setting/wechat_info');
  }

  setWechatInfo(params) {
    return this.apiPut('/setting/wechat_info', params);
  }

  getTips() {
    return this.apiGet('/setting/tips');
  }

  setTips(params) {
    return this.apiPut('/setting/tips', params);
  }

  getPrepareInfo() {
    return this.apiGet('/setting/prepare_info');
  }

  setPrepareInfo(params) {
    return this.apiPut('/setting/prepare_info', params);
  }

  getSentenceInfo() {
    return this.apiGet('/setting/sentence_info');
  }

  setSentenceInfo(params) {
    return this.apiPut('/setting/sentence_info', params);
  }

  allContract(params) {
    return this.apiGet('/setting/contract/all', params);
  }

  getContract(params) {
    return this.apiGet('/setting/contract/detail', params);
  }

  setContract(params) {
    return this.apiPut('/setting/contract/edit', params);
  }

  listRank(params) {
    return this.apiGet('/setting/rank/list', params);
  }

  addRank(params) {
    return this.apiPost('/setting/rank/add', params);
  }

  editRank(params) {
    return this.apiPut('/setting/rank/edit', params);
  }

  delRank(params) {
    return this.apiDel('/setting/rank/delete', params);
  }

  importRank(params) {
    return this.apiForm('/setting/rank/import', params);
  }

  listComment(params) {
    return this.apiGet('/setting/comment/list', params);
  }

  addComment(params) {
    return this.apiPost('/setting/comment/add', params);
  }

  editComment(params) {
    return this.apiPut('/setting/comment/edit', params);
  }

  orderComment(params) {
    return this.apiPut('/setting/comment/order', params);
  }

  delComment(params) {
    return this.apiDel('/setting/comment/delete', params);
  }

  listFAQ(params) {
    return this.apiGet('/setting/faq/list', params);
  }

  addFAQ(params) {
    return this.apiPost('/setting/faq/add', params);
  }

  editFAQ(params) {
    return this.apiPut('/setting/faq/edit', params);
  }

  orderFAQ(params) {
    return this.apiPut('/setting/faq/order', params);
  }

  delFAQ(params) {
    return this.apiDel('/setting/faq/delete', params);
  }

  listMessage(params) {
    return this.apiGet('/setting/message/list', params);
  }

  getMessage(params) {
    return this.apiGet('/setting/message/detail', params);
  }

  addMessage(params) {
    return this.apiPost('/setting/message/add', params);
  }

  editMessage(params) {
    return this.apiPut('/setting/message/edit', params);
  }

  delMessage(params) {
    return this.apiDel('/setting/message/delete', params);
  }

  listAd(params) {
    return this.apiGet('/setting/ad/list', params);
  }

  addAd(params) {
    return this.apiPost('/setting/ad/add', params);
  }

  editAd(params) {
    return this.apiPut('/setting/ad/edit', params);
  }

  delAd(params) {
    return this.apiDel('/setting/ad/delete', params);
  }

  getAd(params) {
    return this.apiGet('/setting/ad/detail', params);
  }

  uploadImage(file) {
    return this.apiForm('/common/upload/image', { file });
  }

  uploadVideo(file) {
    return this.apiForm('/common/upload/video', { file });
  }
}

export const System = new SystemStore({ key: 'system' });