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

namespace Tiobon.Core.IServices;

/// <summary>
/// 课程(自定义服务接口)
/// </summary>	
public interface IGhre_CourseServices : IBaseServices<Ghre_Course, Ghre_CourseDto, InsertGhre_CourseInput, EditGhre_CourseInput>
{

    Task<ServicePageResult<Ghre_CourseDto>> QueryList(QueryBody filter, string status, List<long> ids);

    Task<ServiceResult<int>> QueryDeptID(int StaffID);
    Task<ServiceResult<CommonSelect>> QueryTeacher(long? linkId);
    Task<ServiceResult> UpdateStatus(long[] ids, string status);
    Task<ServiceResult<CommonSelect>> GetSelectAsync(long? linkId, string keyWords);

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

    Task<ServiceResult<CoursePublicSearch>> QueryPublicSearchFields(QueryBody body);

    Task<ServicePageResult<CoursePublic>> QueryPublic(QueryBody filter);
    Task<ServiceResult<List<Ghre_CourseDto>>> QueryBySceneId(long courseSceneId);

    Task<ServiceResult> ModifyCourseSortNo(List<Ghre_Course> courses);

    Task<dynamic> QueryStatistic(long id);

    Task<ServicePageResult<CourseAndScene>> QueryCourseAndScene(QueryBody filter);
}