package dev.lions.unionflow.server.api.dto.adresse.request;

import jakarta.validation.constraints.DecimalMax;
import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.Digits;
import java.math.BigDecimal;
import java.util.UUID;

/**
 * Requete de mise à jour d'une adresse.
 * Tous les champs sont optionnels pour permettre des mises à jour partielles.
 *
 * @author UnionFlow Team
 * @version 3.0
 */
public record UpdateAdresseRequest(
        String typeAdresse, // Code depuis types_reference
        String adresse,
        String complementAdresse,
        String codePostal,
        String ville,
        String region,
        String pays,

        @DecimalMin(value = "-90.0", message = "La latitude doit être comprise entre -90 et 90") @DecimalMax(value = "90.0", message = "La latitude doit être comprise entre -90 et 90") @Digits(integer = 3, fraction = 6) BigDecimal latitude,

        @DecimalMin(value = "-180.0", message = "La longitude doit être comprise entre -180 et 180") @DecimalMax(value = "180.0", message = "La longitude doit être comprise entre -180 et 180") @Digits(integer = 3, fraction = 6) BigDecimal longitude,

        Boolean principale,
        String libelle,
        String notes,

        UUID organisationId,
        UUID membreId,
        UUID evenementId) {
}
