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

import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import java.math.BigDecimal;
import java.time.LocalDate;

import lombok.Builder;

/**
 * Requête de mise à jour d'une organisation.
 *
 * <p>
 * ID passé dans le path de l'URL.
 *
 * @author UnionFlow Team
 * @version 3.0
 * @since 2026-02-22
 */
@Builder
public record UpdateOrganisationRequest(
                @NotBlank @Size(max = 255) String nom,
                @Size(max = 50) String nomCourt,
                @Size(max = 2000) String description,
                @NotBlank @Email @Size(max = 255) String email,
                @Size(max = 20) String telephone,
                @Size(max = 20) String telephoneSecondaire,
                @Email @Size(max = 255) String emailSecondaire,
                @Size(max = 500) String siteWeb,
                @Size(max = 500) String logo,
                @Size(max = 1000) String reseauxSociaux,
                @Size(max = 50) String typeOrganisation,
                @Size(max = 30) String statut,
                LocalDate dateFondation,
                @Size(max = 100) String numeroEnregistrement,
                @Size(max = 3) String devise,
                BigDecimal budgetAnnuel,
                Boolean cotisationObligatoire,
                BigDecimal montantCotisationAnnuelle,
                @Size(max = 2000) String objectifs,
                @Size(max = 2000) String activitesPrincipales,
                @Size(max = 500) String certifications,
                @Size(max = 1000) String partenaires,
                @Size(max = 1000) String notes,
                BigDecimal latitude,
                BigDecimal longitude) {
}
