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

import dev.lions.unionflow.server.api.dto.base.BaseDTO;
import dev.lions.unionflow.server.api.enums.wave.StatutTransactionWave;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;
import org.eclipse.microprofile.openapi.annotations.media.Schema;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Schema(description = "Don transactionnel reçu pour une campagne de collecte")
public class ContributionCollecteDTO extends BaseDTO {

    private String campagneId;

    @Schema(description = "Id du membre (Null si le don est public/externe)")
    private String membreDonateurId;

    @Schema(description = "Nom affiché si don public ou pour le mur de contributeurs")
    private String aliasDonateur;

    private Boolean estAnonyme;

    private BigDecimal montantSoutien;

    private String messageSoutien;

    private LocalDateTime dateContribution;

    // Lien avec la passerelle de paiement
    private String transactionPaiementId;
    private StatutTransactionWave statutPaiement;
}
