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

import dev.lions.unionflow.server.api.dto.base.BaseDTO;
import dev.lions.unionflow.server.api.enums.collectefonds.StatutCampagneCollecte;
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 = "Campagne de levée de fonds (Crowdfunding / ONG)")
public class CampagneCollecteResponse extends BaseDTO {

    private String organisationId;

    private String titre;
    private String courteDescription;
    private String htmlDescriptionComplete;
    private String imageBanniereUrl;

    @Schema(description = "Objectif monétaire escompté")
    private BigDecimal objectifFinancier;

    @Schema(description = "Somme totale déjà récoltée sur cette campagne")
    private BigDecimal montantCollecteActuel;

    private Integer nombreDonateurs;

    private StatutCampagneCollecte statut;

    private LocalDateTime dateOuverture;
    private LocalDateTime dateCloturePrevue;

    // Si la page est visible pour les non-membres (donateurs externes)
    private Boolean estPublique;
}
