Merge remote-tracking branch 'origin/jpa' into jpa

This commit is contained in:
tuanvu
2026-01-05 14:05:46 +01:00
12 changed files with 119 additions and 11 deletions

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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<Session> sessions = new ArrayList<>(); // plusieurs sessions sont possibles
@OneToOne(mappedBy = "athlete")
private User user;
public Athlete(String name){
this.name = name;
}

View File

@@ -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<Session> sessions = new ArrayList<>(); // Un coach peut avoir plusieurs sessions
@OneToOne(mappedBy = "coach")
private User user;
public Coach(String name){
this.name = name;
}

View File

@@ -0,0 +1,7 @@
package hackathon.FrisbYEE.jpa.metier;
public enum Role {
ADMIN,
COACH,
ATHLETE
}

View File

@@ -24,7 +24,7 @@ public class Session {
@Id
@GeneratedValue
private Long id;
private Integer id;
private String name;
private Boolean isRecurrent;
private LocalDateTime creneau;

View File

@@ -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 + "]";
}
}

View File

@@ -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, Integer> {
Activite findByKeycloakId(String keycloakId);
}

View File

@@ -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<Admin, Integer> {
}

View File

@@ -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<Athlete, Integer> {
}
}

View File

@@ -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<Coach, Integer> {
}

View File

@@ -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<Session, Integer> {
}