diff --git a/backend/src/main/java/com/group1/cuisines/entities/Bookmark.java b/backend/src/main/java/com/group1/cuisines/entities/Bookmark.java index 1e1afbd..0f0d806 100644 --- a/backend/src/main/java/com/group1/cuisines/entities/Bookmark.java +++ b/backend/src/main/java/com/group1/cuisines/entities/Bookmark.java @@ -3,9 +3,12 @@ import jakarta.persistence.*; import lombok.*; -@Data -@Builder +import java.util.Objects; + @Getter +@Setter +@Builder + @NoArgsConstructor @AllArgsConstructor @Entity @@ -22,4 +25,17 @@ public class Bookmark { @ManyToOne @JoinColumn(name = "recipe_id", nullable = false) private Recipe recipe; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Bookmark recipe = (Bookmark) o; + return Objects.equals(id, recipe.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } } diff --git a/backend/src/main/java/com/group1/cuisines/entities/Comment.java b/backend/src/main/java/com/group1/cuisines/entities/Comment.java index fcf9e9d..3205558 100644 --- a/backend/src/main/java/com/group1/cuisines/entities/Comment.java +++ b/backend/src/main/java/com/group1/cuisines/entities/Comment.java @@ -2,12 +2,15 @@ import jakarta.persistence.*; import lombok.*; +import org.apache.commons.lang3.builder.ToStringExclude; import java.time.LocalDateTime; import java.util.Date; +import java.util.Objects; import java.util.Set; -@Data +@Getter +@Setter @Builder @NoArgsConstructor @AllArgsConstructor @@ -18,8 +21,10 @@ public class Comment { @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; + @ManyToOne @JoinColumn(name = "user_id", nullable = false) + @ToString.Exclude private User user; @ManyToOne @@ -37,4 +42,18 @@ public class Comment { private Set upvotes; private int upvoteCount; + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Comment recipe = (Comment) o; + return Objects.equals(id, recipe.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + } diff --git a/backend/src/main/java/com/group1/cuisines/entities/Cuisine.java b/backend/src/main/java/com/group1/cuisines/entities/Cuisine.java index 6adc193..f40e8e1 100644 --- a/backend/src/main/java/com/group1/cuisines/entities/Cuisine.java +++ b/backend/src/main/java/com/group1/cuisines/entities/Cuisine.java @@ -2,10 +2,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import jakarta.persistence.*; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; +import lombok.*; import java.net.URL; import java.util.ArrayList; @@ -14,7 +11,8 @@ import java.util.Set; -@Data +@Getter +@Setter @Builder @NoArgsConstructor @AllArgsConstructor diff --git a/backend/src/main/java/com/group1/cuisines/entities/Dish.java b/backend/src/main/java/com/group1/cuisines/entities/Dish.java index 5932f74..aa1da9b 100644 --- a/backend/src/main/java/com/group1/cuisines/entities/Dish.java +++ b/backend/src/main/java/com/group1/cuisines/entities/Dish.java @@ -2,15 +2,13 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import jakarta.persistence.*; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; +import lombok.*; import java.util.ArrayList; import java.util.List; -@Data +@Getter +@Setter @Builder @NoArgsConstructor @AllArgsConstructor diff --git a/backend/src/main/java/com/group1/cuisines/entities/Ingredient.java b/backend/src/main/java/com/group1/cuisines/entities/Ingredient.java index fbccf64..be53c19 100644 --- a/backend/src/main/java/com/group1/cuisines/entities/Ingredient.java +++ b/backend/src/main/java/com/group1/cuisines/entities/Ingredient.java @@ -3,7 +3,10 @@ import jakarta.persistence.*; import lombok.*; -@Data +import java.util.Objects; + +@Getter +@Setter @Builder @NoArgsConstructor @AllArgsConstructor @@ -18,4 +21,16 @@ public class Ingredient { @ManyToOne @JoinColumn(name = "recipe_id") // This column in the Ingredient table will hold the foreign key to the Recipe private Recipe recipe; // This is the 'recipe' field expected by the 'mappedBy' attribute + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Ingredient recipe = (Ingredient) o; + return Objects.equals(id, recipe.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } } diff --git a/backend/src/main/java/com/group1/cuisines/entities/Rating.java b/backend/src/main/java/com/group1/cuisines/entities/Rating.java index c11ce61..ad64aaa 100644 --- a/backend/src/main/java/com/group1/cuisines/entities/Rating.java +++ b/backend/src/main/java/com/group1/cuisines/entities/Rating.java @@ -3,7 +3,10 @@ import jakarta.persistence.*; import lombok.*; -@Data +import java.util.Objects; + +@Getter +@Setter @Builder @NoArgsConstructor @AllArgsConstructor @@ -23,4 +26,17 @@ public class Rating { private Recipe recipe; private int ratingValue; // Assuming ratings are integer values + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Rating recipe = (Rating) o; + return Objects.equals(id, recipe.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } } diff --git a/backend/src/main/java/com/group1/cuisines/entities/Recipe.java b/backend/src/main/java/com/group1/cuisines/entities/Recipe.java index cce1d40..9592178 100644 --- a/backend/src/main/java/com/group1/cuisines/entities/Recipe.java +++ b/backend/src/main/java/com/group1/cuisines/entities/Recipe.java @@ -6,8 +6,10 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Objects; -@Data +@Getter +@Setter @Builder @NoArgsConstructor @AllArgsConstructor @@ -39,6 +41,7 @@ public class Recipe { private Date createdAt; @ManyToOne + @ToString.Exclude @JoinColumn(name = "user_id", nullable = false) private User user; @OneToMany(mappedBy = "recipe", cascade = CascadeType.ALL, orphanRemoval = true) @@ -49,6 +52,18 @@ public class Recipe { @CollectionTable(name = "recipe_allergens", joinColumns = @JoinColumn(name = "recipe_id")) @Column(name = "allergen") private List allergens = new ArrayList<>(); + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Recipe recipe = (Recipe) o; + return Objects.equals(id, recipe.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } @Override public String toString() { diff --git a/backend/src/main/java/com/group1/cuisines/entities/Upvote.java b/backend/src/main/java/com/group1/cuisines/entities/Upvote.java index 74d4f24..c1be106 100644 --- a/backend/src/main/java/com/group1/cuisines/entities/Upvote.java +++ b/backend/src/main/java/com/group1/cuisines/entities/Upvote.java @@ -4,8 +4,10 @@ import lombok.*; import java.time.LocalDateTime; +import java.util.Objects; -@Data +@Getter +@Setter @Builder @NoArgsConstructor @AllArgsConstructor @@ -24,4 +26,17 @@ public class Upvote { @ManyToOne @JoinColumn(name = "comment_id", nullable = false) private Comment comment; + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Upvote upvote = (Upvote) o; + return Objects.equals(id, upvote.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + } diff --git a/backend/src/main/java/com/group1/cuisines/entities/User.java b/backend/src/main/java/com/group1/cuisines/entities/User.java index 16a2e4b..a483141 100644 --- a/backend/src/main/java/com/group1/cuisines/entities/User.java +++ b/backend/src/main/java/com/group1/cuisines/entities/User.java @@ -10,7 +10,7 @@ import java.util.Objects; import java.util.Set; -@Data + @Builder @NoArgsConstructor @AllArgsConstructor @@ -80,6 +80,7 @@ public boolean equals(Object obj) { return Objects.equals(id, other.id); // Compare only IDs for equality } + @Override public Collection getAuthorities() { return null; diff --git a/backend/src/main/java/com/group1/cuisines/services/RecipeService.java b/backend/src/main/java/com/group1/cuisines/services/RecipeService.java index 9113302..9fd4f26 100644 --- a/backend/src/main/java/com/group1/cuisines/services/RecipeService.java +++ b/backend/src/main/java/com/group1/cuisines/services/RecipeService.java @@ -359,6 +359,7 @@ public UpvoteDto upvote(Integer commentId, String username) { upvoteRepository.save(upvote); comment.setUpvoteCount(comment.getUpvoteCount()+1); + comment.getUpvotes().add(upvote); commentRepository.save(comment); return new UpvoteDto().builder() .id(upvote.getId())