RegisterRequest.java
package com.wavii.dto.auth;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.Data;
/**
* DTO que representa una solicitud de registro de nuevo usuario.
* Incluye validaciones de formato para nombre, email y fortaleza de contraseña.
*/
@Data
public class RegisterRequest {
@NotBlank(message = "El nombre es obligatorio")
@Size(min = 2, max = 100, message = "El nombre debe tener entre 2 y 100 caracteres")
private String name;
@NotBlank(message = "El email es obligatorio")
@Email(message = "Formato de email inválido")
private String email;
@NotBlank(message = "La contraseña es obligatoria")
@Size(min = 8, message = "La contraseña debe tener al menos 8 caracteres")
@Pattern(
regexp = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^A-Za-z\\d]).{8,}$",
message = "La contraseña debe incluir mayúscula, minúscula, número y carácter especial"
)
private String password;
}