From 94dbc95437c18419e01f9137dd1a14c6ad6d7c9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ama=C3=ABl=20Kesteman?= Date: Mon, 5 Jan 2026 13:25:21 +0100 Subject: [PATCH 1/2] Feat: fin de JPA --- .../hackathon/FrisbYEE/jpa/metier/Admin.java | 4 ++ .../FrisbYEE/jpa/metier/Athlete.java | 4 ++ .../hackathon/FrisbYEE/jpa/metier/Coach.java | 4 ++ .../hackathon/FrisbYEE/jpa/metier/Role.java | 7 +++ .../hackathon/FrisbYEE/jpa/metier/User.java | 61 +++++++++++++++++++ 5 files changed, 80 insertions(+) create mode 100644 back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Role.java create mode 100644 back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/User.java diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Admin.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Admin.java index ddacacc..6bc012f 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Admin.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Admin.java @@ -2,6 +2,7 @@ package hackathon.FrisbYEE.jpa.metier; import jakarta.persistence.GeneratedValue; import jakarta.persistence.Id; +import jakarta.persistence.OneToOne; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; @@ -20,6 +21,9 @@ public class Admin { private Long id; private String name; + @OneToOne(mappedBy = "admin") + private User user; + public Admin(String name){ this.name = name; } diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Athlete.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Athlete.java index 42235e4..3ca7460 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Athlete.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Athlete.java @@ -3,6 +3,7 @@ package hackathon.FrisbYEE.jpa.metier; import jakarta.persistence.GeneratedValue; import jakarta.persistence.Id; import jakarta.persistence.ManyToMany; +import jakarta.persistence.OneToOne; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; @@ -32,6 +33,9 @@ public class Athlete { @ManyToMany(mappedBy = "athletes") private List sessions = new ArrayList<>(); // plusieurs sessions sont possibles + @OneToOne(mappedBy = "athlete") + private User user; + public Athlete(String name){ this.name = name; } diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Coach.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Coach.java index 6294ab9..ed8f2bd 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Coach.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Coach.java @@ -3,6 +3,7 @@ package hackathon.FrisbYEE.jpa.metier; import jakarta.persistence.GeneratedValue; import jakarta.persistence.Id; import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; @@ -26,6 +27,9 @@ public class Coach { @OneToMany(mappedBy = "coach") private List sessions = new ArrayList<>(); // Un coach peut avoir plusieurs sessions + @OneToOne(mappedBy = "coach") + private User user; + public Coach(String name){ this.name = name; } diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Role.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Role.java new file mode 100644 index 0000000..dbdc97e --- /dev/null +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Role.java @@ -0,0 +1,7 @@ +package hackathon.FrisbYEE.jpa.metier; + +public enum Role { + ADMIN, + COACH, + ATHLETE +} \ No newline at end of file diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/User.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/User.java new file mode 100644 index 0000000..2141d66 --- /dev/null +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/User.java @@ -0,0 +1,61 @@ +package hackathon.FrisbYEE.jpa.metier; + +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.OneToOne; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import java.io.Serializable; +import jakarta.persistence.Access; +import jakarta.persistence.AccessType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.CascadeType; + +@Entity +@Getter @Setter @NoArgsConstructor +@Access(AccessType.FIELD) + +public class User implements Serializable { + + @Id + @GeneratedValue + private Long id; + @Column(unique = true, nullable = false) //pas possible d'avoir le même nom + private String name; + @Column (nullable = false) + private String motDePasse; + private String email; + + @Enumerated(EnumType.STRING) + @Column(nullable = false) + private Role role; + + @OneToOne(cascade = CascadeType.ALL) + private Coach coach; + + @OneToOne(cascade = CascadeType.ALL) + private Athlete athlete; + + @OneToOne(cascade = CascadeType.ALL) + private Admin admin; + + public User(String name) { + this.name = name; + } + + public User(String name, String motDePasse, String email, Role role) { + this.name = name; + this.motDePasse = motDePasse; + this.email = email; + this.role = role; + } + + @Override + public String toString() { + return "User [id=" + id + " , name=" + name + "]"; + } +} From fddfe32984c5937edb35d0babacff76c3b2140eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ama=C3=ABl=20Kesteman?= Date: Mon, 5 Jan 2026 13:53:52 +0100 Subject: [PATCH 2/2] =?UTF-8?q?Feat=20:=20Ajout=20de=20certaines=20DAO=20+?= =?UTF-8?q?=20Correction=20du=20type=20des=20ID=20dans=20les=20classes=20m?= =?UTF-8?q?=C3=A9tiers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/hackathon/FrisbYEE/jpa/metier/Activite.java | 2 +- .../main/java/hackathon/FrisbYEE/jpa/metier/Admin.java | 2 +- .../java/hackathon/FrisbYEE/jpa/metier/Athlete.java | 2 +- .../main/java/hackathon/FrisbYEE/jpa/metier/Coach.java | 2 +- .../java/hackathon/FrisbYEE/jpa/metier/Session.java | 2 +- .../main/java/hackathon/FrisbYEE/jpa/metier/User.java | 2 +- .../hackathon/FrisbYEE/jpa/service/ActiviteDAO.java | 4 +++- .../java/hackathon/FrisbYEE/jpa/service/AdminDAO.java | 10 ++++++++++ .../hackathon/FrisbYEE/jpa/service/AthleteDAO.java | 6 +++--- .../java/hackathon/FrisbYEE/jpa/service/CoachDAO.java | 10 ++++++++-- .../hackathon/FrisbYEE/jpa/service/SessionDAO.java | 10 ++++++++++ 11 files changed, 40 insertions(+), 12 deletions(-) create mode 100644 back_end/src/main/java/hackathon/FrisbYEE/jpa/service/AdminDAO.java create mode 100644 back_end/src/main/java/hackathon/FrisbYEE/jpa/service/SessionDAO.java diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Activite.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Activite.java index a0d84e0..30f2b93 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Activite.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Activite.java @@ -22,7 +22,7 @@ public class Activite implements Serializable { @Id @GeneratedValue - private Long id; + private Integer id; private String name; private String theme; private Long duree; diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Admin.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Admin.java index 6bc012f..69bcd52 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Admin.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Admin.java @@ -18,7 +18,7 @@ public class Admin { @Id @GeneratedValue - private Long id; + private Integer id; private String name; @OneToOne(mappedBy = "admin") diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Athlete.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Athlete.java index 3ca7460..9c6aa24 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Athlete.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Athlete.java @@ -22,7 +22,7 @@ public class Athlete { @Id @GeneratedValue - private Long id; + private Integer id; private String name; private String categorie; private String niveau; diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Coach.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Coach.java index ed8f2bd..7a11fb5 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Coach.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Coach.java @@ -21,7 +21,7 @@ public class Coach { @Id @GeneratedValue - private Long id; + private Integer id; private String name; @OneToMany(mappedBy = "coach") diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Session.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Session.java index f7d565e..51b75d2 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Session.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/Session.java @@ -24,7 +24,7 @@ public class Session { @Id @GeneratedValue - private Long id; + private Integer id; private String name; private Boolean isRecurrent; private LocalDateTime creneau; diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/User.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/User.java index 2141d66..00eb7b0 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/User.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/metier/User.java @@ -23,7 +23,7 @@ public class User implements Serializable { @Id @GeneratedValue - private Long id; + private Integer id; @Column(unique = true, nullable = false) //pas possible d'avoir le même nom private String name; @Column (nullable = false) diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/ActiviteDAO.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/ActiviteDAO.java index b238e75..94d3e0a 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/ActiviteDAO.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/ActiviteDAO.java @@ -2,7 +2,9 @@ package hackathon.FrisbYEE.jpa.service; import hackathon.FrisbYEE.jpa.metier.Activite; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; +@Repository public interface ActiviteDAO extends JpaRepository { - Activite findByKeycloakId(String keycloakId); + } diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/AdminDAO.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/AdminDAO.java new file mode 100644 index 0000000..273dccb --- /dev/null +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/AdminDAO.java @@ -0,0 +1,10 @@ +package hackathon.FrisbYEE.jpa.service; + +import hackathon.FrisbYEE.jpa.metier.Admin; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface AdminDAO extends JpaRepository { + +} \ No newline at end of file diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/AthleteDAO.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/AthleteDAO.java index 9a352a3..3782f74 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/AthleteDAO.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/AthleteDAO.java @@ -1,9 +1,9 @@ package hackathon.FrisbYEE.jpa.service; -import hackathon.FrisbYEE.jpa.metier.Activite; import hackathon.FrisbYEE.jpa.metier.Athlete; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; +@Repository public interface AthleteDAO extends JpaRepository { -} - +} \ No newline at end of file diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/CoachDAO.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/CoachDAO.java index fe16ff9..8c4266b 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/CoachDAO.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/CoachDAO.java @@ -1,4 +1,10 @@ package hackathon.FrisbYEE.jpa.service; -public class CoachDAO { -} +import hackathon.FrisbYEE.jpa.metier.Coach; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface CoachDAO extends JpaRepository { + +} \ No newline at end of file diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/SessionDAO.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/SessionDAO.java new file mode 100644 index 0000000..9a68a26 --- /dev/null +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/SessionDAO.java @@ -0,0 +1,10 @@ +package hackathon.FrisbYEE.jpa.service; + +import hackathon.FrisbYEE.jpa.metier.Session; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface SessionDAO extends JpaRepository { + +}