using System.Collections.Generic;
using System.Threading.Tasks;
using Abp.Application.Services;
using YGNT.Infrastructure.Model;
using YGNT.QuestionLibrary.Core.Models;
using YGNT.QuestionLibrary.Questions.Dto;
using YGNT.QuestionLibrary.QuestionTypes.Dto;

namespace YGNT.QuestionLibrary.QuestionTypes
{
    /// <summary>
    /// 系统试题类型管理
    /// </summary>
    public interface IQuestionTypeAppService : IApplicationService
    {
        /// <summary>
        /// 获取试题类型列表
        /// </summary>
        /// <returns></returns>
        Task<List<QuestionTypeDto>> GetQuestionTypeListAsync();

        /// <summary>
        /// 创建试题类型
        /// </summary>
        /// <param name="create"></param>
        /// <returns></returns>
        Task<int> CreateQuestionTypeAsync(CreateQuestionTypeDto create);

        /// <summary>
        /// 修改题型
        /// </summary>
        /// <param name="id"></param>
        /// <param name="update"></param>
        /// <returns></returns>
        Task UpdateQuestionTypeAsync(int id, UpdateQuestionTypeDto update);

        /// <summary>
        /// 题型排序
        /// </summary>
        /// <param name="sort"></param>
        /// <returns></returns>
        Task SortAsync(SortDto<int> sort);

        /// <summary>
        /// 删除试题类型
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task DeleteQuestionTypeId(int id);
    }
}