package com.sundot.airport.exam.logic.eighteen.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sundot.airport.exam.common.HttpResult;
import com.sundot.airport.exam.common.PageData;
import com.sundot.airport.exam.common.model.BaseEntity;
import com.sundot.airport.exam.logic.eighteen.model.params.*;
import com.sundot.airport.exam.logic.eighteen.model.result.*;
import com.sundot.airport.exam.logic.eighteen.model.result.subresult.ItemIn18ExamRecordListResult;

/**
 * <b>功能名：</b>EighteenService<br>
 * <b>说明：</b> 十八大接口类 <br>
 * <b>著作权：</b> Copyright (C) 2020 HUIFANEDU  CORPORATION<br>
 * <b>修改履历：
 *
 * @author 2021-06-04 huifan
 */
public interface EighteenService extends IService<BaseEntity> {

    /**
     * <b>方法名: </b> getExam <br>
     * <b>说明: </b> 查询考试基本信息 <br>
     *
     * @param param Get18ExamIntroParams 参数类
     * @return HttpResult<Get18ExamIntroResult>
     * <b>修改履历: </b>
     * @author 2021/7/5 Mokou
     */
    HttpResult<Get18ExamIntroResult> getExamIntro(Get18ExamIntroParams param);

    /**
     * <b>方法名: </b> getExamRecordList <br>
     * <b>说明: </b> 查询测试记录列表 <br>
     *
     * @param param Get18ExamRecordListParams 参数类
     * @return HttpResult<PageData < ItemIn18ExamRecordListResult>>
     * <b>修改履历: </b>
     * @author 2021/7/5 Mokou
     */
    HttpResult<PageData<ItemIn18ExamRecordListResult>> getExamRecordList(Get18ExamRecordListParams param);

    /**
     * <b>方法名: </b> getExamRecord <br>
     * <b>说明: </b> 查询测试记录详情 <br>
     *
     * @param param Get18ExamRecordParams 参数类
     * @return HttpResult<ItemIn18ExamRecordResult>
     * <b>修改履历: </b>
     * @author 2021/7/5 Mokou
     */
    HttpResult<ItemIn18ExamRecordResult> getExamRecord(Get18ExamRecordParams param);

    /**
     * <b>方法名: </b> submitExam <br>
     * <b>说明: </b> 提交考试 <br>
     *
     * @param param SubmitExamParam 参数类
     * @return HttpResult<SubmitExamResult>
     * <b>修改履历: </b>
     * @author 2021/7/6 Mokou
     */
    HttpResult<SubmitExamResult> submitExam(SubmitExamParam param);
}
