package dev.lions.unionflow.server.api.dto.document;

import dev.lions.unionflow.server.api.dto.base.BaseDTO;
import jakarta.validation.constraints.*;
import java.util.UUID;
import lombok.Getter;
import lombok.Setter;

/**
 * DTO pour la gestion des pièces jointes
 *
 * @author UnionFlow Team
 * @version 3.0
 * @since 2025-01-29
 */
@Getter
@Setter
public class PieceJointeDTO extends BaseDTO {

  private static final long serialVersionUID = 1L;

  /** Ordre d'affichage */
  @NotNull(message = "L'ordre est obligatoire")
  @Min(value = 1, message = "L'ordre doit être positif")
  private Integer ordre;

  /** Libellé */
  private String libelle;

  /** Commentaire */
  private String commentaire;

  /** ID du document */
  @NotNull(message = "Le document est obligatoire")
  private UUID documentId;

  /** ID du membre (optionnel) */
  private UUID membreId;

  /** ID de l'organisation (optionnel) */
  private UUID organisationId;

  /** ID de la cotisation (optionnel) */
  private UUID cotisationId;

  /** ID de l'adhésion (optionnel) */
  private UUID adhesionId;

  /** ID de la demande d'aide (optionnel) */
  private UUID demandeAideId;

  /** ID de la transaction Wave (optionnel) */
  private UUID transactionWaveId;
}

