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

import dev.lions.unionflow.server.api.dto.base.BaseDTO;
import dev.lions.unionflow.server.api.enums.tontine.FrequenceTour;
import dev.lions.unionflow.server.api.enums.tontine.StatutTontine;
import dev.lions.unionflow.server.api.enums.tontine.TypeTontine;
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.LocalDate;
import java.util.List;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Schema(description = "Réponse contenant la structure d'une tontine")
public class TontineResponse extends BaseDTO {

    private String nom;
    private String description;
    private String organisationId;

    private TypeTontine typeTontine;
    private FrequenceTour frequence;
    private StatutTontine statut;

    private LocalDate dateDebutEffective;
    private LocalDate dateFinPrevue;

    private BigDecimal montantMiseParTour;
    private Integer limiteParticipants;

    @Schema(description = "Statistiques directes : nombre de participants actifs et fonds totaux levés à ce jour")
    private Integer nombreParticipantsActuels;
    private BigDecimal fondTotalCollecte;

    @Schema(description = "Calendrier généré des tours de cette tontine")
    private List<TourTontineDTO> calendrierTours;
}
