package com.realnet.password_generator;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class PasswordGenerationRequest {

    @NotNull(message = "Password length cannot be null")
    @Min(value = 8, message = "Password length must be at least 8 characters")
    @Max(value = 128, message = "Password length cannot exceed 128 characters")
    private Integer length;

    private boolean includeUppercase;
    private boolean includeLowercase;
    private boolean includeNumbers;
    private boolean includeSymbols;

    @Size(max = 50, message = "Excluded characters list cannot exceed 50 characters")
    private String excludeCharacters;
}
