MangerAutourDeSimplonBack/src/main/java/fr/vincent/ramiere/mangerautourdesimplonback/models/Preference.java

50 lines
No EOL
1.6 KiB
Java

package fr.vincent.ramiere.mangerautourdesimplonback.models;
import java.io.Serializable;
import jakarta.persistence.Column;
import jakarta.persistence.EmbeddedId;
import jakarta.persistence.Entity;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
/**
* Entité représentant les préférences d'un utilisateur (Personne) pour un restaurant (Restaurant).
* Utilise une clé primaire composite {@link PreferencePK}.
*/
@Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Preference implements Serializable {
private static final long serialVersionUID = 1L;
// Clé primaire composite, intégrée directement dans cette entité.
@EmbeddedId
private PreferencePK preferencePK;
// Note attribuée par l'utilisateur au restaurant. Peut être nulle.
// Le type Integer est utilisé pour permettre la nullité (non noté).
@Column // Par défaut, nullable = true pour Integer
private Integer note;
// Indique si le restaurant est marqué comme favori par l'utilisateur.
// boolean primitif, donc non nullable par défaut en base (false si non spécifié).
@Column
private boolean favoris;
/**
* Constructeur partiel pour initialiser avec la clé primaire.
* Ce constructeur est conservé car @AllArgsConstructor ne couvre pas ce cas spécifique
* si vous souhaitez initialiser uniquement avec la clé.
* Si @AllArgsConstructor suffit, vous pouvez supprimer celui-ci.
*/
public Preference(PreferencePK preferencePK){
this.preferencePK = preferencePK;
}
}