package com.example.quiz.data.model;

import java.io.Serializable;
import java.time.temporal.TemporalAccessor;
import java.util.List;

public class ParisResponse implements Serializable {
    private long id;
    private String numeroTicket;
    private String dateHeurePrise;
    private String qrPayload;

    private long courseId;
    private String courseNom;
    private int courseNumero;

    private String hippodromeNom;
    private long reunionNumero;
    private String reunionDate;
    private String heureDepartPrevue;

    private int nombrePartants;
    private List<Integer> nonPartants;

    private long agentId;
    private String agentCode;
    private String agentNom;

    private long terminalId;
    private String terminalNumeroSerie;

    private long pointDeVenteId;
    private String pointDeVenteCode;
    private String pointDeVenteNom;

    private List<PariMise> typesParisMises;
    private long miseTotale;

    private List<String> formules;

    private double coefficient;
    private String combinaison;

    private StatutPari statutPari;

    private long gainCalcule;
    private String devise;

    private String dateReglement;
    private String datePaiement;

    private String notes;

    // ================= ENUM =================

    public enum StatutPari {
        ENREGISTRE,
        VALIDE,
        PAYE,
        ANNULE,
        PERDANT,
        GAGNANT,
        A_REMBOURSER,
        REMBOURSE,
        ECHEC_CACUL
    }

    // ================= INNER CLASS =================

    // ================= GETTERS =================

    public long getId() { return id; }
    public String getNumeroTicket() { return numeroTicket; }
    public String  getDateHeurePrise() { return dateHeurePrise; }
    public String getQrPayload() { return qrPayload; }
    public long getCourseId() { return courseId; }
    public String getCourseNom() { return courseNom; }
    public int getCourseNumero() { return courseNumero; }
    public String getHippodromeNom() { return hippodromeNom; }
    public long getReunionNumero() { return reunionNumero; }
    public String getReunionDate() { return reunionDate; }
    public String getHeureDepartPrevue() { return heureDepartPrevue; }
    public int getNombrePartants() { return nombrePartants; }
    public List<Integer> getNonPartants() { return nonPartants; }
    public long getAgentId() { return agentId; }
    public String getAgentCode() { return agentCode; }
    public String getAgentNom() { return agentNom; }
    public long getTerminalId() { return terminalId; }
    public String getTerminalNumeroSerie() { return terminalNumeroSerie; }
    public long getPointDeVenteId() { return pointDeVenteId; }
    public String getPointDeVenteCode() { return pointDeVenteCode; }
    public String getPointDeVenteNom() { return pointDeVenteNom; }
    public List<PariMise> getTypesParisMises() { return typesParisMises; }
    public long getMiseTotale() { return miseTotale; }
    public List<String> getFormules() { return formules; }
    public double getCoefficient() { return coefficient; }
    public String getCombinaison() { return combinaison; }
    public StatutPari getStatutPari() { return statutPari; }
    public long getGainCalcule() { return gainCalcule; }
    public String getDevise() { return devise; }
    public String getDateReglement() { return dateReglement; }
    public String getDatePaiement() { return datePaiement; }
    public String getNotes() { return notes; }
}
