package org.egl_cepgl.pm.service.keycloak;

import org.egl_cepgl.pm.dto.CheckPwdByKcl;
import org.egl_cepgl.pm.dto.UserRegistrationDto;
import org.egl_cepgl.pm.dto.UserUpdateDto;
import org.egl_cepgl.pm.model.user.User;
import org.keycloak.admin.client.resource.UserResource;
import org.keycloak.representations.idm.ClientRepresentation;
import org.keycloak.representations.idm.UserRepresentation;
import org.springframework.security.core.Authentication;

public interface KeycloakUserService
{
    String createUser(UserRegistrationDto userRegistrationRecord) throws Exception;
    void updateUser(UserUpdateDto userUpdateDto);
    UserRepresentation getUserById(String userId);
    void deleteUserById(String userId);
    void emailVerification(String userId);
    UserResource getUserResource(String userId);
    void updatePassword(String userId);
    void changeUserAdmin(User obj);
    void changeUserStatus(User obj);
    Boolean checkPasswordByKcl(CheckPwdByKcl obj);
    String changeUserPassword(CheckPwdByKcl obj);
    ClientRepresentation getClientById(String clientId);
}

