using System.Collections.Generic;

using CZFW.Framework.Model;
using CZFW.Framework.Model.ViewModel;
using CZFW.Framework.Model.Entity;

namespace CZFW.Framework.Interface
{
    public interface ISysUser : ILogicBase<SysUserEntity>
    {
        /// <summary>
        /// 分页获取用户列表
        /// </summary>
        /// <param name="pageSize"></param>
        /// <param name="pageNumber"></param>
        /// <param name="rows"></param>
        /// <returns></returns>
        IList<UserItem> GetUserItems(int pageSize, int pageNumber, out int rows);

        /// <summary>
        /// 按参数提供的用户Id列表批量获取用户基本信息
        /// </summary>
        /// <param name="userIds"></param>
        /// <returns></returns>
        IList<UserItem> GetUserItemsByIdList(IList<int> userIds);

        OperatorModel CheckLogin(string userName, string password, out string msg);

        ResultModel DisableAccount(int id);

        ResultModel EnableAccount(int id);

        ResultModel DeleteAccount(int id);

        ResultModel Logout(int id);

        ResultModel AddUser(SysUserEntity entity);

        ResultModel UpdateUser(SysUserEntity entity);

        /// <summary>
        /// 获取用户的显示名称
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        ResultModel GetNickName(int id);

        UserItem GetUserItem(int id);
    }
}