Ajout des commentaires javaDoc
This commit is contained in:
parent
0727d85ea3
commit
4e02052ed3
6 changed files with 106 additions and 7 deletions
|
@ -2,8 +2,18 @@ package fr.vincent.ramiere.mangerautourdesimplonback.models;
|
|||
|
||||
import org.springframework.security.core.GrantedAuthority;
|
||||
|
||||
/**
|
||||
* Énumération des rôles possibles pour un utilisateur dans le système.
|
||||
* Implémente GrantedAuthority pour l'intégration avec Spring Security.
|
||||
*/
|
||||
public enum EnumRole implements GrantedAuthority {
|
||||
/**
|
||||
* Rôle standard avec des droits de lecture et d'interaction de base.
|
||||
*/
|
||||
ROLE_READER,
|
||||
/**
|
||||
* Rôle administrateur avec des droits étendus sur l'application.
|
||||
*/
|
||||
ROLE_ADMIN;
|
||||
|
||||
@Override
|
||||
|
|
|
@ -11,6 +11,9 @@ import lombok.Builder;
|
|||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* Entité représentant un utilisateur de l'application.
|
||||
*/
|
||||
@Entity
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
|
@ -20,28 +23,51 @@ public class Personne implements Serializable {
|
|||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* Identifiant unique de la personne, généré automatiquement.
|
||||
*/
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Column(name = "id_personne")
|
||||
private int id;
|
||||
|
||||
/**
|
||||
* Nom de famille de l'utilisateur.
|
||||
*/
|
||||
@Column(nullable = false)
|
||||
private String nom;
|
||||
|
||||
/**
|
||||
* Prénom de l'utilisateur.
|
||||
*/
|
||||
@Column(nullable = false)
|
||||
private String prenom;
|
||||
|
||||
/**
|
||||
* Adresse e-mail de l'utilisateur, utilisée comme identifiant de connexion.
|
||||
*/
|
||||
@Column(nullable = false)
|
||||
private String email;
|
||||
|
||||
/**
|
||||
* Mot de passe de l'utilisateur, stocké sous forme de hachage sécurisé.
|
||||
*/
|
||||
@Column(nullable = false)
|
||||
private String password;
|
||||
|
||||
/**
|
||||
* Collection des préférences (notes, favoris) de cet utilisateur pour les restaurants.
|
||||
* La suppression d'une personne entraîne la suppression de ses préférences.
|
||||
*/
|
||||
@OneToMany(mappedBy = "preferencePK.personne", cascade = CascadeType.REMOVE)
|
||||
//@JsonIgnore
|
||||
@Builder.Default
|
||||
private Collection<Preference> preference = new ArrayList<>();
|
||||
|
||||
/**
|
||||
* Liste des rôles attribués à l'utilisateur (ex: ROLE_ADMIN, ROLE_READER).
|
||||
* Chargée immédiatement avec l'entité (EAGER).
|
||||
*/
|
||||
@ElementCollection(fetch = FetchType.EAGER)
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Builder.Default
|
||||
|
|
|
@ -24,17 +24,21 @@ public class Preference implements Serializable {
|
|||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
// Clé primaire composite, intégrée directement dans cette entité.
|
||||
/**
|
||||
* Clé primaire composite, contenant les références vers Personne et Restaurant.
|
||||
*/
|
||||
@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é).
|
||||
/**
|
||||
* Note (de 1 à 5) attribuée par l'utilisateur au restaurant. Peut être nulle si 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é).
|
||||
/**
|
||||
* Indique si le restaurant est marqué comme favori par l'utilisateur.
|
||||
*/
|
||||
@Column(name = "favori")
|
||||
private Boolean favori;
|
||||
|
||||
|
|
|
@ -29,13 +29,17 @@ import lombok.Setter;
|
|||
public class PreferencePK implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
// Clé étrangère vers l'entité Personne
|
||||
/**
|
||||
* La personne associée à cette préférence. Fait partie de la clé composite.
|
||||
*/
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "personne_id_personne")
|
||||
@JsonBackReference("personne-preferencepk")
|
||||
private Personne personne;
|
||||
|
||||
// Clé étrangère vers l'entité Restaurant
|
||||
/**
|
||||
* Le restaurant associé à cette préférence. Fait partie de la clé composite.
|
||||
*/
|
||||
@ManyToOne
|
||||
@JoinColumn(name="restau_id_restau")
|
||||
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
|
||||
|
|
|
@ -8,6 +8,9 @@ import java.io.Serializable;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* Entité représentant un restaurant dans l'application.
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "restaurant")
|
||||
@Data
|
||||
|
@ -18,41 +21,77 @@ public class Restaurant implements Serializable {
|
|||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* Identifiant unique du restaurant, généré automatiquement.
|
||||
*/
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Column(name = "id_restau")
|
||||
private int id;
|
||||
|
||||
/**
|
||||
* Nom commercial du restaurant.
|
||||
*/
|
||||
@Column(nullable = false)
|
||||
private String nom;
|
||||
|
||||
/**
|
||||
* Adresse postale complète du restaurant.
|
||||
*/
|
||||
@Column(nullable = false)
|
||||
private String adresse;
|
||||
|
||||
/**
|
||||
* Numéro de téléphone du restaurant.
|
||||
*/
|
||||
@Column
|
||||
private String telephone;
|
||||
|
||||
/**
|
||||
* Indique si le restaurant propose la vente à emporter.
|
||||
*/
|
||||
@Column(name = "a_emporter")
|
||||
private Boolean aEmporter;
|
||||
|
||||
/**
|
||||
* Indique si le restaurant propose de consommer sur place.
|
||||
*/
|
||||
@Column(name = "sur_place")
|
||||
private Boolean surPlace;
|
||||
|
||||
/**
|
||||
* Indication du niveau de prix (ex: 1 pour €, 2 pour €€, 3 pour €€€).
|
||||
*/
|
||||
@Column
|
||||
private Integer prix;
|
||||
|
||||
/**
|
||||
* Indique si le restaurant est accessible aux Personnes à Mobilité Réduite.
|
||||
*/
|
||||
@Column(name = "accespmr")
|
||||
private Boolean accesPMR;
|
||||
|
||||
/**
|
||||
* Coordonnée de latitude pour la géolocalisation.
|
||||
*/
|
||||
@Column(nullable = false)
|
||||
private String latitude;
|
||||
|
||||
/**
|
||||
* Coordonnée de longitude pour la géolocalisation.
|
||||
*/
|
||||
@Column(nullable = false)
|
||||
private String longitude;
|
||||
|
||||
/**
|
||||
* URL du site web du restaurant.
|
||||
*/
|
||||
@Column
|
||||
private String website;
|
||||
|
||||
/**
|
||||
* Collection des types de cuisine proposés par le restaurant (ex: Italien, Français).
|
||||
*/
|
||||
@ManyToMany
|
||||
@JoinTable(
|
||||
name = "type_restau",
|
||||
|
@ -62,6 +101,10 @@ public class Restaurant implements Serializable {
|
|||
@Builder.Default
|
||||
private Collection<TypeRestau> typerestaus = new ArrayList<>();
|
||||
|
||||
/**
|
||||
* Collection des préférences des utilisateurs associées à ce restaurant.
|
||||
* La suppression d'un restaurant entraîne la suppression des préférences associées.
|
||||
*/
|
||||
@OneToMany(mappedBy = "preferencePK.restau", cascade = CascadeType.REMOVE)
|
||||
@JsonIgnore
|
||||
@Builder.Default
|
||||
|
|
|
@ -8,6 +8,9 @@ import java.util.ArrayList;
|
|||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Entité représentant un type de cuisine (ex: "Italien", "Japonais").
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "type")
|
||||
@Data
|
||||
|
@ -18,14 +21,23 @@ public class TypeRestau implements Serializable {
|
|||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* Identifiant unique du type de cuisine, généré automatiquement.
|
||||
*/
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Column(name = "id_type")
|
||||
private int id;
|
||||
|
||||
/**
|
||||
* Nom du type de cuisine (ex: "Pizza", "Français").
|
||||
*/
|
||||
@Column(nullable = false)
|
||||
private String libelle;
|
||||
|
||||
/**
|
||||
* Liste des restaurants associés à ce type de cuisine.
|
||||
*/
|
||||
@ManyToMany(mappedBy = "typerestaus")
|
||||
@JsonBackReference("restaurants")
|
||||
@Builder.Default
|
||||
|
|
Loading…
Add table
Reference in a new issue