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

import dev.lions.unionflow.server.api.dto.base.BaseDTO;
import dev.lions.unionflow.server.api.enums.vote.ModeScrutin;
import dev.lions.unionflow.server.api.enums.vote.StatutVote;
import dev.lions.unionflow.server.api.enums.vote.TypeVote;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.List;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CampagneVoteResponse extends BaseDTO {

    private String titre;
    private String descriptionOuResolution;
    private String organisationId;

    private TypeVote typeVote;
    private ModeScrutin modeScrutin;
    private StatutVote statut;

    private LocalDateTime dateOuverture;
    private LocalDateTime dateFermeture;

    private Boolean restreindreMembresAJour;
    private Boolean autoriserVoteBlanc;

    // Statistiques macro pour l'administrateur
    private Integer totalElecteursInscrits;
    private Integer totalVotantsEffectifs;
    private Integer totalVotesBlancsOuNuls;
    private Double tauxDeParticipation;

    private List<CandidatDTO> candidatsExposes;
}
