using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using GxPress.Common.Page;
using GxPress.Request.App.TopicComment;
using GxPress.Result.App.TopicComment;
using Datory;

namespace GxPress.Repository.Interface
{
    public interface ITopicCommentRepository : IRepository
    {
        /// <summary>
        /// 添加文章评论
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<int> TopicCommentInAsync(TopicCommentInRequest request);

        Task<PagedList<TopicCommentPageResult>> GetPagedList(TopicCommentSearchPageRequest request);

        Task<int> GetCountAsync(int articleId);

        Task<IEnumerable<TopicCommentPageResult>> GetPageListAsync(TopicCommentSearchPageRequest request);

        Task<List<TopicCommentReplyResult>> GetTopicCommentReplyResultByPid(int pid, List<TopicCommentReplyResult> TopicCommentReplyResults);
        /// <summary>
        /// 删除评论
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<bool> DeleteTopicCommentAsync(TopicCommentDeleteRequest request);
        /// <summary>
        /// 获取文章的评论条数
        /// </summary>
        /// <param name="TopicId"></param>
        /// <returns></returns>
        Task<int> GetTopicCommentCountAsync(int TopicId);

        Task<int> CountAsync(SqlKata.Query query);
    }
}
