50 lines
No EOL
1.6 KiB
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;
|
|
}
|
|
} |