From f0f12d76a60d68a62f5d66e4d36d58cf12528b7b Mon Sep 17 00:00:00 2001 From: Don Strawsburg Date: Tue, 6 Jan 2026 12:23:14 -0500 Subject: [PATCH] organizing --- .../catalog/query/package-info.java | 8 +- .../battlbuilder/cli/package-info.java | 8 +- .../battlbuilder/common/ApiResponse.java | 148 ++++++++-------- .../battlbuilder/common/Counter.java | 38 ++-- .../battlbuilder/common/package-info.java | 2 +- .../battlbuilder/config/CacheConfig.java | 42 ++--- .../battlbuilder/config/CorsConfig.java | 166 +++++++++--------- .../battlbuilder/config/JpaConfig.java | 18 +- .../battlbuilder/config/MinioConfig.java | 2 +- .../config/ShortLinksProperties.java | 21 ++- .../battlbuilder/config/package-info.java | 2 +- .../controllers/api/EmailController.java | 2 +- .../controllers/api/v1/AuthController.java | 2 +- .../controllers/api/v1/BrandController.java | 100 +++++------ .../controllers/api/v1/BuildController.java | 68 +++---- .../controllers/api/v1/BuildV1Controller.java | 14 +- .../api/v1/BuilderBootstrapController.java | 2 +- .../controllers/api/v1/CatalogController.java | 4 +- .../api/v1/CategoryController.java | 2 +- .../controllers/api/v1/ImportController.java | 78 ++++---- .../controllers/api/v1/MeController.java | 2 +- .../api/v1/MerchantDebugController.java | 48 ++--- .../controllers/api/v1/ProductController.java | 108 ++++++------ .../api/v1/ProductV1Controller.java | 6 +- .../controllers/api/v1/StateController.java | 110 ++++++------ .../controllers/api/v1/UserController.java | 104 +++++------ .../controllers/api/v1/package-info.java | 2 +- .../{ => utils}/EmailTrackingController.java | 2 +- .../controllers/utils/PingController.java | 2 +- .../ShortLinkRedirectController.java | 2 +- .../ai/AiEnrichmentOrchestrator.java | 7 +- .../controller/AdminEnrichmentController.java | 8 +- .../{ => domain}/CaliberRuleExtractor.java | 2 +- .../{ => domain}/CaliberTaxonomy.java | 2 +- .../enrichment/domain/package-info.java | 11 ++ .../enrichment/dto/EnrichmentQueueItem.java | 4 +- .../enrichment/dto/package-info.java | 11 ++ .../enrichment/enums/EnrichmentSource.java | 2 +- .../enrichment/enums/EnrichmentStatus.java | 2 +- .../enrichment/enums/EnrichmentType.java | 2 +- .../enrichment/enums/package-info.java | 11 ++ .../enrichment/model/ProductEnrichment.java | 5 +- .../repo/ProductEnrichmentRepository.java | 5 +- .../service/CaliberEnrichmentService.java | 8 +- .../repos/{ => build}/BrandRepository.java | 2 +- .../{ => build}/BuildItemRepository.java | 2 +- .../{ => build}/BuildProfileRepository.java | 2 +- .../repos/{ => build}/BuildRepository.java | 2 +- .../battlbuilder/services/BuildService.java | 12 +- .../services/CatalogQueryService.java | 2 +- .../services/ProductQueryService.java | 4 +- .../services/impl/BrandServiceImpl.java | 2 +- .../services/impl/BuildServiceImpl.java | 26 ++- .../impl/CatalogQueryServiceImpl.java | 2 +- .../impl/MerchantFeedImportServiceImpl.java | 3 +- .../impl/ProductQueryServiceImpl.java | 4 +- ...equest.java => UpdateBuildRequestDto.java} | 2 +- .../dto/{ => build}/BuildCreateRequest.java | 2 +- .../web/dto/{ => build}/BuildDto.java | 2 +- .../web/dto/{ => build}/BuildFeedCardDto.java | 2 +- .../web/dto/{ => build}/BuildItemDto.java | 2 +- .../dto/{ => build}/BuildItemSummaryDto.java | 2 +- .../web/dto/{ => build}/BuildSummaryDto.java | 2 +- .../dto/{ => product}/ProductDetailsDto.java | 2 +- .../web/dto/{ => product}/ProductDto.java | 2 +- .../dto/{ => product}/ProductOfferDto.java | 3 +- .../dto/{ => product}/ProductSummaryDto.java | 2 +- .../web/mapper/ProductMapper.java | 2 +- 68 files changed, 667 insertions(+), 614 deletions(-) rename src/main/java/group/goforward/battlbuilder/controllers/{ => utils}/EmailTrackingController.java (96%) rename src/main/java/group/goforward/battlbuilder/controllers/{ => utils}/ShortLinkRedirectController.java (98%) rename src/main/java/group/goforward/battlbuilder/enrichment/{ => domain}/CaliberRuleExtractor.java (96%) rename src/main/java/group/goforward/battlbuilder/enrichment/{ => domain}/CaliberTaxonomy.java (95%) create mode 100644 src/main/java/group/goforward/battlbuilder/enrichment/domain/package-info.java create mode 100644 src/main/java/group/goforward/battlbuilder/enrichment/dto/package-info.java create mode 100644 src/main/java/group/goforward/battlbuilder/enrichment/enums/package-info.java rename src/main/java/group/goforward/battlbuilder/repos/{ => build}/BrandRepository.java (82%) rename src/main/java/group/goforward/battlbuilder/repos/{ => build}/BuildItemRepository.java (85%) rename src/main/java/group/goforward/battlbuilder/repos/{ => build}/BuildProfileRepository.java (86%) rename src/main/java/group/goforward/battlbuilder/repos/{ => build}/BuildRepository.java (91%) rename src/main/java/group/goforward/battlbuilder/web/dto/{UpdateBuildRequest.java => UpdateBuildRequestDto.java} (98%) rename src/main/java/group/goforward/battlbuilder/web/dto/{ => build}/BuildCreateRequest.java (96%) rename src/main/java/group/goforward/battlbuilder/web/dto/{ => build}/BuildDto.java (96%) rename src/main/java/group/goforward/battlbuilder/web/dto/{ => build}/BuildFeedCardDto.java (98%) rename src/main/java/group/goforward/battlbuilder/web/dto/{ => build}/BuildItemDto.java (97%) rename src/main/java/group/goforward/battlbuilder/web/dto/{ => build}/BuildItemSummaryDto.java (77%) rename src/main/java/group/goforward/battlbuilder/web/dto/{ => build}/BuildSummaryDto.java (97%) rename src/main/java/group/goforward/battlbuilder/web/dto/{ => product}/ProductDetailsDto.java (96%) rename src/main/java/group/goforward/battlbuilder/web/dto/{ => product}/ProductDto.java (98%) rename src/main/java/group/goforward/battlbuilder/web/dto/{ => product}/ProductOfferDto.java (91%) rename src/main/java/group/goforward/battlbuilder/web/dto/{ => product}/ProductSummaryDto.java (92%) diff --git a/src/main/java/group/goforward/battlbuilder/catalog/query/package-info.java b/src/main/java/group/goforward/battlbuilder/catalog/query/package-info.java index 62afce8..b4b0cf0 100644 --- a/src/main/java/group/goforward/battlbuilder/catalog/query/package-info.java +++ b/src/main/java/group/goforward/battlbuilder/catalog/query/package-info.java @@ -1,4 +1,4 @@ -/** - * Query projections for the catalog domain. - */ -package group.goforward.battlbuilder.catalog.query; +/** + * Query projections for the catalog domain. + */ +package group.goforward.battlbuilder.catalog.query; diff --git a/src/main/java/group/goforward/battlbuilder/cli/package-info.java b/src/main/java/group/goforward/battlbuilder/cli/package-info.java index bbc8575..649a343 100644 --- a/src/main/java/group/goforward/battlbuilder/cli/package-info.java +++ b/src/main/java/group/goforward/battlbuilder/cli/package-info.java @@ -1,4 +1,4 @@ -/** - * Command line runners and CLI utilities. - */ -package group.goforward.battlbuilder.cli; +/** + * Command line runners and CLI utilities. + */ +package group.goforward.battlbuilder.cli; diff --git a/src/main/java/group/goforward/battlbuilder/common/ApiResponse.java b/src/main/java/group/goforward/battlbuilder/common/ApiResponse.java index 1232466..3df59fe 100644 --- a/src/main/java/group/goforward/battlbuilder/common/ApiResponse.java +++ b/src/main/java/group/goforward/battlbuilder/common/ApiResponse.java @@ -1,74 +1,74 @@ -package group.goforward.battlbuilder.utils; - -import java.time.LocalDateTime; - -/** - * @param - */ -public class ApiResponse { - - private static final String API_SUCCESS = "success"; - private static final String API_FAILURE = "failure"; - private static final String API_ERROR = "error"; - private String[] messages; - private T data; - - - - private String status; - private LocalDateTime timestamp; - private ApiResponse(String status, String[] message, T data) { - this.status = status; - this.messages = message; - this.data = data; - this.timestamp = LocalDateTime.now(); - } - - public static ApiResponse error(String message, T data) { - String[] msg = {message}; // ✅ Include the message - return new ApiResponse<>(API_ERROR, msg, data); - } - - public static ApiResponse success(T data, String emailSentSuccessfully) { - String[] msg = {}; - return new ApiResponse<>(API_SUCCESS, msg, data); - } - - public static ApiResponse error(String[] messages) { - return new ApiResponse<>(API_ERROR, messages, null); - } - public static ApiResponse error(String message) { - String[] msg = {}; - return new ApiResponse<>(API_ERROR, msg, null); - } - - - public String[] getMessages() { - return messages; - } - - public void setMessages(String[] messages) { - this.messages = messages; - } - - public T getData() {return data;} - public void setData(T data) { - this.data = data; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public LocalDateTime getTimestamp() { - return timestamp; - } - - public void setTimestamp(LocalDateTime timestamp) { - this.timestamp = timestamp; - } -} +package group.goforward.battlbuilder.common; + +import java.time.LocalDateTime; + +/** + * @param + */ +public class ApiResponse { + + private static final String API_SUCCESS = "success"; + private static final String API_FAILURE = "failure"; + private static final String API_ERROR = "error"; + private String[] messages; + private T data; + + + + private String status; + private LocalDateTime timestamp; + private ApiResponse(String status, String[] message, T data) { + this.status = status; + this.messages = message; + this.data = data; + this.timestamp = LocalDateTime.now(); + } + + public static ApiResponse error(String message, T data) { + String[] msg = {message}; // ✅ Include the message + return new ApiResponse<>(API_ERROR, msg, data); + } + + public static ApiResponse success(T data, String emailSentSuccessfully) { + String[] msg = {}; + return new ApiResponse<>(API_SUCCESS, msg, data); + } + + public static ApiResponse error(String[] messages) { + return new ApiResponse<>(API_ERROR, messages, null); + } + public static ApiResponse error(String message) { + String[] msg = {}; + return new ApiResponse<>(API_ERROR, msg, null); + } + + + public String[] getMessages() { + return messages; + } + + public void setMessages(String[] messages) { + this.messages = messages; + } + + public T getData() {return data;} + public void setData(T data) { + this.data = data; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public LocalDateTime getTimestamp() { + return timestamp; + } + + public void setTimestamp(LocalDateTime timestamp) { + this.timestamp = timestamp; + } +} diff --git a/src/main/java/group/goforward/battlbuilder/common/Counter.java b/src/main/java/group/goforward/battlbuilder/common/Counter.java index e5b85d5..cd7d306 100644 --- a/src/main/java/group/goforward/battlbuilder/common/Counter.java +++ b/src/main/java/group/goforward/battlbuilder/common/Counter.java @@ -1,20 +1,18 @@ -package group.goforward.battlbuilder.utils; - -import org.springframework.context.annotation.Bean; - -public class Counter { - - Integer count = 0; - public void addOne() { - count +=1; - } - - public Integer getCount() { - return count; - } - - private void setCount(Integer count) { - this.count = count; - } - -} +package group.goforward.battlbuilder.common; + +public class Counter { + + Integer count = 0; + public void addOne() { + count +=1; + } + + public Integer getCount() { + return count; + } + + private void setCount(Integer count) { + this.count = count; + } + +} diff --git a/src/main/java/group/goforward/battlbuilder/common/package-info.java b/src/main/java/group/goforward/battlbuilder/common/package-info.java index 07c58d3..4c75829 100644 --- a/src/main/java/group/goforward/battlbuilder/common/package-info.java +++ b/src/main/java/group/goforward/battlbuilder/common/package-info.java @@ -8,4 +8,4 @@ * @version 1.0 * @since 2025-12-10 */ -package group.goforward.battlbuilder.utils; +package group.goforward.battlbuilder.common; diff --git a/src/main/java/group/goforward/battlbuilder/config/CacheConfig.java b/src/main/java/group/goforward/battlbuilder/config/CacheConfig.java index c921be2..02eac29 100644 --- a/src/main/java/group/goforward/battlbuilder/config/CacheConfig.java +++ b/src/main/java/group/goforward/battlbuilder/config/CacheConfig.java @@ -1,22 +1,22 @@ -package group.goforward.battlbuilder.configuration; - -import org.springframework.cache.CacheManager; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.cache.concurrent.ConcurrentMapCacheManager; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -@Configuration -@EnableCaching -public class CacheConfig { - - @Bean - public CacheManager cacheManager() { - // Must match the @Cacheable value(s) used in controllers/services. - // ProductV1Controller uses: "gunbuilderProductsV1" - return new ConcurrentMapCacheManager( - "gunbuilderProductsV1", - "gunbuilderProducts" // keep if anything else still references it - ); - } +package group.goforward.battlbuilder.config; + +import org.springframework.cache.CacheManager; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.cache.concurrent.ConcurrentMapCacheManager; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +@EnableCaching +public class CacheConfig { + + @Bean + public CacheManager cacheManager() { + // Must match the @Cacheable value(s) used in controllers/services. + // ProductV1Controller uses: "gunbuilderProductsV1" + return new ConcurrentMapCacheManager( + "gunbuilderProductsV1", + "gunbuilderProducts" // keep if anything else still references it + ); + } } \ No newline at end of file diff --git a/src/main/java/group/goforward/battlbuilder/config/CorsConfig.java b/src/main/java/group/goforward/battlbuilder/config/CorsConfig.java index 26ebe73..d923961 100644 --- a/src/main/java/group/goforward/battlbuilder/config/CorsConfig.java +++ b/src/main/java/group/goforward/battlbuilder/config/CorsConfig.java @@ -1,84 +1,84 @@ -// src/main/java/com/example/config/CorsConfig.java -package group.goforward.battlbuilder.configuration; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.cors.CorsConfiguration; -import org.springframework.web.cors.UrlBasedCorsConfigurationSource; -import org.springframework.web.filter.CorsFilter; - -import java.util.Arrays; - -@Configuration -public class CorsConfig { - - @Bean - public CorsFilter corsFilter() { - UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); - CorsConfiguration config = new CorsConfiguration(); - - // Allow credentials - config.setAllowCredentials(true); - - // Allow Angular development server - config.setAllowedOrigins(Arrays.asList( - "http://localhost:4200", - "http://localhost:4201", - "http://localhost:8070", - "https://localhost:8070", - "http://localhost:8080", - "https://localhost:8080", - "http://localhost:3000", - "https://localhost:3000", - "https://localhost:3000/gunbuilder", - "http://localhost:3000/gunbuilder", - "https://localhost:3000/builder", - "http://localhost:3000/builder" - )); - - // Allow all headers - config.addAllowedHeader("*"); - - // Allow all HTTP methods - config.setAllowedMethods(Arrays.asList( - "GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS" - )); - - // Expose headers - config.setExposedHeaders(Arrays.asList( - "Authorization", - "Content-Type", - "X-Total-Count" - )); - - // Max age for preflight cache (1 hour) - config.setMaxAge(3600L); - - source.registerCorsConfiguration("/**", config); - return new CorsFilter(source); - } -} - - -// Alternative using WebMvcConfigurer: -/* -package group.goforward.citysites.config; - -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.CorsRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -@Configuration -public class WebConfig implements WebMvcConfigurer { - - @Override - public void addCorsMappings(CorsRegistry registry) { - registry.addMapping("/api/**") - .allowedOrigins("http://localhost:4200") - .allowedMethods("GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS") - .allowedHeaders("*") - .allowCredentials(true) - .maxAge(3600); - } -} +// src/main/java/com/example/config/CorsConfig.java +package group.goforward.battlbuilder.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; +import org.springframework.web.filter.CorsFilter; + +import java.util.Arrays; + +@Configuration +public class CorsConfig { + + @Bean + public CorsFilter corsFilter() { + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); + CorsConfiguration config = new CorsConfiguration(); + + // Allow credentials + config.setAllowCredentials(true); + + // Allow Angular development server + config.setAllowedOrigins(Arrays.asList( + "http://localhost:4200", + "http://localhost:4201", + "http://localhost:8070", + "https://localhost:8070", + "http://localhost:8080", + "https://localhost:8080", + "http://localhost:3000", + "https://localhost:3000", + "https://localhost:3000/gunbuilder", + "http://localhost:3000/gunbuilder", + "https://localhost:3000/builder", + "http://localhost:3000/builder" + )); + + // Allow all headers + config.addAllowedHeader("*"); + + // Allow all HTTP methods + config.setAllowedMethods(Arrays.asList( + "GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS" + )); + + // Expose headers + config.setExposedHeaders(Arrays.asList( + "Authorization", + "Content-Type", + "X-Total-Count" + )); + + // Max age for preflight cache (1 hour) + config.setMaxAge(3600L); + + source.registerCorsConfiguration("/**", config); + return new CorsFilter(source); + } +} + + +// Alternative using WebMvcConfigurer: +/* +package group.goforward.citysites.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class WebConfig implements WebMvcConfigurer { + + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/api/**") + .allowedOrigins("http://localhost:4200") + .allowedMethods("GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS") + .allowedHeaders("*") + .allowCredentials(true) + .maxAge(3600); + } +} */ \ No newline at end of file diff --git a/src/main/java/group/goforward/battlbuilder/config/JpaConfig.java b/src/main/java/group/goforward/battlbuilder/config/JpaConfig.java index 09e6ce4..6429d31 100644 --- a/src/main/java/group/goforward/battlbuilder/config/JpaConfig.java +++ b/src/main/java/group/goforward/battlbuilder/config/JpaConfig.java @@ -1,10 +1,10 @@ -package group.goforward.battlbuilder.configuration; - -import org.springframework.context.annotation.Configuration; -//import org.springframework.data.jpa.repository.config.EnableJpaAuditing; - -@Configuration - -public class JpaConfig { - // Enables @CreatedDate / @LastModifiedDate processing +package group.goforward.battlbuilder.config; + +import org.springframework.context.annotation.Configuration; +//import org.springframework.data.jpa.repository.config.EnableJpaAuditing; + +@Configuration + +public class JpaConfig { + // Enables @CreatedDate / @LastModifiedDate processing } \ No newline at end of file diff --git a/src/main/java/group/goforward/battlbuilder/config/MinioConfig.java b/src/main/java/group/goforward/battlbuilder/config/MinioConfig.java index 0e99720..0fdbc86 100644 --- a/src/main/java/group/goforward/battlbuilder/config/MinioConfig.java +++ b/src/main/java/group/goforward/battlbuilder/config/MinioConfig.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.configuration; +package group.goforward.battlbuilder.config; import io.minio.MinioClient; import org.springframework.beans.factory.annotation.Value; diff --git a/src/main/java/group/goforward/battlbuilder/config/ShortLinksProperties.java b/src/main/java/group/goforward/battlbuilder/config/ShortLinksProperties.java index 4fcebbd..dfc90ad 100644 --- a/src/main/java/group/goforward/battlbuilder/config/ShortLinksProperties.java +++ b/src/main/java/group/goforward/battlbuilder/config/ShortLinksProperties.java @@ -4,27 +4,30 @@ import org.springframework.boot.context.properties.ConfigurationProperties; @ConfigurationProperties(prefix = "shortlinks") public class ShortLinksProperties { - - /** - * Master switch to enable short links. - */ - private boolean enabled = true; - /** * The public base URL used when generating short links (differs in dev vs prod). * Examples: * - http://localhost:8080 * - https://bb.ooo */ - private String publicBaseUrl = "http://localhost:8080"; - + public static final String PUBLIC_BASE_URL = "http://localhost:8080"; /** * The frontend base URL used when redirecting BUILD short links. * Examples: * - http://localhost:3000 * - https://battlbuilder.com */ - private String frontendBaseUrl = "http://localhost:3000"; + public static final String FRONT_END_BASE_URL = "http://localhost:3000"; + /** + * Master switch to enable short links. + */ + private boolean enabled = true; + + + private String publicBaseUrl = PUBLIC_BASE_URL; + + + private String frontendBaseUrl = FRONT_END_BASE_URL; public boolean isEnabled() { return enabled; diff --git a/src/main/java/group/goforward/battlbuilder/config/package-info.java b/src/main/java/group/goforward/battlbuilder/config/package-info.java index a640798..cd02eb5 100644 --- a/src/main/java/group/goforward/battlbuilder/config/package-info.java +++ b/src/main/java/group/goforward/battlbuilder/config/package-info.java @@ -8,4 +8,4 @@ * @version 1.0 * @since 2025-12-10 */ -package group.goforward.battlbuilder.configuration; +package group.goforward.battlbuilder.config; diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/EmailController.java b/src/main/java/group/goforward/battlbuilder/controllers/api/EmailController.java index e52ff32..53ad9fc 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/EmailController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/EmailController.java @@ -1,6 +1,6 @@ package group.goforward.battlbuilder.controllers.api; -import group.goforward.battlbuilder.utils.ApiResponse; +import group.goforward.battlbuilder.common.ApiResponse; import group.goforward.battlbuilder.dto.EmailRequestDto; import group.goforward.battlbuilder.model.EmailRequest; import group.goforward.battlbuilder.model.EmailStatus; diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/AuthController.java b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/AuthController.java index c2bc2d2..8468a77 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/AuthController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/AuthController.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.controllers; +package group.goforward.battlbuilder.controllers.api.v1; import group.goforward.battlbuilder.model.User; import group.goforward.battlbuilder.repos.UserRepository; diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BrandController.java b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BrandController.java index 78b4795..72a9ba4 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BrandController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BrandController.java @@ -1,50 +1,50 @@ -package group.goforward.battlbuilder.controllers; - -import group.goforward.battlbuilder.model.Brand; -import group.goforward.battlbuilder.repos.BrandRepository; -import group.goforward.battlbuilder.services.BrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -@RestController -@RequestMapping({"/api/v1/brands", "/api/brands"}) -public class BrandController { - @Autowired - private BrandRepository repo; - @Autowired - private BrandService brandService; -//@Cacheable(value="getAllStates") - @GetMapping("/all") - public ResponseEntity> getAllBrands() { - List brand = repo.findAll(); - return ResponseEntity.ok(brand); - } - - @GetMapping("/{id}") - public ResponseEntity getAllBrandsById(@PathVariable Integer id) { - return repo.findById(id) - .map(ResponseEntity::ok) - .orElse(ResponseEntity.notFound().build()); - } - - @PostMapping("/add") - public ResponseEntity createbrand(@RequestBody Brand item) { - Brand created = brandService.save(item); - return ResponseEntity.status(HttpStatus.CREATED).body(created); - } - - @DeleteMapping("/delete/{id}") - public ResponseEntity deleteItem(@PathVariable Integer id) { - return brandService.findById(id) - .map(item -> { - brandService.deleteById(id); - return ResponseEntity.noContent().build(); - }) - .orElse(ResponseEntity.notFound().build()); - } -} +package group.goforward.battlbuilder.controllers.api.v1; + +import group.goforward.battlbuilder.model.Brand; +import group.goforward.battlbuilder.repos.build.BrandRepository; +import group.goforward.battlbuilder.services.BrandService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +@RestController +@RequestMapping({"/api/v1/brands", "/api/brands"}) +public class BrandController { + @Autowired + private BrandRepository repo; + @Autowired + private BrandService brandService; +//@Cacheable(value="getAllStates") + @GetMapping("/all") + public ResponseEntity> getAllBrands() { + List brand = repo.findAll(); + return ResponseEntity.ok(brand); + } + + @GetMapping("/{id}") + public ResponseEntity getAllBrandsById(@PathVariable Integer id) { + return repo.findById(id) + .map(ResponseEntity::ok) + .orElse(ResponseEntity.notFound().build()); + } + + @PostMapping("/add") + public ResponseEntity createbrand(@RequestBody Brand item) { + Brand created = brandService.save(item); + return ResponseEntity.status(HttpStatus.CREATED).body(created); + } + + @DeleteMapping("/delete/{id}") + public ResponseEntity deleteItem(@PathVariable Integer id) { + return brandService.findById(id) + .map(item -> { + brandService.deleteById(id); + return ResponseEntity.noContent().build(); + }) + .orElse(ResponseEntity.notFound().build()); + } +} diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BuildController.java b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BuildController.java index 7beca38..22e6744 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BuildController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BuildController.java @@ -1,34 +1,34 @@ -package group.goforward.battlbuilder.controllers.api; - -import group.goforward.battlbuilder.model.Build; -import group.goforward.battlbuilder.repos.BuildRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -@RestController -@RequestMapping("/v1/api/builds") -public class BuildController { - @Autowired - private BuildRepository repo; - @Autowired - // private BuildsService service; -//@Cacheable(value="getAllStates") - @GetMapping("/all") - public ResponseEntity> getAll() { - List builds = repo.findAll(); - return ResponseEntity.ok(builds); - } - - @GetMapping("/{id}") - public ResponseEntity getAllBuildsById(@PathVariable Integer id) { - return repo.findById(id) - .map(ResponseEntity::ok) - .orElse(ResponseEntity.notFound().build()); - } - - -} +package group.goforward.battlbuilder.controllers.api.v1; + +import group.goforward.battlbuilder.model.Build; +import group.goforward.battlbuilder.repos.build.BuildRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +@RestController +@RequestMapping("/v1/api/builds") +public class BuildController { + @Autowired + private BuildRepository repo; + @Autowired + // private BuildsService service; +//@Cacheable(value="getAllStates") + @GetMapping("/all") + public ResponseEntity> getAll() { + List builds = repo.findAll(); + return ResponseEntity.ok(builds); + } + + @GetMapping("/{id}") + public ResponseEntity getAllBuildsById(@PathVariable Integer id) { + return repo.findById(id) + .map(ResponseEntity::ok) + .orElse(ResponseEntity.notFound().build()); + } + + +} diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BuildV1Controller.java b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BuildV1Controller.java index bff7978..5184cde 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BuildV1Controller.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BuildV1Controller.java @@ -1,10 +1,10 @@ -package group.goforward.battlbuilder.controllers; +package group.goforward.battlbuilder.controllers.api.v1; import group.goforward.battlbuilder.services.BuildService; -import group.goforward.battlbuilder.web.dto.BuildDto; -import group.goforward.battlbuilder.web.dto.BuildFeedCardDto; -import group.goforward.battlbuilder.web.dto.BuildSummaryDto; -import group.goforward.battlbuilder.web.dto.UpdateBuildRequest; +import group.goforward.battlbuilder.web.dto.build.BuildDto; +import group.goforward.battlbuilder.web.dto.build.BuildFeedCardDto; +import group.goforward.battlbuilder.web.dto.build.BuildSummaryDto; +import group.goforward.battlbuilder.web.dto.UpdateBuildRequestDto; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -68,7 +68,7 @@ public class BuildV1Controller { * POST /api/v1/builds/me */ @PostMapping("/me") - public ResponseEntity createMyBuild(@RequestBody UpdateBuildRequest req) { + public ResponseEntity createMyBuild(@RequestBody UpdateBuildRequestDto req) { return ResponseEntity.ok(buildService.createMyBuild(req)); } @@ -79,7 +79,7 @@ public class BuildV1Controller { @PutMapping("/me/{uuid}") public ResponseEntity updateMyBuild( @PathVariable("uuid") UUID uuid, - @RequestBody UpdateBuildRequest req + @RequestBody UpdateBuildRequestDto req ) { return ResponseEntity.ok(buildService.updateMyBuild(uuid, req)); } diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BuilderBootstrapController.java b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BuilderBootstrapController.java index 9203574..5c87f06 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BuilderBootstrapController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BuilderBootstrapController.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.controllers; +package group.goforward.battlbuilder.controllers.api.v1; import group.goforward.battlbuilder.model.PartRoleMapping; import group.goforward.battlbuilder.repos.PartCategoryRepository; diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/CatalogController.java b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/CatalogController.java index 8abdafe..1f4960a 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/CatalogController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/CatalogController.java @@ -1,7 +1,7 @@ -package group.goforward.battlbuilder.controllers; +package group.goforward.battlbuilder.controllers.api.v1; import group.goforward.battlbuilder.services.CatalogQueryService; -import group.goforward.battlbuilder.web.dto.ProductSummaryDto; +import group.goforward.battlbuilder.web.dto.product.ProductSummaryDto; import group.goforward.battlbuilder.web.dto.catalog.CatalogProductIdsRequest; import org.springframework.data.domain.Page; diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/CategoryController.java b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/CategoryController.java index 00c3de7..d9c6dbe 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/CategoryController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/CategoryController.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.controllers; +package group.goforward.battlbuilder.controllers.api.v1; import group.goforward.battlbuilder.repos.PartCategoryRepository; import group.goforward.battlbuilder.web.dto.admin.PartCategoryDto; diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/ImportController.java b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/ImportController.java index 12e4759..3dbae19 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/ImportController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/ImportController.java @@ -1,40 +1,40 @@ -package group.goforward.battlbuilder.controllers; - -import group.goforward.battlbuilder.services.MerchantFeedImportService; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -@RestController -@RequestMapping({"/api/admin/imports", "/api/v1/admin/imports"}) - -@CrossOrigin(origins = "http://localhost:3000") -public class ImportController { - - private final MerchantFeedImportService merchantFeedImportService; - - public ImportController(MerchantFeedImportService merchantFeedImportService) { - this.merchantFeedImportService = merchantFeedImportService; - } - - /** - * Full product + offer import for a merchant. - * - * POST /admin/imports/{merchantId} - */ - @PostMapping("/{merchantId}") - public ResponseEntity importMerchant(@PathVariable Integer merchantId) { - merchantFeedImportService.importMerchantFeed(merchantId); - return ResponseEntity.noContent().build(); - } - - /** - * Offers-only sync (price/stock) for a merchant. - * - * POST /admin/imports/{merchantId}/offers-only - */ - @PostMapping("/{merchantId}/offers-only") - public ResponseEntity syncOffersOnly(@PathVariable Integer merchantId) { - merchantFeedImportService.syncOffersOnly(merchantId); - return ResponseEntity.noContent().build(); - } +package group.goforward.battlbuilder.controllers.api.v1; + +import group.goforward.battlbuilder.services.MerchantFeedImportService; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping({"/api/admin/imports", "/api/v1/admin/imports"}) + +@CrossOrigin(origins = "http://localhost:3000") +public class ImportController { + + private final MerchantFeedImportService merchantFeedImportService; + + public ImportController(MerchantFeedImportService merchantFeedImportService) { + this.merchantFeedImportService = merchantFeedImportService; + } + + /** + * Full product + offer import for a merchant. + * + * POST /admin/imports/{merchantId} + */ + @PostMapping("/{merchantId}") + public ResponseEntity importMerchant(@PathVariable Integer merchantId) { + merchantFeedImportService.importMerchantFeed(merchantId); + return ResponseEntity.noContent().build(); + } + + /** + * Offers-only sync (price/stock) for a merchant. + * + * POST /admin/imports/{merchantId}/offers-only + */ + @PostMapping("/{merchantId}/offers-only") + public ResponseEntity syncOffersOnly(@PathVariable Integer merchantId) { + merchantFeedImportService.syncOffersOnly(merchantId); + return ResponseEntity.noContent().build(); + } } \ No newline at end of file diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/MeController.java b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/MeController.java index e901ef2..fb841ac 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/MeController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/MeController.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.controllers.api; +package group.goforward.battlbuilder.controllers.api.v1; import group.goforward.battlbuilder.model.User; import group.goforward.battlbuilder.repos.UserRepository; diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/MerchantDebugController.java b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/MerchantDebugController.java index af65d42..3f99b31 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/MerchantDebugController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/MerchantDebugController.java @@ -1,25 +1,25 @@ -package group.goforward.battlbuilder.controllers; - -import group.goforward.battlbuilder.model.Merchant; -import group.goforward.battlbuilder.repos.MerchantRepository; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.List; - -@RestController -@RequestMapping({"/api/admin", "/api/v1/admin"}) -public class MerchantDebugController { - - private final MerchantRepository merchantRepository; - - public MerchantDebugController(MerchantRepository merchantRepository) { - this.merchantRepository = merchantRepository; - } - - @GetMapping("/debug/merchants") - public List listMerchants() { - return merchantRepository.findAll(); - } +package group.goforward.battlbuilder.controllers.api.v1; + +import group.goforward.battlbuilder.model.Merchant; +import group.goforward.battlbuilder.repos.MerchantRepository; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping({"/api/admin", "/api/v1/admin"}) +public class MerchantDebugController { + + private final MerchantRepository merchantRepository; + + public MerchantDebugController(MerchantRepository merchantRepository) { + this.merchantRepository = merchantRepository; + } + + @GetMapping("/debug/merchants") + public List listMerchants() { + return merchantRepository.findAll(); + } } \ No newline at end of file diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/ProductController.java b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/ProductController.java index 64e0384..6ceaab4 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/ProductController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/ProductController.java @@ -1,56 +1,54 @@ -package group.goforward.battlbuilder.controllers; - -import group.goforward.battlbuilder.web.dto.ProductOfferDto; -import group.goforward.battlbuilder.web.dto.ProductSummaryDto; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * LEGACY CONTROLLER (Deprecated) - * - * Do not add new features here. - * Canonical API lives in ProductV1Controller (/api/v1/products). - * - * This exists only to keep older clients working temporarily. - * Disable by default using: - * app.api.legacy.enabled=false - * - * NOTE: - * Even when disabled, Spring still compiles this class. So it must not reference - * missing services/methods. - */ -@Deprecated -@RestController -@RequestMapping({"/api/products", "/api/v1/products"}) -@CrossOrigin -@ConditionalOnProperty(name = "app.api.legacy.enabled", havingValue = "true", matchIfMissing = false) -public class ProductController { - - private static final String MSG = - "Legacy endpoint disabled. Use /api/v1/products instead."; - - @GetMapping - public ResponseEntity getProducts( - @RequestParam(defaultValue = "AR-15") String platform, - @RequestParam(required = false, name = "partRoles") List partRoles - ) { - // Legacy disabled by design (Option B cleanup) - return ResponseEntity.status(410).body(MSG); - } - - @GetMapping("/{id}/offers") - public ResponseEntity getOffersForProduct(@PathVariable("id") Integer productId) { - return ResponseEntity.status(410).body(MSG); - } - - @GetMapping("/{id}") - public ResponseEntity getProductById(@PathVariable("id") Integer productId) { - return ResponseEntity.status(410).body(MSG); - } - - // If you *really* need typed responses for an old client, we can re-add - // a real service layer once we align on the actual ProductQueryService API. +package group.goforward.battlbuilder.controllers.api.v1; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * LEGACY CONTROLLER (Deprecated) + * + * Do not add new features here. + * Canonical API lives in ProductV1Controller (/api/v1/products). + * + * This exists only to keep older clients working temporarily. + * Disable by default using: + * app.api.legacy.enabled=false + * + * NOTE: + * Even when disabled, Spring still compiles this class. So it must not reference + * missing services/methods. + */ +@Deprecated +@RestController +@RequestMapping({"/api/products", "/api/v1/products"}) +@CrossOrigin +@ConditionalOnProperty(name = "app.api.legacy.enabled", havingValue = "true", matchIfMissing = false) +public class ProductController { + + private static final String MSG = + "Legacy endpoint disabled. Use /api/v1/products instead."; + + @GetMapping + public ResponseEntity getProducts( + @RequestParam(defaultValue = "AR-15") String platform, + @RequestParam(required = false, name = "partRoles") List partRoles + ) { + // Legacy disabled by design (Option B cleanup) + return ResponseEntity.status(410).body(MSG); + } + + @GetMapping("/{id}/offers") + public ResponseEntity getOffersForProduct(@PathVariable("id") Integer productId) { + return ResponseEntity.status(410).body(MSG); + } + + @GetMapping("/{id}") + public ResponseEntity getProductById(@PathVariable("id") Integer productId) { + return ResponseEntity.status(410).body(MSG); + } + + // If you *really* need typed responses for an old client, we can re-add + // a real service layer once we align on the actual ProductQueryService API. } \ No newline at end of file diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/ProductV1Controller.java b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/ProductV1Controller.java index 5799275..c172021 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/ProductV1Controller.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/ProductV1Controller.java @@ -1,8 +1,8 @@ -package group.goforward.battlbuilder.controllers; +package group.goforward.battlbuilder.controllers.api.v1; import group.goforward.battlbuilder.services.ProductQueryService; -import group.goforward.battlbuilder.web.dto.ProductOfferDto; -import group.goforward.battlbuilder.web.dto.ProductSummaryDto; +import group.goforward.battlbuilder.web.dto.product.ProductOfferDto; +import group.goforward.battlbuilder.web.dto.product.ProductSummaryDto; import group.goforward.battlbuilder.web.dto.catalog.ProductSort; import org.springframework.cache.annotation.Cacheable; import org.springframework.data.domain.Page; diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/StateController.java b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/StateController.java index 60c66f9..53ff7c0 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/StateController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/StateController.java @@ -1,55 +1,55 @@ -package group.goforward.battlbuilder.controllers; - -import group.goforward.battlbuilder.model.State; -import group.goforward.battlbuilder.repos.StateRepository; -import group.goforward.battlbuilder.services.admin.StatesService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -@RestController -@RequestMapping({"/api/states", "/api/v1/states"}) -public class StateController { - @Autowired - private StateRepository repo; - @Autowired - private StatesService statesService; -//@Cacheable(value="getAllStates") - @GetMapping("/all") - public ResponseEntity> getAllStates() { - List state = repo.findAll(); - return ResponseEntity.ok(state); - } - - @GetMapping("/{id}") - public ResponseEntity getAllStatesById(@PathVariable Integer id) { - return repo.findById(id) - .map(ResponseEntity::ok) - .orElse(ResponseEntity.notFound().build()); - } - @GetMapping("/byAbbrev/{abbreviation}") - public ResponseEntity getAllStatesByAbbreviation(@PathVariable String abbreviation) { - return repo.findByAbbreviation(abbreviation) - .map(ResponseEntity::ok) - .orElse(ResponseEntity.notFound().build()); - } - @PostMapping("/addState") - public ResponseEntity createState(@RequestBody State item) { - State created = statesService.save(item); - return ResponseEntity.status(HttpStatus.CREATED).body(created); - } - - @DeleteMapping("/deleteState/{id}") - public ResponseEntity deleteItem(@PathVariable Integer id) { - return statesService.findById(id) - .map(item -> { - statesService.deleteById(id); - return ResponseEntity.noContent().build(); - }) - .orElse(ResponseEntity.notFound().build()); - } -} +package group.goforward.battlbuilder.controllers.api.v1; + +import group.goforward.battlbuilder.model.State; +import group.goforward.battlbuilder.repos.StateRepository; +import group.goforward.battlbuilder.services.admin.StatesService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +@RestController +@RequestMapping({"/api/states", "/api/v1/states"}) +public class StateController { + @Autowired + private StateRepository repo; + @Autowired + private StatesService statesService; +//@Cacheable(value="getAllStates") + @GetMapping("/all") + public ResponseEntity> getAllStates() { + List state = repo.findAll(); + return ResponseEntity.ok(state); + } + + @GetMapping("/{id}") + public ResponseEntity getAllStatesById(@PathVariable Integer id) { + return repo.findById(id) + .map(ResponseEntity::ok) + .orElse(ResponseEntity.notFound().build()); + } + @GetMapping("/byAbbrev/{abbreviation}") + public ResponseEntity getAllStatesByAbbreviation(@PathVariable String abbreviation) { + return repo.findByAbbreviation(abbreviation) + .map(ResponseEntity::ok) + .orElse(ResponseEntity.notFound().build()); + } + @PostMapping("/addState") + public ResponseEntity createState(@RequestBody State item) { + State created = statesService.save(item); + return ResponseEntity.status(HttpStatus.CREATED).body(created); + } + + @DeleteMapping("/deleteState/{id}") + public ResponseEntity deleteItem(@PathVariable Integer id) { + return statesService.findById(id) + .map(item -> { + statesService.deleteById(id); + return ResponseEntity.noContent().build(); + }) + .orElse(ResponseEntity.notFound().build()); + } +} diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/UserController.java b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/UserController.java index e8932df..1e9c863 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/UserController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/UserController.java @@ -1,52 +1,52 @@ -package group.goforward.battlbuilder.controllers; - -import group.goforward.battlbuilder.model.User; -import group.goforward.battlbuilder.repos.UserRepository; -import group.goforward.battlbuilder.services.admin.UsersService; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -@RestController -@RequestMapping({"/api/user", "/api/v1/user"}) -public class UserController { - private final UserRepository repo; - private final UsersService usersService; - - public UserController(UserRepository repo, UsersService usersService) { - this.repo = repo; - this.usersService = usersService; - } - - @GetMapping("/all") - public ResponseEntity> getAllUsers() { - List data = repo.findAll(); - return ResponseEntity.ok(data); - } - - - @GetMapping("/byId/{id}") - public ResponseEntity getAllStatesById(@PathVariable Integer id) { - return repo.findById(id) - .map(ResponseEntity::ok) - .orElse(ResponseEntity.notFound().build()); - } - @PostMapping("/addUser") - public ResponseEntity createUser(@RequestBody User item) { - User created = usersService.save(item); - return ResponseEntity.status(HttpStatus.CREATED).body(created); - } - - @DeleteMapping("/deleteUser/{id}") - public ResponseEntity deleteItem(@PathVariable Integer id) { - return usersService.findById(id) - .map(item -> { - usersService.deleteById(id); - return ResponseEntity.noContent().build(); - }) - .orElse(ResponseEntity.notFound().build()); - } -} +package group.goforward.battlbuilder.controllers.api.v1; + +import group.goforward.battlbuilder.model.User; +import group.goforward.battlbuilder.repos.UserRepository; +import group.goforward.battlbuilder.services.admin.UsersService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +@RestController +@RequestMapping({"/api/user", "/api/v1/user"}) +public class UserController { + private final UserRepository repo; + private final UsersService usersService; + + public UserController(UserRepository repo, UsersService usersService) { + this.repo = repo; + this.usersService = usersService; + } + + @GetMapping("/all") + public ResponseEntity> getAllUsers() { + List data = repo.findAll(); + return ResponseEntity.ok(data); + } + + + @GetMapping("/byId/{id}") + public ResponseEntity getAllStatesById(@PathVariable Integer id) { + return repo.findById(id) + .map(ResponseEntity::ok) + .orElse(ResponseEntity.notFound().build()); + } + @PostMapping("/addUser") + public ResponseEntity createUser(@RequestBody User item) { + User created = usersService.save(item); + return ResponseEntity.status(HttpStatus.CREATED).body(created); + } + + @DeleteMapping("/deleteUser/{id}") + public ResponseEntity deleteItem(@PathVariable Integer id) { + return usersService.findById(id) + .map(item -> { + usersService.deleteById(id); + return ResponseEntity.noContent().build(); + }) + .orElse(ResponseEntity.notFound().build()); + } +} diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/package-info.java b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/package-info.java index 781f23b..443848d 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/package-info.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/package-info.java @@ -8,4 +8,4 @@ * @version 1.0 * @since 2025-12-10 */ -package group.goforward.battlbuilder.controllers.api; +package group.goforward.battlbuilder.controllers.api.v1; diff --git a/src/main/java/group/goforward/battlbuilder/controllers/EmailTrackingController.java b/src/main/java/group/goforward/battlbuilder/controllers/utils/EmailTrackingController.java similarity index 96% rename from src/main/java/group/goforward/battlbuilder/controllers/EmailTrackingController.java rename to src/main/java/group/goforward/battlbuilder/controllers/utils/EmailTrackingController.java index d31c1f7..eb5b1c1 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/EmailTrackingController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/utils/EmailTrackingController.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.controllers; +package group.goforward.battlbuilder.controllers.utils; import group.goforward.battlbuilder.repos.EmailRequestRepository; import org.springframework.http.ResponseEntity; diff --git a/src/main/java/group/goforward/battlbuilder/controllers/utils/PingController.java b/src/main/java/group/goforward/battlbuilder/controllers/utils/PingController.java index 19806ce..5ec691a 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/utils/PingController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/utils/PingController.java @@ -6,7 +6,7 @@ import org.springframework.web.bind.annotation.RestController; @RestController public class PingController { - @GetMapping("/ping") + @GetMapping("/api/ping") public String ping() { return "pong"; } diff --git a/src/main/java/group/goforward/battlbuilder/controllers/ShortLinkRedirectController.java b/src/main/java/group/goforward/battlbuilder/controllers/utils/ShortLinkRedirectController.java similarity index 98% rename from src/main/java/group/goforward/battlbuilder/controllers/ShortLinkRedirectController.java rename to src/main/java/group/goforward/battlbuilder/controllers/utils/ShortLinkRedirectController.java index 824a920..86858e0 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/ShortLinkRedirectController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/utils/ShortLinkRedirectController.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.controllers; +package group.goforward.battlbuilder.controllers.utils; import group.goforward.battlbuilder.config.ShortLinksProperties; import group.goforward.battlbuilder.repos.ShortLinkRepository; diff --git a/src/main/java/group/goforward/battlbuilder/enrichment/ai/AiEnrichmentOrchestrator.java b/src/main/java/group/goforward/battlbuilder/enrichment/ai/AiEnrichmentOrchestrator.java index f5b4be4..75b7f90 100644 --- a/src/main/java/group/goforward/battlbuilder/enrichment/ai/AiEnrichmentOrchestrator.java +++ b/src/main/java/group/goforward/battlbuilder/enrichment/ai/AiEnrichmentOrchestrator.java @@ -1,7 +1,12 @@ package group.goforward.battlbuilder.enrichment.ai; -import group.goforward.battlbuilder.enrichment.*; import group.goforward.battlbuilder.enrichment.ai.dto.CaliberExtractionResult; +import group.goforward.battlbuilder.enrichment.domain.CaliberTaxonomy; +import group.goforward.battlbuilder.enrichment.enums.EnrichmentSource; +import group.goforward.battlbuilder.enrichment.enums.EnrichmentStatus; +import group.goforward.battlbuilder.enrichment.enums.EnrichmentType; +import group.goforward.battlbuilder.enrichment.model.ProductEnrichment; +import group.goforward.battlbuilder.enrichment.repo.ProductEnrichmentRepository; import group.goforward.battlbuilder.model.Product; import group.goforward.battlbuilder.repos.ProductRepository; import org.springframework.beans.factory.annotation.Value; diff --git a/src/main/java/group/goforward/battlbuilder/enrichment/controller/AdminEnrichmentController.java b/src/main/java/group/goforward/battlbuilder/enrichment/controller/AdminEnrichmentController.java index 8b1f313..bf6261b 100644 --- a/src/main/java/group/goforward/battlbuilder/enrichment/controller/AdminEnrichmentController.java +++ b/src/main/java/group/goforward/battlbuilder/enrichment/controller/AdminEnrichmentController.java @@ -1,6 +1,12 @@ -package group.goforward.battlbuilder.enrichment; +package group.goforward.battlbuilder.enrichment.controller; import group.goforward.battlbuilder.enrichment.ai.AiEnrichmentOrchestrator; +import group.goforward.battlbuilder.enrichment.domain.CaliberTaxonomy; +import group.goforward.battlbuilder.enrichment.enums.EnrichmentStatus; +import group.goforward.battlbuilder.enrichment.enums.EnrichmentType; +import group.goforward.battlbuilder.enrichment.model.ProductEnrichment; +import group.goforward.battlbuilder.enrichment.repo.ProductEnrichmentRepository; +import group.goforward.battlbuilder.enrichment.service.CaliberEnrichmentService; import org.springframework.data.domain.PageRequest; import org.springframework.http.ResponseEntity; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/group/goforward/battlbuilder/enrichment/CaliberRuleExtractor.java b/src/main/java/group/goforward/battlbuilder/enrichment/domain/CaliberRuleExtractor.java similarity index 96% rename from src/main/java/group/goforward/battlbuilder/enrichment/CaliberRuleExtractor.java rename to src/main/java/group/goforward/battlbuilder/enrichment/domain/CaliberRuleExtractor.java index 23aae99..12fea39 100644 --- a/src/main/java/group/goforward/battlbuilder/enrichment/CaliberRuleExtractor.java +++ b/src/main/java/group/goforward/battlbuilder/enrichment/domain/CaliberRuleExtractor.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.enrichment; +package group.goforward.battlbuilder.enrichment.domain; import java.util.Optional; diff --git a/src/main/java/group/goforward/battlbuilder/enrichment/CaliberTaxonomy.java b/src/main/java/group/goforward/battlbuilder/enrichment/domain/CaliberTaxonomy.java similarity index 95% rename from src/main/java/group/goforward/battlbuilder/enrichment/CaliberTaxonomy.java rename to src/main/java/group/goforward/battlbuilder/enrichment/domain/CaliberTaxonomy.java index 0a27566..bd040bb 100644 --- a/src/main/java/group/goforward/battlbuilder/enrichment/CaliberTaxonomy.java +++ b/src/main/java/group/goforward/battlbuilder/enrichment/domain/CaliberTaxonomy.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.enrichment; +package group.goforward.battlbuilder.enrichment.domain; import java.util.Locale; diff --git a/src/main/java/group/goforward/battlbuilder/enrichment/domain/package-info.java b/src/main/java/group/goforward/battlbuilder/enrichment/domain/package-info.java new file mode 100644 index 0000000..d62180e --- /dev/null +++ b/src/main/java/group/goforward/battlbuilder/enrichment/domain/package-info.java @@ -0,0 +1,11 @@ +/** + * Domain objects package for the BattlBuilder application. + *

+ * Contains Objects with business logic. + * + * + * @author Forward Group, LLC + * @version 1.0 + * @since 2025-12-10 + */ +package group.goforward.battlbuilder.enrichment.domain; \ No newline at end of file diff --git a/src/main/java/group/goforward/battlbuilder/enrichment/dto/EnrichmentQueueItem.java b/src/main/java/group/goforward/battlbuilder/enrichment/dto/EnrichmentQueueItem.java index c1f6d7f..caa74f7 100644 --- a/src/main/java/group/goforward/battlbuilder/enrichment/dto/EnrichmentQueueItem.java +++ b/src/main/java/group/goforward/battlbuilder/enrichment/dto/EnrichmentQueueItem.java @@ -1,6 +1,8 @@ package group.goforward.battlbuilder.enrichment.dto; -import group.goforward.battlbuilder.enrichment.*; +import group.goforward.battlbuilder.enrichment.enums.EnrichmentSource; +import group.goforward.battlbuilder.enrichment.enums.EnrichmentStatus; +import group.goforward.battlbuilder.enrichment.enums.EnrichmentType; import java.math.BigDecimal; import java.time.OffsetDateTime; diff --git a/src/main/java/group/goforward/battlbuilder/enrichment/dto/package-info.java b/src/main/java/group/goforward/battlbuilder/enrichment/dto/package-info.java new file mode 100644 index 0000000..7e76f7f --- /dev/null +++ b/src/main/java/group/goforward/battlbuilder/enrichment/dto/package-info.java @@ -0,0 +1,11 @@ +/** + * Data Transfer Objects package for the BattlBuilder application. + *

+ * Contains DTOs for the with Enrichments package. + * + * + * @author Forward Group, LLC + * @version 1.0 + * @since 2025-12-10 + */ +package group.goforward.battlbuilder.enrichment.dto; \ No newline at end of file diff --git a/src/main/java/group/goforward/battlbuilder/enrichment/enums/EnrichmentSource.java b/src/main/java/group/goforward/battlbuilder/enrichment/enums/EnrichmentSource.java index 8a52ca1..f80f96a 100644 --- a/src/main/java/group/goforward/battlbuilder/enrichment/enums/EnrichmentSource.java +++ b/src/main/java/group/goforward/battlbuilder/enrichment/enums/EnrichmentSource.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.enrichment; +package group.goforward.battlbuilder.enrichment.enums; public enum EnrichmentSource { AI, diff --git a/src/main/java/group/goforward/battlbuilder/enrichment/enums/EnrichmentStatus.java b/src/main/java/group/goforward/battlbuilder/enrichment/enums/EnrichmentStatus.java index de16e1d..1a857c3 100644 --- a/src/main/java/group/goforward/battlbuilder/enrichment/enums/EnrichmentStatus.java +++ b/src/main/java/group/goforward/battlbuilder/enrichment/enums/EnrichmentStatus.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.enrichment; +package group.goforward.battlbuilder.enrichment.enums; public enum EnrichmentStatus { PENDING_REVIEW, diff --git a/src/main/java/group/goforward/battlbuilder/enrichment/enums/EnrichmentType.java b/src/main/java/group/goforward/battlbuilder/enrichment/enums/EnrichmentType.java index 0c9bc96..de6ba70 100644 --- a/src/main/java/group/goforward/battlbuilder/enrichment/enums/EnrichmentType.java +++ b/src/main/java/group/goforward/battlbuilder/enrichment/enums/EnrichmentType.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.enrichment; +package group.goforward.battlbuilder.enrichment.enums; public enum EnrichmentType { CALIBER, diff --git a/src/main/java/group/goforward/battlbuilder/enrichment/enums/package-info.java b/src/main/java/group/goforward/battlbuilder/enrichment/enums/package-info.java new file mode 100644 index 0000000..2e5ba1f --- /dev/null +++ b/src/main/java/group/goforward/battlbuilder/enrichment/enums/package-info.java @@ -0,0 +1,11 @@ +/** + * Enumeration package for the BattlBuilder application. + *

+ * Contains enumerations for the Enrichments package. + * + * + * @author Forward Group, LLC + * @version 1.0 + * @since 2025-12-10 + */ +package group.goforward.battlbuilder.enrichment.enums; \ No newline at end of file diff --git a/src/main/java/group/goforward/battlbuilder/enrichment/model/ProductEnrichment.java b/src/main/java/group/goforward/battlbuilder/enrichment/model/ProductEnrichment.java index 1520a61..6202120 100644 --- a/src/main/java/group/goforward/battlbuilder/enrichment/model/ProductEnrichment.java +++ b/src/main/java/group/goforward/battlbuilder/enrichment/model/ProductEnrichment.java @@ -1,5 +1,8 @@ -package group.goforward.battlbuilder.enrichment; +package group.goforward.battlbuilder.enrichment.model; +import group.goforward.battlbuilder.enrichment.enums.EnrichmentSource; +import group.goforward.battlbuilder.enrichment.enums.EnrichmentStatus; +import group.goforward.battlbuilder.enrichment.enums.EnrichmentType; import jakarta.persistence.*; import org.hibernate.annotations.JdbcTypeCode; import org.hibernate.type.SqlTypes; diff --git a/src/main/java/group/goforward/battlbuilder/enrichment/repo/ProductEnrichmentRepository.java b/src/main/java/group/goforward/battlbuilder/enrichment/repo/ProductEnrichmentRepository.java index 051c2a8..c48feef 100644 --- a/src/main/java/group/goforward/battlbuilder/enrichment/repo/ProductEnrichmentRepository.java +++ b/src/main/java/group/goforward/battlbuilder/enrichment/repo/ProductEnrichmentRepository.java @@ -1,5 +1,8 @@ -package group.goforward.battlbuilder.enrichment; +package group.goforward.battlbuilder.enrichment.repo; +import group.goforward.battlbuilder.enrichment.enums.EnrichmentStatus; +import group.goforward.battlbuilder.enrichment.enums.EnrichmentType; +import group.goforward.battlbuilder.enrichment.model.ProductEnrichment; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; diff --git a/src/main/java/group/goforward/battlbuilder/enrichment/service/CaliberEnrichmentService.java b/src/main/java/group/goforward/battlbuilder/enrichment/service/CaliberEnrichmentService.java index c8f959d..55340bd 100644 --- a/src/main/java/group/goforward/battlbuilder/enrichment/service/CaliberEnrichmentService.java +++ b/src/main/java/group/goforward/battlbuilder/enrichment/service/CaliberEnrichmentService.java @@ -1,5 +1,11 @@ -package group.goforward.battlbuilder.enrichment; +package group.goforward.battlbuilder.enrichment.service; +import group.goforward.battlbuilder.enrichment.domain.CaliberRuleExtractor; +import group.goforward.battlbuilder.enrichment.enums.EnrichmentSource; +import group.goforward.battlbuilder.enrichment.enums.EnrichmentStatus; +import group.goforward.battlbuilder.enrichment.enums.EnrichmentType; +import group.goforward.battlbuilder.enrichment.model.ProductEnrichment; +import group.goforward.battlbuilder.enrichment.repo.ProductEnrichmentRepository; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import org.springframework.stereotype.Service; diff --git a/src/main/java/group/goforward/battlbuilder/repos/BrandRepository.java b/src/main/java/group/goforward/battlbuilder/repos/build/BrandRepository.java similarity index 82% rename from src/main/java/group/goforward/battlbuilder/repos/BrandRepository.java rename to src/main/java/group/goforward/battlbuilder/repos/build/BrandRepository.java index 836bec7..e8dfc7e 100644 --- a/src/main/java/group/goforward/battlbuilder/repos/BrandRepository.java +++ b/src/main/java/group/goforward/battlbuilder/repos/build/BrandRepository.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.repos; +package group.goforward.battlbuilder.repos.build; import group.goforward.battlbuilder.model.Brand; import org.springframework.data.jpa.repository.JpaRepository; import java.util.Optional; diff --git a/src/main/java/group/goforward/battlbuilder/repos/BuildItemRepository.java b/src/main/java/group/goforward/battlbuilder/repos/build/BuildItemRepository.java similarity index 85% rename from src/main/java/group/goforward/battlbuilder/repos/BuildItemRepository.java rename to src/main/java/group/goforward/battlbuilder/repos/build/BuildItemRepository.java index aafe71a..c478b0b 100644 --- a/src/main/java/group/goforward/battlbuilder/repos/BuildItemRepository.java +++ b/src/main/java/group/goforward/battlbuilder/repos/build/BuildItemRepository.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.repos; +package group.goforward.battlbuilder.repos.build; import group.goforward.battlbuilder.model.BuildItem; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/src/main/java/group/goforward/battlbuilder/repos/BuildProfileRepository.java b/src/main/java/group/goforward/battlbuilder/repos/build/BuildProfileRepository.java similarity index 86% rename from src/main/java/group/goforward/battlbuilder/repos/BuildProfileRepository.java rename to src/main/java/group/goforward/battlbuilder/repos/build/BuildProfileRepository.java index 9a2cf1b..cdcfa29 100644 --- a/src/main/java/group/goforward/battlbuilder/repos/BuildProfileRepository.java +++ b/src/main/java/group/goforward/battlbuilder/repos/build/BuildProfileRepository.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.repos; +package group.goforward.battlbuilder.repos.build; import group.goforward.battlbuilder.model.BuildProfile; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/src/main/java/group/goforward/battlbuilder/repos/BuildRepository.java b/src/main/java/group/goforward/battlbuilder/repos/build/BuildRepository.java similarity index 91% rename from src/main/java/group/goforward/battlbuilder/repos/BuildRepository.java rename to src/main/java/group/goforward/battlbuilder/repos/build/BuildRepository.java index daf0ec9..921ef1b 100644 --- a/src/main/java/group/goforward/battlbuilder/repos/BuildRepository.java +++ b/src/main/java/group/goforward/battlbuilder/repos/build/BuildRepository.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.repos; +package group.goforward.battlbuilder.repos.build; import group.goforward.battlbuilder.model.Build; import org.springframework.data.domain.Page; diff --git a/src/main/java/group/goforward/battlbuilder/services/BuildService.java b/src/main/java/group/goforward/battlbuilder/services/BuildService.java index 30c14ec..b143cf1 100644 --- a/src/main/java/group/goforward/battlbuilder/services/BuildService.java +++ b/src/main/java/group/goforward/battlbuilder/services/BuildService.java @@ -1,9 +1,9 @@ package group.goforward.battlbuilder.services; -import group.goforward.battlbuilder.web.dto.BuildDto; -import group.goforward.battlbuilder.web.dto.BuildFeedCardDto; -import group.goforward.battlbuilder.web.dto.BuildSummaryDto; -import group.goforward.battlbuilder.web.dto.UpdateBuildRequest; +import group.goforward.battlbuilder.web.dto.build.BuildDto; +import group.goforward.battlbuilder.web.dto.build.BuildFeedCardDto; +import group.goforward.battlbuilder.web.dto.build.BuildSummaryDto; +import group.goforward.battlbuilder.web.dto.UpdateBuildRequestDto; import java.util.List; import java.util.UUID; @@ -16,9 +16,9 @@ public interface BuildService { BuildDto getMyBuild(UUID uuid); - BuildDto createMyBuild(UpdateBuildRequest req); + BuildDto createMyBuild(UpdateBuildRequestDto req); - BuildDto updateMyBuild(UUID uuid, UpdateBuildRequest req); + BuildDto updateMyBuild(UUID uuid, UpdateBuildRequestDto req); BuildDto getPublicBuild(UUID uuid); diff --git a/src/main/java/group/goforward/battlbuilder/services/CatalogQueryService.java b/src/main/java/group/goforward/battlbuilder/services/CatalogQueryService.java index c405278..3aaa42f 100644 --- a/src/main/java/group/goforward/battlbuilder/services/CatalogQueryService.java +++ b/src/main/java/group/goforward/battlbuilder/services/CatalogQueryService.java @@ -1,6 +1,6 @@ package group.goforward.battlbuilder.services; -import group.goforward.battlbuilder.web.dto.ProductSummaryDto; +import group.goforward.battlbuilder.web.dto.product.ProductSummaryDto; import group.goforward.battlbuilder.web.dto.catalog.CatalogProductIdsRequest; import org.springframework.data.domain.Page; diff --git a/src/main/java/group/goforward/battlbuilder/services/ProductQueryService.java b/src/main/java/group/goforward/battlbuilder/services/ProductQueryService.java index f6f9c5a..17a71ad 100644 --- a/src/main/java/group/goforward/battlbuilder/services/ProductQueryService.java +++ b/src/main/java/group/goforward/battlbuilder/services/ProductQueryService.java @@ -1,7 +1,7 @@ package group.goforward.battlbuilder.services; -import group.goforward.battlbuilder.web.dto.ProductOfferDto; -import group.goforward.battlbuilder.web.dto.ProductSummaryDto; +import group.goforward.battlbuilder.web.dto.product.ProductOfferDto; +import group.goforward.battlbuilder.web.dto.product.ProductSummaryDto; import group.goforward.battlbuilder.web.dto.catalog.ProductSort; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; diff --git a/src/main/java/group/goforward/battlbuilder/services/impl/BrandServiceImpl.java b/src/main/java/group/goforward/battlbuilder/services/impl/BrandServiceImpl.java index a67fe8a..75059ef 100644 --- a/src/main/java/group/goforward/battlbuilder/services/impl/BrandServiceImpl.java +++ b/src/main/java/group/goforward/battlbuilder/services/impl/BrandServiceImpl.java @@ -2,7 +2,7 @@ package group.goforward.battlbuilder.services.impl; import group.goforward.battlbuilder.model.Brand; -import group.goforward.battlbuilder.repos.BrandRepository; +import group.goforward.battlbuilder.repos.build.BrandRepository; import group.goforward.battlbuilder.services.BrandService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/src/main/java/group/goforward/battlbuilder/services/impl/BuildServiceImpl.java b/src/main/java/group/goforward/battlbuilder/services/impl/BuildServiceImpl.java index 7c666fb..6a7bd45 100644 --- a/src/main/java/group/goforward/battlbuilder/services/impl/BuildServiceImpl.java +++ b/src/main/java/group/goforward/battlbuilder/services/impl/BuildServiceImpl.java @@ -4,17 +4,17 @@ import group.goforward.battlbuilder.model.Build; import group.goforward.battlbuilder.model.BuildItem; import group.goforward.battlbuilder.model.BuildProfile; import group.goforward.battlbuilder.model.ProductOffer; -import group.goforward.battlbuilder.repos.BuildItemRepository; -import group.goforward.battlbuilder.repos.BuildProfileRepository; -import group.goforward.battlbuilder.repos.BuildRepository; +import group.goforward.battlbuilder.repos.build.BuildItemRepository; +import group.goforward.battlbuilder.repos.build.BuildProfileRepository; +import group.goforward.battlbuilder.repos.build.BuildRepository; import group.goforward.battlbuilder.repos.ProductOfferRepository; import group.goforward.battlbuilder.security.CurrentUserService; import group.goforward.battlbuilder.services.BuildService; -import group.goforward.battlbuilder.web.dto.BuildDto; -import group.goforward.battlbuilder.web.dto.BuildFeedCardDto; -import group.goforward.battlbuilder.web.dto.BuildItemDto; -import group.goforward.battlbuilder.web.dto.BuildSummaryDto; -import group.goforward.battlbuilder.web.dto.UpdateBuildRequest; +import group.goforward.battlbuilder.web.dto.build.BuildDto; +import group.goforward.battlbuilder.web.dto.build.BuildFeedCardDto; +import group.goforward.battlbuilder.web.dto.build.BuildItemDto; +import group.goforward.battlbuilder.web.dto.build.BuildSummaryDto; +import group.goforward.battlbuilder.web.dto.UpdateBuildRequestDto; import group.goforward.battlbuilder.repos.ProductRepository; import org.springframework.data.domain.PageRequest; @@ -22,8 +22,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.http.HttpStatus; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import org.springframework.web.server.ResponseStatusException; import java.time.OffsetDateTime; @@ -189,7 +187,7 @@ public class BuildServiceImpl implements BuildService { @Override @Transactional - public BuildDto createMyBuild(UpdateBuildRequest req) { + public BuildDto createMyBuild(UpdateBuildRequestDto req) { if (req == null) throw new IllegalArgumentException("request body is required"); Integer userId = currentUserService.requireUserId(); @@ -269,7 +267,7 @@ public class BuildServiceImpl implements BuildService { @Override @Transactional - public BuildDto updateMyBuild(UUID uuid, UpdateBuildRequest req) { + public BuildDto updateMyBuild(UUID uuid, UpdateBuildRequestDto req) { if (uuid == null) throw new IllegalArgumentException("uuid is required"); if (req == null) throw new IllegalArgumentException("request body is required"); @@ -326,11 +324,11 @@ public class BuildServiceImpl implements BuildService { // BuildItem helper // --------------------------- - private List buildItemsFromRequest(Build build, List incoming) { + private List buildItemsFromRequest(Build build, List incoming) { List out = new ArrayList<>(); if (incoming == null || incoming.isEmpty()) return out; - for (UpdateBuildRequest.Item it : incoming) { + for (UpdateBuildRequestDto.Item it : incoming) { if (it == null) continue; if (it.getProductId() == null) continue; if (it.getSlot() == null || it.getSlot().isBlank()) continue; diff --git a/src/main/java/group/goforward/battlbuilder/services/impl/CatalogQueryServiceImpl.java b/src/main/java/group/goforward/battlbuilder/services/impl/CatalogQueryServiceImpl.java index 8d5c69c..401b49a 100644 --- a/src/main/java/group/goforward/battlbuilder/services/impl/CatalogQueryServiceImpl.java +++ b/src/main/java/group/goforward/battlbuilder/services/impl/CatalogQueryServiceImpl.java @@ -7,7 +7,7 @@ import group.goforward.battlbuilder.repos.ProductRepository; import group.goforward.battlbuilder.repos.spec.CatalogProductSpecifications; import group.goforward.battlbuilder.services.CatalogQueryService; import group.goforward.battlbuilder.services.ShortLinkService; -import group.goforward.battlbuilder.web.dto.ProductSummaryDto; +import group.goforward.battlbuilder.web.dto.product.ProductSummaryDto; import group.goforward.battlbuilder.web.dto.catalog.CatalogProductIdsRequest; import group.goforward.battlbuilder.web.mapper.ProductMapper; import org.springframework.data.domain.*; diff --git a/src/main/java/group/goforward/battlbuilder/services/impl/MerchantFeedImportServiceImpl.java b/src/main/java/group/goforward/battlbuilder/services/impl/MerchantFeedImportServiceImpl.java index 1e4d25e..217d563 100644 --- a/src/main/java/group/goforward/battlbuilder/services/impl/MerchantFeedImportServiceImpl.java +++ b/src/main/java/group/goforward/battlbuilder/services/impl/MerchantFeedImportServiceImpl.java @@ -12,7 +12,7 @@ import group.goforward.battlbuilder.model.ImportStatus; import group.goforward.battlbuilder.model.Merchant; import group.goforward.battlbuilder.model.Product; import group.goforward.battlbuilder.model.ProductOffer; -import group.goforward.battlbuilder.repos.BrandRepository; +import group.goforward.battlbuilder.repos.build.BrandRepository; import group.goforward.battlbuilder.repos.MerchantRepository; import group.goforward.battlbuilder.repos.ProductOfferRepository; import group.goforward.battlbuilder.repos.ProductRepository; @@ -27,7 +27,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import java.io.InputStreamReader; import java.io.Reader; diff --git a/src/main/java/group/goforward/battlbuilder/services/impl/ProductQueryServiceImpl.java b/src/main/java/group/goforward/battlbuilder/services/impl/ProductQueryServiceImpl.java index 1f89e35..bc599dd 100644 --- a/src/main/java/group/goforward/battlbuilder/services/impl/ProductQueryServiceImpl.java +++ b/src/main/java/group/goforward/battlbuilder/services/impl/ProductQueryServiceImpl.java @@ -6,8 +6,8 @@ import group.goforward.battlbuilder.repos.ProductOfferRepository; import group.goforward.battlbuilder.repos.ProductRepository; import group.goforward.battlbuilder.services.ProductQueryService; import group.goforward.battlbuilder.services.ShortLinkService; -import group.goforward.battlbuilder.web.dto.ProductOfferDto; -import group.goforward.battlbuilder.web.dto.ProductSummaryDto; +import group.goforward.battlbuilder.web.dto.product.ProductOfferDto; +import group.goforward.battlbuilder.web.dto.product.ProductSummaryDto; import group.goforward.battlbuilder.web.dto.catalog.ProductSort; import group.goforward.battlbuilder.web.mapper.ProductMapper; import org.springframework.data.domain.Page; diff --git a/src/main/java/group/goforward/battlbuilder/web/dto/UpdateBuildRequest.java b/src/main/java/group/goforward/battlbuilder/web/dto/UpdateBuildRequestDto.java similarity index 98% rename from src/main/java/group/goforward/battlbuilder/web/dto/UpdateBuildRequest.java rename to src/main/java/group/goforward/battlbuilder/web/dto/UpdateBuildRequestDto.java index bfc1cf1..9a26908 100644 --- a/src/main/java/group/goforward/battlbuilder/web/dto/UpdateBuildRequest.java +++ b/src/main/java/group/goforward/battlbuilder/web/dto/UpdateBuildRequestDto.java @@ -9,7 +9,7 @@ import java.util.List; * NOTE: * - We reuse this for BOTH create (POST /me) and update (PUT /me/{uuid}) for MVP speed. */ -public class UpdateBuildRequest { +public class UpdateBuildRequestDto { private String title; private String description; diff --git a/src/main/java/group/goforward/battlbuilder/web/dto/BuildCreateRequest.java b/src/main/java/group/goforward/battlbuilder/web/dto/build/BuildCreateRequest.java similarity index 96% rename from src/main/java/group/goforward/battlbuilder/web/dto/BuildCreateRequest.java rename to src/main/java/group/goforward/battlbuilder/web/dto/build/BuildCreateRequest.java index 6c26788..d4518b6 100644 --- a/src/main/java/group/goforward/battlbuilder/web/dto/BuildCreateRequest.java +++ b/src/main/java/group/goforward/battlbuilder/web/dto/build/BuildCreateRequest.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.dto; +package group.goforward.battlbuilder.web.dto.build; import java.util.List; diff --git a/src/main/java/group/goforward/battlbuilder/web/dto/BuildDto.java b/src/main/java/group/goforward/battlbuilder/web/dto/build/BuildDto.java similarity index 96% rename from src/main/java/group/goforward/battlbuilder/web/dto/BuildDto.java rename to src/main/java/group/goforward/battlbuilder/web/dto/build/BuildDto.java index fdb9cf7..bef174b 100644 --- a/src/main/java/group/goforward/battlbuilder/web/dto/BuildDto.java +++ b/src/main/java/group/goforward/battlbuilder/web/dto/build/BuildDto.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.dto; +package group.goforward.battlbuilder.web.dto.build; import java.time.OffsetDateTime; import java.util.List; diff --git a/src/main/java/group/goforward/battlbuilder/web/dto/BuildFeedCardDto.java b/src/main/java/group/goforward/battlbuilder/web/dto/build/BuildFeedCardDto.java similarity index 98% rename from src/main/java/group/goforward/battlbuilder/web/dto/BuildFeedCardDto.java rename to src/main/java/group/goforward/battlbuilder/web/dto/build/BuildFeedCardDto.java index c2828af..2ae8afe 100644 --- a/src/main/java/group/goforward/battlbuilder/web/dto/BuildFeedCardDto.java +++ b/src/main/java/group/goforward/battlbuilder/web/dto/build/BuildFeedCardDto.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.dto; +package group.goforward.battlbuilder.web.dto.build; import java.util.List; import java.util.UUID; diff --git a/src/main/java/group/goforward/battlbuilder/web/dto/BuildItemDto.java b/src/main/java/group/goforward/battlbuilder/web/dto/build/BuildItemDto.java similarity index 97% rename from src/main/java/group/goforward/battlbuilder/web/dto/BuildItemDto.java rename to src/main/java/group/goforward/battlbuilder/web/dto/build/BuildItemDto.java index 931a0c9..5d3a1db 100644 --- a/src/main/java/group/goforward/battlbuilder/web/dto/BuildItemDto.java +++ b/src/main/java/group/goforward/battlbuilder/web/dto/build/BuildItemDto.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.dto; +package group.goforward.battlbuilder.web.dto.build; import java.math.BigDecimal; import java.util.UUID; diff --git a/src/main/java/group/goforward/battlbuilder/web/dto/BuildItemSummaryDto.java b/src/main/java/group/goforward/battlbuilder/web/dto/build/BuildItemSummaryDto.java similarity index 77% rename from src/main/java/group/goforward/battlbuilder/web/dto/BuildItemSummaryDto.java rename to src/main/java/group/goforward/battlbuilder/web/dto/build/BuildItemSummaryDto.java index 4ec4e36..8fb1dd8 100644 --- a/src/main/java/group/goforward/battlbuilder/web/dto/BuildItemSummaryDto.java +++ b/src/main/java/group/goforward/battlbuilder/web/dto/build/BuildItemSummaryDto.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.dto; +package group.goforward.battlbuilder.web.dto.build; import java.math.BigDecimal; diff --git a/src/main/java/group/goforward/battlbuilder/web/dto/BuildSummaryDto.java b/src/main/java/group/goforward/battlbuilder/web/dto/build/BuildSummaryDto.java similarity index 97% rename from src/main/java/group/goforward/battlbuilder/web/dto/BuildSummaryDto.java rename to src/main/java/group/goforward/battlbuilder/web/dto/build/BuildSummaryDto.java index bf445a2..2c63d82 100644 --- a/src/main/java/group/goforward/battlbuilder/web/dto/BuildSummaryDto.java +++ b/src/main/java/group/goforward/battlbuilder/web/dto/build/BuildSummaryDto.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.dto; +package group.goforward.battlbuilder.web.dto.build; import group.goforward.battlbuilder.model.Build; diff --git a/src/main/java/group/goforward/battlbuilder/web/dto/ProductDetailsDto.java b/src/main/java/group/goforward/battlbuilder/web/dto/product/ProductDetailsDto.java similarity index 96% rename from src/main/java/group/goforward/battlbuilder/web/dto/ProductDetailsDto.java rename to src/main/java/group/goforward/battlbuilder/web/dto/product/ProductDetailsDto.java index cafc85c..e145518 100644 --- a/src/main/java/group/goforward/battlbuilder/web/dto/ProductDetailsDto.java +++ b/src/main/java/group/goforward/battlbuilder/web/dto/product/ProductDetailsDto.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.dto; +package group.goforward.battlbuilder.web.dto.product; import java.math.BigDecimal; import java.util.List; diff --git a/src/main/java/group/goforward/battlbuilder/web/dto/ProductDto.java b/src/main/java/group/goforward/battlbuilder/web/dto/product/ProductDto.java similarity index 98% rename from src/main/java/group/goforward/battlbuilder/web/dto/ProductDto.java rename to src/main/java/group/goforward/battlbuilder/web/dto/product/ProductDto.java index f3be02b..52ac5c4 100644 --- a/src/main/java/group/goforward/battlbuilder/web/dto/ProductDto.java +++ b/src/main/java/group/goforward/battlbuilder/web/dto/product/ProductDto.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.dto; +package group.goforward.battlbuilder.web.dto.product; import java.math.BigDecimal; import java.util.List; diff --git a/src/main/java/group/goforward/battlbuilder/web/dto/ProductOfferDto.java b/src/main/java/group/goforward/battlbuilder/web/dto/product/ProductOfferDto.java similarity index 91% rename from src/main/java/group/goforward/battlbuilder/web/dto/ProductOfferDto.java rename to src/main/java/group/goforward/battlbuilder/web/dto/product/ProductOfferDto.java index 8f7a6f3..8c07674 100644 --- a/src/main/java/group/goforward/battlbuilder/web/dto/ProductOfferDto.java +++ b/src/main/java/group/goforward/battlbuilder/web/dto/product/ProductOfferDto.java @@ -1,8 +1,7 @@ -package group.goforward.battlbuilder.web.dto; +package group.goforward.battlbuilder.web.dto.product; import java.math.BigDecimal; import java.time.OffsetDateTime; -import java.util.List; public class ProductOfferDto { private String id; diff --git a/src/main/java/group/goforward/battlbuilder/web/dto/ProductSummaryDto.java b/src/main/java/group/goforward/battlbuilder/web/dto/product/ProductSummaryDto.java similarity index 92% rename from src/main/java/group/goforward/battlbuilder/web/dto/ProductSummaryDto.java rename to src/main/java/group/goforward/battlbuilder/web/dto/product/ProductSummaryDto.java index aeb15ed..f399977 100644 --- a/src/main/java/group/goforward/battlbuilder/web/dto/ProductSummaryDto.java +++ b/src/main/java/group/goforward/battlbuilder/web/dto/product/ProductSummaryDto.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.dto; +package group.goforward.battlbuilder.web.dto.product; import java.math.BigDecimal; diff --git a/src/main/java/group/goforward/battlbuilder/web/mapper/ProductMapper.java b/src/main/java/group/goforward/battlbuilder/web/mapper/ProductMapper.java index ef630eb..6146be0 100644 --- a/src/main/java/group/goforward/battlbuilder/web/mapper/ProductMapper.java +++ b/src/main/java/group/goforward/battlbuilder/web/mapper/ProductMapper.java @@ -1,7 +1,7 @@ package group.goforward.battlbuilder.web.mapper; import group.goforward.battlbuilder.model.Product; -import group.goforward.battlbuilder.web.dto.ProductSummaryDto; +import group.goforward.battlbuilder.web.dto.product.ProductSummaryDto; import java.math.BigDecimal;