diff --git a/src/main/java/me/akito123321/valoStrats/rest/controller/GroupRestAPI.java b/src/main/java/me/akito123321/valoStrats/rest/controller/GroupRestAPI.java index c0b73d7..7f99388 100644 --- a/src/main/java/me/akito123321/valoStrats/rest/controller/GroupRestAPI.java +++ b/src/main/java/me/akito123321/valoStrats/rest/controller/GroupRestAPI.java @@ -320,7 +320,7 @@ public class GroupRestAPI { return ResponseEntity.status(HttpStatus.FORBIDDEN).build(); } - Map map = new Map(mapRequest.name(), mapRequest.image()); + Map map = new Map(mapRequest.name(), mapRequest.image(), group); mapService.saveMap(map); @@ -393,7 +393,7 @@ public class GroupRestAPI { return ResponseEntity.status(HttpStatus.FORBIDDEN).build(); } - Profile profile = new Profile(profileRequest.name(), profileRequest.image()); + Profile profile = new Profile(profileRequest.name(), profileRequest.image(), group); profileService.saveProfile(profile); @@ -557,7 +557,7 @@ public class GroupRestAPI { return ResponseEntity.badRequest().build(); } - Profile profile = new Profile(profileRequest.name(), profileRequest.image()); + Profile profile = new Profile(profileRequest.name(), profileRequest.image(), group); profileService.saveProfile(profile); diff --git a/src/main/java/me/akito123321/valoStrats/rest/requests/GroupRequest.java b/src/main/java/me/akito123321/valoStrats/rest/requests/GroupRequest.java index 6c117ae..2c0b759 100644 --- a/src/main/java/me/akito123321/valoStrats/rest/requests/GroupRequest.java +++ b/src/main/java/me/akito123321/valoStrats/rest/requests/GroupRequest.java @@ -4,7 +4,7 @@ import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Size; public record GroupRequest( - @Size(max = 50, message = "{title longer than 50 chars}") + @Size(max = 50, message = "{name can not be longer than 50 chars}") @NotBlank String name) { } diff --git a/src/main/java/me/akito123321/valoStrats/rest/requests/LineupRequest.java b/src/main/java/me/akito123321/valoStrats/rest/requests/LineupRequest.java index e9a0f97..354c366 100644 --- a/src/main/java/me/akito123321/valoStrats/rest/requests/LineupRequest.java +++ b/src/main/java/me/akito123321/valoStrats/rest/requests/LineupRequest.java @@ -4,5 +4,5 @@ import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Size; public record LineupRequest( - @Size(max = 50, message = "{name longer than 50 chars}") @NotBlank String description, + @Size(max = 512, message = "{description can not be longer than 512 chars}") @NotBlank String description, byte[] image) {} diff --git a/src/main/java/me/akito123321/valoStrats/rest/requests/MapRequest.java b/src/main/java/me/akito123321/valoStrats/rest/requests/MapRequest.java index 911fa9e..3956c52 100644 --- a/src/main/java/me/akito123321/valoStrats/rest/requests/MapRequest.java +++ b/src/main/java/me/akito123321/valoStrats/rest/requests/MapRequest.java @@ -4,5 +4,5 @@ import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Size; public record MapRequest( - @Size(max = 50, message = "{name longer than 50 chars}") @NotBlank String name, + @Size(max = 50, message = "{name can not be longer than 50 chars}") @NotBlank String name, byte[] image) {} diff --git a/src/main/java/me/akito123321/valoStrats/rest/requests/PlayerTypeRequest.java b/src/main/java/me/akito123321/valoStrats/rest/requests/PlayerTypeRequest.java index 88edd5c..4221725 100644 --- a/src/main/java/me/akito123321/valoStrats/rest/requests/PlayerTypeRequest.java +++ b/src/main/java/me/akito123321/valoStrats/rest/requests/PlayerTypeRequest.java @@ -3,6 +3,6 @@ package me.akito123321.valoStrats.rest.requests; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Size; -public record PlayerTypeRequest(@Size(max = 50, message = "{title longer than 50 chars}") @NotBlank String name, - @Size(max = 50, message = "{title longer than 50 chars}") @NotBlank String task) { +public record PlayerTypeRequest(@Size(max = 50, message = "{name can not be longer than 50 chars}") @NotBlank String name, + @Size(max = 512, message = "{task can not be longer than 512 chars}") @NotBlank String task) { } diff --git a/src/main/java/me/akito123321/valoStrats/rest/requests/StratRequest.java b/src/main/java/me/akito123321/valoStrats/rest/requests/StratRequest.java index 7307b9f..6d34278 100644 --- a/src/main/java/me/akito123321/valoStrats/rest/requests/StratRequest.java +++ b/src/main/java/me/akito123321/valoStrats/rest/requests/StratRequest.java @@ -8,9 +8,9 @@ import jakarta.validation.constraints.Size; import me.akito123321.valoStrats.schemas.StratState; public record StratRequest( - @Size(max = 50, message = "{title longer than 50 chars}") @NotBlank String title, - @Size(max = 512, message = "{title longer than 50 chars}") @NotBlank String description, - @Size(max = 50, message = "{title longer than 50 chars}") @NotBlank String stratType, + @Size(max = 50, message = "{title can not be longer than 50 chars}") @NotBlank String title, + @Size(max = 512, message = "{description can not be longer than 50 chars}") @NotBlank String description, + @Size(max = 50, message = "{title stratType can not be than 50 chars}") @NotBlank String stratType, @NotNull List stratStates, Integer attempts, Integer success) { diff --git a/src/main/java/me/akito123321/valoStrats/rest/requests/StratStateRequest.java b/src/main/java/me/akito123321/valoStrats/rest/requests/StratStateRequest.java index 1b520ea..eb523f1 100644 --- a/src/main/java/me/akito123321/valoStrats/rest/requests/StratStateRequest.java +++ b/src/main/java/me/akito123321/valoStrats/rest/requests/StratStateRequest.java @@ -4,6 +4,6 @@ import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Size; public record StratStateRequest ( - @Size(max = 512, message = "{title longer than 50 chars}") @NotBlank String description, + @Size(max = 512, message = "{description can not be longer than 512 chars}") @NotBlank String description, byte[] image) { } diff --git a/src/main/java/me/akito123321/valoStrats/schemas/Group.java b/src/main/java/me/akito123321/valoStrats/schemas/Group.java index 6d48c08..84d3f82 100644 --- a/src/main/java/me/akito123321/valoStrats/schemas/Group.java +++ b/src/main/java/me/akito123321/valoStrats/schemas/Group.java @@ -1,8 +1,11 @@ package me.akito123321.valoStrats.schemas; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; +import jakarta.persistence.CascadeType; import jakarta.persistence.ElementCollection; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; @@ -13,7 +16,7 @@ import jakarta.persistence.ManyToMany; import jakarta.persistence.ManyToOne; import jakarta.persistence.OneToMany; -@Entity(name = "wishlist_group") +@Entity(name = "strats_group") public class Group { @Id @GeneratedValue(strategy = GenerationType.UUID) @@ -22,27 +25,22 @@ public class Group { @ManyToOne private StratsUser owner; @ManyToMany(fetch = FetchType.EAGER) - private List members; - @OneToMany(fetch = FetchType.EAGER) - private List strats; + private List members = new ArrayList(); + @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "group") + private List strats = new ArrayList(); - @OneToMany(fetch = FetchType.EAGER) - private List maps; + @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "group") + private List maps = new ArrayList(); - @ManyToMany(fetch = FetchType.EAGER) - private List profiles; + @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "group") + private List profiles = new ArrayList(); @ElementCollection(fetch = FetchType.EAGER) - private List stratTypes; + private Set stratTypes = new HashSet(); public Group(String name, StratsUser owner) { this.name = name; this.owner = owner; - this.members = new ArrayList(); - this.strats = new ArrayList(); - this.maps = new ArrayList(); - this.profiles = new ArrayList(); - this.stratTypes = new ArrayList(); } public Group() { @@ -73,7 +71,7 @@ public class Group { this.name = name; } - public List getStratTypes() { + public Set getStratTypes() { return stratTypes; } diff --git a/src/main/java/me/akito123321/valoStrats/schemas/Lineup.java b/src/main/java/me/akito123321/valoStrats/schemas/Lineup.java index 9297361..b9df59f 100644 --- a/src/main/java/me/akito123321/valoStrats/schemas/Lineup.java +++ b/src/main/java/me/akito123321/valoStrats/schemas/Lineup.java @@ -24,6 +24,10 @@ public class Lineup { this.description = description; this.lineupImage = lineupImage; } + + public Lineup() { + + } public String getDescription() { return description; diff --git a/src/main/java/me/akito123321/valoStrats/schemas/Map.java b/src/main/java/me/akito123321/valoStrats/schemas/Map.java index 5d5717b..cc7a513 100644 --- a/src/main/java/me/akito123321/valoStrats/schemas/Map.java +++ b/src/main/java/me/akito123321/valoStrats/schemas/Map.java @@ -6,6 +6,7 @@ import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Lob; +import jakarta.persistence.ManyToOne; @Entity public class Map { @@ -15,14 +16,22 @@ public class Map { private String name; + @ManyToOne + private Group group; + @Lob @Column(length = Integer.MAX_VALUE) private byte[] image; - public Map(String name, byte[] image) { + public Map(String name, byte[] image, Group group) { super(); this.name = name; this.image = image; + this.group = group; + } + + public Map() { + } public String getName() { diff --git a/src/main/java/me/akito123321/valoStrats/schemas/PlayerType.java b/src/main/java/me/akito123321/valoStrats/schemas/PlayerType.java index 53c0025..16cf2cb 100644 --- a/src/main/java/me/akito123321/valoStrats/schemas/PlayerType.java +++ b/src/main/java/me/akito123321/valoStrats/schemas/PlayerType.java @@ -3,6 +3,7 @@ package me.akito123321.valoStrats.schemas; import java.util.ArrayList; import java.util.List; +import jakarta.persistence.CascadeType; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; import jakarta.persistence.GeneratedValue; @@ -20,7 +21,7 @@ public class PlayerType { private String task; - @ManyToMany(fetch = FetchType.EAGER) + @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.DETACH) private List profiles; public PlayerType(String name, String task) { diff --git a/src/main/java/me/akito123321/valoStrats/schemas/Profile.java b/src/main/java/me/akito123321/valoStrats/schemas/Profile.java index 4922703..69c80e1 100644 --- a/src/main/java/me/akito123321/valoStrats/schemas/Profile.java +++ b/src/main/java/me/akito123321/valoStrats/schemas/Profile.java @@ -6,6 +6,7 @@ import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Lob; +import jakarta.persistence.ManyToOne; @Entity public class Profile { @@ -14,6 +15,9 @@ public class Profile { private String id; private String name; + @ManyToOne + private Group group; + @Lob @Column(length = Integer.MAX_VALUE) private byte[] image; @@ -22,10 +26,11 @@ public class Profile { } - public Profile(String name, byte[] image) { + public Profile(String name, byte[] image, Group group) { super(); this.name = name; this.image = image; + this.group = group; } public String getName() { diff --git a/src/main/java/me/akito123321/valoStrats/schemas/Strat.java b/src/main/java/me/akito123321/valoStrats/schemas/Strat.java index 9571ca6..cbfd060 100644 --- a/src/main/java/me/akito123321/valoStrats/schemas/Strat.java +++ b/src/main/java/me/akito123321/valoStrats/schemas/Strat.java @@ -26,10 +26,10 @@ public class Strat { private Group group; @ElementCollection(fetch = FetchType.EAGER) - private List stratStates; + private List stratStates = new ArrayList(); @OneToMany(fetch = FetchType.EAGER) - private List playerTypes; + private List playerTypes = new ArrayList(); @ManyToOne private Map map; @@ -39,8 +39,6 @@ public class Strat { this.description = description; this.group = group; this.stratType = stratType; - this.stratStates = new ArrayList(); - this.playerTypes = new ArrayList(); } public Strat() {