using Hotline.Share.Dtos.Knowledge;

namespace Hotline.KnowledgeBase
{
    public interface IKnowledgeTypeDomainService
    {
        /// <summary>
        ///知识分类- 新增
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<string> AddType(AddKnowledgeTypeDto dto, CancellationToken cancellationToken);

        /// <summary>
        ///知识分类- 编辑
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task UpdateType(UpdateKnowledgeTypeDto dto, CancellationToken cancellationToken);

        /// <summary>
        /// 知识分类-新增、编辑初始化
        /// </summary>
        /// <param name="Id"></param>
        /// <param name="ParentId"></param>
        /// <returns></returns>
        Task<KnowledgeTypeDto> InitType(string Id, string ParentId, CancellationToken cancellationToken);

        /// <summary>
        /// 知识分类-启用、禁用切换
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        Task ChangeStateType(string Id, CancellationToken cancellationToken);

        /// <summary>
        /// 知识分类-禁用，并且下架知识
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        Task ChangeStateTypeAndOffShelf(string Id, CancellationToken cancellationToken);

        /// <summary>
        /// 知识分类-删除
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        Task RemoveType(string Id, CancellationToken cancellationToken);
    }
}
