import request from '@/utils/request'

/// 科目列表
export function getPaperSubjects(query) {
    // 2025.10.16 科目更新和组卷类型有关系
    // query: {buildType}
    return request({
        url: '/learn/teaching/subjects',
        method: 'get',
        params: query
    })
}

/// 科目列表
export function getPaperKnowledges(query) {
    // 2025.10.16 科目更新和组卷类型有关系
    // query: {
    // 定向条件：universityId,majorId,majorPlanId
    // 全量条件：examType,subjectId
    // }
    return request({
        url: '/learn/teaching/knowledges',
        method: 'get',
        params: query
    })
}

/// 省份列表
export function getPaperProvinces(query) {
    return request({
        url: '/learn/teaching/provinces',
        method: 'get',
        params: query
    })
}

/// 考生类型
export function getPaperExamTypes(query) {
    // query: {} // 2025.10.16 科目更新和组卷类型有关系，应该不需要参数了
    return request({
        url: '/learn/teaching/examTypes',
        method: 'get',
        params: {location: '湖南', ...query}
    })
}

/// 院校
export function getPaperUniversities(query) {
    // query: {batchId}
    return request({
        url: '/learn/teaching/universities',
        method: 'get',
        params: query
    })
}

/// 专业组
export function getPaperMajors(query) {
    // query: {location, examType, batchId, universityId}
    return request({
        url: '/learn/teaching/majors',
        method: 'get',
        params: query
    })
}

/// 试卷批次
export function getPaperBatches() {
    return request({
        url: '/learn/test/list',
        method: 'get'
    })
}

/// 试卷题型
export function getPaperQuestionTypes(query) {
    // query: {subjectId, majorPlanId}
    return request({
        url: '/learn/teaching/questionTypes',
        method: 'get',
        params: query
    })
}

// 试卷试题
export function getPaperQuestions(query) {
    // query: {...}
    return request({
        url: '/learn/questions/list',
        method: 'get',
        params: query
    })
}

// 班级
export function getPaperClasses(query) {
    return request({
        url: '/learn/teaching/classes',
        method: 'get',
        params: query
    })
}

// 学生
export function getPaperStudents(query) {
    return request({
        url: '/learn/teaching/students',
        method: 'get',
        params: query
    })
}

export function getPaperDetail(query) {
    return request({
        url: '/learn/teaching/paper',
        method: 'get',
        params: query
    })
}

export function getPaperClassStatistic(query) {
    // 2025.10.16 新增班级统计，用于组卷生成
    // const queryDemo = {
    //     buildType: '', // 试卷构建类型，定义枚举？
    //     batchId: '', // 批次
    //     examType: '',
    //     subjectId: '',
    //     universityId: '',
    //     majorGroup: '',
    //     majorPlanId: ''
    // }
    // const responseDemo = {
    //     classId: '',
    //     className: '',
    //     total: '',
    //     built: '',
    //     sent: '',
    //     finished: '',
    //     exact: '',
    //     exactNew: '',
    //     lastBuiltTime: '',
    //     lastSentTime: ''
    // }

    return request({
        url: '/learn/teaching/classStatistic',
        method: 'get',
        params: query
    })
}

export function buildPaperExactIntelligent(data) {
    // {buildType, batchId, classIds}
    return request({
        url: '/learn/teaching/build/exactIntelligent',
        method: 'post',
        data
    })
}

export function buildPaperFullIntelligent(data) {
    // {buildType, batchId, examType, subjectId, classIds}
    return request({
        url: '/learn/teaching/build/fullIntelligent',
        method: 'post',
        data
    })
}

export function buildPaperFullKnowledgeIntelligent(data) {
    // {buildType, batchId, examType, subjectId, knowledgeIds, types, classIds}
    return request({
        url: '/learn/teaching/build/fullKnowledgeIntelligent',
        method: 'post',
        data
    })
}

export function buildPaperExactHand(data) {
    // {buildType, batchId, universityId, majorId, majorPlanId, classIds, questions}
    return request({
        url: '/learn/teaching/build/exactHand',
        method: 'post',
        data
    })
}

export function buildPaperFullHand(data) {
    // {buildType, batchId, examType, subjectId, questions}
    return request({
        url: '/learn/teaching/build/fullHand',
        method: 'post',
        data
    })
}

