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

namespace GxPress.Repository.Interface.SystemLabel
{
    public interface ISystemLabelRepository : IRepository
    {
        Task<Entity.SystemLabel.SystemLabel> GetAsync(int id);

        Task<bool> DeleteAsync(int id);

        Task<int> InsertAsync(Entity.SystemLabel.SystemLabel note);

        Task<bool> UpdateAsync(SystemLabelUpRequest note);
        Task<PagedList<SystemLabelResult>> GetAllPageAsync(SystemLabelRequest request);
        Task<IEnumerable<Entity.SystemLabel.SystemLabel>> GetAllAsync(List<int> ids);
        Task<Entity.SystemLabel.SystemLabel> GetByNameAsync(string name);
        Task<IEnumerable<SystemLabelResult>> GetAllAsync();
        /// <summary>
        /// 获取明栏
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<PagedList<SystemLabelResult>> GetAllStarLablePageAsync(Common.Page.PageParameter request);
        /// <summary>
        /// 获取明栏
        /// </summary>
        /// <returns></returns>
        Task<IEnumerable<SystemLabelResult>> GetStarLableAllAsync();
    }
}