using Tiobon.Core.Common;
using Tiobon.Core.Model;
using Tiobon.Core.Model.ViewModels.Extend;

namespace Tiobon.Core.IServices;

/// <summary>
/// 培训记录(自定义服务接口)
/// </summary>	
public interface IGhre_StudyRecordServices : IBaseServices<Ghre_StudyRecord, Ghre_StudyRecordDto, InsertGhre_StudyRecordInput, EditGhre_StudyRecordInput>
{
    Task<ServiceResult<CoursePublicSearch>> QueryESSSearchFields(QueryBody body);


    Task<ServicePageResult<Ghre_StudyRecordESS>> QueryESS(QueryBody filter, string condition, bool? IsEnable = true);

    Task<ServicePageResult<Ghre_StudyRecordDto>> QueryStaff(QueryBody filter);

    Task<ServiceResult<Ghre_StudyRecordCourse>> QueryCourse(QueryBody body, long id);


    Task<ServiceResult> Join(long courseId);

    Task<ServiceResult> RecordDuration(long studyRecordId, decimal? duration, long attachmentId);

    Task<ServiceResult<ExcelData>> ExportStaffExcel(QueryExport body);

    Task SyncToESS();

    Task<ServicePageResult<TeacherClassAnalysis>> QueryTeacherClassAnalysis(QueryBody filter);

    Task<ServiceResult> IssueCredit();

    Task<ServiceResult> MarkCompleteStatus();
}