using System.Collections.Generic;
using System.Threading.Tasks;
using GxPress.Entity;
using GxPress.Request.ArticleGroup;
using Datory;
using GxPress.Result.Article;
using GxPress.Result.ArticleGroupUser;

namespace GxPress.Repository.Interface
{
    public interface IArticleGroupRepository : IRepository
    {
        Task<bool> ExistsAsync(int id);

        Task<bool> IsNameExistsAsync(string name);

        Task<int> InsertAsync(ArticleGroup processGroup);

        Task<ArticleGroupResult> GetAsync(int id);

        Task<bool> UpdateAsync(ArticleGroup processGroup);

        Task<IEnumerable<ArticleGroupUserListResult>> GetListAsync(int userId);

        /// <summary>
        /// ����
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<ArticleGroup> AddAsync(ArticleGroupAddRequest request);

        /// <summary>
        /// �޸�
        /// </summary>
        /// <param name="id"></param>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<bool> UpdateAsync(int id, ArticleGroupAddRequest request);

        /// <summary>
        /// ɾ��
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<bool> DeleteAsync(int id);
        Task<ArticleGroup> GetArticleGroupAsync(int id);
         /// <summary>
        /// 根据样式获取导航
        /// </summary>
        /// <param name="styleCss"></param>
        /// <returns></returns>
        Task<ArticleGroup> GetArticleGroupAsync(string styleCss);
    }
}