using System.Collections.Generic;
using System.Threading.Tasks;
using Datory;
using GxPress.Common.Page;
using GxPress.Request.SpecialLabel;

namespace GxPress.Repository.Interface.SpecialLabel
{
    public interface ISpecialLabelRepository : IRepository
    {
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        Task<int> InsertAsync(Entity.SystemLabel.SpecialLabel model);
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        Task<bool> UpdateAsync(Entity.SystemLabel.SpecialLabel model);
        /// <summary>
        /// 获取
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<Entity.SystemLabel.SpecialLabel> GetAsync(int id);
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<bool> DeleteAsync(int id);
        /// <summary>
        /// 获取类型下的数据
        /// </summary>
        /// <param name="typeValue"></param>
        /// <returns></returns>
        Task<IEnumerable<Entity.SystemLabel.SpecialLabel>> GetAllAsync(int typeValue,int pageSize=10);
        /// <summary>
        ///特使标签数据
        /// </summary>
        /// <param name="typeValue"></param>
        /// <returns></returns>
        Task<PagedList<Entity.SystemLabel.SpecialLabel>> GetAllAsync(SpecialLabelSearchRequest request);
    }
}