using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Datory;
using GxPress.Entity.Topic;
using GxPress.Request.App.Topic;
using GxPress.Result;

namespace GxPress.Repository.Interface.Topic
{
    public interface ITopicGroupRepository : IRepository
    {

        Task<TopicGroup> GetAsync(int id);

        Task<bool> DeleteAsync(List<int> ids);

        Task<AppResultJson<Entity.Topic.TopicGroup>> InsertAsync(TopicGroup topicGroup);

        Task<IEnumerable<TopicGroup>> GetTopicGroupsAsync(int userId);

        /// <summary>
        /// 修改分组名称
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<bool> UpdateAsync(TopicGroupInRequest request);

        /// <summary>
        /// 排序
        /// </summary>
        /// <param name="firstId"></param>
        /// <param name="secondId"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        Task<bool> MoveSortAsync(int firstId, int secondId, int userId);

        Task<bool> UpdateAsync(SqlKata.Query query);


    }
}