package pwc.taxtech.atms.service;

import pwc.taxtech.atms.dto.LoginOutputDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.user.UserAndUserRoleSaveDto;
import pwc.taxtech.atms.dto.user.UserPasswordDto;
import pwc.taxtech.atms.entitiy.User;

public interface UserAccountService {
    OperationResultDto<LoginOutputDto> changeExternalUserPassword(UserPasswordDto userPasswordDto);

    void resetAttemptTimes(User tempUser);

    void dealWithWrongPassword(User tempUser);

    OperationResultDto<Object> forgetPassword(String mail);

    OperationResultDto<User> addNewUser(UserAndUserRoleSaveDto userAndUserRoleSaveDto);

    OperationResultDto<User> addUser(UserAndUserRoleSaveDto userAndUserRoleSaveDto);
}