From c6130cf65f28f02afe05f78e7f2bea43a3481769 Mon Sep 17 00:00:00 2001 From: Thibaut Valentin Date: Sat, 3 Feb 2024 19:23:37 +0100 Subject: [PATCH] feat: add data model for licence --- .../ffsaf/data/model/AffiliationModel.java | 26 ++++++++++++++++ .../ffsaf/data/model/ClubModel.java | 4 +++ .../ffsaf/data/model/LicenceModel.java | 30 +++++++++++++++++++ .../ffsaf/data/model/MembreModel.java | 4 +++ .../ffsaf/domain/entity/ClubEntity.java | 6 ---- 5 files changed, 64 insertions(+), 6 deletions(-) create mode 100644 src/main/java/fr/titionfire/ffsaf/data/model/AffiliationModel.java create mode 100644 src/main/java/fr/titionfire/ffsaf/data/model/LicenceModel.java diff --git a/src/main/java/fr/titionfire/ffsaf/data/model/AffiliationModel.java b/src/main/java/fr/titionfire/ffsaf/data/model/AffiliationModel.java new file mode 100644 index 0000000..d3d0dfd --- /dev/null +++ b/src/main/java/fr/titionfire/ffsaf/data/model/AffiliationModel.java @@ -0,0 +1,26 @@ +package fr.titionfire.ffsaf.data.model; + +import io.quarkus.runtime.annotations.RegisterForReflection; +import jakarta.persistence.*; +import lombok.*; + +@Getter +@Setter +@Builder +@AllArgsConstructor +@NoArgsConstructor +@RegisterForReflection + +@Entity +@Table(name = "affiliation") +public class AffiliationModel { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + Long id; + + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name = "club", referencedColumnName = "id") + ClubModel club; + + int saison; +} diff --git a/src/main/java/fr/titionfire/ffsaf/data/model/ClubModel.java b/src/main/java/fr/titionfire/ffsaf/data/model/ClubModel.java index 546f8f8..791c31a 100644 --- a/src/main/java/fr/titionfire/ffsaf/data/model/ClubModel.java +++ b/src/main/java/fr/titionfire/ffsaf/data/model/ClubModel.java @@ -5,6 +5,7 @@ import io.quarkus.runtime.annotations.RegisterForReflection; import jakarta.persistence.*; import lombok.*; +import java.util.List; import java.util.Map; @Getter @@ -49,4 +50,7 @@ public class ClubModel { String no_affiliation; boolean international; + + @OneToMany(mappedBy = "club", fetch = FetchType.EAGER) + List affiliations; } diff --git a/src/main/java/fr/titionfire/ffsaf/data/model/LicenceModel.java b/src/main/java/fr/titionfire/ffsaf/data/model/LicenceModel.java new file mode 100644 index 0000000..989c25e --- /dev/null +++ b/src/main/java/fr/titionfire/ffsaf/data/model/LicenceModel.java @@ -0,0 +1,30 @@ +package fr.titionfire.ffsaf.data.model; + +import io.quarkus.runtime.annotations.RegisterForReflection; +import jakarta.persistence.*; +import lombok.*; + +@Getter +@Setter +@Builder +@AllArgsConstructor +@NoArgsConstructor +@RegisterForReflection + +@Entity +@Table(name = "licence") +public class LicenceModel { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + Long id; + + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name = "membre", referencedColumnName = "id") + MembreModel membre; + + int saison; + + boolean certificate; + + boolean validate; +} diff --git a/src/main/java/fr/titionfire/ffsaf/data/model/MembreModel.java b/src/main/java/fr/titionfire/ffsaf/data/model/MembreModel.java index 145b192..819a1c0 100644 --- a/src/main/java/fr/titionfire/ffsaf/data/model/MembreModel.java +++ b/src/main/java/fr/titionfire/ffsaf/data/model/MembreModel.java @@ -9,6 +9,7 @@ import jakarta.persistence.*; import lombok.*; import java.util.Date; +import java.util.List; @Getter @Setter @@ -51,4 +52,7 @@ public class MembreModel { GradeArbitrage grade_arbitrage; String url_photo; + + @OneToMany(mappedBy = "membre", fetch = FetchType.EAGER) + List licences; } diff --git a/src/main/java/fr/titionfire/ffsaf/domain/entity/ClubEntity.java b/src/main/java/fr/titionfire/ffsaf/domain/entity/ClubEntity.java index 9fea3c8..ab59f8b 100644 --- a/src/main/java/fr/titionfire/ffsaf/domain/entity/ClubEntity.java +++ b/src/main/java/fr/titionfire/ffsaf/domain/entity/ClubEntity.java @@ -49,10 +49,4 @@ public class ClubEntity { .international(model.isInternational()) .build(); } - - public ClubModel toModel () { - return new ClubModel(this.id, this.clubId, this.name, this.country, this.shieldURL, this.contact, this.training_location, - this.training_day_time, this.contact_intern, this.RNA, this.SIRET, this.no_affiliation, - this.international); - } }