UserRequest.java
package cz.vsb.crm.dto;
import cz.vsb.crm.model.User;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
public record UserRequest(
@NotBlank @Size(min = 3, max = 255) String username,
@NotBlank @Pattern(regexp = "Admin|Manager|User",
message = "role must be one of: Admin, Manager, User") String role,
@NotBlank @Email String email,
@NotBlank @Size(min = 8, max = 255) String password) {
public User toEntity() {
User user = new User();
applyTo(user);
return user;
}
public void applyTo(User user) {
user.setUsername(username);
user.setRole(role);
user.setEmail(email);
user.setPassword(password);
}
}