diff --git a/src/main/java/com/aida/seller/module/listing/service/ListingServiceImpl.java b/src/main/java/com/aida/seller/module/listing/service/ListingServiceImpl.java index 5001f19..910d09c 100644 --- a/src/main/java/com/aida/seller/module/listing/service/ListingServiceImpl.java +++ b/src/main/java/com/aida/seller/module/listing/service/ListingServiceImpl.java @@ -29,6 +29,7 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Set; import java.util.stream.Collectors; /** @@ -83,6 +84,7 @@ public class ListingServiceImpl extends ServiceImpl images) { + Set requiredCategories = Set.of( + ImageCategoryEnum.COVER.getCode(), + ImageCategoryEnum.COVERFROM.getCode(), + ImageCategoryEnum.SKETCH.getCode(), + ImageCategoryEnum.APPAREL.getCode()); + + Set presentCategories = images.stream() + .map(ListingImageDTO::getCategory) + .filter(StringUtils::hasText) + .collect(Collectors.toSet()); + + for (String category : requiredCategories) { + if (!presentCategories.contains(category)) { + throw new BusinessException("category [" + category + "] is required"); + } + } + + for (ListingImageDTO img : images) { + String category = img.getCategory(); + if (requiredCategories.contains(category)) { + if (!StringUtils.hasText(img.getImageUrl())) { + throw new BusinessException(category + " category imageUrl cannot be null or empty"); + } + } + } + } + private String extractCover(List images) { if (CollectionUtils.isEmpty(images)) { return null; @@ -222,12 +252,10 @@ public class ListingServiceImpl extends ServiceImpl