package com.example.quiz.data.model;


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


public class Course {
    private long id;
    private long hippodromeId;
    private long reunionNumero;

    private String reunionDate;
    private String nom;

    private int numero;
    private String heureDepartPrevue;

    private boolean bettingOpen;
    private String bettingClosedAt;

    private String discipline;
    private int distanceMetres;
    private String categorie;
    private int nombrePartants;

    private Statut statut;

    private boolean annulee;
    private boolean reporteeMemeJour;
    private boolean reporteeAutreJour;
    private boolean incidentTechnique;

    private List<Integer> nonPartants;
    private List<TypeParis> typesParisOuverts;

    // ===== ENUMS =====

    public enum Statut {
        BROUILLON,
        VALIDE,
        OUVERT,
        FERME,
        RESULTAT_PROVISOIRE,
        RESULTAT_OFFICIEL,
        REGLEE,
        ANNULEE
    }

    public enum TypeParis {
        COUPLE_GAGNANT,
        COUPLE_PLACE,
        TIERCE,
        QUARTE,
        QUINTE
    }

    // ===== GETTERS & SETTERS =====

    public long getId() { return id; }
    public long getHippodromeId() { return hippodromeId; }
    public long getReunionNumero() { return reunionNumero; }
    public String getReunionDate() { return reunionDate; }
    public String getNom() { return nom; }
    public int getNumero() { return numero; }
    public String getHeureDepartPrevue() { return heureDepartPrevue; }
    public boolean isBettingOpen() { return bettingOpen; }
    public String getBettingClosedAt() { return bettingClosedAt; }
    public String getDiscipline() { return discipline; }
    public int getDistanceMetres() { return distanceMetres; }
    public String getCategorie() { return categorie; }
    public int getNombrePartants() { return nombrePartants; }
    public Statut getStatut() { return statut; }
    public boolean isAnnulee() { return annulee; }
    public boolean isReporteeMemeJour() { return reporteeMemeJour; }
    public boolean isReporteeAutreJour() { return reporteeAutreJour; }
    public boolean isIncidentTechnique() { return incidentTechnique; }
    public List<Integer> getNonPartants() { return nonPartants; }
    public List<TypeParis> getTypesParisOuverts() { return typesParisOuverts; }
}
