From 3f33d944e258a0864f0c08c4a7ff2503fd950809 Mon Sep 17 00:00:00 2001 From: Don Strawsburg Date: Fri, 16 Jan 2026 12:54:33 -0500 Subject: [PATCH] moving and a shaking up this build --- .../battlbuilder/config/CacheConfig.java | 2 +- .../controllers/api/v1/BuildController.java | 148 +++++++++++++----- .../controllers/api/v1/BuildV1Controller.java | 96 ------------ .../api/v1/PartRoleMappingController.java | 2 +- .../controllers/api/v1/ProductController.java | 111 ++++++------- .../api/v1/ProductV1Controller.java | 59 ------- .../controllers/api/v1/StateController.java | 2 +- .../battlbuilder/{web => }/dto/StateDto.java | 2 +- .../mapper/PartRoleMappingMapper.java | 2 +- .../battlbuilder/mapper/StateMapper.java | 2 +- .../battlbuilder/services/BuildService.java | 2 +- .../CategoryMappingRecommendationService.java | 2 +- .../services/MappingAdminService.java | 6 +- .../services/PartRoleMappingService.java | 2 +- .../services/impl/BuildServiceImpl.java | 2 +- .../AdminCaliberController.java | 2 +- .../AdminImportStatusController.java | 2 +- .../AdminMappingController.java | 8 +- .../AdminMerchantController.java | 2 +- .../AdminProductController.java | 2 +- .../{ => controller}/AdminUserController.java | 2 +- .../CategoryMappingAdminController.java | 4 +- .../admin/{ => controller}/package-info.java | 2 +- .../CategoryMappingRecommendationDto.java | 2 +- .../dto/{ => mapping}/MappingOptionsDto.java | 2 +- .../{ => mapping}/PartRoleToCategoryDto.java | 2 +- .../PendingMappingBucketDto.java | 2 +- .../RawCategoryMappingRowDto.java | 2 +- .../{ => mapping}/UpdateBuildRequestDto.java | 2 +- .../UpsertMerchantCategoryMappingRequest.java | 2 +- 30 files changed, 203 insertions(+), 275 deletions(-) delete mode 100644 src/main/java/group/goforward/battlbuilder/controllers/api/v1/BuildV1Controller.java delete mode 100644 src/main/java/group/goforward/battlbuilder/controllers/api/v1/ProductV1Controller.java rename src/main/java/group/goforward/battlbuilder/{web => }/dto/StateDto.java (92%) rename src/main/java/group/goforward/battlbuilder/web/admin/{ => controller}/AdminCaliberController.java (98%) rename src/main/java/group/goforward/battlbuilder/web/admin/{ => controller}/AdminImportStatusController.java (97%) rename src/main/java/group/goforward/battlbuilder/web/admin/{ => controller}/AdminMappingController.java (93%) rename src/main/java/group/goforward/battlbuilder/web/admin/{ => controller}/AdminMerchantController.java (95%) rename src/main/java/group/goforward/battlbuilder/web/admin/{ => controller}/AdminProductController.java (97%) rename src/main/java/group/goforward/battlbuilder/web/admin/{ => controller}/AdminUserController.java (95%) rename src/main/java/group/goforward/battlbuilder/web/admin/{ => controller}/CategoryMappingAdminController.java (94%) rename src/main/java/group/goforward/battlbuilder/web/admin/{ => controller}/package-info.java (82%) rename src/main/java/group/goforward/battlbuilder/web/dto/{ => mapping}/CategoryMappingRecommendationDto.java (84%) rename src/main/java/group/goforward/battlbuilder/web/dto/{ => mapping}/MappingOptionsDto.java (85%) rename src/main/java/group/goforward/battlbuilder/web/dto/{ => mapping}/PartRoleToCategoryDto.java (74%) rename src/main/java/group/goforward/battlbuilder/web/dto/{ => mapping}/PendingMappingBucketDto.java (74%) rename src/main/java/group/goforward/battlbuilder/web/dto/{ => mapping}/RawCategoryMappingRowDto.java (89%) rename src/main/java/group/goforward/battlbuilder/web/dto/{ => mapping}/UpdateBuildRequestDto.java (97%) rename src/main/java/group/goforward/battlbuilder/web/dto/{ => mapping}/UpsertMerchantCategoryMappingRequest.java (89%) diff --git a/src/main/java/group/goforward/battlbuilder/config/CacheConfig.java b/src/main/java/group/goforward/battlbuilder/config/CacheConfig.java index 02eac29..885f4b6 100644 --- a/src/main/java/group/goforward/battlbuilder/config/CacheConfig.java +++ b/src/main/java/group/goforward/battlbuilder/config/CacheConfig.java @@ -13,7 +13,7 @@ public class CacheConfig { @Bean public CacheManager cacheManager() { // Must match the @Cacheable value(s) used in controllers/services. - // ProductV1Controller uses: "gunbuilderProductsV1" + // ProductController uses: "gunbuilderProductsV1" return new ConcurrentMapCacheManager( "gunbuilderProductsV1", "gunbuilderProducts" // keep if anything else still references it 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 7ce08de..ce906b5 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,35 +1,113 @@ -package group.goforward.battlbuilder.controllers.api.v1; - -import group.goforward.battlbuilder.mapper.BuildMapper; -import group.goforward.battlbuilder.model.Build; -import group.goforward.battlbuilder.repos.build.BuildRepository; -import group.goforward.battlbuilder.web.dto.build.BuildDto; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cache.annotation.Cacheable; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -@RestController -@RequestMapping({"/api/builds", "/api/v1fix/builds"}) -public class BuildController { - @Autowired - private BuildRepository repo; - // @Autowired - // private BuildsService service; - //@Cacheable(value="getAllBuilds") - @GetMapping("/all") - public ResponseEntity> getAll() { - List builds = repo.findAll(); - return ResponseEntity.ok(BuildMapper.toDtoList(builds)); - } - - @GetMapping("/{id}") - public ResponseEntity getAllBuildsById(@PathVariable Integer id) { - return repo.findById(id) - .map(build -> ResponseEntity.ok(BuildMapper.toDto(build))) - .orElse(ResponseEntity.notFound().build()); - } - -} +package group.goforward.battlbuilder.controllers.api.v1; + +import group.goforward.battlbuilder.mapper.BuildMapper; +import group.goforward.battlbuilder.model.Build; +import group.goforward.battlbuilder.repos.build.BuildRepository; +import group.goforward.battlbuilder.services.BuildService; +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.mapping.UpdateBuildRequestDto; +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; +import java.util.UUID; + +@CrossOrigin +@RestController +@RequestMapping("/api/v1/builds") +public class BuildController { + @Autowired + private BuildRepository repo; + private final BuildService buildService; + + public BuildController(BuildService buildService) { + this.buildService = buildService; + } + + /** + * Public builds feed for /builds page. + * GET /api/v1/builds?limit=50 + */ + @GetMapping + public ResponseEntity> listPublicBuilds( + @RequestParam(name = "limit", required = false, defaultValue = "50") Integer limit + ) { + return ResponseEntity.ok(buildService.listPublicBuilds(limit == null ? 50 : limit)); + } + + /** + * Public build detail for /builds/{uuid} + * GET /api/v1/builds/{uuid} + */ + @GetMapping("/{uuid}") + public ResponseEntity getPublicBuild(@PathVariable("uuid") UUID uuid) { + return ResponseEntity.ok(buildService.getPublicBuild(uuid)); + } + + /** + * Vault builds (authenticated user). + * GET /api/v1/builds/me?limit=100 + */ + @GetMapping("/me") + public ResponseEntity> listMyBuilds( + @RequestParam(name = "limit", required = false, defaultValue = "100") Integer limit + ) { + return ResponseEntity.ok(buildService.listMyBuilds(limit == null ? 100 : limit)); + } + + /** + * Load a single build (Vault edit + Builder ?load=uuid). + * GET /api/v1/builds/me/{uuid} + */ + @GetMapping("/me/{uuid}") + public ResponseEntity getMyBuild(@PathVariable("uuid") UUID uuid) { + return ResponseEntity.ok(buildService.getMyBuild(uuid)); + } + + /** + * Create a NEW build in Vault (Save As…). + * POST /api/v1/builds/me + */ + @PostMapping("/me") + public ResponseEntity createMyBuild(@RequestBody UpdateBuildRequestDto req) { + return ResponseEntity.ok(buildService.createMyBuild(req)); + } + + /** + * Update build (authenticated user; must own build eventually). + * PUT /api/v1/builds/me/{uuid} + */ + @PutMapping("/me/{uuid}") + public ResponseEntity updateMyBuild( + @PathVariable("uuid") UUID uuid, + @RequestBody UpdateBuildRequestDto req + ) { + return ResponseEntity.ok(buildService.updateMyBuild(uuid, req)); + } + + /** + * Delete a build (authenticated user; must own build). + * DELETE /api/v1/builds/me/{uuid} + */ + @DeleteMapping("/me/{uuid}") + @ResponseStatus(HttpStatus.NO_CONTENT) + public void deleteMyBuild(@PathVariable("uuid") UUID uuid) { + buildService.deleteMyBuild(uuid); + } + @GetMapping("/all") + public ResponseEntity> getAll() { + List builds = repo.findAll(); + return ResponseEntity.ok(BuildMapper.toDtoList(builds)); + } + + @GetMapping("/{id}") + public ResponseEntity getAllBuildsById(@PathVariable Integer id) { + return repo.findById(id) + .map(build -> ResponseEntity.ok(BuildMapper.toDto(build))) + .orElse(ResponseEntity.notFound().build()); + } +} \ No newline at end of file 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 deleted file mode 100644 index 5184cde..0000000 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BuildV1Controller.java +++ /dev/null @@ -1,96 +0,0 @@ -package group.goforward.battlbuilder.controllers.api.v1; - -import group.goforward.battlbuilder.services.BuildService; -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.*; - -import java.util.List; -import java.util.UUID; - -@CrossOrigin -@RestController -@RequestMapping("/api/v1/builds") -public class BuildV1Controller { - - private final BuildService buildService; - - public BuildV1Controller(BuildService buildService) { - this.buildService = buildService; - } - - /** - * Public builds feed for /builds page. - * GET /api/v1/builds?limit=50 - */ - @GetMapping - public ResponseEntity> listPublicBuilds( - @RequestParam(name = "limit", required = false, defaultValue = "50") Integer limit - ) { - return ResponseEntity.ok(buildService.listPublicBuilds(limit == null ? 50 : limit)); - } - - /** - * Public build detail for /builds/{uuid} - * GET /api/v1/builds/{uuid} - */ - @GetMapping("/{uuid}") - public ResponseEntity getPublicBuild(@PathVariable("uuid") UUID uuid) { - return ResponseEntity.ok(buildService.getPublicBuild(uuid)); - } - - /** - * Vault builds (authenticated user). - * GET /api/v1/builds/me?limit=100 - */ - @GetMapping("/me") - public ResponseEntity> listMyBuilds( - @RequestParam(name = "limit", required = false, defaultValue = "100") Integer limit - ) { - return ResponseEntity.ok(buildService.listMyBuilds(limit == null ? 100 : limit)); - } - - /** - * Load a single build (Vault edit + Builder ?load=uuid). - * GET /api/v1/builds/me/{uuid} - */ - @GetMapping("/me/{uuid}") - public ResponseEntity getMyBuild(@PathVariable("uuid") UUID uuid) { - return ResponseEntity.ok(buildService.getMyBuild(uuid)); - } - - /** - * Create a NEW build in Vault (Save As…). - * POST /api/v1/builds/me - */ - @PostMapping("/me") - public ResponseEntity createMyBuild(@RequestBody UpdateBuildRequestDto req) { - return ResponseEntity.ok(buildService.createMyBuild(req)); - } - - /** - * Update build (authenticated user; must own build eventually). - * PUT /api/v1/builds/me/{uuid} - */ - @PutMapping("/me/{uuid}") - public ResponseEntity updateMyBuild( - @PathVariable("uuid") UUID uuid, - @RequestBody UpdateBuildRequestDto req - ) { - return ResponseEntity.ok(buildService.updateMyBuild(uuid, req)); - } - - /** - * Delete a build (authenticated user; must own build). - * DELETE /api/v1/builds/me/{uuid} - */ - @DeleteMapping("/me/{uuid}") - @ResponseStatus(HttpStatus.NO_CONTENT) - public void deleteMyBuild(@PathVariable("uuid") UUID uuid) { - buildService.deleteMyBuild(uuid); - } -} \ No newline at end of file diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/PartRoleMappingController.java b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/PartRoleMappingController.java index 09783c0..832ccde 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/PartRoleMappingController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/PartRoleMappingController.java @@ -2,7 +2,7 @@ package group.goforward.battlbuilder.controllers.api.v1; // import group.goforward.battlbuilder.services.PartRoleMappingService; import group.goforward.battlbuilder.web.dto.admin.PartRoleMappingDto; -import group.goforward.battlbuilder.web.dto.PartRoleToCategoryDto; +import group.goforward.battlbuilder.web.dto.mapping.PartRoleToCategoryDto; import org.springframework.web.bind.annotation.*; import java.util.List; 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 6ceaab4..34cd122 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,54 +1,59 @@ -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. +package group.goforward.battlbuilder.controllers.api.v1; + +import group.goforward.battlbuilder.services.ProductQueryService; +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; +import org.springframework.data.domain.Pageable; +import org.springframework.data.web.PageableDefault; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/api/v1/products") +@CrossOrigin +public class ProductController { + + private final ProductQueryService productQueryService; + + public ProductController(ProductQueryService productQueryService) { + this.productQueryService = productQueryService; + } + + /** + * Product list endpoint + * Example: + * /api/v1/products?platform=AR-15&partRoles=upper-receiver&priceSort=price_asc&page=0&size=50 + * + * NOTE: do NOT use `sort=` here — Spring reserves it for Pageable sorting. + */ + @GetMapping + @Cacheable( + value = "gunbuilderProductsV1", + key = "#platform + '::' + (#partRoles == null ? 'ALL' : #partRoles) + '::' + #priceSort + '::' + #pageable.pageNumber + '::' + #pageable.pageSize" + ) + public Page getProducts( + @RequestParam(defaultValue = "AR-15") String platform, + @RequestParam(required = false, name = "partRoles") List partRoles, + @RequestParam(name = "priceSort", defaultValue = "price_asc") String priceSort, + @PageableDefault(size = 50) Pageable pageable + ) { + ProductSort sortEnum = ProductSort.from(priceSort); + return productQueryService.getProductsPage(platform, partRoles, pageable, sortEnum); + } + + @GetMapping("/{id}/offers") + public List getOffersForProduct(@PathVariable("id") Integer productId) { + return productQueryService.getOffersForProduct(productId); + } + + @GetMapping("/{id}") + public ResponseEntity getProductById(@PathVariable("id") Integer productId) { + ProductSummaryDto dto = productQueryService.getProductById(productId); + return dto != null ? ResponseEntity.ok(dto) : ResponseEntity.notFound().build(); + } } \ 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 deleted file mode 100644 index c172021..0000000 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/ProductV1Controller.java +++ /dev/null @@ -1,59 +0,0 @@ -package group.goforward.battlbuilder.controllers.api.v1; - -import group.goforward.battlbuilder.services.ProductQueryService; -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; -import org.springframework.data.domain.Pageable; -import org.springframework.data.web.PageableDefault; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -@RestController -@RequestMapping("/api/v1/products") -@CrossOrigin -public class ProductV1Controller { - - private final ProductQueryService productQueryService; - - public ProductV1Controller(ProductQueryService productQueryService) { - this.productQueryService = productQueryService; - } - - /** - * Product list endpoint - * Example: - * /api/v1/products?platform=AR-15&partRoles=upper-receiver&priceSort=price_asc&page=0&size=50 - * - * NOTE: do NOT use `sort=` here — Spring reserves it for Pageable sorting. - */ - @GetMapping - @Cacheable( - value = "gunbuilderProductsV1", - key = "#platform + '::' + (#partRoles == null ? 'ALL' : #partRoles) + '::' + #priceSort + '::' + #pageable.pageNumber + '::' + #pageable.pageSize" - ) - public Page getProducts( - @RequestParam(defaultValue = "AR-15") String platform, - @RequestParam(required = false, name = "partRoles") List partRoles, - @RequestParam(name = "priceSort", defaultValue = "price_asc") String priceSort, - @PageableDefault(size = 50) Pageable pageable - ) { - ProductSort sortEnum = ProductSort.from(priceSort); - return productQueryService.getProductsPage(platform, partRoles, pageable, sortEnum); - } - - @GetMapping("/{id}/offers") - public List getOffersForProduct(@PathVariable("id") Integer productId) { - return productQueryService.getOffersForProduct(productId); - } - - @GetMapping("/{id}") - public ResponseEntity getProductById(@PathVariable("id") Integer productId) { - ProductSummaryDto dto = productQueryService.getProductById(productId); - return dto != null ? ResponseEntity.ok(dto) : ResponseEntity.notFound().build(); - } -} \ No newline at end of file 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 d9f7a1f..7e748de 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,6 +1,6 @@ package group.goforward.battlbuilder.controllers.api.v1; -import group.goforward.battlbuilder.web.dto.StateDto; +import group.goforward.battlbuilder.dto.StateDto; import group.goforward.battlbuilder.mapper.StateMapper; import group.goforward.battlbuilder.model.State; import group.goforward.battlbuilder.repos.StateRepository; diff --git a/src/main/java/group/goforward/battlbuilder/web/dto/StateDto.java b/src/main/java/group/goforward/battlbuilder/dto/StateDto.java similarity index 92% rename from src/main/java/group/goforward/battlbuilder/web/dto/StateDto.java rename to src/main/java/group/goforward/battlbuilder/dto/StateDto.java index 1a3b848..eefcbed 100644 --- a/src/main/java/group/goforward/battlbuilder/web/dto/StateDto.java +++ b/src/main/java/group/goforward/battlbuilder/dto/StateDto.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.dto; +package group.goforward.battlbuilder.dto; public class StateDto { diff --git a/src/main/java/group/goforward/battlbuilder/mapper/PartRoleMappingMapper.java b/src/main/java/group/goforward/battlbuilder/mapper/PartRoleMappingMapper.java index a258d7a..94d25f8 100644 --- a/src/main/java/group/goforward/battlbuilder/mapper/PartRoleMappingMapper.java +++ b/src/main/java/group/goforward/battlbuilder/mapper/PartRoleMappingMapper.java @@ -3,7 +3,7 @@ package group.goforward.battlbuilder.mapper; import group.goforward.battlbuilder.model.PartCategory; import group.goforward.battlbuilder.model.PartRoleMapping; import group.goforward.battlbuilder.web.dto.admin.PartRoleMappingDto; -import group.goforward.battlbuilder.web.dto.PartRoleToCategoryDto; +import group.goforward.battlbuilder.web.dto.mapping.PartRoleToCategoryDto; public final class PartRoleMappingMapper { diff --git a/src/main/java/group/goforward/battlbuilder/mapper/StateMapper.java b/src/main/java/group/goforward/battlbuilder/mapper/StateMapper.java index 08821f5..790d9e0 100644 --- a/src/main/java/group/goforward/battlbuilder/mapper/StateMapper.java +++ b/src/main/java/group/goforward/battlbuilder/mapper/StateMapper.java @@ -1,6 +1,6 @@ package group.goforward.battlbuilder.mapper; -import group.goforward.battlbuilder.web.dto.StateDto; +import group.goforward.battlbuilder.dto.StateDto; import group.goforward.battlbuilder.model.State; diff --git a/src/main/java/group/goforward/battlbuilder/services/BuildService.java b/src/main/java/group/goforward/battlbuilder/services/BuildService.java index b143cf1..eac6013 100644 --- a/src/main/java/group/goforward/battlbuilder/services/BuildService.java +++ b/src/main/java/group/goforward/battlbuilder/services/BuildService.java @@ -3,7 +3,7 @@ package group.goforward.battlbuilder.services; 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 group.goforward.battlbuilder.web.dto.mapping.UpdateBuildRequestDto; import java.util.List; import java.util.UUID; diff --git a/src/main/java/group/goforward/battlbuilder/services/CategoryMappingRecommendationService.java b/src/main/java/group/goforward/battlbuilder/services/CategoryMappingRecommendationService.java index 9e4ac94..6d81969 100644 --- a/src/main/java/group/goforward/battlbuilder/services/CategoryMappingRecommendationService.java +++ b/src/main/java/group/goforward/battlbuilder/services/CategoryMappingRecommendationService.java @@ -3,7 +3,7 @@ package group.goforward.battlbuilder.services; import group.goforward.battlbuilder.model.Product; import group.goforward.battlbuilder.repos.ProductRepository; -import group.goforward.battlbuilder.web.dto.CategoryMappingRecommendationDto; +import group.goforward.battlbuilder.web.dto.mapping.CategoryMappingRecommendationDto; import org.springframework.stereotype.Service; import java.util.List; diff --git a/src/main/java/group/goforward/battlbuilder/services/MappingAdminService.java b/src/main/java/group/goforward/battlbuilder/services/MappingAdminService.java index 4ea9465..a00f41a 100644 --- a/src/main/java/group/goforward/battlbuilder/services/MappingAdminService.java +++ b/src/main/java/group/goforward/battlbuilder/services/MappingAdminService.java @@ -8,9 +8,9 @@ import group.goforward.battlbuilder.repos.CanonicalCategoryRepository; import group.goforward.battlbuilder.repos.MerchantCategoryMapRepository; import group.goforward.battlbuilder.repos.MerchantRepository; import group.goforward.battlbuilder.repos.ProductRepository; -import group.goforward.battlbuilder.web.dto.MappingOptionsDto; -import group.goforward.battlbuilder.web.dto.PendingMappingBucketDto; -import group.goforward.battlbuilder.web.dto.RawCategoryMappingRowDto; +import group.goforward.battlbuilder.web.dto.mapping.MappingOptionsDto; +import group.goforward.battlbuilder.web.dto.mapping.PendingMappingBucketDto; +import group.goforward.battlbuilder.web.dto.mapping.RawCategoryMappingRowDto; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/group/goforward/battlbuilder/services/PartRoleMappingService.java b/src/main/java/group/goforward/battlbuilder/services/PartRoleMappingService.java index 2bfa7b9..2828a89 100644 --- a/src/main/java/group/goforward/battlbuilder/services/PartRoleMappingService.java +++ b/src/main/java/group/goforward/battlbuilder/services/PartRoleMappingService.java @@ -2,7 +2,7 @@ package group.goforward.battlbuilder.services; import group.goforward.battlbuilder.repos.PartRoleMappingRepository; import group.goforward.battlbuilder.web.dto.admin.PartRoleMappingDto; -import group.goforward.battlbuilder.web.dto.PartRoleToCategoryDto; +import group.goforward.battlbuilder.web.dto.mapping.PartRoleToCategoryDto; import group.goforward.battlbuilder.mapper.PartRoleMappingMapper; 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 6a7bd45..fd319f8 100644 --- a/src/main/java/group/goforward/battlbuilder/services/impl/BuildServiceImpl.java +++ b/src/main/java/group/goforward/battlbuilder/services/impl/BuildServiceImpl.java @@ -14,7 +14,7 @@ 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.web.dto.mapping.UpdateBuildRequestDto; import group.goforward.battlbuilder.repos.ProductRepository; import org.springframework.data.domain.PageRequest; diff --git a/src/main/java/group/goforward/battlbuilder/web/admin/AdminCaliberController.java b/src/main/java/group/goforward/battlbuilder/web/admin/controller/AdminCaliberController.java similarity index 98% rename from src/main/java/group/goforward/battlbuilder/web/admin/AdminCaliberController.java rename to src/main/java/group/goforward/battlbuilder/web/admin/controller/AdminCaliberController.java index 305f5ef..5900e3b 100644 --- a/src/main/java/group/goforward/battlbuilder/web/admin/AdminCaliberController.java +++ b/src/main/java/group/goforward/battlbuilder/web/admin/controller/AdminCaliberController.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.admin; +package group.goforward.battlbuilder.web.admin.controller; import group.goforward.battlbuilder.model.Caliber; import group.goforward.battlbuilder.repos.CaliberRepository; diff --git a/src/main/java/group/goforward/battlbuilder/web/admin/AdminImportStatusController.java b/src/main/java/group/goforward/battlbuilder/web/admin/controller/AdminImportStatusController.java similarity index 97% rename from src/main/java/group/goforward/battlbuilder/web/admin/AdminImportStatusController.java rename to src/main/java/group/goforward/battlbuilder/web/admin/controller/AdminImportStatusController.java index fe424b2..fe66437 100644 --- a/src/main/java/group/goforward/battlbuilder/web/admin/AdminImportStatusController.java +++ b/src/main/java/group/goforward/battlbuilder/web/admin/controller/AdminImportStatusController.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.admin; +package group.goforward.battlbuilder.web.admin.controller; import group.goforward.battlbuilder.model.enums.ImportStatus; import group.goforward.battlbuilder.repos.ProductRepository; diff --git a/src/main/java/group/goforward/battlbuilder/web/admin/AdminMappingController.java b/src/main/java/group/goforward/battlbuilder/web/admin/controller/AdminMappingController.java similarity index 93% rename from src/main/java/group/goforward/battlbuilder/web/admin/AdminMappingController.java rename to src/main/java/group/goforward/battlbuilder/web/admin/controller/AdminMappingController.java index e7f8963..5abf3d7 100644 --- a/src/main/java/group/goforward/battlbuilder/web/admin/AdminMappingController.java +++ b/src/main/java/group/goforward/battlbuilder/web/admin/controller/AdminMappingController.java @@ -1,9 +1,9 @@ -package group.goforward.battlbuilder.web.admin; +package group.goforward.battlbuilder.web.admin.controller; import group.goforward.battlbuilder.services.MappingAdminService; -import group.goforward.battlbuilder.web.dto.PendingMappingBucketDto; -import group.goforward.battlbuilder.web.dto.MappingOptionsDto; -import group.goforward.battlbuilder.web.dto.RawCategoryMappingRowDto; +import group.goforward.battlbuilder.web.dto.mapping.PendingMappingBucketDto; +import group.goforward.battlbuilder.web.dto.mapping.MappingOptionsDto; +import group.goforward.battlbuilder.web.dto.mapping.RawCategoryMappingRowDto; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; diff --git a/src/main/java/group/goforward/battlbuilder/web/admin/AdminMerchantController.java b/src/main/java/group/goforward/battlbuilder/web/admin/controller/AdminMerchantController.java similarity index 95% rename from src/main/java/group/goforward/battlbuilder/web/admin/AdminMerchantController.java rename to src/main/java/group/goforward/battlbuilder/web/admin/controller/AdminMerchantController.java index 1f3f9df..c2528f2 100644 --- a/src/main/java/group/goforward/battlbuilder/web/admin/AdminMerchantController.java +++ b/src/main/java/group/goforward/battlbuilder/web/admin/controller/AdminMerchantController.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.admin; +package group.goforward.battlbuilder.web.admin.controller; import group.goforward.battlbuilder.services.MerchantFeedImportService; import org.springframework.http.ResponseEntity; diff --git a/src/main/java/group/goforward/battlbuilder/web/admin/AdminProductController.java b/src/main/java/group/goforward/battlbuilder/web/admin/controller/AdminProductController.java similarity index 97% rename from src/main/java/group/goforward/battlbuilder/web/admin/AdminProductController.java rename to src/main/java/group/goforward/battlbuilder/web/admin/controller/AdminProductController.java index 84e4b3c..e9fbcab 100644 --- a/src/main/java/group/goforward/battlbuilder/web/admin/AdminProductController.java +++ b/src/main/java/group/goforward/battlbuilder/web/admin/controller/AdminProductController.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.admin; +package group.goforward.battlbuilder.web.admin.controller; import group.goforward.battlbuilder.services.admin.AdminProductService; import group.goforward.battlbuilder.web.dto.admin.AdminProductSearchRequest; diff --git a/src/main/java/group/goforward/battlbuilder/web/admin/AdminUserController.java b/src/main/java/group/goforward/battlbuilder/web/admin/controller/AdminUserController.java similarity index 95% rename from src/main/java/group/goforward/battlbuilder/web/admin/AdminUserController.java rename to src/main/java/group/goforward/battlbuilder/web/admin/controller/AdminUserController.java index b108818..2cd2999 100644 --- a/src/main/java/group/goforward/battlbuilder/web/admin/AdminUserController.java +++ b/src/main/java/group/goforward/battlbuilder/web/admin/controller/AdminUserController.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.admin; +package group.goforward.battlbuilder.web.admin.controller; import group.goforward.battlbuilder.common.Constants; import group.goforward.battlbuilder.services.admin.AdminUserService; diff --git a/src/main/java/group/goforward/battlbuilder/web/admin/CategoryMappingAdminController.java b/src/main/java/group/goforward/battlbuilder/web/admin/controller/CategoryMappingAdminController.java similarity index 94% rename from src/main/java/group/goforward/battlbuilder/web/admin/CategoryMappingAdminController.java rename to src/main/java/group/goforward/battlbuilder/web/admin/controller/CategoryMappingAdminController.java index cdd91db..f7a6166 100644 --- a/src/main/java/group/goforward/battlbuilder/web/admin/CategoryMappingAdminController.java +++ b/src/main/java/group/goforward/battlbuilder/web/admin/controller/CategoryMappingAdminController.java @@ -1,6 +1,6 @@ -package group.goforward.battlbuilder.web.admin; +package group.goforward.battlbuilder.web.admin.controller; -import group.goforward.battlbuilder.web.dto.PendingMappingBucketDto; +import group.goforward.battlbuilder.web.dto.mapping.PendingMappingBucketDto; import group.goforward.battlbuilder.services.MappingAdminService; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; diff --git a/src/main/java/group/goforward/battlbuilder/web/admin/package-info.java b/src/main/java/group/goforward/battlbuilder/web/admin/controller/package-info.java similarity index 82% rename from src/main/java/group/goforward/battlbuilder/web/admin/package-info.java rename to src/main/java/group/goforward/battlbuilder/web/admin/controller/package-info.java index babce08..47feb5b 100644 --- a/src/main/java/group/goforward/battlbuilder/web/admin/package-info.java +++ b/src/main/java/group/goforward/battlbuilder/web/admin/controller/package-info.java @@ -9,4 +9,4 @@ * @version 1.0 * @since 2025-12-10 */ -package group.goforward.battlbuilder.web.admin; +package group.goforward.battlbuilder.web.admin.controller; diff --git a/src/main/java/group/goforward/battlbuilder/web/dto/CategoryMappingRecommendationDto.java b/src/main/java/group/goforward/battlbuilder/web/dto/mapping/CategoryMappingRecommendationDto.java similarity index 84% rename from src/main/java/group/goforward/battlbuilder/web/dto/CategoryMappingRecommendationDto.java rename to src/main/java/group/goforward/battlbuilder/web/dto/mapping/CategoryMappingRecommendationDto.java index e1bdac7..6f58b00 100644 --- a/src/main/java/group/goforward/battlbuilder/web/dto/CategoryMappingRecommendationDto.java +++ b/src/main/java/group/goforward/battlbuilder/web/dto/mapping/CategoryMappingRecommendationDto.java @@ -1,5 +1,5 @@ // src/main/java/group/goforward/ballistic/web/dto/CategoryMappingRecommendationDto.java -package group.goforward.battlbuilder.web.dto; +package group.goforward.battlbuilder.web.dto.mapping; public record CategoryMappingRecommendationDto( String merchantName, diff --git a/src/main/java/group/goforward/battlbuilder/web/dto/MappingOptionsDto.java b/src/main/java/group/goforward/battlbuilder/web/dto/mapping/MappingOptionsDto.java similarity index 85% rename from src/main/java/group/goforward/battlbuilder/web/dto/MappingOptionsDto.java rename to src/main/java/group/goforward/battlbuilder/web/dto/mapping/MappingOptionsDto.java index 8dfc8ca..b9828b4 100644 --- a/src/main/java/group/goforward/battlbuilder/web/dto/MappingOptionsDto.java +++ b/src/main/java/group/goforward/battlbuilder/web/dto/mapping/MappingOptionsDto.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.dto; +package group.goforward.battlbuilder.web.dto.mapping; import java.util.List; diff --git a/src/main/java/group/goforward/battlbuilder/web/dto/PartRoleToCategoryDto.java b/src/main/java/group/goforward/battlbuilder/web/dto/mapping/PartRoleToCategoryDto.java similarity index 74% rename from src/main/java/group/goforward/battlbuilder/web/dto/PartRoleToCategoryDto.java rename to src/main/java/group/goforward/battlbuilder/web/dto/mapping/PartRoleToCategoryDto.java index 9aa570a..ce52426 100644 --- a/src/main/java/group/goforward/battlbuilder/web/dto/PartRoleToCategoryDto.java +++ b/src/main/java/group/goforward/battlbuilder/web/dto/mapping/PartRoleToCategoryDto.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.dto; +package group.goforward.battlbuilder.web.dto.mapping; public record PartRoleToCategoryDto( String platform, diff --git a/src/main/java/group/goforward/battlbuilder/web/dto/PendingMappingBucketDto.java b/src/main/java/group/goforward/battlbuilder/web/dto/mapping/PendingMappingBucketDto.java similarity index 74% rename from src/main/java/group/goforward/battlbuilder/web/dto/PendingMappingBucketDto.java rename to src/main/java/group/goforward/battlbuilder/web/dto/mapping/PendingMappingBucketDto.java index 9250f27..3c48609 100644 --- a/src/main/java/group/goforward/battlbuilder/web/dto/PendingMappingBucketDto.java +++ b/src/main/java/group/goforward/battlbuilder/web/dto/mapping/PendingMappingBucketDto.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.dto; +package group.goforward.battlbuilder.web.dto.mapping; public record PendingMappingBucketDto( Integer merchantId, diff --git a/src/main/java/group/goforward/battlbuilder/web/dto/RawCategoryMappingRowDto.java b/src/main/java/group/goforward/battlbuilder/web/dto/mapping/RawCategoryMappingRowDto.java similarity index 89% rename from src/main/java/group/goforward/battlbuilder/web/dto/RawCategoryMappingRowDto.java rename to src/main/java/group/goforward/battlbuilder/web/dto/mapping/RawCategoryMappingRowDto.java index d7abf43..c6e616c 100644 --- a/src/main/java/group/goforward/battlbuilder/web/dto/RawCategoryMappingRowDto.java +++ b/src/main/java/group/goforward/battlbuilder/web/dto/mapping/RawCategoryMappingRowDto.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.dto; +package group.goforward.battlbuilder.web.dto.mapping; public record RawCategoryMappingRowDto( Integer merchantId, diff --git a/src/main/java/group/goforward/battlbuilder/web/dto/UpdateBuildRequestDto.java b/src/main/java/group/goforward/battlbuilder/web/dto/mapping/UpdateBuildRequestDto.java similarity index 97% rename from src/main/java/group/goforward/battlbuilder/web/dto/UpdateBuildRequestDto.java rename to src/main/java/group/goforward/battlbuilder/web/dto/mapping/UpdateBuildRequestDto.java index 9a26908..4f52c37 100644 --- a/src/main/java/group/goforward/battlbuilder/web/dto/UpdateBuildRequestDto.java +++ b/src/main/java/group/goforward/battlbuilder/web/dto/mapping/UpdateBuildRequestDto.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.dto; +package group.goforward.battlbuilder.web.dto.mapping; import java.util.List; diff --git a/src/main/java/group/goforward/battlbuilder/web/dto/UpsertMerchantCategoryMappingRequest.java b/src/main/java/group/goforward/battlbuilder/web/dto/mapping/UpsertMerchantCategoryMappingRequest.java similarity index 89% rename from src/main/java/group/goforward/battlbuilder/web/dto/UpsertMerchantCategoryMappingRequest.java rename to src/main/java/group/goforward/battlbuilder/web/dto/mapping/UpsertMerchantCategoryMappingRequest.java index 3824108..db89ee9 100644 --- a/src/main/java/group/goforward/battlbuilder/web/dto/UpsertMerchantCategoryMappingRequest.java +++ b/src/main/java/group/goforward/battlbuilder/web/dto/mapping/UpsertMerchantCategoryMappingRequest.java @@ -1,4 +1,4 @@ -package group.goforward.battlbuilder.web.dto; +package group.goforward.battlbuilder.web.dto.mapping; public class UpsertMerchantCategoryMappingRequest {