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

namespace GxPress.Repository.Interface
{
    public interface INoticeFolderRepository : IRepository
    {
        /// <summary>
        /// 创建通知文件夹
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<bool> InsertAsync(NoticeFolderInRequest request);
        /// <summary>
        /// 删除通知文件夹
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<bool> DeleteAsync(int id);
        /// <summary>
        /// 修改通知文件夹
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<bool> UpdateAsync(NoticeFolderUpRequest request);
        /// <summary>
        /// 插入通知文件夹
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<bool> InsertNoticeAsync(NoticeFolderInNoticeRequest request);
        /// <summary>
        /// 文件夹移除通知
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<bool> NoticeFolderDeleteNoticeAsync(NoticeFolderDeleteNoticeRequest request);
        /// <summary>
        /// 根据用户ID获取文件夹
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<IEnumerable<NoticeFolderFindResult>> GetNoticeFolderByUserIdAsync(NoticeFolderFindRequest request);
        /// <summary>
        /// 设置文件夹置顶
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<bool> SetNoticeFolderIsTopAsync(NoticeFolderFindRequest request);
    }
}
