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

namespace Tiobon.Core.IServices;

/// <summary>
/// 开班管理(自定义服务接口)
/// </summary>	
public interface IGhre_OpenClassServices : IBaseServices<Ghre_OpenClass, Ghre_OpenClassDto, InsertGhre_OpenClassInput, EditGhre_OpenClassInput>
{
    Task<ServiceResult<List<Ghre_OpenClassStaffDto>>> QueryStaff(long Id);
    Task<ServiceResult> InsertStaff(long Id, List<int> staffIds);

    Task<ServiceResult> DeleteStaff(long Id, List<int> staffIds);

    Task<ServiceResult<List<Ghre_OpenClassFeeDto>>> QueryGroupFee(long Id);

    Task<ServiceResult<List<Ghre_OpenClassFeeDto>>> QueryPersonalFee(long Id);

    Task<ServiceResult> InsertFee(long Id, InsertGhre_OpenClassFeeInput fee);

    Task<ServiceResult> DeleteFee(List<long> feeIds);

    Task<ServiceResult<Ghre_OpenClassDto>> QuerySummary(long Id);

    Task<ServiceResult> InsertSummary(long Id, InsertGhre_OpenClassInput entity);

    Task<ServiceResult> UpdateStatus(List<long> ids, string status, string source = null);

    Task<ServiceResult<List<Ghre_OpenClassScore>>> QueryScore(long Id);

    Task<ServiceResult> CheckIn(long Id);

    Task<ServiceResult<ExcelData>> ExportStaff(long Id);

    Task<ServiceResult<Ghre_OpenClassSchedule1>> QuerySchedule(long Id);

    Task<ServiceResult> Attend(long Id, string type);

    Task<ServiceResult> Email(long Id);

    Task<ServiceResult<Ghre_OpenClassStatistic>> QueryStatistic(long id);
}