ShelterRequest.java
package org.petify.shelter.dto;
import org.petify.shelter.model.Shelter;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;
import java.io.Serializable;
/**
* DTO for {@link Shelter}
*/
public record ShelterRequest(
@NotNull(message = "Shelter name cannot be null!")
@NotBlank(message = "Shelter name cannot be blank!")
@Length(message = "Shelter name has to be between 3 and 255 characters long!", min = 3, max = 255)
String name,
@NotNull(message = "Shelter description cannot be null!")
@NotBlank(message = "Shelter description cannot be blank!")
String description,
@NotNull(message = "Shelter address cannot be null!")
String address,
@NotNull @Pattern(regexp = "(?<!\\w)(\\(?(\\+|00)?48\\)?)?[ -]?\\d{3}[ -]?\\d{3}[ -]?\\d{3}(?!\\w)")
String phoneNumber,
@NotNull @Range(min = -90, max = 90, message = "Latitude has to be between -90 and 90 degrees!")
Double latitude,
@NotNull @Range(min = -180, max = 180, message = "Longitude has to be between -180 and 180 degrees!")
Double longitude
) implements Serializable {}