package cn.reghao.devops.mgr.admin.service;

import cn.reghao.devops.mgr.admin.model.dto.CreateAccountDto;
import cn.reghao.devops.mgr.admin.model.dto.AccountProfile;
import cn.reghao.devops.mgr.admin.model.dto.AccountRole;
import cn.reghao.devops.mgr.admin.model.po.User;
import cn.reghao.devops.mgr.admin.model.vo.UserVO;
import cn.reghao.jutil.jdk.result.Result;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

import java.util.List;

/**
 * @author reghao
 * @date 2020-06-19 16:36:53
 */
public interface AccountService {
    Result createAccount(CreateAccountDto createAccountDto);
    void updateAccountPassword(Integer userId, String newPassword);
    void updateAccountProfile(AccountProfile accountProfile);
    Result updateAccountRole(AccountRole accountRole);
    void updateAccountStatus(Integer userId, Boolean enable);
    Result deleteAccount(Integer userId);
    Page<UserVO> getUserVOByPage(PageRequest pageRequest);
    List<UserVO> getByMatchScreenName(String screenName);
    User getById(Integer userId);
}
