diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c5f3f6b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "interactive" +} \ No newline at end of file diff --git a/back_end/pom.xml b/back_end/pom.xml index 54df3f5..e8bf001 100644 --- a/back_end/pom.xml +++ b/back_end/pom.xml @@ -28,7 +28,7 @@ - 25 + 17 @@ -97,7 +97,13 @@ spring-boot-starter-thymeleaf-test test - + + org.projectlombok + lombok + 1.18.32 + provided + + diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/Activite.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/Activite.java new file mode 100644 index 0000000..8b7343c --- /dev/null +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/Activite.java @@ -0,0 +1,53 @@ +package hackathon.FrisbYEE.jpa; + +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.ManyToOne; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import jakarta.persistence.Access; +import jakarta.persistence.AccessType; +import jakarta.persistence.CascadeType; +import jakarta.persistence.ElementCollection; +import jakarta.persistence.Entity; + +@Entity +@Getter @Setter @NoArgsConstructor +@Access(AccessType.FIELD) + +public class Activite implements Serializable { + + @Id + @GeneratedValue + private Long id; + private String name; + private String theme; + private Long duree; + @ElementCollection + private List dataActivite = new ArrayList<>(); + + @ManyToOne(cascade = CascadeType.PERSIST) + private Session session; + + public Activite(String name) { + this.name = name; + } + + public Activite(String name, String theme, List dataActivite, Long duree) { + this.name = name; + this.theme = theme; + this.duree = duree; + this.dataActivite = dataActivite; + } + + @Override + public String toString() { + return "Activite [id=" + id + " , name=" + name + "]"; + } + +} \ No newline at end of file diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/Athlete.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/Athlete.java new file mode 100644 index 0000000..73e4ece --- /dev/null +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/Athlete.java @@ -0,0 +1,28 @@ +package hackathon.FrisbYEE.jpa; + +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import jakarta.persistence.Access; +import jakarta.persistence.AccessType; +import jakarta.persistence.CascadeType; +import jakarta.persistence.ElementCollection; +import jakarta.persistence.Entity; + +@Entity +@Getter @Setter @NoArgsConstructor +@Access(AccessType.FIELD) +public class Athlete { + + +} diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/Coach.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/Coach.java new file mode 100644 index 0000000..99287fc --- /dev/null +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/Coach.java @@ -0,0 +1,28 @@ +package hackathon.FrisbYEE.jpa; + +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import jakarta.persistence.Access; +import jakarta.persistence.AccessType; +import jakarta.persistence.CascadeType; +import jakarta.persistence.ElementCollection; +import jakarta.persistence.Entity; + +@Entity +@Getter @Setter @NoArgsConstructor +@Access(AccessType.FIELD) +public class Coach { + + +} diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/Session.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/Session.java new file mode 100644 index 0000000..d77c880 --- /dev/null +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/Session.java @@ -0,0 +1,59 @@ +package hackathon.FrisbYEE.jpa; + +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import jakarta.persistence.Access; +import jakarta.persistence.AccessType; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; + +@Entity +@Getter @Setter @NoArgsConstructor +@Access(AccessType.FIELD) + +public class Session { + + @Id + @GeneratedValue + private Long id; + private String name; + private Boolean isRecurrent; + private LocalDateTime creneau; + private Long duree; + private String groupe; + + @ManyToOne(cascade = CascadeType.PERSIST) + private Coach coach; // un coach par session + + @ManyToMany(cascade = CascadeType.PERSIST) + private List athletes = new ArrayList<>(); // plusieurs athlètes par session + + @OneToMany(mappedBy = "session", cascade = CascadeType.PERSIST) + private List activites = new ArrayList<>(); // plusieurs activités par session + + public Session(String name) { + this.name = name; + } + + public Session(String name, Boolean isRecurrent, LocalDateTime creneau, Long duree, String groupe) { + this.name = name; + this.isRecurrent = isRecurrent; + this.creneau = creneau; + this.duree = duree; + this.groupe = groupe; + } + + @Override + public String toString() { + return "Session [id=" + id + " , name=" + name + "]"; + } +} \ No newline at end of file