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

namespace Tiobon.Core.IServices;

/// <summary>
/// 问卷调查(自定义服务接口)
/// </summary>	
public interface IGhre_SurveyServices : IBaseServices<Ghre_Survey, Ghre_SurveyDto, InsertGhre_SurveyInput, EditGhre_SurveyInput>
{
    Task<ServiceResult<long>> InsertByStatus(InsertGhre_SurveyInput insertModel, string status);

    Task<ServiceResult> UpdateStatus(InsertGhre_SurveyInput input, string status);

    Task<ServiceResult<long>> InsertData(long id, InsertGhre_SurveyExtend insertModel);

    Task<ServiceResult<InsertGhre_SurveyExtend>> QueryData(long id);

    Task<ServiceResult<Ghre_SurveyExtend>> QueryESSData(long id, long? openClassId = null);

    Task<ServiceResult> SubmitESSData(long id, Ghre_SurveyExtend input, long? openClassId = null);

    Task<ServiceResult> Publish(long id);

    Task<ServiceResult<Ghre_SurveyStatistic>> QueryStatistic(long id);

    Task<ServiceResult> Start(long id);

    Task<dynamic> QueryRecord(long id);
}