diff --git a/backend/src/main/java/cx/flamingo/analysis/model/ApiResponse.java b/backend/src/main/java/cx/flamingo/analysis/model/ApiResponse.java index 7ad2417..968e3db 100644 --- a/backend/src/main/java/cx/flamingo/analysis/model/ApiResponse.java +++ b/backend/src/main/java/cx/flamingo/analysis/model/ApiResponse.java @@ -1,10 +1,14 @@ package cx.flamingo.analysis.model; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data @Builder +@NoArgsConstructor +@AllArgsConstructor public class ApiResponse { private String status; private String message; @@ -31,4 +35,4 @@ public static ApiResponse error(String message) { .message(message) .build(); } -} \ No newline at end of file +} diff --git a/backend/src/main/java/cx/flamingo/analysis/model/City.java b/backend/src/main/java/cx/flamingo/analysis/model/City.java index 492053c..edbe932 100644 --- a/backend/src/main/java/cx/flamingo/analysis/model/City.java +++ b/backend/src/main/java/cx/flamingo/analysis/model/City.java @@ -4,11 +4,15 @@ import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data @Builder +@NoArgsConstructor +@AllArgsConstructor @JsonInclude(JsonInclude.Include.NON_NULL) public class City { private String id; @@ -24,4 +28,4 @@ public class City { private State state; private Set regions; private SoccerTeam nearestTeam; -} \ No newline at end of file +} diff --git a/backend/src/main/java/cx/flamingo/analysis/model/Contributor.java b/backend/src/main/java/cx/flamingo/analysis/model/Contributor.java index e667943..d737c12 100644 --- a/backend/src/main/java/cx/flamingo/analysis/model/Contributor.java +++ b/backend/src/main/java/cx/flamingo/analysis/model/Contributor.java @@ -5,11 +5,15 @@ import java.util.List; import java.util.Map; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data @Builder(toBuilder = true) +@NoArgsConstructor +@AllArgsConstructor public class Contributor { public enum Role { CONTRIBUTOR, @@ -46,16 +50,19 @@ public enum Role { public Map getGithubStats() { if (type == Role.CONTRIBUTOR) { - // For contributors, convert individual fields to map format - Map stats = new HashMap<>(); - stats.put("score", score); - stats.put("totalCommits", totalCommits); - stats.put("javaRepos", javaRepos); - stats.put("starsReceived", starsReceived); - stats.put("forksReceived", forksReceived); - stats.put("starsGiven", starsGiven); - stats.put("forksGiven", forksGiven); - return stats; + // For contributors, convert individual fields to map format and cache in field + if (githubStats == null) { + Map stats = new HashMap<>(); + stats.put("score", score); + stats.put("totalCommits", totalCommits); + stats.put("javaRepos", javaRepos); + stats.put("starsReceived", starsReceived); + stats.put("forksReceived", forksReceived); + stats.put("starsGiven", starsGiven); + stats.put("forksGiven", forksGiven); + githubStats = stats; + } + return githubStats; } return githubStats; } diff --git a/backend/src/main/java/cx/flamingo/analysis/model/JobOpening.java b/backend/src/main/java/cx/flamingo/analysis/model/JobOpening.java index 62e29e6..3e31d35 100644 --- a/backend/src/main/java/cx/flamingo/analysis/model/JobOpening.java +++ b/backend/src/main/java/cx/flamingo/analysis/model/JobOpening.java @@ -1,13 +1,17 @@ package cx.flamingo.analysis.model; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data @Builder +@NoArgsConstructor +@AllArgsConstructor public class JobOpening { private String id; private String title; private String location; private String url; -} \ No newline at end of file +} diff --git a/backend/src/main/java/cx/flamingo/analysis/model/Language.java b/backend/src/main/java/cx/flamingo/analysis/model/Language.java index b9e12e0..951a0bc 100644 --- a/backend/src/main/java/cx/flamingo/analysis/model/Language.java +++ b/backend/src/main/java/cx/flamingo/analysis/model/Language.java @@ -2,15 +2,19 @@ import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data @Builder +@NoArgsConstructor +@AllArgsConstructor @JsonInclude(JsonInclude.Include.NON_NULL) public class Language { private String id; private String name; private String displayName; private String iconUrl; -} \ No newline at end of file +} diff --git a/backend/src/main/java/cx/flamingo/analysis/model/Region.java b/backend/src/main/java/cx/flamingo/analysis/model/Region.java index 06c2633..bd594e7 100644 --- a/backend/src/main/java/cx/flamingo/analysis/model/Region.java +++ b/backend/src/main/java/cx/flamingo/analysis/model/Region.java @@ -2,9 +2,15 @@ import java.util.Set; -import lombok.Value; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; -@Value +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class Region { String id; String name; // Internal name (e.g., "new-england") @@ -16,7 +22,10 @@ public class Region { Set states; Set cities; - @Value + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor public static class GeoCoordinates { double latitude; double longitude; diff --git a/backend/src/main/java/cx/flamingo/analysis/model/State.java b/backend/src/main/java/cx/flamingo/analysis/model/State.java index 21949a3..6910aee 100644 --- a/backend/src/main/java/cx/flamingo/analysis/model/State.java +++ b/backend/src/main/java/cx/flamingo/analysis/model/State.java @@ -4,11 +4,15 @@ import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data @Builder +@NoArgsConstructor +@AllArgsConstructor @JsonInclude(JsonInclude.Include.NON_NULL) public class State { private String id;