diff --git a/src/main/java/me/akito123321/valoStrats/db/repositories/UserRepository.java b/src/main/java/me/akito123321/valoStrats/db/repositories/UserRepository.java index 2b2c854..c69ecc2 100644 --- a/src/main/java/me/akito123321/valoStrats/db/repositories/UserRepository.java +++ b/src/main/java/me/akito123321/valoStrats/db/repositories/UserRepository.java @@ -5,7 +5,7 @@ import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; -import me.akito123321.valoStrats.rest.util.StratsUser; +import me.akito123321.valoStrats.schemas.StratsUser; public interface UserRepository extends JpaRepository { Optional findByGoogleUserId(String googleUserId); diff --git a/src/main/java/me/akito123321/valoStrats/rest/controller/AuthenticationController.java b/src/main/java/me/akito123321/valoStrats/rest/controller/AuthenticationController.java index 430a4ae..6b111bf 100644 --- a/src/main/java/me/akito123321/valoStrats/rest/controller/AuthenticationController.java +++ b/src/main/java/me/akito123321/valoStrats/rest/controller/AuthenticationController.java @@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.RestController; import me.akito123321.valoStrats.rest.requests.AuthenticationRequest; import me.akito123321.valoStrats.rest.requests.AuthenticationResponse; import me.akito123321.valoStrats.rest.util.JDBCUserDetailsService; -import me.akito123321.valoStrats.rest.util.StratsUser; +import me.akito123321.valoStrats.schemas.StratsUser; @RestController @RequestMapping("/api/auth") 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 b58bbc6..857aea2 100644 --- a/src/main/java/me/akito123321/valoStrats/rest/controller/GroupRestAPI.java +++ b/src/main/java/me/akito123321/valoStrats/rest/controller/GroupRestAPI.java @@ -22,9 +22,9 @@ import me.akito123321.valoStrats.rest.requests.StratRequest; import me.akito123321.valoStrats.rest.services.GroupService; import me.akito123321.valoStrats.rest.services.StratService; import me.akito123321.valoStrats.rest.util.JDBCUserDetailsService; -import me.akito123321.valoStrats.rest.util.StratsUser; import me.akito123321.valoStrats.schemas.Group; import me.akito123321.valoStrats.schemas.Strat; +import me.akito123321.valoStrats.schemas.StratsUser; @RestController @RequestMapping("/api/group") @@ -155,7 +155,7 @@ public class GroupRestAPI { return ResponseEntity.status(HttpStatus.FORBIDDEN).build(); } - group.getStrats().add(new Strat(strat.title(), strat.description(), group, strat.stratStates(), strat.lineups())); + group.getStrats().add(new Strat(strat.title(), strat.description(), group, strat.stratStates())); groupService.saveGroup(group); @@ -208,7 +208,6 @@ public class GroupRestAPI { strat.setDescription(newStrat.description()); strat.setTitle(newStrat.title()); strat.setStratStates(newStrat.stratStates()); - strat.setLineups(newStrat.lineups()); stratService.saveStrat(strat); 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 1487b13..15e4496 100644 --- a/src/main/java/me/akito123321/valoStrats/rest/requests/StratRequest.java +++ b/src/main/java/me/akito123321/valoStrats/rest/requests/StratRequest.java @@ -5,10 +5,10 @@ import java.util.List; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; 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, - @NotNull List stratStates, - List lineups) { + @NotNull List stratStates) { } diff --git a/src/main/java/me/akito123321/valoStrats/rest/util/AuthTokenFilter.java b/src/main/java/me/akito123321/valoStrats/rest/util/AuthTokenFilter.java index bb19a10..6b14d2f 100644 --- a/src/main/java/me/akito123321/valoStrats/rest/util/AuthTokenFilter.java +++ b/src/main/java/me/akito123321/valoStrats/rest/util/AuthTokenFilter.java @@ -12,6 +12,7 @@ import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; +import me.akito123321.valoStrats.schemas.StratsUser; public class AuthTokenFilter extends OncePerRequestFilter { diff --git a/src/main/java/me/akito123321/valoStrats/rest/util/JDBCUserDetailsService.java b/src/main/java/me/akito123321/valoStrats/rest/util/JDBCUserDetailsService.java index 8c865e6..70824d2 100644 --- a/src/main/java/me/akito123321/valoStrats/rest/util/JDBCUserDetailsService.java +++ b/src/main/java/me/akito123321/valoStrats/rest/util/JDBCUserDetailsService.java @@ -11,6 +11,7 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.password.PasswordEncoder; import me.akito123321.valoStrats.db.repositories.UserRepository; +import me.akito123321.valoStrats.schemas.StratsUser; public class JDBCUserDetailsService implements UserDetailsService { diff --git a/src/main/java/me/akito123321/valoStrats/schemas/Group.java b/src/main/java/me/akito123321/valoStrats/schemas/Group.java index 056d1da..7639374 100644 --- a/src/main/java/me/akito123321/valoStrats/schemas/Group.java +++ b/src/main/java/me/akito123321/valoStrats/schemas/Group.java @@ -10,7 +10,7 @@ import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.ManyToMany; import jakarta.persistence.ManyToOne; -import me.akito123321.valoStrats.rest.util.StratsUser; +import jakarta.persistence.OneToMany; @Entity(name = "wishlist_group") public class Group { @@ -22,8 +22,14 @@ public class Group { private StratsUser owner; @ManyToMany(fetch = FetchType.EAGER) private List members; - @ManyToMany(fetch = FetchType.EAGER) + @OneToMany(fetch = FetchType.EAGER) private List strats; + + @OneToMany(fetch = FetchType.EAGER) + private List maps; + + @ManyToMany(fetch = FetchType.EAGER) + private List profiles; public Group(String name, StratsUser owner) { this.name = name; diff --git a/src/main/java/me/akito123321/valoStrats/schemas/Lineup.java b/src/main/java/me/akito123321/valoStrats/schemas/Lineup.java new file mode 100644 index 0000000..9297361 --- /dev/null +++ b/src/main/java/me/akito123321/valoStrats/schemas/Lineup.java @@ -0,0 +1,48 @@ +package me.akito123321.valoStrats.schemas; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Lob; + +@Entity +public class Lineup { + @Id + @GeneratedValue(strategy = GenerationType.UUID) + private String id; + + private String description; + + @Lob + @Column(length = Integer.MAX_VALUE) + private byte[] lineupImage; + + public Lineup(String description, byte[] lineupImage) { + super(); + this.description = description; + this.lineupImage = lineupImage; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public byte[] getLineupImage() { + return lineupImage; + } + + public void setLineupImage(byte[] lineupImage) { + this.lineupImage = lineupImage; + } + + public String getId() { + return id; + } + +} diff --git a/src/main/java/me/akito123321/valoStrats/schemas/Map.java b/src/main/java/me/akito123321/valoStrats/schemas/Map.java new file mode 100644 index 0000000..5d5717b --- /dev/null +++ b/src/main/java/me/akito123321/valoStrats/schemas/Map.java @@ -0,0 +1,48 @@ +package me.akito123321.valoStrats.schemas; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Lob; + +@Entity +public class Map { + @Id + @GeneratedValue(strategy = GenerationType.UUID) + private String id; + + private String name; + + @Lob + @Column(length = Integer.MAX_VALUE) + private byte[] image; + + public Map(String name, byte[] image) { + super(); + this.name = name; + this.image = image; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public byte[] getImage() { + return image; + } + + public void setImage(byte[] image) { + this.image = image; + } + + public String getId() { + return id; + } + +} diff --git a/src/main/java/me/akito123321/valoStrats/schemas/PlayerType.java b/src/main/java/me/akito123321/valoStrats/schemas/PlayerType.java new file mode 100644 index 0000000..8c2a398 --- /dev/null +++ b/src/main/java/me/akito123321/valoStrats/schemas/PlayerType.java @@ -0,0 +1,60 @@ +package me.akito123321.valoStrats.schemas; + +import java.util.List; + +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.ManyToMany; + +@Entity +public class PlayerType { + @Id + @GeneratedValue(strategy = GenerationType.UUID) + private String id; + + private String name; + + private String task; + + @ManyToMany(fetch = FetchType.EAGER) + private List profiles; + + public PlayerType(String name, List profiles, String task) { + super(); + this.name = name; + this.profiles = profiles; + this.task = task; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getProfiles() { + return profiles; + } + + public void setProfiles(List profiles) { + this.profiles = profiles; + } + + public String getId() { + return id; + } + + public String getTask() { + return task; + } + + public void setTask(String task) { + this.task = task; + } + +} diff --git a/src/main/java/me/akito123321/valoStrats/schemas/Profile.java b/src/main/java/me/akito123321/valoStrats/schemas/Profile.java new file mode 100644 index 0000000..3eb743e --- /dev/null +++ b/src/main/java/me/akito123321/valoStrats/schemas/Profile.java @@ -0,0 +1,47 @@ +package me.akito123321.valoStrats.schemas; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Lob; + +@Entity +public class Profile { + @Id + @GeneratedValue(strategy = GenerationType.UUID) + private String id; + private String name; + + @Lob + @Column(length = Integer.MAX_VALUE) + private byte[] image; + + public Profile(String name, byte[] image) { + super(); + this.name = name; + this.image = image; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public byte[] getImage() { + return image; + } + + public void setImage(byte[] image) { + this.image = image; + } + + public String getId() { + return id; + } + +} diff --git a/src/main/java/me/akito123321/valoStrats/schemas/Strat.java b/src/main/java/me/akito123321/valoStrats/schemas/Strat.java index bd14e96..c30e9eb 100644 --- a/src/main/java/me/akito123321/valoStrats/schemas/Strat.java +++ b/src/main/java/me/akito123321/valoStrats/schemas/Strat.java @@ -2,15 +2,14 @@ package me.akito123321.valoStrats.schemas; import java.util.List; -import jakarta.persistence.Column; import jakarta.persistence.ElementCollection; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; @Entity public class Strat { @@ -22,22 +21,20 @@ public class Strat { @ManyToOne private Group group; - @Lob - @Column(length = Integer.MAX_VALUE) @ElementCollection(fetch = FetchType.EAGER) - private List stratStates; + private List stratStates; - @Lob - @Column(length = Integer.MAX_VALUE) - @ElementCollection(fetch = FetchType.EAGER) - private List lineups; + @OneToMany(fetch = FetchType.EAGER) + private List playerTypes; + + @ManyToOne + private Map map; - public Strat(String title, String description, Group group, List stratStates, List lineups) { + public Strat(String title, String description, Group group, List stratStates) { this.title = title; this.description = description; this.group = group; this.stratStates = stratStates; - this.lineups = lineups; } public Strat() { @@ -64,20 +61,12 @@ public class Strat { this.title = title; } - public List getStratStates() { + public List getStratStates() { return stratStates; } - - public void setStratStates(List stratStates) { - this.stratStates = stratStates; - } - - public List getLineups() { - return lineups; - } - - public void setLineups(List lineups) { - this.lineups = lineups; + + public void setStratStates(List stratStates) { + this.stratStates = stratStates; } } diff --git a/src/main/java/me/akito123321/valoStrats/schemas/StratState.java b/src/main/java/me/akito123321/valoStrats/schemas/StratState.java new file mode 100644 index 0000000..6a87c67 --- /dev/null +++ b/src/main/java/me/akito123321/valoStrats/schemas/StratState.java @@ -0,0 +1,62 @@ +package me.akito123321.valoStrats.schemas; + +import java.util.List; + +import jakarta.persistence.Column; +import jakarta.persistence.ElementCollection; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Lob; +import jakarta.persistence.ManyToOne; + +@Entity +public class StratState { + @Id + @GeneratedValue(strategy = GenerationType.UUID) + private String id; + + private String description; + + @ManyToOne + private Strat strat; + + @Lob + @Column(length = Integer.MAX_VALUE) + @ElementCollection(fetch = FetchType.EAGER) + private List lineups; + + public StratState(String description, Strat strat, List lineups) { + super(); + this.description = description; + this.strat = strat; + this.lineups = lineups; + } + + public StratState() { + + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getId() { + return id; + } + + public Strat getStrat() { + return strat; + } + + public List getLineups() { + return lineups; + } + +} diff --git a/src/main/java/me/akito123321/valoStrats/rest/util/StratsUser.java b/src/main/java/me/akito123321/valoStrats/schemas/StratsUser.java similarity index 96% rename from src/main/java/me/akito123321/valoStrats/rest/util/StratsUser.java rename to src/main/java/me/akito123321/valoStrats/schemas/StratsUser.java index 4b5ac51..9f7891a 100644 --- a/src/main/java/me/akito123321/valoStrats/rest/util/StratsUser.java +++ b/src/main/java/me/akito123321/valoStrats/schemas/StratsUser.java @@ -1,4 +1,4 @@ -package me.akito123321.valoStrats.rest.util; +package me.akito123321.valoStrats.schemas; import java.util.Collection; import java.util.HashSet; @@ -16,7 +16,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.FetchType; import jakarta.persistence.Id; import jakarta.persistence.ManyToMany; -import me.akito123321.valoStrats.schemas.Group; @Entity(name = "user") public class StratsUser implements UserDetails {