export function sendPaper(testPaperId, cardIds) {
    // testPaperId: 测试试卷ID
    // cardIds: 选中的学生卡片ID列表
    return request({
        url: '/learn/teaching/build/sendPaper',
        method: 'get',
        params: {
            paperId: testPaperId,
            cardIds: cardIds && cardIds.length > 0 ? cardIds.join(',') : null
        }
    })
}

export function getBuiltPaper(params) {
    // 与上面的4个build接口参数一样，只不过走1个接口，返回试卷详情
    // // TODO: remove test code
    // return Promise.resolve({
    //     code: 200,
    //     data: {
    //         paperId: 1,
    //         paperName: '试卷名称',
    //         questions: [
    //             {
    //                 "createBy": null,
    //                 "createTime": "2025-09-15 03:12:52",
    //                 "updateBy": null,
    //                 "updateTime": null,
    //                 "remark": null,
    //                 "id": 1,
    //                 "title": "获取信息最常用、最快捷、最方便、最可靠的方法就是从因特网上检索信息",
    //                 "optionA": "对",
    //                 "optionB": "错",
    //                 "optionC": null,
    //                 "optionD": null,
    //                 "optionE": null,
    //                 "optionF": null,
    //                 "optionG": null,
    //                 "answer1": "B",
    //                 "answer2": "B",
    //                 "qtpye": "判断题",
    //                 "subjectId": 10,
    //                 "paperId": null,
    //                 "knowledgeId": 2533,
    //                 "diff": 0,
    //                 "similarity": 0,
    //                 "parse": "",
    //                 "knowId": null,
    //                 "gradeId": -1,
    //                 "knowledges": null,
    //                 "area": null,
    //                 "year": 2025,
    //                 "paperTpye": null,
    //                 "source": "聚恒普高",
    //                 "fromSite": "",
    //                 "isSub": null,
    //                 "isNormal": null,
    //                 "isKonw": null,
    //                 "tiid": "10026648",
    //                 "md5": null,
    //                 "isunique": null,
    //                 "md52": null,
    //                 "score": 0,
    //                 "options": null,
    //                 "number": null,
    //                 "paperTypeTitle": null,
    //                 "options0": null,
    //                 "title0": "",
    //                 "title1": null,
    //                 "parse0": null,
    //                 "answer0": null,
    //                 "isUpdate": 0,
    //                 "isSubType": "0",
    //                 "typeId": null,
    //                 "userId": null,
    //                 "collect": false
    //             },
    //             {
    //                 "createBy": null,
    //                 "createTime": "2025-09-14 21:06:24",
    //                 "updateBy": null,
    //                 "updateTime": null,
    //                 "remark": null,
    //                 "id": 2,
    //                 "title": "（ ） 抗损性强、可折叠、可局部穿孔、可局部切割。",
    //                 "optionA": "二维条码",
    //                 "optionB": "磁卡",
    //                 "optionC": "IC卡",
    //                 "optionD": "光卡",
    //                 "optionE": null,
    //                 "optionF": null,
    //                 "optionG": null,
    //                 "answer1": "A",
    //                 "answer2": "A",
    //                 "qtpye": "单选题",
    //                 "subjectId": 12,
    //                 "paperId": null,
    //                 "knowledgeId": 2278,
    //                 "diff": 0,
    //                 "similarity": 0,
    //                 "parse": "本题主要考查信息编码。磁卡、IC卡、光卡均不可折叠，抗损性差。二维条码抗损性强、可折叠、可局部穿孔、可局部切割，故本题选A选项。",
    //                 "knowId": null,
    //                 "gradeId": -1,
    //                 "knowledges": null,
    //                 "area": null,
    //                 "year": 2025,
    //                 "paperTpye": null,
    //                 "source": "聚恒普高",
    //                 "fromSite": "",
    //                 "isSub": null,
    //                 "isNormal": null,
    //                 "isKonw": null,
    //                 "tiid": "10036700",
    //                 "md5": null,
    //                 "isunique": null,
    //                 "md52": null,
    //                 "score": 1,
    //                 "options": null,
    //                 "number": null,
    //                 "paperTypeTitle": null,
    //                 "options0": null,
    //                 "title0": "",
    //                 "title1": null,
    //                 "parse0": null,
    //                 "answer0": null,
    //                 "isUpdate": 0,
    //                 "isSubType": "0",
    //                 "typeId": null,
    //                 "userId": null,
    //                 "collect": false
    //             },
    //             {
    //                 "createBy": null,
    //                 "createTime": "2025-09-14 21:27:53",
    //                 "updateBy": null,
    //                 "updateTime": null,
    //                 "remark": null,
    //                 "id": 3,
    //                 "title": "字号中阿拉伯字号越大，表示字符越____；中文字号越小，表示字符越____。",
    //                 "optionA": "大、小",
    //                 "optionB": "小、大",
    //                 "optionC": "不变",
    //                 "optionD": "大、大",
    //                 "optionE": null,
    //                 "optionF": null,
    //                 "optionG": null,
    //                 "answer1": "D",
    //                 "answer2": "D",
    //                 "qtpye": "单选题",
    //                 "subjectId": 12,
    //                 "paperId": null,
    //                 "knowledgeId": 2297,
    //                 "diff": 0,
    //                 "similarity": 0,
    //                 "parse": "字号中阿拉伯字号越大，表示字符越大中文字号越小，表示字符越大。",
    //                 "knowId": null,
    //                 "gradeId": -1,
    //                 "knowledges": null,
    //                 "area": null,
    //                 "year": 2025,
    //                 "paperTpye": null,
    //                 "source": "聚恒普高",
    //                 "fromSite": "",
    //                 "isSub": null,
    //                 "isNormal": null,
    //                 "isKonw": null,
    //                 "tiid": "10048401",
    //                 "md5": null,
    //                 "isunique": null,
    //                 "md52": null,
    //                 "score": 1,
    //                 "options": null,
    //                 "number": null,
    //                 "paperTypeTitle": null,
    //                 "options0": null,
    //                 "title0": "",
    //                 "title1": null,
    //                 "parse0": null,
    //                 "answer0": null,
    //                 "isUpdate": 0,
    //                 "isSubType": "0",
    //                 "typeId": null,
    //                 "userId": null,
    //                 "collect": false
    //             },
    //             {
    //                 "createBy": null,
    //                 "createTime": "2025-09-14 21:18:58",
    //                 "updateBy": null,
    //                 "updateTime": null,
    //                 "remark": null,
    //                 "id": 4,
    //                 "title": "打开Excel后会自动创建一个名为Book1的文件，该文件扩展名为()",
    //                 "optionA": "PPT",
    //                 "optionB": "DBF",
    //                 "optionC": "XLS",
    //                 "optionD": "DOC",
    //                 "optionE": null,
    //                 "optionF": null,
    //                 "optionG": null,
    //                 "answer1": "C",
    //                 "answer2": "C",
    //                 "qtpye": "单选题",
    //                 "subjectId": 12,
    //                 "paperId": null,
    //                 "knowledgeId": 2282,
    //                 "diff": 0,
    //                 "similarity": 0,
    //                 "parse": "Excel电子表格文件的扩展名是xls。",
    //                 "knowId": null,
    //                 "gradeId": -1,
    //                 "knowledges": null,
    //                 "area": null,
    //                 "year": 2025,
    //                 "paperTpye": null,
    //                 "source": "聚恒普高",
    //                 "fromSite": "",
    //                 "isSub": null,
    //                 "isNormal": null,
    //                 "isKonw": null,
    //                 "tiid": "10053344",
    //                 "md5": null,
    //                 "isunique": null,
    //                 "md52": null,
    //                 "score": 1,
    //                 "options": null,
    //                 "number": null,
    //                 "paperTypeTitle": null,
    //                 "options0": null,
    //                 "title0": "",
    //                 "title1": null,
    //                 "parse0": null,
    //                 "answer0": null,
    //                 "isUpdate": 0,
    //                 "isSubType": "0",
    //                 "typeId": null,
    //                 "userId": null,
    //                 "collect": false
    //             },
    //             {
    //                 "createBy": null,
    //                 "createTime": "2025-09-15 04:38:31",
    //                 "updateBy": null,
    //                 "updateTime": null,
    //                 "remark": null,
    //                 "id": 5,
    //                 "title": "力使物体产生转动的效果与矩心的位置()。\n ",
    //                 "optionA": "有关",
    //                 "optionB": "无关",
    //                 "optionC": "有时有关",
    //                 "optionD": "说不清",
    //                 "optionE": null,
    //                 "optionF": null,
    //                 "optionG": null,
    //                 "answer1": "A",
    //                 "answer2": "A",
    //                 "qtpye": "单选题",
    //                 "subjectId": 22,
    //                 "paperId": null,
    //                 "knowledgeId": 2487,
    //                 "diff": 0,
    //                 "similarity": 0,
    //                 "parse": "",
    //                 "knowId": null,
    //                 "gradeId": -1,
    //                 "knowledges": null,
    //                 "area": null,
    //                 "year": 2025,
    //                 "paperTpye": null,
    //                 "source": "聚恒普高",
    //                 "fromSite": "",
    //                 "isSub": null,
    //                 "isNormal": null,
    //                 "isKonw": null,
    //                 "tiid": "10072901",
    //                 "md5": null,
    //                 "isunique": null,
    //                 "md52": null,
    //                 "score": 1,
    //                 "options": null,
    //                 "number": null,
    //                 "paperTypeTitle": null,
    //                 "options0": null,
    //                 "title0": "",
    //                 "title1": null,
    //                 "parse0": null,
    //                 "answer0": null,
    //                 "isUpdate": 0,
    //                 "isSubType": "0",
    //                 "typeId": null,
    //                 "userId": null,
    //                 "collect": false
    //             },
    //             {
    //                 "createBy": null,
    //                 "createTime": "2025-09-15 02:11:16",
    //                 "updateBy": null,
    //                 "updateTime": null,
    //                 "remark": null,
    //                 "id": 6,
    //                 "title": "小明使用Excel统计自己一年来的收入情况，在单元格B3到B14中，依次存放了从一月到十二月的收入情况，想在单元格B15中求出一年的平均月收入，应选用公式()",
    //                 "optionA": "AVERAGE(B3：B14)",
    //                 "optionB": "SUM(B3：B14)",
    //                 "optionC": "AVERAGE(B1：B14)",
    //                 "optionD": "AVERAGE(B3：B15)",
    //                 "optionE": null,
    //                 "optionF": null,
    //                 "optionG": null,
    //                 "answer1": "A",
    //                 "answer2": "A",
    //                 "qtpye": "单选题",
    //                 "subjectId": 12,
    //                 "paperId": null,
    //                 "knowledgeId": 2264,
    //                 "diff": 0,
    //                 "similarity": 0,
    //                 "parse": "想在单元格B15中求出一年的平均月收入，可使用求平均值函数AVERAGE()，求值区域是B3：B14，故应选用公式AVERAGE(B3：B14)。",
    //                 "knowId": null,
    //                 "gradeId": -1,
    //                 "knowledges": null,
    //                 "area": null,
    //                 "year": 2025,
    //                 "paperTpye": null,
    //                 "source": "聚恒普高",
    //                 "fromSite": "",
    //                 "isSub": null,
    //                 "isNormal": null,
    //                 "isKonw": null,
    //                 "tiid": "10075149",
    //                 "md5": null,
    //                 "isunique": null,
    //                 "md52": null,
    //                 "score": 0,
    //                 "options": null,
    //                 "number": null,
    //                 "paperTypeTitle": null,
    //                 "options0": null,
    //                 "title0": "",
    //                 "title1": null,
    //                 "parse0": null,
    //                 "answer0": null,
    //                 "isUpdate": 0,
    //                 "isSubType": "0",
    //                 "typeId": null,
    //                 "userId": null,
    //                 "collect": false
    //             },
    //             {
    //                 "createBy": null,
    //                 "createTime": "2025-09-14 21:06:24",
    //                 "updateBy": null,
    //                 "updateTime": null,
    //                 "remark": null,
    //                 "id": 7,
    //                 "title": "当前，在计算机应用方面已进入以（）为特征的时代。",
    //                 "optionA": "并行处理技术",
    //                 "optionB": "分布式系统",
    //                 "optionC": "微型计算机",
    //                 "optionD": "计算机网络",
    //                 "optionE": null,
    //                 "optionF": null,
    //                 "optionG": null,
    //                 "answer1": "D",
    //                 "answer2": "D",
    //                 "qtpye": "单选题",
    //                 "subjectId": 12,
    //                 "paperId": null,
    //                 "knowledgeId": 2278,
    //                 "diff": 0,
    //                 "similarity": 0,
    //                 "parse": "当前，在计算机应用方面已进入以计算机网络为特征的时代。",
    //                 "knowId": null,
    //                 "gradeId": -1,
    //                 "knowledges": null,
    //                 "area": null,
    //                 "year": 2025,
    //                 "paperTpye": null,
    //                 "source": "聚恒普高",
    //                 "fromSite": "",
    //                 "isSub": null,
    //                 "isNormal": null,
    //                 "isKonw": null,
    //                 "tiid": "10117673",
    //                 "md5": null,
    //                 "isunique": null,
    //                 "md52": null,
    //                 "score": 1,
    //                 "options": null,
    //                 "number": null,
    //                 "paperTypeTitle": null,
    //                 "options0": null,
    //                 "title0": "",
    //                 "title1": null,
    //                 "parse0": null,
    //                 "answer0": null,
    //                 "isUpdate": 0,
    //                 "isSubType": "0",
    //                 "typeId": null,
    //                 "userId": null,
    //                 "collect": false
    //             }
    //         ]
    //     }
    // })
    return request({
        url: '/learn/teaching/build/getBuiltPaper',
        method: 'get',
        params
    })
}

