package dev.lions.unionflow.server.api.dto.paiement.response;

import dev.lions.unionflow.server.api.dto.base.BaseResponse;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.UUID;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
 * DTO de réponse détaillée pour un paiement.
 *
 * @author UnionFlow Team
 * @version 3.0
 */
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PaiementResponse extends BaseResponse {
    private String numeroReference;
    private BigDecimal montant;
    private String codeDevise;
    private String methodePaiement;
    private String methodePaiementLibelle;
    private String statutPaiement;
    private String statutPaiementLibelle;
    private String statutPaiementSeverity;
    private LocalDateTime datePaiement;
    private LocalDateTime dateValidation;
    private String validateur;
    private String referenceExterne;
    private String urlPreuve;
    private String commentaire;

    // Informations relatives au payeur
    private UUID membreId;
    private String membreNom;

    // Intégration Wave
    private UUID transactionWaveId;
}
