/**
 * 任务状态 API 服务
 */

class TaskStatusServer {
    /**
     * 分页查询任务状态
     * @param {Object} param - 查询参数
     * @param {Object} param.seachOption - 搜索条件
     * @param {Object} param.pageOption - 分页选项
     * @returns {Promise}
     */
    page(param) {
        return window.framework.http.post('task/list', param)
    }

    /**
     * 获取任务统计数据
     * @returns {Promise}
     */
    getStatistics() {
        return window.framework.http.get('/task/statistics')
    }

    /**
     * 获取单条任务详情
     * @param {Number|String} taskId - 任务ID
     * @returns {Promise}
     */
    getById(taskId) {
        return window.framework.http.post('task/detail', { taskId })
    }

    /**
     * 更新任务状态
     * @param {Object} row - 任务数据
     * @returns {Promise}
     */
    update(row) {
        return window.framework.http.post('/task/update', row)
    }

    /**
     * 删除任务
     * @param {Object} row - 任务数据（包含id）
     * @returns {Promise}
     */
    del(row) {
        return window.framework.http.post('task/delete', { taskId: row.taskId || row.id })
    }

    /**
     * 取消任务
     * @param {Object} row - 任务数据（包含taskId）
     * @returns {Promise}
     */
    cancel(row) {
        return window.framework.http.post('task/cancel', { taskId: row.taskId || row.id })
    }

    /**
     * 重试任务
     * @param {Object} row - 任务数据（包含taskId）
     * @returns {Promise}
     */
    retry(row) {
        return window.framework.http.post('task/retry', { taskId: row.taskId || row.id })
    }

    /**
     * 导出任务列表
     * @param {Object} param - 导出参数
     * @returns {Promise}
     */
    exportCsv(param) {
        return window.framework.http.post('/task/export', param, { responseType: 'blob' })
    }

    /**
     * 获取任务的指令列表
     * @param {Number} taskId - 任务ID
     * @returns {Promise}
     */
    getCommands(taskId) {
        return window.framework.http.post('/task/commands', { taskId })
    }
}

export default new TaskStatusServer()

