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 6c3841f..96105b0 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 @@ -21,7 +21,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 ddacacc..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 @@ -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; @@ -17,9 +18,12 @@ public class Admin { @Id @GeneratedValue - private Long id; + private Integer 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..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 @@ -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; @@ -21,7 +22,7 @@ public class Athlete { @Id @GeneratedValue - private Long id; + private Integer id; private String name; private String categorie; private String niveau; @@ -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..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 @@ -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; @@ -20,12 +21,15 @@ public class Coach { @Id @GeneratedValue - private Long id; + private Integer id; private String name; @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/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 new file mode 100644 index 0000000..00eb7b0 --- /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 Integer 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 + "]"; + } +} 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 { + +}