export function getPaperClassRecords(params) {
    // {id: 1, buildType: '定向智能', classId: 1, className: '2501班', batchName: '第一批', total: 50, unexact: 10, exact: 40, unsend: 10, send: 20, unfinish: 5, finish: 15}
    // // TODO: remove test code
    // return Promise.resolve({
    //     code: 200,
    //     total: 1,
    //     rows: [
    //         {
    //             buildType: 'ExactIntelligent',
    //             classId: 1,
    //             className: '2501班',
    //             batchId: 1,
    //             batchName: '第一批',
    //             total: 50,
    //             unexact: 10,
    //             exact: 40,
    //             unsend: 10,
    //             send: 20,
    //             unfinish: 5,
    //             finish: 15
    //         }
    //     ]
    // })
    return request({
        url: '/learn/teaching/getPaperClassRecords',
        method: 'get',
        params
    })
}

export function getPaperStudentRecords(params) {
    // // TODO: remove test code
    // return Promise.resolve({
    //     code: 200,
    //     data: [{
    //         studentId: 1,
    //         studentName: '张三',
    //         classId: 1,
    //         className: '2501班',
    //         mobile: '13933445566',
    //         batchId: 1,
    //         batchName: '第一批',
    //         paperId: 1,
    //         paperName: '试卷一',
    //         subjectId: 1,
    //         subjectName: '科目说明',
    //         state: '组卷已完成',
    //         total: 100,
    //         score: 99,
    //         rate: null,
    //     }, {
    //         studentId: 1,
    //         studentName: '张三',
    //         classId: 1,
    //         className: '2501班',
    //         mobile: '13933445566',
    //         batchId: 1,
    //         batchName: '第一批',
    //         paperId: 1,
    //         paperName: '试卷一',
    //         subjectId: 1,
    //         subjectName: '科目说明',
    //         state: '组卷已完成',
    //         total: 100,
    //         score: 99,
    //         rate: 99,
    //     }]
    // })
    return request({
        url: '/learn/teaching/getPaperStudentRecords',
        method: 'get',
        params
    })
}

