using System;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
using ZeroD.Util;

namespace LifePayment.Application.Contracts
{
    public interface IUserRoleService : IApplicationService
    {
        Task<PageOutput<UserDto>> GetBackClientUsers(GetBackClientUsersInput input);

        Task<int> UpdateBackClientUser(UpdateBackClientUserInput input);

        /// <summary>
        /// 重置密码
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task ResetPassword(ResetPasswordBaseInput input);

        Task<int> DeleteBackClientUser(Guid id);

        Task<Guid> CreateRole(CreateOrUpdateRoleInput input);

        Task<PageOutput<RoleInfo>> GetRoles(GetRolesInput input);

        Task<int> UpdateRole(CreateOrUpdateRoleInput input);

        Task<int> RoleEnableOrForbid(Guid id, bool isEnable);

        Task<int> DeleteRole(Guid id);
    }
}