reorg and some updates

This commit is contained in:
Don Strawsburg
2026-01-15 12:48:53 -05:00
parent ea58cc920f
commit 407c9cfa2c
25 changed files with 139 additions and 26 deletions

View File

@@ -20,9 +20,9 @@ public class BrandController {
private BrandService brandService;
//@Cacheable(value="getAllStates")
@GetMapping("/all")
public ResponseEntity<List<Brand>> getAllBrands() {
List<Brand> brand = repo.findAll();
return ResponseEntity.ok(brand);
public ResponseEntity<List<BrandDto>> getAllBrands() {
List<Brand> brands = repo.findAll();
return ResponseEntity.ok(BrandMapper.toDtoList(brands));
}
@GetMapping("/{id}")

View File

@@ -1,4 +1,4 @@
package group.goforward.battlbuilder.controllers;
package group.goforward.battlbuilder.controllers.api.v1;
//
import group.goforward.battlbuilder.services.PartRoleMappingService;
import group.goforward.battlbuilder.web.dto.admin.PartRoleMappingDto;

View File

@@ -1,4 +1,4 @@
package group.goforward.battlbuilder.controllers.admin;
package group.goforward.battlbuilder.controllers.api.v1.admin;
import group.goforward.battlbuilder.services.auth.impl.BetaInviteService;
import group.goforward.battlbuilder.web.dto.admin.AdminBetaRequestDto;

View File

@@ -1,4 +1,4 @@
package group.goforward.battlbuilder.controllers.admin;
package group.goforward.battlbuilder.controllers.api.v1.admin;
import group.goforward.battlbuilder.model.PartCategory;
import group.goforward.battlbuilder.repos.PartCategoryRepository;

View File

@@ -1,4 +1,4 @@
package group.goforward.battlbuilder.controllers.admin;
package group.goforward.battlbuilder.controllers.api.v1.admin;
import group.goforward.battlbuilder.services.admin.impl.AdminDashboardService;
import group.goforward.battlbuilder.web.dto.AdminDashboardOverviewDto;

View File

@@ -1,4 +1,4 @@
package group.goforward.battlbuilder.controllers.admin;
package group.goforward.battlbuilder.controllers.api.v1.admin;
import group.goforward.battlbuilder.repos.PartCategoryRepository;
import group.goforward.battlbuilder.web.dto.admin.PartCategoryDto;

View File

@@ -1,4 +1,4 @@
package group.goforward.battlbuilder.controllers.admin;
package group.goforward.battlbuilder.controllers.api.v1.admin;
import group.goforward.battlbuilder.model.PartCategory;
import group.goforward.battlbuilder.model.PartRoleMapping;

View File

@@ -1,4 +1,4 @@
package group.goforward.battlbuilder.controllers.admin;
package group.goforward.battlbuilder.controllers.api.v1.admin;
import group.goforward.battlbuilder.model.Platform;
import group.goforward.battlbuilder.repos.PlatformRepository;

View File

@@ -1,5 +1,5 @@
// MerchantAdminController.java
package group.goforward.battlbuilder.controllers.admin;
package group.goforward.battlbuilder.controllers.api.v1.admin;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
@@ -10,7 +10,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import group.goforward.battlbuilder.model.Merchant;
import group.goforward.battlbuilder.repos.MerchantRepository;
import group.goforward.battlbuilder.web.dto.MerchantAdminDto;
import group.goforward.battlbuilder.web.dto.merchant.MerchantAdminDto;
import java.util.List;

View File

@@ -1,4 +1,4 @@
package group.goforward.battlbuilder.controllers.admin;
package group.goforward.battlbuilder.controllers.api.v1.admin;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

View File

@@ -8,4 +8,4 @@
* @version 1.0
* @since 2025-12-10
*/
package group.goforward.battlbuilder.controllers.admin;
package group.goforward.battlbuilder.controllers.api.v1.admin;

View File

@@ -0,0 +1,11 @@
/**
* API controllers package for the BattlBuilder application.
* <p>
* Contains V@ REST API controllers for public-facing endpoints including
* brand management, state information, and user operations.
*
* @author Forward Group, LLC
* @version 1.0
* @since 2025-12-10
*/
package group.goforward.battlbuilder.controllers.api.v2;

View File

@@ -0,0 +1,62 @@
package group.goforward.battlbuilder.mapper;
import group.goforward.battlbuilder.model.Brand;
import group.goforward.battlbuilder.web.dto.brand.BrandDto;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
public final class BrandMapper {
private BrandMapper() {
// utility class
}
public static BrandDto toDto(Brand entity) {
if (entity == null) return null;
BrandDto dto = new BrandDto();
dto.setId(entity.getId() != null ? String.valueOf(entity.getId()) : null);
dto.setUuid(entity.getUuid());
dto.setName(entity.getName());
dto.setSlug(entity.getSlug());
dto.setWebsite(entity.getWebsite());
dto.setLogoUrl(entity.getLogoUrl());
dto.setCreatedAt(entity.getCreatedAt());
dto.setUpdatedAt(entity.getUpdatedAt());
return dto;
}
public static Brand toEntity(BrandDto dto) {
if (dto == null) return null;
Brand entity = new Brand();
if (dto.getId() != null && !dto.getId().isBlank()) {
try {
entity.setId(Integer.valueOf(dto.getId()));
} catch (NumberFormatException ignored) {
// leave id null if parsing fails
}
}
entity.setUuid(dto.getUuid());
entity.setName(dto.getName());
entity.setSlug(dto.getSlug());
entity.setWebsite(dto.getWebsite());
entity.setLogoUrl(dto.getLogoUrl());
entity.setCreatedAt(dto.getCreatedAt());
entity.setUpdatedAt(dto.getUpdatedAt());
// deletedAt remains managed by domain / persistence logic
return entity;
}
public static List<BrandDto> toDtoList(List<Brand> entities) {
if (entities == null) return null;
return entities.stream()
.filter(Objects::nonNull)
.map(BrandMapper::toDto)
.collect(Collectors.toList());
}
}

View File

@@ -1,4 +1,4 @@
package group.goforward.battlbuilder.web.mapper;
package group.goforward.battlbuilder.mapper;
import group.goforward.battlbuilder.web.dto.catalog.CatalogOptionDto;
import group.goforward.battlbuilder.web.dto.catalog.CatalogOptionRow;

View File

@@ -1,4 +1,4 @@
package group.goforward.battlbuilder.web.mapper;
package group.goforward.battlbuilder.mapper;
import group.goforward.battlbuilder.model.PartCategory;
import group.goforward.battlbuilder.model.PartRoleMapping;

View File

@@ -1,4 +1,4 @@
package group.goforward.battlbuilder.web.mapper;
package group.goforward.battlbuilder.mapper;
import group.goforward.battlbuilder.model.Product;
import group.goforward.battlbuilder.web.dto.product.ProductSummaryDto;

View File

@@ -3,8 +3,8 @@ package group.goforward.battlbuilder.services;
import group.goforward.battlbuilder.model.enums.ImportStatus;
import group.goforward.battlbuilder.repos.ProductRepository;
import group.goforward.battlbuilder.web.dto.ImportStatusByMerchantDto;
import group.goforward.battlbuilder.web.dto.ImportStatusSummaryDto;
import group.goforward.battlbuilder.web.dto.imports.ImportStatusByMerchantDto;
import group.goforward.battlbuilder.web.dto.imports.ImportStatusSummaryDto;
import org.springframework.stereotype.Service;
import java.util.List;

View File

@@ -3,7 +3,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.mapper.PartRoleMappingMapper;
import group.goforward.battlbuilder.mapper.PartRoleMappingMapper;
import org.springframework.stereotype.Service;
import java.util.List;

View File

@@ -9,7 +9,7 @@ import group.goforward.battlbuilder.services.CatalogQueryService;
import group.goforward.battlbuilder.services.ShortLinkService;
import group.goforward.battlbuilder.web.dto.product.ProductSummaryDto;
import group.goforward.battlbuilder.web.dto.catalog.CatalogProductIdsRequest;
import group.goforward.battlbuilder.web.mapper.ProductMapper;
import group.goforward.battlbuilder.mapper.ProductMapper;
import org.springframework.data.domain.*;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;

View File

@@ -9,7 +9,7 @@ import group.goforward.battlbuilder.services.ShortLinkService;
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 group.goforward.battlbuilder.mapper.ProductMapper;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;

View File

@@ -0,0 +1,40 @@
package group.goforward.battlbuilder.web.dto.brand;
import java.time.Instant;
import java.util.UUID;
public class BrandDto {
private String id;
private UUID uuid;
private String name;
private String slug;
private String website;
private String logoUrl;
private Instant createdAt;
private Instant updatedAt;
public String getId() { return id; }
public void setId(String id) { this.id = id; }
public UUID getUuid() { return uuid; }
public void setUuid(UUID uuid) { this.uuid = uuid; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getSlug() { return slug; }
public void setSlug(String slug) { this.slug = slug; }
public String getWebsite() { return website; }
public void setWebsite(String website) { this.website = website; }
public String getLogoUrl() { return logoUrl; }
public void setLogoUrl(String logoUrl) { this.logoUrl = logoUrl; }
public Instant getCreatedAt() { return createdAt; }
public void setCreatedAt(Instant createdAt) { this.createdAt = createdAt; }
public Instant getUpdatedAt() { return updatedAt; }
public void setUpdatedAt(Instant updatedAt) { this.updatedAt = updatedAt; }
}

View File

@@ -1,5 +1,5 @@
// src/main/java/group/goforward/ballistic/web/dto/ImportStatusByMerchantDto.java
package group.goforward.battlbuilder.web.dto;
package group.goforward.battlbuilder.web.dto.imports;
import group.goforward.battlbuilder.model.enums.ImportStatus;

View File

@@ -1,5 +1,5 @@
// src/main/java/group/goforward/ballistic/web/dto/ImportStatusSummaryDto.java
package group.goforward.battlbuilder.web.dto;
package group.goforward.battlbuilder.web.dto.imports;
import group.goforward.battlbuilder.model.enums.ImportStatus;

View File

@@ -1,5 +1,5 @@
// MerchantAdminDto.java
package group.goforward.battlbuilder.web.dto;
package group.goforward.battlbuilder.web.dto.merchant;
import java.time.OffsetDateTime;

View File

@@ -1,4 +1,4 @@
package group.goforward.battlbuilder.web.dto;
package group.goforward.battlbuilder.web.dto.merchant;
public class MerchantCategoryMappingDto {