package fr.titionfire.ffsaf.data.model;

import fr.titionfire.ffsaf.utils.Categorie;
import io.quarkus.runtime.annotations.RegisterForReflection;
import jakarta.persistence.*;
import lombok.*;
import org.eclipse.microprofile.openapi.annotations.media.Schema;

@Getter
@Setter
@Builder
@AllArgsConstructor
@NoArgsConstructor
@RegisterForReflection

@Entity
@Table(name = "selection")
public class SelectionModel implements LoggableModel  {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Schema(description = "L'identifiant de la séléction.")
    Long id;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "membre", referencedColumnName = "id")
    @Schema(description = "Le membre de la séléction. (optionnel)")
    MembreModel membre;

    @Schema(description = "La saison de la séléction.", examples = "2025")
    int saison;

    @Schema(description = "Catégorie de la séléction.")
    Categorie categorie;

    @Override
    public String getObjectName() {
        return "selection " + id.toString();
    }

    @Override
    public LogModel.ObjectType getObjectType() {
        return LogModel.ObjectType.Selection;
    }
}
