using Tiobon.Core.Common;
using Tiobon.Core.IServices.BASE;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;

namespace Tiobon.Core.IServices;

/// <summary>
/// 考试(自定义服务接口)
/// </summary>	
public interface IGhre_ExamServices : IBaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhre_ExamInput, EditGhre_ExamInput>
{
    Task<dynamic> GetModuleInfo(ModuleParam param);
    Task<dynamic> QueryList(QueryBody body, string status);

    Task<ServiceResult<DefaultGhre_ExamInput>> QueryDefault(long Id);

    Task<ServiceResult<List<StaffTableData>>> QueryStaff(List<int> Ids, string type);

    Task<ServiceResult<long>> Insert1(long id, DefaultGhre_ExamPageData pageData);

    Task<ServiceResult> UpdateStatus(long[] ids, string status);

    Task<ServiceResult> GetStatus(long id);

    Task<ServiceResult> StartExam(long id);

    Task<ServiceResult> Copy(long id);

    Task<ServiceResult<Ghre_ExamMessageLogDto>> QueryMessageLog(long id);

    Task<ServiceResult> InsertMessageLog(Ghre_ExamMessageLogDto insert);

    Task<ServiceResult<List<StaffTableData>>> QueryRuleStaff(long examId);

    Task<ServiceResult<string>> ExportExcel(QueryExport body, string status);

    Task<ServiceResult> ExecuteExamOver();
}