export function getPapers(params) {
    return request({
        url: '/learn/teaching/getPapers',
        method: 'get',
        params
    })
}

export function getPaperStudentDetail(params) {
    // // TODO: remove test code
    // return Promise.resolve({
    //     code: 200,
    //     data: [
    //         {
    //             knowledgeId: 1,
    //             knowledgeName: '知识点1',
    //             num: 5,
    //             correct: 4,
    //             rate: 80
    //         }
    //     ]
    // })
    return request({
        url: '/learn/teaching/getPaperStudentDetail',
        method: 'get',
        params
    })
}

// 获取试卷详情（题目列表）- 前台接口
export function getFrontPaperDetail(type, id) {
    return request({
        url: '/front/paper/paper',
        method: 'get',
        params: {
            type: type || '',
            id: id
        }
    })
}

export function sendUnfinishAlarm(data) {
    return request({
        url: '/learn/teaching/postUnfinishAlarm',
        method: 'post',
        data
    })
}

export function getClassesBuildStatsDetail(params) {
    // params: {buildType, batchId, classId, statType}
    // statType: 'send' | 'total' | 'unexact' | 'unfinish' | 'unsend'
    return request({
        url: '/learn/teaching/getClassesBuildStatsDetail',
        method: 'get',
        params
    })
}

/// 下载试卷
export function downloadPaper(params) {
    return request({
        url: '/learn/paper/download',
        method: 'get',
        params,
        responseType: 'blob'
    })
}

/// 更新试卷
export function updatePaper(data) {
    return request({
        url: '/learn/paper',
        method: 'put',
        data
    })
}