diff --git a/src/fr/iutfbleau/papillon/GestionRappel.java b/src/fr/iutfbleau/papillon/GestionRappel.java
index eff8ddc..fa4506f 100644
--- a/src/fr/iutfbleau/papillon/GestionRappel.java
+++ b/src/fr/iutfbleau/papillon/GestionRappel.java
@@ -1,60 +1,105 @@
+
+package fr.iutfbleau.papillon;
+
+import java.sql.SQLException;
import java.util.List;
+/**
+ * La classe GestionRappel gère les opérations métier
+ * liées aux rappels de l’utilisateur actuellement identifié.
+ *
+ *
Elle fait le lien entre la couche applicative et la couche base de données
+ * (via la classe {@link RappelBD}) et s’appuie sur {@link UserKey}
+ * et {@link UtilisateurBD} pour identifier l’utilisateur.
+ *
+ * @version 1.0
+ * @author Seri-khane YOLOU, Aylane SEHL, Jenson VAL
+ */
public class GestionRappel {
- public List lister() throws Exception {
- return BaseDeDonnees.lister();
- }
+ /** Identifiant de l’utilisateur courant. */
+ private final int utilisateurId;
- public int ajouter(Rappel r) throws Exception {
- return BaseDeDonnees.ajouter(r);
- }
-
- public int modifierParId(int id, Rappel r) throws Exception {
- return BaseDeDonnees.modifier(id, r);
- }
-
- public int supprimerParId(int id) throws Exception {
- return BaseDeDonnees.supprimer(id);
- }
-
- // === petit main pour test rapide ===
- public static void main(String[] args) {
+ /**
+ * Constructeur : initialise l’utilisateur courant à partir de sa clé locale.
+ * Si la clé n’existe pas, elle est créée automatiquement.
+ */
+ public GestionRappel() {
+ int uid = -1;
try {
- GestionRappel g = new GestionRappel();
-
- // Ajouter
- Rappel r = new Rappel("Acheter du café", "avant 17h", "Urgent", 1);
- int id = g.ajouter(r);
- System.out.println("Ajouté : " + id);
-
- // Lister
- System.out.println("\nListe des rappels :");
- for (Rappel x : g.lister()) {
- System.out.println(" - " + x);
- }
-
- // Modifier
- r.setTitre("Acheter du café (bio)");
- r.setRang(3);
-
- g.modifierParId(r.getId(), r);
- System.out.println("\nAprès modification :");
-
- for (Rappel x : g.lister()) {
- System.out.println(" - " + x);
- }
-
- // Supprimer
- // g.supprimerParId(r.getId());
- // System.out.println("\nAprès suppression :");
-
- // for (Rappel x : g.lister()) {
- // System.out.println(" - " + x);
-
- // }
+ String cle = UserKey.lireOuCreerCle(); // clé locale
+ uid = UtilisateurBD.getOrCreateIdByKey(cle); // crée ou récupère utilisateur
} catch (Exception e) {
e.printStackTrace();
}
+ this.utilisateurId = uid;
+ System.out.println("Utilisateur courant id=" + this.utilisateurId);
+ }
+
+ /**
+ * Ajoute un nouveau rappel pour l’utilisateur courant.
+ *
+ * @param titre le titre du rappel
+ * @param contenu le contenu ou la description du rappel
+ * @param theme la catégorie ou le thème du rappel
+ * @param rang la priorité ou l’ordre du rappel
+ * @return l’identifiant du rappel nouvellement ajouté
+ * @throws SQLException si une erreur SQL survient
+ */
+ public int ajouter(String titre, String contenu, String theme, int rang) throws SQLException {
+ Rappel r = new Rappel(titre, contenu, theme, rang);
+ return RappelBD.ajouter(r, this.utilisateurId);
+ }
+
+ /**
+ * Récupère tous les rappels de l’utilisateur courant.
+ *
+ * @return la liste des rappels enregistrés
+ * @throws SQLException si une erreur SQL survient
+ */
+ public List lister() throws SQLException {
+ return RappelBD.listerParUtilisateur(this.utilisateurId);
+ }
+
+ /**
+ * Modifie un rappel existant appartenant à l’utilisateur courant.
+ *
+ * @param id l’identifiant du rappel à modifier
+ * @param r l’objet {@link Rappel} contenant les nouvelles informations
+ * @return le nombre de lignes modifiées
+ * @throws SQLException si une erreur SQL survient
+ */
+ public int modifierParId(int id, Rappel r) throws SQLException {
+ return RappelBD.modifier(id, r, this.utilisateurId);
+ }
+
+ /**
+ * Supprime un rappel spécifique appartenant à l’utilisateur courant.
+ *
+ * @param id l’identifiant du rappel à supprimer
+ * @return le nombre de lignes supprimées
+ * @throws SQLException si une erreur SQL survient
+ */
+ public int supprimerParId(int id) throws SQLException {
+ return RappelBD.supprimer(id, this.utilisateurId);
+ }
+
+ /**
+ * Supprime tous les rappels appartenant à l’utilisateur courant.
+ *
+ * @return le nombre de rappels supprimés
+ * @throws SQLException si une erreur SQL survient
+ */
+ public int viderTousMesRappels() throws SQLException {
+ return RappelBD.supprimerToutPourUtilisateur(this.utilisateurId);
+ }
+
+ /**
+ * Retourne l’identifiant de l’utilisateur courant.
+ *
+ * @return l’identifiant de l’utilisateur
+ */
+ public int getUtilisateurId() {
+ return this.utilisateurId;
}
}