diff --git a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminCreateMenuRequest.java b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminCreateMenuRequest.java index d51030170..525526686 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminCreateMenuRequest.java +++ b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminCreateMenuRequest.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.Menu; +import in.koreatech.koin.domain.shop.model.menu.Menu; import in.koreatech.koin.global.validation.NotBlankElement; import in.koreatech.koin.global.validation.SingleMenuPrice; import in.koreatech.koin.global.validation.UniqueId; diff --git a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminCreateShopCategoryRequest.java b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminCreateShopCategoryRequest.java index 196d7146c..b664bba7d 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminCreateShopCategoryRequest.java +++ b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminCreateShopCategoryRequest.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.ShopCategory; +import in.koreatech.koin.domain.shop.model.shop.ShopCategory; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema.RequiredMode; import jakarta.validation.constraints.NotBlank; diff --git a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminCreateShopRequest.java b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminCreateShopRequest.java index c2b917dea..c3ca69072 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminCreateShopRequest.java +++ b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminCreateShopRequest.java @@ -10,8 +10,8 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.model.ShopOpen; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.model.shop.ShopOpen; import in.koreatech.koin.global.validation.NotBlankElement; import in.koreatech.koin.global.validation.UniqueId; import in.koreatech.koin.global.validation.UniqueUrl; diff --git a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminMenuCategoriesResponse.java b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminMenuCategoriesResponse.java index b1a0508a9..b96faed3d 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminMenuCategoriesResponse.java +++ b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminMenuCategoriesResponse.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.MenuCategory; +import in.koreatech.koin.domain.shop.model.menu.MenuCategory; import io.swagger.v3.oas.annotations.media.Schema; @JsonNaming(value = SnakeCaseStrategy.class) diff --git a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminMenuDetailResponse.java b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminMenuDetailResponse.java index 8942d7d91..b003b9597 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminMenuDetailResponse.java +++ b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminMenuDetailResponse.java @@ -8,10 +8,10 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.Menu; -import in.koreatech.koin.domain.shop.model.MenuCategory; -import in.koreatech.koin.domain.shop.model.MenuImage; -import in.koreatech.koin.domain.shop.model.MenuOption; +import in.koreatech.koin.domain.shop.model.menu.Menu; +import in.koreatech.koin.domain.shop.model.menu.MenuCategory; +import in.koreatech.koin.domain.shop.model.menu.MenuImage; +import in.koreatech.koin.domain.shop.model.menu.MenuOption; import in.koreatech.koin.global.exception.KoinIllegalStateException; import io.swagger.v3.oas.annotations.media.Schema; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminModifyShopRequest.java b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminModifyShopRequest.java index 16b8c6d85..d428a17b5 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminModifyShopRequest.java +++ b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminModifyShopRequest.java @@ -10,8 +10,8 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.model.ShopOpen; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.model.shop.ShopOpen; import in.koreatech.koin.global.validation.NotBlankElement; import in.koreatech.koin.global.validation.UniqueId; import in.koreatech.koin.global.validation.UniqueUrl; diff --git a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminModifyShopReviewReportStatusRequest.java b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminModifyShopReviewReportStatusRequest.java index d66bcd019..9c4bf71f0 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminModifyShopReviewReportStatusRequest.java +++ b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminModifyShopReviewReportStatusRequest.java @@ -5,7 +5,7 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.ReportStatus; +import in.koreatech.koin.domain.shop.model.review.ReportStatus; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; diff --git a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopCategoriesResponse.java b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopCategoriesResponse.java index 965e79cc8..c1db7c43a 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopCategoriesResponse.java +++ b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopCategoriesResponse.java @@ -10,7 +10,7 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.ShopCategory; +import in.koreatech.koin.domain.shop.model.shop.ShopCategory; import in.koreatech.koin.global.model.Criteria; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopCategoryResponse.java b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopCategoryResponse.java index c3b628a19..874e8e6cb 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopCategoryResponse.java +++ b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopCategoryResponse.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.ShopCategory; +import in.koreatech.koin.domain.shop.model.shop.ShopCategory; import io.swagger.v3.oas.annotations.media.Schema; @JsonNaming(value = SnakeCaseStrategy.class) diff --git a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopMenuResponse.java b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopMenuResponse.java index cc8ff0d30..df230101b 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopMenuResponse.java +++ b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopMenuResponse.java @@ -10,11 +10,11 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.Menu; -import in.koreatech.koin.domain.shop.model.MenuCategory; -import in.koreatech.koin.domain.shop.model.MenuCategoryMap; -import in.koreatech.koin.domain.shop.model.MenuImage; -import in.koreatech.koin.domain.shop.model.MenuOption; +import in.koreatech.koin.domain.shop.model.menu.Menu; +import in.koreatech.koin.domain.shop.model.menu.MenuCategory; +import in.koreatech.koin.domain.shop.model.menu.MenuCategoryMap; +import in.koreatech.koin.domain.shop.model.menu.MenuImage; +import in.koreatech.koin.domain.shop.model.menu.MenuOption; import io.swagger.v3.oas.annotations.media.Schema; @JsonNaming(value = SnakeCaseStrategy.class) diff --git a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopResponse.java b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopResponse.java index 8522b3af1..23b94f579 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopResponse.java +++ b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopResponse.java @@ -12,10 +12,10 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.model.ShopCategory; -import in.koreatech.koin.domain.shop.model.ShopImage; -import in.koreatech.koin.domain.shop.model.ShopOpen; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.model.shop.ShopCategory; +import in.koreatech.koin.domain.shop.model.shop.ShopImage; +import in.koreatech.koin.domain.shop.model.shop.ShopOpen; import io.swagger.v3.oas.annotations.media.Schema; @JsonNaming(value = SnakeCaseStrategy.class) diff --git a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopsResponse.java b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopsResponse.java index 57bee7f33..7478f7d93 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopsResponse.java +++ b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopsResponse.java @@ -10,7 +10,7 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.Shop; +import in.koreatech.koin.domain.shop.model.shop.Shop; import in.koreatech.koin.global.model.Criteria; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopsReviewsResponse.java b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopsReviewsResponse.java index 113bd0e6d..f6a0e6696 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopsReviewsResponse.java +++ b/src/main/java/in/koreatech/koin/admin/shop/dto/AdminShopsReviewsResponse.java @@ -3,7 +3,12 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.*; + +import in.koreatech.koin.domain.shop.model.review.ShopReview; +import in.koreatech.koin.domain.shop.model.review.ShopReviewImage; +import in.koreatech.koin.domain.shop.model.review.ShopReviewMenu; +import in.koreatech.koin.domain.shop.model.review.ShopReviewReport; +import in.koreatech.koin.domain.shop.model.shop.Shop; import in.koreatech.koin.global.model.Criteria; import io.swagger.v3.oas.annotations.media.Schema; import org.springframework.data.domain.Page; @@ -12,7 +17,7 @@ import java.util.List; import java.util.Optional; -import static in.koreatech.koin.domain.shop.model.ReportStatus.UNHANDLED; +import static in.koreatech.koin.domain.shop.model.review.ReportStatus.UNHANDLED; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED; @JsonNaming(value = PropertyNamingStrategies.SnakeCaseStrategy.class) diff --git a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminEventArticleRepository.java b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminEventArticleRepository.java index 400a59962..1683d0b4a 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminEventArticleRepository.java +++ b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminEventArticleRepository.java @@ -6,7 +6,7 @@ import org.springframework.data.repository.Repository; import org.springframework.data.repository.query.Param; -import in.koreatech.koin.domain.shop.model.EventArticle; +import in.koreatech.koin.domain.shop.model.article.EventArticle; public interface AdminEventArticleRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminMenuCategoryMapRepository.java b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminMenuCategoryMapRepository.java index d0f9c352f..ed5724246 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminMenuCategoryMapRepository.java +++ b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminMenuCategoryMapRepository.java @@ -2,7 +2,7 @@ import org.springframework.data.repository.Repository; -import in.koreatech.koin.domain.shop.model.MenuCategoryMap; +import in.koreatech.koin.domain.shop.model.menu.MenuCategoryMap; public interface AdminMenuCategoryMapRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminMenuCategoryRepository.java b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminMenuCategoryRepository.java index ebc1b4abe..b36529c1c 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminMenuCategoryRepository.java +++ b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminMenuCategoryRepository.java @@ -6,7 +6,7 @@ import org.springframework.data.repository.Repository; import in.koreatech.koin.domain.shop.exception.MenuCategoryNotFoundException; -import in.koreatech.koin.domain.shop.model.MenuCategory; +import in.koreatech.koin.domain.shop.model.menu.MenuCategory; public interface AdminMenuCategoryRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminMenuDetailRepository.java b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminMenuDetailRepository.java index 09c910a08..8dc478491 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminMenuDetailRepository.java +++ b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminMenuDetailRepository.java @@ -2,7 +2,7 @@ import org.springframework.data.repository.Repository; -import in.koreatech.koin.domain.shop.model.MenuOption; +import in.koreatech.koin.domain.shop.model.menu.MenuOption; public interface AdminMenuDetailRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminMenuImageRepository.java b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminMenuImageRepository.java index 8f9066321..8fce1a32e 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminMenuImageRepository.java +++ b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminMenuImageRepository.java @@ -2,7 +2,7 @@ import org.springframework.data.repository.Repository; -import in.koreatech.koin.domain.shop.model.MenuImage; +import in.koreatech.koin.domain.shop.model.menu.MenuImage; public interface AdminMenuImageRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminMenuRepository.java b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminMenuRepository.java index 61d773248..0d6cdff7a 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminMenuRepository.java +++ b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminMenuRepository.java @@ -6,7 +6,7 @@ import org.springframework.data.repository.Repository; import in.koreatech.koin.domain.shop.exception.MenuNotFoundException; -import in.koreatech.koin.domain.shop.model.Menu; +import in.koreatech.koin.domain.shop.model.menu.Menu; public interface AdminMenuRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopCategoryMapRepository.java b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopCategoryMapRepository.java index ba378ed9e..294193512 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopCategoryMapRepository.java +++ b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopCategoryMapRepository.java @@ -4,7 +4,7 @@ import org.springframework.data.repository.Repository; -import in.koreatech.koin.domain.shop.model.ShopCategoryMap; +import in.koreatech.koin.domain.shop.model.shop.ShopCategoryMap; public interface AdminShopCategoryMapRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopCategoryRepository.java b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopCategoryRepository.java index 53db5202e..4a115a863 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopCategoryRepository.java +++ b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopCategoryRepository.java @@ -10,7 +10,7 @@ import org.springframework.data.repository.query.Param; import in.koreatech.koin.domain.shop.exception.ShopCategoryNotFoundException; -import in.koreatech.koin.domain.shop.model.ShopCategory; +import in.koreatech.koin.domain.shop.model.shop.ShopCategory; public interface AdminShopCategoryRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopImageRepository.java b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopImageRepository.java index 1749d489b..bec9d713d 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopImageRepository.java +++ b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopImageRepository.java @@ -4,7 +4,7 @@ import org.springframework.data.repository.Repository; -import in.koreatech.koin.domain.shop.model.ShopImage; +import in.koreatech.koin.domain.shop.model.shop.ShopImage; public interface AdminShopImageRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopOpenRepository.java b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopOpenRepository.java index 8b1fa5db0..fa71bf347 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopOpenRepository.java +++ b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopOpenRepository.java @@ -4,7 +4,7 @@ import org.springframework.data.repository.Repository; -import in.koreatech.koin.domain.shop.model.ShopOpen; +import in.koreatech.koin.domain.shop.model.shop.ShopOpen; public interface AdminShopOpenRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopRepository.java b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopRepository.java index 4eda89f19..83fe2198b 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopRepository.java +++ b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopRepository.java @@ -11,7 +11,7 @@ import org.springframework.data.repository.query.Param; import in.koreatech.koin.domain.shop.exception.ShopNotFoundException; -import in.koreatech.koin.domain.shop.model.Shop; +import in.koreatech.koin.domain.shop.model.shop.Shop; public interface AdminShopRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopReviewCustomRepository.java b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopReviewCustomRepository.java index 3d4d7cf9d..b02ec78f1 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopReviewCustomRepository.java +++ b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopReviewCustomRepository.java @@ -1,6 +1,6 @@ package in.koreatech.koin.admin.shop.repository; -import in.koreatech.koin.domain.shop.model.ShopReview; +import in.koreatech.koin.domain.shop.model.review.ShopReview; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; diff --git a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopReviewCustomRepositoryImpl.java b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopReviewCustomRepositoryImpl.java index 6bed7e7d1..64874759b 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopReviewCustomRepositoryImpl.java +++ b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopReviewCustomRepositoryImpl.java @@ -1,18 +1,20 @@ package in.koreatech.koin.admin.shop.repository; -import static in.koreatech.koin.domain.shop.model.ReportStatus.UNHANDLED; +import static in.koreatech.koin.domain.shop.model.review.ReportStatus.UNHANDLED; + +import java.util.List; -import com.querydsl.core.BooleanBuilder; -import com.querydsl.jpa.impl.JPAQueryFactory; -import in.koreatech.koin.domain.shop.model.QShopReview; -import in.koreatech.koin.domain.shop.model.ShopReview; -import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Repository; -import java.util.List; +import com.querydsl.core.BooleanBuilder; +import com.querydsl.jpa.impl.JPAQueryFactory; + +import in.koreatech.koin.domain.shop.model.review.QShopReview; +import in.koreatech.koin.domain.shop.model.review.ShopReview; +import lombok.RequiredArgsConstructor; @Repository @RequiredArgsConstructor diff --git a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopReviewRepository.java b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopReviewRepository.java index ddce9bb69..2458e26b8 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopReviewRepository.java +++ b/src/main/java/in/koreatech/koin/admin/shop/repository/AdminShopReviewRepository.java @@ -2,7 +2,7 @@ import java.util.Optional; -import in.koreatech.koin.domain.shop.model.ShopReview; +import in.koreatech.koin.domain.shop.model.review.ShopReview; import org.springframework.data.repository.Repository; public interface AdminShopReviewRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/admin/shop/service/AdminShopService.java b/src/main/java/in/koreatech/koin/admin/shop/service/AdminShopService.java index 2df999e4d..b63b33e81 100644 --- a/src/main/java/in/koreatech/koin/admin/shop/service/AdminShopService.java +++ b/src/main/java/in/koreatech/koin/admin/shop/service/AdminShopService.java @@ -1,6 +1,6 @@ package in.koreatech.koin.admin.shop.service; -import static in.koreatech.koin.domain.shop.model.ReportStatus.DELETED; +import static in.koreatech.koin.domain.shop.model.review.ReportStatus.DELETED; import java.time.Clock; import java.time.LocalDate; @@ -12,7 +12,7 @@ import in.koreatech.koin.admin.shop.dto.*; import in.koreatech.koin.admin.shop.repository.*; import in.koreatech.koin.domain.shop.exception.ReviewNotFoundException; -import in.koreatech.koin.domain.shop.model.*; + import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort; @@ -22,6 +22,19 @@ import in.koreatech.koin.admin.shop.dto.AdminCreateShopRequest.InnerShopOpen; import in.koreatech.koin.admin.shop.dto.AdminModifyMenuRequest.InnerOptionPrice; import in.koreatech.koin.admin.shop.exception.ShopCategoryDuplicationException; +import in.koreatech.koin.domain.shop.model.menu.Menu; +import in.koreatech.koin.domain.shop.model.menu.MenuCategory; +import in.koreatech.koin.domain.shop.model.menu.MenuCategoryMap; +import in.koreatech.koin.domain.shop.model.menu.MenuImage; +import in.koreatech.koin.domain.shop.model.menu.MenuOption; +import in.koreatech.koin.domain.shop.model.review.ReportStatus; +import in.koreatech.koin.domain.shop.model.review.ShopReview; +import in.koreatech.koin.domain.shop.model.review.ShopReviewReport; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.model.shop.ShopCategory; +import in.koreatech.koin.domain.shop.model.shop.ShopCategoryMap; +import in.koreatech.koin.domain.shop.model.shop.ShopImage; +import in.koreatech.koin.domain.shop.model.shop.ShopOpen; import in.koreatech.koin.global.exception.KoinIllegalArgumentException; import in.koreatech.koin.global.model.Criteria; import jakarta.persistence.EntityManager; diff --git a/src/main/java/in/koreatech/koin/admin/user/service/AdminUserService.java b/src/main/java/in/koreatech/koin/admin/user/service/AdminUserService.java index abbf59108..9701845e5 100644 --- a/src/main/java/in/koreatech/koin/admin/user/service/AdminUserService.java +++ b/src/main/java/in/koreatech/koin/admin/user/service/AdminUserService.java @@ -42,7 +42,7 @@ import in.koreatech.koin.domain.owner.model.Owner; import in.koreatech.koin.domain.owner.model.OwnerIncludingShop; import in.koreatech.koin.domain.owner.model.OwnerShop; -import in.koreatech.koin.domain.shop.model.Shop; +import in.koreatech.koin.domain.shop.model.shop.Shop; import in.koreatech.koin.domain.user.exception.DuplicationNicknameException; import in.koreatech.koin.domain.user.exception.StudentDepartmentNotValidException; import in.koreatech.koin.domain.user.exception.UserNotFoundException; diff --git a/src/main/java/in/koreatech/koin/domain/benefit/controller/BenefitApi.java b/src/main/java/in/koreatech/koin/domain/benefit/controller/BenefitApi.java new file mode 100644 index 000000000..1d650a8ef --- /dev/null +++ b/src/main/java/in/koreatech/koin/domain/benefit/controller/BenefitApi.java @@ -0,0 +1,46 @@ +package in.koreatech.koin.domain.benefit.controller; + +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; + +import in.koreatech.koin.domain.benefit.dto.BenefitCategoryResponse; +import in.koreatech.koin.domain.benefit.dto.BenefitShopsResponse; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; + +@Tag(name = "(Normal) ShopBenefit: 상점 혜택", description = "상점 혜택 정보를 관리한다") +@RequestMapping("/benefit") +public interface BenefitApi { + + @ApiResponses( + value = { + @ApiResponse(responseCode = "200"), + @ApiResponse(responseCode = "401", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", content = @Content(schema = @Schema(hidden = true))), + } + ) + @Operation(summary = "상점 혜택 카테고리를 모두 조회한다.") + @GetMapping("/categories") + ResponseEntity getBenefitCategories(); + + @ApiResponses( + value = { + @ApiResponse(responseCode = "200"), + @ApiResponse(responseCode = "401", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", content = @Content(schema = @Schema(hidden = true))), + } + ) + @Operation(summary = "특정 혜택 카테고리에 속하는 상점을 모두 조회한다.") + @GetMapping("/{id}/shops") + ResponseEntity getBenefitShops( + @PathVariable("id") Integer benefitId + ); +} diff --git a/src/main/java/in/koreatech/koin/domain/benefit/controller/BenefitController.java b/src/main/java/in/koreatech/koin/domain/benefit/controller/BenefitController.java new file mode 100644 index 000000000..b70740706 --- /dev/null +++ b/src/main/java/in/koreatech/koin/domain/benefit/controller/BenefitController.java @@ -0,0 +1,34 @@ +package in.koreatech.koin.domain.benefit.controller; + +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import in.koreatech.koin.domain.benefit.dto.BenefitCategoryResponse; +import in.koreatech.koin.domain.benefit.dto.BenefitShopsResponse; +import in.koreatech.koin.domain.benefit.service.ShopBenefitService; +import lombok.RequiredArgsConstructor; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/benefit") +public class BenefitController implements BenefitApi { + + private final ShopBenefitService shopBenefitService; + + @GetMapping("/categories") + public ResponseEntity getBenefitCategories() { + BenefitCategoryResponse benefitCategoryResponse = shopBenefitService.getBenefitCategories(); + return ResponseEntity.ok(benefitCategoryResponse); + } + + @GetMapping("/{id}/shops") + public ResponseEntity getBenefitShops( + @PathVariable("id") Integer benefitId + ) { + BenefitShopsResponse benefitShopsResponse = shopBenefitService.getBenefitShops(benefitId); + return ResponseEntity.ok(benefitShopsResponse); + } +} diff --git a/src/main/java/in/koreatech/koin/domain/benefit/dto/BenefitCategoryResponse.java b/src/main/java/in/koreatech/koin/domain/benefit/dto/BenefitCategoryResponse.java new file mode 100644 index 000000000..bf0f6fe3e --- /dev/null +++ b/src/main/java/in/koreatech/koin/domain/benefit/dto/BenefitCategoryResponse.java @@ -0,0 +1,40 @@ +package in.koreatech.koin.domain.benefit.dto; + +import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.NOT_REQUIRED; + +import java.util.List; + +import in.koreatech.koin.domain.benefit.model.BenefitCategory; +import io.swagger.v3.oas.annotations.media.Schema; + +public record BenefitCategoryResponse( + @Schema(description = "혜택 카테고리 리스트", requiredMode = NOT_REQUIRED) + List benefits +) { + + public static BenefitCategoryResponse from(List benefitCategories) { + return new BenefitCategoryResponse( + benefitCategories.stream().map(InnerBenefitResponse::from).toList() + ); + } + + public record InnerBenefitResponse( + @Schema(description = "혜택 id", example = "1", requiredMode = NOT_REQUIRED) + Integer id, + + @Schema(description = "혜택 카테고리 제목", example = "배달비 아끼기", requiredMode = NOT_REQUIRED) + String title, + + @Schema(description = "혜택 카테고리 설명", example = "계좌이체하면 배달비가 무료(할인)인 상점들만 모아뒀어요.", requiredMode = NOT_REQUIRED) + String detail + ) { + + public static InnerBenefitResponse from(BenefitCategory benefitCategory) { + return new InnerBenefitResponse( + benefitCategory.getId(), + benefitCategory.getTitle(), + benefitCategory.getDetail() + ); + } + } +} diff --git a/src/main/java/in/koreatech/koin/domain/benefit/dto/BenefitShopsResponse.java b/src/main/java/in/koreatech/koin/domain/benefit/dto/BenefitShopsResponse.java new file mode 100644 index 000000000..030ad029a --- /dev/null +++ b/src/main/java/in/koreatech/koin/domain/benefit/dto/BenefitShopsResponse.java @@ -0,0 +1,137 @@ +package in.koreatech.koin.domain.benefit.dto; + +import static com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; +import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.NOT_REQUIRED; +import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED; + +import java.time.LocalTime; +import java.util.Comparator; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonNaming; + +import in.koreatech.koin.domain.shop.model.review.ShopReview; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.model.shop.ShopOpen; +import io.swagger.v3.oas.annotations.media.Schema; + +@JsonNaming(value = SnakeCaseStrategy.class) +public record BenefitShopsResponse( + @Schema(example = "100", description = "상점 개수", requiredMode = REQUIRED) + Integer count, + + @Schema(description = "상점 정보") + List shops +) { + + public static BenefitShopsResponse from( + List shops + ) { + return new BenefitShopsResponse(shops.size(), shops); + } + + public record InnerShopResponse( + @Schema(example = "[1, 2, 3]", description = "속해있는 상점 카테고리들의 고유 id 리스트", requiredMode = NOT_REQUIRED) + List categoryIds, + + @Schema(example = "true", description = "배달 가능 여부", requiredMode = REQUIRED) + boolean delivery, + + @Schema(example = "1", description = "고유 id", requiredMode = REQUIRED) + Integer id, + + @Schema(example = "수신반점", description = "이름", requiredMode = REQUIRED) + String name, + + @Schema(description = "요일별 휴무 여부 및 장사 시간") + List open, + + @Schema(example = "true", description = "계좌 이체 가능 여부", requiredMode = REQUIRED) + boolean payBank, + + @Schema(example = "true", description = "카드 계산 가능 여부", requiredMode = REQUIRED) + boolean payCard, + + @Schema(example = "041-000-0000", description = "전화번호", requiredMode = NOT_REQUIRED) + String phone, + + @Schema(example = "true", description = "삭제 여부", requiredMode = REQUIRED) + boolean isEvent, + + @Schema(example = "true", description = "운영중 여부", requiredMode = REQUIRED) + boolean isOpen, + + @Schema(example = "4.9", description = "평균 별점", requiredMode = REQUIRED) + double averageRate, + + @Schema(example = "10", description = "리뷰 개수", requiredMode = REQUIRED) + long reviewCount + ) { + + public static Comparator getComparator() { + return Comparator + .comparing(InnerShopResponse::isOpen, Comparator.reverseOrder()) + .thenComparing(InnerShopResponse::averageRate, Comparator.reverseOrder()) + .thenComparing(InnerShopResponse::name); + } + + public static InnerShopResponse from( + Shop shop, + boolean isEvent, + boolean isOpen + ) { + return new InnerShopResponse( + shop.getShopCategories().stream().map(shopCategoryMap -> + shopCategoryMap.getShopCategory().getId() + ).toList(), + shop.getDelivery(), + shop.getId(), + shop.getName(), + shop.getShopOpens().stream().sorted().map(InnerShopOpen::from).toList(), + shop.isPayBank(), + shop.isPayCard(), + shop.getPhone(), + isEvent, + isOpen, + Math.round(shop.getReviews().stream() + .filter(review -> !review.isDeleted()) + .mapToInt(ShopReview::getRating) + .average() + .orElse(0.0) * 10) / 10.0, + shop.getReviews().stream() + .filter(review -> !review.isDeleted()) + .count() + ); + } + + @JsonNaming(value = SnakeCaseStrategy.class) + public record InnerShopOpen( + @Schema(example = "MONDAY", description = """ + 요일 = ['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY'] + """, requiredMode = REQUIRED) + String dayOfWeek, + + @Schema(example = "false", description = "휴무 여부", requiredMode = REQUIRED) + Boolean closed, + + @JsonFormat(pattern = "HH:mm") + @Schema(example = "02:00", description = "오픈 시간", requiredMode = NOT_REQUIRED) + LocalTime openTime, + + @JsonFormat(pattern = "HH:mm") + @Schema(example = "16:00", description = "마감 시간", requiredMode = NOT_REQUIRED) + LocalTime closeTime + ) { + + public static InnerShopOpen from(ShopOpen shopOpen) { + return new InnerShopOpen( + shopOpen.getDayOfWeek(), + shopOpen.isClosed(), + shopOpen.getOpenTime(), + shopOpen.getCloseTime() + ); + } + } + } +} diff --git a/src/main/java/in/koreatech/koin/domain/benefit/model/BenefitCategory.java b/src/main/java/in/koreatech/koin/domain/benefit/model/BenefitCategory.java new file mode 100644 index 000000000..d17217d43 --- /dev/null +++ b/src/main/java/in/koreatech/koin/domain/benefit/model/BenefitCategory.java @@ -0,0 +1,40 @@ +package in.koreatech.koin.domain.benefit.model; + +import static jakarta.persistence.GenerationType.IDENTITY; +import static lombok.AccessLevel.PROTECTED; + +import in.koreatech.koin.global.domain.BaseEntity; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import jakarta.validation.constraints.Size; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Getter +@Table(name = "shop_benefit_categories") +@NoArgsConstructor(access = PROTECTED) +public class BenefitCategory extends BaseEntity { + + @Id + @GeneratedValue(strategy = IDENTITY) + private Integer id; + + @Size(min = 5, max = 20) + @Column(name = "title", nullable = false) + String title; + + @Size(min = 10, max = 100) + @Column(name = "detail") + String detail; + + @Builder + public BenefitCategory(String title, String detail) { + this.title = title; + this.detail = detail; + } +} diff --git a/src/main/java/in/koreatech/koin/domain/benefit/model/BenefitCategoryMap.java b/src/main/java/in/koreatech/koin/domain/benefit/model/BenefitCategoryMap.java new file mode 100644 index 000000000..5da5479df --- /dev/null +++ b/src/main/java/in/koreatech/koin/domain/benefit/model/BenefitCategoryMap.java @@ -0,0 +1,42 @@ +package in.koreatech.koin.domain.benefit.model; + +import static jakarta.persistence.GenerationType.IDENTITY; +import static lombok.AccessLevel.PROTECTED; + +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.global.domain.BaseEntity; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Getter +@Table(name = "shop_benefit_category_map") +@NoArgsConstructor(access = PROTECTED) +public class BenefitCategoryMap extends BaseEntity { + + @Id + @GeneratedValue(strategy = IDENTITY) + private Integer id; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "shop_id", referencedColumnName = "id", nullable = false) + private Shop shop; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "benefit_id", referencedColumnName = "id", nullable = false) + private BenefitCategory benefitCategory; + + @Builder + public BenefitCategoryMap(Shop shop, BenefitCategory benefitCategory) { + this.shop = shop; + this.benefitCategory = benefitCategory; + } +} diff --git a/src/main/java/in/koreatech/koin/domain/benefit/repository/BenefitCategoryMapRepository.java b/src/main/java/in/koreatech/koin/domain/benefit/repository/BenefitCategoryMapRepository.java new file mode 100644 index 000000000..a29f48c36 --- /dev/null +++ b/src/main/java/in/koreatech/koin/domain/benefit/repository/BenefitCategoryMapRepository.java @@ -0,0 +1,14 @@ +package in.koreatech.koin.domain.benefit.repository; + +import java.util.List; + +import org.springframework.data.repository.Repository; + +import in.koreatech.koin.domain.benefit.model.BenefitCategoryMap; + +public interface BenefitCategoryMapRepository extends Repository { + + List findAllByBenefitCategoryId(Integer benefitCategoryId); + + BenefitCategoryMap save(BenefitCategoryMap benefitCategoryMap); +} diff --git a/src/main/java/in/koreatech/koin/domain/benefit/repository/BenefitCategoryRepository.java b/src/main/java/in/koreatech/koin/domain/benefit/repository/BenefitCategoryRepository.java new file mode 100644 index 000000000..8285f9bdd --- /dev/null +++ b/src/main/java/in/koreatech/koin/domain/benefit/repository/BenefitCategoryRepository.java @@ -0,0 +1,14 @@ +package in.koreatech.koin.domain.benefit.repository; + +import java.util.List; + +import org.springframework.data.repository.Repository; + +import in.koreatech.koin.domain.benefit.model.BenefitCategory; + +public interface BenefitCategoryRepository extends Repository { + + List findAll(); + + BenefitCategory save(BenefitCategory benefitCategory); +} diff --git a/src/main/java/in/koreatech/koin/domain/benefit/service/ShopBenefitService.java b/src/main/java/in/koreatech/koin/domain/benefit/service/ShopBenefitService.java new file mode 100644 index 000000000..fe5cb4ccd --- /dev/null +++ b/src/main/java/in/koreatech/koin/domain/benefit/service/ShopBenefitService.java @@ -0,0 +1,51 @@ +package in.koreatech.koin.domain.benefit.service; + +import static in.koreatech.koin.domain.benefit.dto.BenefitShopsResponse.InnerShopResponse; + +import java.time.Clock; +import java.time.LocalDateTime; +import java.util.List; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import in.koreatech.koin.domain.benefit.dto.BenefitCategoryResponse; +import in.koreatech.koin.domain.benefit.dto.BenefitShopsResponse; +import in.koreatech.koin.domain.benefit.model.BenefitCategory; +import in.koreatech.koin.domain.benefit.model.BenefitCategoryMap; +import in.koreatech.koin.domain.benefit.repository.BenefitCategoryMapRepository; +import in.koreatech.koin.domain.benefit.repository.BenefitCategoryRepository; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.repository.event.EventArticleRepository; +import lombok.RequiredArgsConstructor; + +@Service +@Transactional(readOnly = true) +@RequiredArgsConstructor +public class ShopBenefitService { + + private final BenefitCategoryRepository benefitCategoryRepository; + private final BenefitCategoryMapRepository benefitCategoryMapRepository; + private final EventArticleRepository eventArticleRepository; + private final Clock clock; + + public BenefitCategoryResponse getBenefitCategories() { + List benefitCategories = benefitCategoryRepository.findAll(); + return BenefitCategoryResponse.from(benefitCategories); + } + + public BenefitShopsResponse getBenefitShops(Integer benefitId) { + List benefitCategoryMaps = benefitCategoryMapRepository.findAllByBenefitCategoryId(benefitId); + LocalDateTime now = LocalDateTime.now(clock); + List innerShopResponses = benefitCategoryMaps.stream() + .map(benefitCategoryMap -> { + Shop shop = benefitCategoryMap.getShop(); + boolean isDurationEvent = eventArticleRepository.isDurationEvent(shop.getId(), now.toLocalDate()); + return InnerShopResponse.from(shop, isDurationEvent, shop.isOpen(now)); + }) + .sorted(InnerShopResponse.getComparator()) + .toList(); + BenefitShopsResponse shopsResponse = BenefitShopsResponse.from(innerShopResponses); + return shopsResponse; + } +} diff --git a/src/main/java/in/koreatech/koin/domain/owner/dto/OwnerResponse.java b/src/main/java/in/koreatech/koin/domain/owner/dto/OwnerResponse.java index ea67d8e45..e2be696cf 100644 --- a/src/main/java/in/koreatech/koin/domain/owner/dto/OwnerResponse.java +++ b/src/main/java/in/koreatech/koin/domain/owner/dto/OwnerResponse.java @@ -10,7 +10,7 @@ import in.koreatech.koin.domain.owner.model.Owner; import in.koreatech.koin.domain.owner.model.OwnerAttachment; -import in.koreatech.koin.domain.shop.model.Shop; +import in.koreatech.koin.domain.shop.model.shop.Shop; import io.swagger.v3.oas.annotations.media.Schema; public record OwnerResponse( diff --git a/src/main/java/in/koreatech/koin/domain/owner/model/OwnerEventListener.java b/src/main/java/in/koreatech/koin/domain/owner/model/OwnerEventListener.java index f96d90279..cc6739954 100644 --- a/src/main/java/in/koreatech/koin/domain/owner/model/OwnerEventListener.java +++ b/src/main/java/in/koreatech/koin/domain/owner/model/OwnerEventListener.java @@ -10,8 +10,8 @@ import org.springframework.transaction.event.TransactionalEventListener; import in.koreatech.koin.domain.owner.repository.redis.OwnerVerificationStatusRepository; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.repository.ShopRepository; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.repository.shop.ShopRepository; import in.koreatech.koin.global.domain.slack.SlackClient; import in.koreatech.koin.global.domain.slack.model.SlackNotificationFactory; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/in/koreatech/koin/domain/owner/model/OwnerIncludingShop.java b/src/main/java/in/koreatech/koin/domain/owner/model/OwnerIncludingShop.java index 88caa4ae2..822280019 100644 --- a/src/main/java/in/koreatech/koin/domain/owner/model/OwnerIncludingShop.java +++ b/src/main/java/in/koreatech/koin/domain/owner/model/OwnerIncludingShop.java @@ -1,6 +1,6 @@ package in.koreatech.koin.domain.owner.model; -import in.koreatech.koin.domain.shop.model.Shop; +import in.koreatech.koin.domain.shop.model.shop.Shop; import lombok.Getter; @Getter diff --git a/src/main/java/in/koreatech/koin/domain/owner/service/OwnerService.java b/src/main/java/in/koreatech/koin/domain/owner/service/OwnerService.java index 90f645b8a..b79be7891 100644 --- a/src/main/java/in/koreatech/koin/domain/owner/service/OwnerService.java +++ b/src/main/java/in/koreatech/koin/domain/owner/service/OwnerService.java @@ -45,8 +45,8 @@ import in.koreatech.koin.domain.owner.repository.OwnerShopRedisRepository; import in.koreatech.koin.domain.owner.repository.redis.DailyVerificationLimitRepository; import in.koreatech.koin.domain.owner.repository.redis.OwnerVerificationStatusRepository; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.repository.ShopRepository; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.repository.shop.ShopRepository; import in.koreatech.koin.domain.user.model.User; import in.koreatech.koin.domain.user.model.UserToken; import in.koreatech.koin.domain.user.repository.UserRepository; diff --git a/src/main/java/in/koreatech/koin/domain/ownershop/controller/OwnerShopApi.java b/src/main/java/in/koreatech/koin/domain/ownershop/controller/OwnerShopApi.java index c5e1ec621..aec83453e 100644 --- a/src/main/java/in/koreatech/koin/domain/ownershop/controller/OwnerShopApi.java +++ b/src/main/java/in/koreatech/koin/domain/ownershop/controller/OwnerShopApi.java @@ -16,15 +16,15 @@ import in.koreatech.koin.domain.ownershop.dto.OwnerShopEventsResponse; import in.koreatech.koin.domain.ownershop.dto.OwnerShopsRequest; import in.koreatech.koin.domain.ownershop.dto.OwnerShopsResponse; -import in.koreatech.koin.domain.shop.dto.CreateCategoryRequest; -import in.koreatech.koin.domain.shop.dto.CreateMenuRequest; -import in.koreatech.koin.domain.shop.dto.MenuCategoriesResponse; -import in.koreatech.koin.domain.shop.dto.MenuDetailResponse; -import in.koreatech.koin.domain.shop.dto.ModifyCategoryRequest; -import in.koreatech.koin.domain.shop.dto.ModifyMenuRequest; -import in.koreatech.koin.domain.shop.dto.ModifyShopRequest; -import in.koreatech.koin.domain.shop.dto.ShopMenuResponse; -import in.koreatech.koin.domain.shop.dto.ShopResponse; +import in.koreatech.koin.domain.shop.dto.menu.CreateCategoryRequest; +import in.koreatech.koin.domain.shop.dto.menu.CreateMenuRequest; +import in.koreatech.koin.domain.shop.dto.menu.MenuCategoriesResponse; +import in.koreatech.koin.domain.shop.dto.menu.MenuDetailResponse; +import in.koreatech.koin.domain.shop.dto.menu.ModifyCategoryRequest; +import in.koreatech.koin.domain.shop.dto.menu.ModifyMenuRequest; +import in.koreatech.koin.domain.shop.dto.shop.ModifyShopRequest; +import in.koreatech.koin.domain.shop.dto.menu.ShopMenuResponse; +import in.koreatech.koin.domain.shop.dto.shop.ShopResponse; import in.koreatech.koin.global.auth.Auth; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; diff --git a/src/main/java/in/koreatech/koin/domain/ownershop/controller/OwnerShopController.java b/src/main/java/in/koreatech/koin/domain/ownershop/controller/OwnerShopController.java index c7423a914..d2db204f2 100644 --- a/src/main/java/in/koreatech/koin/domain/ownershop/controller/OwnerShopController.java +++ b/src/main/java/in/koreatech/koin/domain/ownershop/controller/OwnerShopController.java @@ -19,15 +19,15 @@ import in.koreatech.koin.domain.ownershop.dto.OwnerShopsRequest; import in.koreatech.koin.domain.ownershop.dto.OwnerShopsResponse; import in.koreatech.koin.domain.ownershop.service.OwnerShopService; -import in.koreatech.koin.domain.shop.dto.CreateCategoryRequest; -import in.koreatech.koin.domain.shop.dto.CreateMenuRequest; -import in.koreatech.koin.domain.shop.dto.MenuCategoriesResponse; -import in.koreatech.koin.domain.shop.dto.MenuDetailResponse; -import in.koreatech.koin.domain.shop.dto.ModifyCategoryRequest; -import in.koreatech.koin.domain.shop.dto.ModifyMenuRequest; -import in.koreatech.koin.domain.shop.dto.ModifyShopRequest; -import in.koreatech.koin.domain.shop.dto.ShopMenuResponse; -import in.koreatech.koin.domain.shop.dto.ShopResponse; +import in.koreatech.koin.domain.shop.dto.menu.CreateCategoryRequest; +import in.koreatech.koin.domain.shop.dto.menu.CreateMenuRequest; +import in.koreatech.koin.domain.shop.dto.menu.MenuCategoriesResponse; +import in.koreatech.koin.domain.shop.dto.menu.MenuDetailResponse; +import in.koreatech.koin.domain.shop.dto.menu.ModifyCategoryRequest; +import in.koreatech.koin.domain.shop.dto.menu.ModifyMenuRequest; +import in.koreatech.koin.domain.shop.dto.shop.ModifyShopRequest; +import in.koreatech.koin.domain.shop.dto.menu.ShopMenuResponse; +import in.koreatech.koin.domain.shop.dto.shop.ShopResponse; import in.koreatech.koin.global.auth.Auth; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/in/koreatech/koin/domain/ownershop/dto/OwnerShopEventsResponse.java b/src/main/java/in/koreatech/koin/domain/ownershop/dto/OwnerShopEventsResponse.java index 3f8952548..e59fc13e9 100644 --- a/src/main/java/in/koreatech/koin/domain/ownershop/dto/OwnerShopEventsResponse.java +++ b/src/main/java/in/koreatech/koin/domain/ownershop/dto/OwnerShopEventsResponse.java @@ -11,9 +11,9 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.EventArticle; -import in.koreatech.koin.domain.shop.model.EventArticleImage; -import in.koreatech.koin.domain.shop.model.Shop; +import in.koreatech.koin.domain.shop.model.article.EventArticle; +import in.koreatech.koin.domain.shop.model.article.EventArticleImage; +import in.koreatech.koin.domain.shop.model.shop.Shop; import io.swagger.v3.oas.annotations.media.Schema; @JsonNaming(SnakeCaseStrategy.class) diff --git a/src/main/java/in/koreatech/koin/domain/ownershop/dto/OwnerShopsRequest.java b/src/main/java/in/koreatech/koin/domain/ownershop/dto/OwnerShopsRequest.java index 0429bc683..3eff137e3 100644 --- a/src/main/java/in/koreatech/koin/domain/ownershop/dto/OwnerShopsRequest.java +++ b/src/main/java/in/koreatech/koin/domain/ownershop/dto/OwnerShopsRequest.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.databind.annotation.JsonNaming; import in.koreatech.koin.domain.owner.model.Owner; -import in.koreatech.koin.domain.shop.model.Shop; +import in.koreatech.koin.domain.shop.model.shop.Shop; import in.koreatech.koin.global.validation.NotBlankElement; import in.koreatech.koin.global.validation.UniqueId; import in.koreatech.koin.global.validation.UniqueUrl; diff --git a/src/main/java/in/koreatech/koin/domain/ownershop/dto/OwnerShopsResponse.java b/src/main/java/in/koreatech/koin/domain/ownershop/dto/OwnerShopsResponse.java index 32f90c0b2..09be89808 100644 --- a/src/main/java/in/koreatech/koin/domain/ownershop/dto/OwnerShopsResponse.java +++ b/src/main/java/in/koreatech/koin/domain/ownershop/dto/OwnerShopsResponse.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.Shop; +import in.koreatech.koin.domain.shop.model.shop.Shop; import io.swagger.v3.oas.annotations.media.Schema; @JsonNaming(value = SnakeCaseStrategy.class) diff --git a/src/main/java/in/koreatech/koin/domain/ownershop/service/OwnerShopService.java b/src/main/java/in/koreatech/koin/domain/ownershop/service/OwnerShopService.java index 5b9565ec0..d4715f18a 100644 --- a/src/main/java/in/koreatech/koin/domain/ownershop/service/OwnerShopService.java +++ b/src/main/java/in/koreatech/koin/domain/ownershop/service/OwnerShopService.java @@ -19,38 +19,38 @@ import in.koreatech.koin.domain.ownershop.dto.OwnerShopsRequest; import in.koreatech.koin.domain.ownershop.dto.OwnerShopsResponse; import in.koreatech.koin.domain.ownershop.dto.OwnerShopsResponse.InnerShopResponse; -import in.koreatech.koin.domain.shop.dto.CreateCategoryRequest; -import in.koreatech.koin.domain.shop.dto.CreateMenuRequest; -import in.koreatech.koin.domain.shop.dto.MenuCategoriesResponse; -import in.koreatech.koin.domain.shop.dto.MenuDetailResponse; -import in.koreatech.koin.domain.shop.dto.ModifyCategoryRequest; -import in.koreatech.koin.domain.shop.dto.ModifyMenuRequest; -import in.koreatech.koin.domain.shop.dto.ModifyShopRequest; -import in.koreatech.koin.domain.shop.dto.ShopMenuResponse; -import in.koreatech.koin.domain.shop.dto.ShopResponse; -import in.koreatech.koin.domain.shop.model.EventArticle; -import in.koreatech.koin.domain.shop.model.EventArticleImage; -import in.koreatech.koin.domain.shop.model.Menu; -import in.koreatech.koin.domain.shop.model.MenuCategory; -import in.koreatech.koin.domain.shop.model.MenuCategoryMap; -import in.koreatech.koin.domain.shop.model.MenuImage; -import in.koreatech.koin.domain.shop.model.MenuOption; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.model.ShopCategory; -import in.koreatech.koin.domain.shop.model.ShopCategoryMap; -import in.koreatech.koin.domain.shop.model.ShopImage; -import in.koreatech.koin.domain.shop.model.ShopOpen; -import in.koreatech.koin.domain.shop.repository.EventArticleRepository; -import in.koreatech.koin.domain.shop.repository.MenuCategoryMapRepository; -import in.koreatech.koin.domain.shop.repository.MenuCategoryRepository; -import in.koreatech.koin.domain.shop.repository.MenuDetailRepository; -import in.koreatech.koin.domain.shop.repository.MenuImageRepository; -import in.koreatech.koin.domain.shop.repository.MenuRepository; -import in.koreatech.koin.domain.shop.repository.ShopCategoryMapRepository; -import in.koreatech.koin.domain.shop.repository.ShopCategoryRepository; -import in.koreatech.koin.domain.shop.repository.ShopImageRepository; -import in.koreatech.koin.domain.shop.repository.ShopOpenRepository; -import in.koreatech.koin.domain.shop.repository.ShopRepository; +import in.koreatech.koin.domain.shop.dto.menu.CreateCategoryRequest; +import in.koreatech.koin.domain.shop.dto.menu.CreateMenuRequest; +import in.koreatech.koin.domain.shop.dto.menu.MenuCategoriesResponse; +import in.koreatech.koin.domain.shop.dto.menu.MenuDetailResponse; +import in.koreatech.koin.domain.shop.dto.menu.ModifyCategoryRequest; +import in.koreatech.koin.domain.shop.dto.menu.ModifyMenuRequest; +import in.koreatech.koin.domain.shop.dto.shop.ModifyShopRequest; +import in.koreatech.koin.domain.shop.dto.menu.ShopMenuResponse; +import in.koreatech.koin.domain.shop.dto.shop.ShopResponse; +import in.koreatech.koin.domain.shop.model.article.EventArticle; +import in.koreatech.koin.domain.shop.model.article.EventArticleImage; +import in.koreatech.koin.domain.shop.model.menu.Menu; +import in.koreatech.koin.domain.shop.model.menu.MenuCategory; +import in.koreatech.koin.domain.shop.model.menu.MenuCategoryMap; +import in.koreatech.koin.domain.shop.model.menu.MenuImage; +import in.koreatech.koin.domain.shop.model.menu.MenuOption; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.model.shop.ShopCategory; +import in.koreatech.koin.domain.shop.model.shop.ShopCategoryMap; +import in.koreatech.koin.domain.shop.model.shop.ShopImage; +import in.koreatech.koin.domain.shop.model.shop.ShopOpen; +import in.koreatech.koin.domain.shop.repository.event.EventArticleRepository; +import in.koreatech.koin.domain.shop.repository.menu.MenuCategoryMapRepository; +import in.koreatech.koin.domain.shop.repository.menu.MenuCategoryRepository; +import in.koreatech.koin.domain.shop.repository.menu.MenuDetailRepository; +import in.koreatech.koin.domain.shop.repository.menu.MenuImageRepository; +import in.koreatech.koin.domain.shop.repository.menu.MenuRepository; +import in.koreatech.koin.domain.shop.repository.shop.ShopCategoryMapRepository; +import in.koreatech.koin.domain.shop.repository.shop.ShopCategoryRepository; +import in.koreatech.koin.domain.shop.repository.shop.ShopImageRepository; +import in.koreatech.koin.domain.shop.repository.shop.ShopOpenRepository; +import in.koreatech.koin.domain.shop.repository.shop.ShopRepository; import in.koreatech.koin.global.auth.exception.AuthorizationException; import jakarta.persistence.EntityManager; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/in/koreatech/koin/domain/shop/controller/ShopApi.java b/src/main/java/in/koreatech/koin/domain/shop/controller/ShopApi.java index ad74eb3e2..d6fb056ec 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/controller/ShopApi.java +++ b/src/main/java/in/koreatech/koin/domain/shop/controller/ShopApi.java @@ -14,24 +14,24 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; -import in.koreatech.koin.domain.shop.dto.CreateReviewRequest; -import in.koreatech.koin.domain.shop.dto.MenuCategoriesResponse; -import in.koreatech.koin.domain.shop.dto.MenuDetailResponse; -import in.koreatech.koin.domain.shop.dto.ModifyReviewRequest; -import in.koreatech.koin.domain.shop.dto.ReviewsSortCriteria; -import in.koreatech.koin.domain.shop.dto.ShopCategoriesResponse; -import in.koreatech.koin.domain.shop.dto.ShopEventsResponse; -import in.koreatech.koin.domain.shop.dto.ShopMenuResponse; -import in.koreatech.koin.domain.shop.dto.ShopMyReviewsResponse; -import in.koreatech.koin.domain.shop.dto.ShopResponse; -import in.koreatech.koin.domain.shop.dto.ShopReviewReportCategoryResponse; -import in.koreatech.koin.domain.shop.dto.ShopReviewReportRequest; -import in.koreatech.koin.domain.shop.dto.ShopReviewResponse; -import in.koreatech.koin.domain.shop.dto.ShopReviewsResponse; -import in.koreatech.koin.domain.shop.dto.ShopsFilterCriteria; -import in.koreatech.koin.domain.shop.dto.ShopsResponse; -import in.koreatech.koin.domain.shop.dto.ShopsResponseV2; -import in.koreatech.koin.domain.shop.dto.ShopsSortCriteria; +import in.koreatech.koin.domain.shop.dto.review.CreateReviewRequest; +import in.koreatech.koin.domain.shop.dto.menu.MenuCategoriesResponse; +import in.koreatech.koin.domain.shop.dto.menu.MenuDetailResponse; +import in.koreatech.koin.domain.shop.dto.review.ModifyReviewRequest; +import in.koreatech.koin.domain.shop.dto.review.ReviewsSortCriteria; +import in.koreatech.koin.domain.shop.dto.shop.ShopCategoriesResponse; +import in.koreatech.koin.domain.shop.dto.shop.ShopEventsResponse; +import in.koreatech.koin.domain.shop.dto.menu.ShopMenuResponse; +import in.koreatech.koin.domain.shop.dto.review.ShopMyReviewsResponse; +import in.koreatech.koin.domain.shop.dto.shop.ShopResponse; +import in.koreatech.koin.domain.shop.dto.review.ShopReviewReportCategoryResponse; +import in.koreatech.koin.domain.shop.dto.review.ShopReviewReportRequest; +import in.koreatech.koin.domain.shop.dto.review.ShopReviewResponse; +import in.koreatech.koin.domain.shop.dto.review.ShopReviewsResponse; +import in.koreatech.koin.domain.shop.dto.shop.ShopsFilterCriteria; +import in.koreatech.koin.domain.shop.dto.shop.ShopsResponse; +import in.koreatech.koin.domain.shop.dto.shop.ShopsResponseV2; +import in.koreatech.koin.domain.shop.dto.shop.ShopsSortCriteria; import in.koreatech.koin.global.auth.Auth; import in.koreatech.koin.global.auth.UserId; import io.swagger.v3.oas.annotations.Operation; diff --git a/src/main/java/in/koreatech/koin/domain/shop/controller/ShopController.java b/src/main/java/in/koreatech/koin/domain/shop/controller/ShopController.java index 5bc055d7f..e6ded5a71 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/controller/ShopController.java +++ b/src/main/java/in/koreatech/koin/domain/shop/controller/ShopController.java @@ -17,24 +17,24 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import in.koreatech.koin.domain.shop.dto.CreateReviewRequest; -import in.koreatech.koin.domain.shop.dto.MenuCategoriesResponse; -import in.koreatech.koin.domain.shop.dto.MenuDetailResponse; -import in.koreatech.koin.domain.shop.dto.ModifyReviewRequest; -import in.koreatech.koin.domain.shop.dto.ReviewsSortCriteria; -import in.koreatech.koin.domain.shop.dto.ShopCategoriesResponse; -import in.koreatech.koin.domain.shop.dto.ShopEventsResponse; -import in.koreatech.koin.domain.shop.dto.ShopMenuResponse; -import in.koreatech.koin.domain.shop.dto.ShopMyReviewsResponse; -import in.koreatech.koin.domain.shop.dto.ShopResponse; -import in.koreatech.koin.domain.shop.dto.ShopReviewReportCategoryResponse; -import in.koreatech.koin.domain.shop.dto.ShopReviewReportRequest; -import in.koreatech.koin.domain.shop.dto.ShopReviewResponse; -import in.koreatech.koin.domain.shop.dto.ShopReviewsResponse; -import in.koreatech.koin.domain.shop.dto.ShopsFilterCriteria; -import in.koreatech.koin.domain.shop.dto.ShopsResponse; -import in.koreatech.koin.domain.shop.dto.ShopsResponseV2; -import in.koreatech.koin.domain.shop.dto.ShopsSortCriteria; +import in.koreatech.koin.domain.shop.dto.review.CreateReviewRequest; +import in.koreatech.koin.domain.shop.dto.menu.MenuCategoriesResponse; +import in.koreatech.koin.domain.shop.dto.menu.MenuDetailResponse; +import in.koreatech.koin.domain.shop.dto.review.ModifyReviewRequest; +import in.koreatech.koin.domain.shop.dto.review.ReviewsSortCriteria; +import in.koreatech.koin.domain.shop.dto.shop.ShopCategoriesResponse; +import in.koreatech.koin.domain.shop.dto.shop.ShopEventsResponse; +import in.koreatech.koin.domain.shop.dto.menu.ShopMenuResponse; +import in.koreatech.koin.domain.shop.dto.review.ShopMyReviewsResponse; +import in.koreatech.koin.domain.shop.dto.shop.ShopResponse; +import in.koreatech.koin.domain.shop.dto.review.ShopReviewReportCategoryResponse; +import in.koreatech.koin.domain.shop.dto.review.ShopReviewReportRequest; +import in.koreatech.koin.domain.shop.dto.review.ShopReviewResponse; +import in.koreatech.koin.domain.shop.dto.review.ShopReviewsResponse; +import in.koreatech.koin.domain.shop.dto.shop.ShopsFilterCriteria; +import in.koreatech.koin.domain.shop.dto.shop.ShopsResponse; +import in.koreatech.koin.domain.shop.dto.shop.ShopsResponseV2; +import in.koreatech.koin.domain.shop.dto.shop.ShopsSortCriteria; import in.koreatech.koin.domain.shop.service.ShopReviewService; import in.koreatech.koin.domain.shop.service.ShopService; import in.koreatech.koin.global.auth.Auth; diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/CreateCategoryRequest.java b/src/main/java/in/koreatech/koin/domain/shop/dto/menu/CreateCategoryRequest.java similarity index 92% rename from src/main/java/in/koreatech/koin/domain/shop/dto/CreateCategoryRequest.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/menu/CreateCategoryRequest.java index f0b3d8902..5b1bd8a74 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/CreateCategoryRequest.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/menu/CreateCategoryRequest.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.menu; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED; diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/CreateMenuRequest.java b/src/main/java/in/koreatech/koin/domain/shop/dto/menu/CreateMenuRequest.java similarity index 97% rename from src/main/java/in/koreatech/koin/domain/shop/dto/CreateMenuRequest.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/menu/CreateMenuRequest.java index 81b887387..16a5ba40f 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/CreateMenuRequest.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/menu/CreateMenuRequest.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.menu; import static com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.NOT_REQUIRED; @@ -8,7 +8,7 @@ import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.Menu; +import in.koreatech.koin.domain.shop.model.menu.Menu; import in.koreatech.koin.global.validation.NotBlankElement; import in.koreatech.koin.global.validation.SingleMenuPrice; import in.koreatech.koin.global.validation.UniqueId; diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/MenuCategoriesResponse.java b/src/main/java/in/koreatech/koin/domain/shop/dto/menu/MenuCategoriesResponse.java similarity index 92% rename from src/main/java/in/koreatech/koin/domain/shop/dto/MenuCategoriesResponse.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/menu/MenuCategoriesResponse.java index c2d0000e9..5c81088f5 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/MenuCategoriesResponse.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/menu/MenuCategoriesResponse.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.menu; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED; @@ -7,7 +7,7 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.MenuCategory; +import in.koreatech.koin.domain.shop.model.menu.MenuCategory; import io.swagger.v3.oas.annotations.media.Schema; @JsonNaming(value = SnakeCaseStrategy.class) diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/MenuDetailResponse.java b/src/main/java/in/koreatech/koin/domain/shop/dto/menu/MenuDetailResponse.java similarity index 93% rename from src/main/java/in/koreatech/koin/domain/shop/dto/MenuDetailResponse.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/menu/MenuDetailResponse.java index 55a9ade67..a5ddf85a2 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/MenuDetailResponse.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/menu/MenuDetailResponse.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.menu; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.NOT_REQUIRED; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED; @@ -8,10 +8,10 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.Menu; -import in.koreatech.koin.domain.shop.model.MenuCategory; -import in.koreatech.koin.domain.shop.model.MenuImage; -import in.koreatech.koin.domain.shop.model.MenuOption; +import in.koreatech.koin.domain.shop.model.menu.Menu; +import in.koreatech.koin.domain.shop.model.menu.MenuCategory; +import in.koreatech.koin.domain.shop.model.menu.MenuImage; +import in.koreatech.koin.domain.shop.model.menu.MenuOption; import in.koreatech.koin.global.exception.KoinIllegalStateException; import io.swagger.v3.oas.annotations.media.Schema; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/ModifyCategoryRequest.java b/src/main/java/in/koreatech/koin/domain/shop/dto/menu/ModifyCategoryRequest.java similarity index 92% rename from src/main/java/in/koreatech/koin/domain/shop/dto/ModifyCategoryRequest.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/menu/ModifyCategoryRequest.java index 8218c2782..2062fa521 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/ModifyCategoryRequest.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/menu/ModifyCategoryRequest.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.menu; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED; diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/ModifyMenuRequest.java b/src/main/java/in/koreatech/koin/domain/shop/dto/menu/ModifyMenuRequest.java similarity index 98% rename from src/main/java/in/koreatech/koin/domain/shop/dto/ModifyMenuRequest.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/menu/ModifyMenuRequest.java index 0c7ef65ee..7d5077568 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/ModifyMenuRequest.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/menu/ModifyMenuRequest.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.menu; import static com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.NOT_REQUIRED; diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopMenuResponse.java b/src/main/java/in/koreatech/koin/domain/shop/dto/menu/ShopMenuResponse.java similarity index 94% rename from src/main/java/in/koreatech/koin/domain/shop/dto/ShopMenuResponse.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/menu/ShopMenuResponse.java index e8b5ebedc..ef884ae58 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopMenuResponse.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/menu/ShopMenuResponse.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.menu; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.NOT_REQUIRED; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED; @@ -10,11 +10,11 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.Menu; -import in.koreatech.koin.domain.shop.model.MenuCategory; -import in.koreatech.koin.domain.shop.model.MenuCategoryMap; -import in.koreatech.koin.domain.shop.model.MenuImage; -import in.koreatech.koin.domain.shop.model.MenuOption; +import in.koreatech.koin.domain.shop.model.menu.Menu; +import in.koreatech.koin.domain.shop.model.menu.MenuCategory; +import in.koreatech.koin.domain.shop.model.menu.MenuCategoryMap; +import in.koreatech.koin.domain.shop.model.menu.MenuImage; +import in.koreatech.koin.domain.shop.model.menu.MenuOption; import io.swagger.v3.oas.annotations.media.Schema; @JsonNaming(value = SnakeCaseStrategy.class) diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/CreateReviewRequest.java b/src/main/java/in/koreatech/koin/domain/shop/dto/review/CreateReviewRequest.java similarity index 97% rename from src/main/java/in/koreatech/koin/domain/shop/dto/CreateReviewRequest.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/review/CreateReviewRequest.java index c4c906276..d46e2636f 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/CreateReviewRequest.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/review/CreateReviewRequest.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.review; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED; diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/ModifyReviewRequest.java b/src/main/java/in/koreatech/koin/domain/shop/dto/review/ModifyReviewRequest.java similarity index 97% rename from src/main/java/in/koreatech/koin/domain/shop/dto/ModifyReviewRequest.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/review/ModifyReviewRequest.java index 52db89735..2e3e84978 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/ModifyReviewRequest.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/review/ModifyReviewRequest.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.review; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED; diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/ReviewsSortCriteria.java b/src/main/java/in/koreatech/koin/domain/shop/dto/review/ReviewsSortCriteria.java similarity index 92% rename from src/main/java/in/koreatech/koin/domain/shop/dto/ReviewsSortCriteria.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/review/ReviewsSortCriteria.java index f3af1e874..b2286cb77 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/ReviewsSortCriteria.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/review/ReviewsSortCriteria.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.review; import org.springframework.data.domain.Sort; diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopMyReviewsResponse.java b/src/main/java/in/koreatech/koin/domain/shop/dto/review/ShopMyReviewsResponse.java similarity index 92% rename from src/main/java/in/koreatech/koin/domain/shop/dto/ShopMyReviewsResponse.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/review/ShopMyReviewsResponse.java index 3b060c1d3..3494f8bf8 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopMyReviewsResponse.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/review/ShopMyReviewsResponse.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.review; import static com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED; @@ -9,9 +9,9 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.ShopReview; -import in.koreatech.koin.domain.shop.model.ShopReviewImage; -import in.koreatech.koin.domain.shop.model.ShopReviewMenu; +import in.koreatech.koin.domain.shop.model.review.ShopReview; +import in.koreatech.koin.domain.shop.model.review.ShopReviewImage; +import in.koreatech.koin.domain.shop.model.review.ShopReviewMenu; import io.swagger.v3.oas.annotations.media.Schema; @JsonNaming(value = SnakeCaseStrategy.class) diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopReviewReportCategoryResponse.java b/src/main/java/in/koreatech/koin/domain/shop/dto/review/ShopReviewReportCategoryResponse.java similarity index 91% rename from src/main/java/in/koreatech/koin/domain/shop/dto/ShopReviewReportCategoryResponse.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/review/ShopReviewReportCategoryResponse.java index bb8939296..9bb17db4d 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopReviewReportCategoryResponse.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/review/ShopReviewReportCategoryResponse.java @@ -1,10 +1,10 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.review; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED; import java.util.List; -import in.koreatech.koin.domain.shop.model.ShopReviewReportCategory; +import in.koreatech.koin.domain.shop.model.review.ShopReviewReportCategory; import io.swagger.v3.oas.annotations.media.Schema; public record ShopReviewReportCategoryResponse( diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopReviewReportRequest.java b/src/main/java/in/koreatech/koin/domain/shop/dto/review/ShopReviewReportRequest.java similarity index 95% rename from src/main/java/in/koreatech/koin/domain/shop/dto/ShopReviewReportRequest.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/review/ShopReviewReportRequest.java index 5930da596..96d9c740a 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopReviewReportRequest.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/review/ShopReviewReportRequest.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.review; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED; diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopReviewResponse.java b/src/main/java/in/koreatech/koin/domain/shop/dto/review/ShopReviewResponse.java similarity index 90% rename from src/main/java/in/koreatech/koin/domain/shop/dto/ShopReviewResponse.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/review/ShopReviewResponse.java index 278b19093..347079a65 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopReviewResponse.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/review/ShopReviewResponse.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.review; import static com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED; @@ -9,9 +9,9 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.ShopReview; -import in.koreatech.koin.domain.shop.model.ShopReviewImage; -import in.koreatech.koin.domain.shop.model.ShopReviewMenu; +import in.koreatech.koin.domain.shop.model.review.ShopReview; +import in.koreatech.koin.domain.shop.model.review.ShopReviewImage; +import in.koreatech.koin.domain.shop.model.review.ShopReviewMenu; import io.swagger.v3.oas.annotations.media.Schema; @JsonNaming(value = SnakeCaseStrategy.class) diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopReviewsResponse.java b/src/main/java/in/koreatech/koin/domain/shop/dto/review/ShopReviewsResponse.java similarity index 94% rename from src/main/java/in/koreatech/koin/domain/shop/dto/ShopReviewsResponse.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/review/ShopReviewsResponse.java index 747016a92..2dc7ea735 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopReviewsResponse.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/review/ShopReviewsResponse.java @@ -1,7 +1,7 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.review; import static com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; -import static in.koreatech.koin.domain.shop.model.ReportStatus.DISMISSED; +import static in.koreatech.koin.domain.shop.model.review.ReportStatus.DISMISSED; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED; import java.time.LocalDateTime; @@ -14,9 +14,9 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.ShopReview; -import in.koreatech.koin.domain.shop.model.ShopReviewImage; -import in.koreatech.koin.domain.shop.model.ShopReviewMenu; +import in.koreatech.koin.domain.shop.model.review.ShopReview; +import in.koreatech.koin.domain.shop.model.review.ShopReviewImage; +import in.koreatech.koin.domain.shop.model.review.ShopReviewMenu; import in.koreatech.koin.global.model.Criteria; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/ModifyShopRequest.java b/src/main/java/in/koreatech/koin/domain/shop/dto/shop/ModifyShopRequest.java similarity index 96% rename from src/main/java/in/koreatech/koin/domain/shop/dto/ModifyShopRequest.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/shop/ModifyShopRequest.java index 1c82fbfa0..d34f735f6 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/ModifyShopRequest.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/shop/ModifyShopRequest.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.shop; import static com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.NOT_REQUIRED; @@ -10,8 +10,8 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.model.ShopOpen; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.model.shop.ShopOpen; import in.koreatech.koin.global.validation.NotBlankElement; import in.koreatech.koin.global.validation.UniqueId; import in.koreatech.koin.global.validation.UniqueUrl; diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopCategoriesResponse.java b/src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopCategoriesResponse.java similarity index 93% rename from src/main/java/in/koreatech/koin/domain/shop/dto/ShopCategoriesResponse.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopCategoriesResponse.java index 09ff84589..93b281191 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopCategoriesResponse.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopCategoriesResponse.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.shop; import static com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.NOT_REQUIRED; @@ -8,7 +8,7 @@ import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.ShopCategory; +import in.koreatech.koin.domain.shop.model.shop.ShopCategory; import io.swagger.v3.oas.annotations.media.Schema; @JsonNaming(value = SnakeCaseStrategy.class) diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopEventsResponse.java b/src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopEventsResponse.java similarity index 94% rename from src/main/java/in/koreatech/koin/domain/shop/dto/ShopEventsResponse.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopEventsResponse.java index ef8e38ff6..706340157 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopEventsResponse.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopEventsResponse.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.shop; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.NOT_REQUIRED; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED; @@ -12,9 +12,9 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.EventArticle; -import in.koreatech.koin.domain.shop.model.EventArticleImage; -import in.koreatech.koin.domain.shop.model.Shop; +import in.koreatech.koin.domain.shop.model.article.EventArticle; +import in.koreatech.koin.domain.shop.model.article.EventArticleImage; +import in.koreatech.koin.domain.shop.model.shop.Shop; import io.swagger.v3.oas.annotations.media.Schema; @JsonNaming(value = SnakeCaseStrategy.class) diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopResponse.java b/src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopResponse.java similarity index 95% rename from src/main/java/in/koreatech/koin/domain/shop/dto/ShopResponse.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopResponse.java index 2fc6582ed..5df75fb66 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopResponse.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopResponse.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.shop; import static com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.NOT_REQUIRED; @@ -12,10 +12,10 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.model.ShopCategory; -import in.koreatech.koin.domain.shop.model.ShopImage; -import in.koreatech.koin.domain.shop.model.ShopOpen; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.model.shop.ShopCategory; +import in.koreatech.koin.domain.shop.model.shop.ShopImage; +import in.koreatech.koin.domain.shop.model.shop.ShopOpen; import io.swagger.v3.oas.annotations.media.Schema; @JsonNaming(value = SnakeCaseStrategy.class) diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopsFilterCriteria.java b/src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopsFilterCriteria.java similarity index 89% rename from src/main/java/in/koreatech/koin/domain/shop/dto/ShopsFilterCriteria.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopsFilterCriteria.java index ff03aee1f..cc2afa624 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopsFilterCriteria.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopsFilterCriteria.java @@ -1,10 +1,10 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.shop; import java.time.LocalDateTime; import java.util.List; import java.util.function.Predicate; -import in.koreatech.koin.domain.shop.model.Shop; +import in.koreatech.koin.domain.shop.model.shop.Shop; import lombok.Getter; @Getter diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopsFilterCriteriaConverter.java b/src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopsFilterCriteriaConverter.java similarity index 81% rename from src/main/java/in/koreatech/koin/domain/shop/dto/ShopsFilterCriteriaConverter.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopsFilterCriteriaConverter.java index 430bba89a..34512b9a1 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopsFilterCriteriaConverter.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopsFilterCriteriaConverter.java @@ -1,12 +1,10 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.shop; import java.util.Arrays; import org.springframework.core.convert.converter.Converter; import org.springframework.stereotype.Component; -import in.koreatech.koin.global.exception.KoinIllegalArgumentException; - @Component public class ShopsFilterCriteriaConverter implements Converter { diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopsResponse.java b/src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopsResponse.java similarity index 94% rename from src/main/java/in/koreatech/koin/domain/shop/dto/ShopsResponse.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopsResponse.java index ff2eea09c..f1aee272f 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopsResponse.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopsResponse.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.shop; import static com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.NOT_REQUIRED; @@ -8,8 +8,8 @@ import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.dto.ShopResponse.InnerShopOpen; -import in.koreatech.koin.domain.shop.model.Shop; +import in.koreatech.koin.domain.shop.dto.shop.ShopResponse.InnerShopOpen; +import in.koreatech.koin.domain.shop.model.shop.Shop; import io.swagger.v3.oas.annotations.media.Schema; @JsonNaming(value = SnakeCaseStrategy.class) diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopsResponseV2.java b/src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopsResponseV2.java similarity index 94% rename from src/main/java/in/koreatech/koin/domain/shop/dto/ShopsResponseV2.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopsResponseV2.java index e55f4a8e5..1835c5ff0 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopsResponseV2.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopsResponseV2.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.shop; import static com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.NOT_REQUIRED; @@ -9,9 +9,9 @@ import com.fasterxml.jackson.databind.annotation.JsonNaming; -import in.koreatech.koin.domain.shop.dto.ShopResponse.InnerShopOpen; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.model.ShopReview; +import in.koreatech.koin.domain.shop.dto.shop.ShopResponse.InnerShopOpen; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.model.review.ShopReview; import io.swagger.v3.oas.annotations.media.Schema; @JsonNaming(value = SnakeCaseStrategy.class) diff --git a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopsSortCriteria.java b/src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopsSortCriteria.java similarity index 84% rename from src/main/java/in/koreatech/koin/domain/shop/dto/ShopsSortCriteria.java rename to src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopsSortCriteria.java index f1ace8f71..09c84ee98 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/dto/ShopsSortCriteria.java +++ b/src/main/java/in/koreatech/koin/domain/shop/dto/shop/ShopsSortCriteria.java @@ -1,8 +1,8 @@ -package in.koreatech.koin.domain.shop.dto; +package in.koreatech.koin.domain.shop.dto.shop; import java.util.Comparator; -import in.koreatech.koin.domain.shop.dto.ShopsResponseV2.InnerShopResponse; +import in.koreatech.koin.domain.shop.dto.shop.ShopsResponseV2.InnerShopResponse; public enum ShopsSortCriteria { diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/EventArticle.java b/src/main/java/in/koreatech/koin/domain/shop/model/article/EventArticle.java similarity index 97% rename from src/main/java/in/koreatech/koin/domain/shop/model/EventArticle.java rename to src/main/java/in/koreatech/koin/domain/shop/model/article/EventArticle.java index ba7de7968..5a0bafca4 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/EventArticle.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/article/EventArticle.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.article; import static jakarta.persistence.CascadeType.ALL; import static jakarta.persistence.FetchType.LAZY; @@ -12,6 +12,7 @@ import org.hibernate.annotations.SQLDelete; import org.hibernate.annotations.Where; +import in.koreatech.koin.domain.shop.model.shop.Shop; import in.koreatech.koin.domain.user.model.User; import in.koreatech.koin.global.domain.BaseEntity; import jakarta.persistence.Column; diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/EventArticleImage.java b/src/main/java/in/koreatech/koin/domain/shop/model/article/EventArticleImage.java similarity index 96% rename from src/main/java/in/koreatech/koin/domain/shop/model/EventArticleImage.java rename to src/main/java/in/koreatech/koin/domain/shop/model/article/EventArticleImage.java index 52880cc66..4dac32f3e 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/EventArticleImage.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/article/EventArticleImage.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.article; import static jakarta.persistence.GenerationType.IDENTITY; import static lombok.AccessLevel.PROTECTED; diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/ReviewRegisterEvent.java b/src/main/java/in/koreatech/koin/domain/shop/model/event/dto/ReviewRegisterEvent.java similarity index 74% rename from src/main/java/in/koreatech/koin/domain/shop/model/ReviewRegisterEvent.java rename to src/main/java/in/koreatech/koin/domain/shop/model/event/dto/ReviewRegisterEvent.java index d9b443c92..66cea5044 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/ReviewRegisterEvent.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/event/dto/ReviewRegisterEvent.java @@ -1,4 +1,6 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.event.dto; + +import in.koreatech.koin.domain.shop.model.review.ShopReview; public record ReviewRegisterEvent( String shop, diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/ReviewReportEvent.java b/src/main/java/in/koreatech/koin/domain/shop/model/event/dto/ReviewReportEvent.java similarity index 50% rename from src/main/java/in/koreatech/koin/domain/shop/model/ReviewReportEvent.java rename to src/main/java/in/koreatech/koin/domain/shop/model/event/dto/ReviewReportEvent.java index 397ec21d0..820f7710c 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/ReviewReportEvent.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/event/dto/ReviewReportEvent.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.event.dto; public record ReviewReportEvent( String shop diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/ReviewEventListener.java b/src/main/java/in/koreatech/koin/domain/shop/model/event/listener/ReviewEventListener.java similarity index 86% rename from src/main/java/in/koreatech/koin/domain/shop/model/ReviewEventListener.java rename to src/main/java/in/koreatech/koin/domain/shop/model/event/listener/ReviewEventListener.java index 9d91ba4b5..11970b4be 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/ReviewEventListener.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/event/listener/ReviewEventListener.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.event.listener; import static org.springframework.transaction.event.TransactionPhase.AFTER_COMMIT; @@ -7,6 +7,8 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.event.TransactionalEventListener; +import in.koreatech.koin.domain.shop.model.event.dto.ReviewRegisterEvent; +import in.koreatech.koin.domain.shop.model.event.dto.ReviewReportEvent; import in.koreatech.koin.global.domain.slack.SlackClient; import in.koreatech.koin.global.domain.slack.model.SlackNotificationFactory; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/ShopEventListener.java b/src/main/java/in/koreatech/koin/domain/shop/model/event/listener/ShopEventListener.java similarity index 97% rename from src/main/java/in/koreatech/koin/domain/shop/model/ShopEventListener.java rename to src/main/java/in/koreatech/koin/domain/shop/model/event/listener/ShopEventListener.java index 8cb2c98d8..23b5c138a 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/ShopEventListener.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/event/listener/ShopEventListener.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.event.listener; import static in.koreatech.koin.global.domain.notification.model.NotificationSubscribeType.SHOP_EVENT; import static in.koreatech.koin.global.fcm.MobileAppPath.SHOP; diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/Menu.java b/src/main/java/in/koreatech/koin/domain/shop/model/menu/Menu.java similarity index 96% rename from src/main/java/in/koreatech/koin/domain/shop/model/Menu.java rename to src/main/java/in/koreatech/koin/domain/shop/model/menu/Menu.java index 666be8bd1..8c1d180a6 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/Menu.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/menu/Menu.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.menu; import static jakarta.persistence.CascadeType.ALL; import static jakarta.persistence.GenerationType.IDENTITY; @@ -8,8 +8,8 @@ import java.util.List; import in.koreatech.koin.admin.shop.dto.AdminModifyMenuRequest; -import in.koreatech.koin.domain.shop.dto.ModifyMenuRequest; -import in.koreatech.koin.domain.shop.dto.ModifyMenuRequest.InnerOptionPrice; +import in.koreatech.koin.domain.shop.dto.menu.ModifyMenuRequest; +import in.koreatech.koin.domain.shop.dto.menu.ModifyMenuRequest.InnerOptionPrice; import in.koreatech.koin.global.domain.BaseEntity; import jakarta.persistence.Column; import jakarta.persistence.Entity; diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/MenuCategory.java b/src/main/java/in/koreatech/koin/domain/shop/model/menu/MenuCategory.java similarity index 95% rename from src/main/java/in/koreatech/koin/domain/shop/model/MenuCategory.java rename to src/main/java/in/koreatech/koin/domain/shop/model/menu/MenuCategory.java index 684ae9af8..6c4c0b988 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/MenuCategory.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/menu/MenuCategory.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.menu; import static jakarta.persistence.CascadeType.ALL; import static jakarta.persistence.GenerationType.IDENTITY; @@ -8,6 +8,7 @@ import java.util.List; import java.util.Map; +import in.koreatech.koin.domain.shop.model.shop.Shop; import in.koreatech.koin.global.domain.BaseEntity; import jakarta.persistence.Column; import jakarta.persistence.Entity; diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/MenuCategoryMap.java b/src/main/java/in/koreatech/koin/domain/shop/model/menu/MenuCategoryMap.java similarity index 97% rename from src/main/java/in/koreatech/koin/domain/shop/model/MenuCategoryMap.java rename to src/main/java/in/koreatech/koin/domain/shop/model/menu/MenuCategoryMap.java index 16b46ae8d..beaababa3 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/MenuCategoryMap.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/menu/MenuCategoryMap.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.menu; import static jakarta.persistence.GenerationType.IDENTITY; import static lombok.AccessLevel.PROTECTED; diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/MenuImage.java b/src/main/java/in/koreatech/koin/domain/shop/model/menu/MenuImage.java similarity index 96% rename from src/main/java/in/koreatech/koin/domain/shop/model/MenuImage.java rename to src/main/java/in/koreatech/koin/domain/shop/model/menu/MenuImage.java index e595f521b..3c0dff67b 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/MenuImage.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/menu/MenuImage.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.menu; import static jakarta.persistence.FetchType.LAZY; import static jakarta.persistence.GenerationType.IDENTITY; diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/MenuOption.java b/src/main/java/in/koreatech/koin/domain/shop/model/menu/MenuOption.java similarity index 97% rename from src/main/java/in/koreatech/koin/domain/shop/model/MenuOption.java rename to src/main/java/in/koreatech/koin/domain/shop/model/menu/MenuOption.java index ed1ba4436..b3838aad5 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/MenuOption.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/menu/MenuOption.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.menu; import static jakarta.persistence.GenerationType.IDENTITY; import static lombok.AccessLevel.PROTECTED; diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/ReportStatus.java b/src/main/java/in/koreatech/koin/domain/shop/model/review/ReportStatus.java similarity index 89% rename from src/main/java/in/koreatech/koin/domain/shop/model/ReportStatus.java rename to src/main/java/in/koreatech/koin/domain/shop/model/review/ReportStatus.java index 5c5d7f44f..4fa29a1e8 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/ReportStatus.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/review/ReportStatus.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.review; public enum ReportStatus { UNHANDLED("UNHANDLED", "처리 안함"), diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/ShopReview.java b/src/main/java/in/koreatech/koin/domain/shop/model/review/ShopReview.java similarity index 96% rename from src/main/java/in/koreatech/koin/domain/shop/model/ShopReview.java rename to src/main/java/in/koreatech/koin/domain/shop/model/review/ShopReview.java index 05371d345..7cfb22c87 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/ShopReview.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/review/ShopReview.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.review; import static jakarta.persistence.CascadeType.ALL; import static jakarta.persistence.FetchType.LAZY; @@ -7,6 +7,7 @@ import java.util.ArrayList; import java.util.List; +import in.koreatech.koin.domain.shop.model.shop.Shop; import in.koreatech.koin.domain.user.model.Student; import in.koreatech.koin.global.domain.BaseEntity; import jakarta.persistence.Column; diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/ShopReviewImage.java b/src/main/java/in/koreatech/koin/domain/shop/model/review/ShopReviewImage.java similarity index 95% rename from src/main/java/in/koreatech/koin/domain/shop/model/ShopReviewImage.java rename to src/main/java/in/koreatech/koin/domain/shop/model/review/ShopReviewImage.java index 92c23ecb9..e9aa41c9d 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/ShopReviewImage.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/review/ShopReviewImage.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.review; import static jakarta.persistence.FetchType.LAZY; import static lombok.AccessLevel.PROTECTED; diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/ShopReviewMenu.java b/src/main/java/in/koreatech/koin/domain/shop/model/review/ShopReviewMenu.java similarity index 95% rename from src/main/java/in/koreatech/koin/domain/shop/model/ShopReviewMenu.java rename to src/main/java/in/koreatech/koin/domain/shop/model/review/ShopReviewMenu.java index bf4d3fac1..581636b07 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/ShopReviewMenu.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/review/ShopReviewMenu.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.review; import static jakarta.persistence.FetchType.LAZY; import static lombok.AccessLevel.PROTECTED; diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/ShopReviewReport.java b/src/main/java/in/koreatech/koin/domain/shop/model/review/ShopReviewReport.java similarity index 97% rename from src/main/java/in/koreatech/koin/domain/shop/model/ShopReviewReport.java rename to src/main/java/in/koreatech/koin/domain/shop/model/review/ShopReviewReport.java index e7cdc1ff6..9b7a57b22 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/ShopReviewReport.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/review/ShopReviewReport.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.review; import static jakarta.persistence.FetchType.LAZY; import static lombok.AccessLevel.PROTECTED; diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/ShopReviewReportCategory.java b/src/main/java/in/koreatech/koin/domain/shop/model/review/ShopReviewReportCategory.java similarity index 94% rename from src/main/java/in/koreatech/koin/domain/shop/model/ShopReviewReportCategory.java rename to src/main/java/in/koreatech/koin/domain/shop/model/review/ShopReviewReportCategory.java index 4f978b349..4e782e781 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/ShopReviewReportCategory.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/review/ShopReviewReportCategory.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.review; import static lombok.AccessLevel.PROTECTED; diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/Shop.java b/src/main/java/in/koreatech/koin/domain/shop/model/shop/Shop.java similarity index 95% rename from src/main/java/in/koreatech/koin/domain/shop/model/Shop.java rename to src/main/java/in/koreatech/koin/domain/shop/model/shop/Shop.java index 575d0621b..555e785d1 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/Shop.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/shop/Shop.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.shop; import static jakarta.persistence.CascadeType.*; import static jakarta.persistence.GenerationType.IDENTITY; @@ -17,7 +17,10 @@ import in.koreatech.koin.admin.shop.dto.AdminModifyShopRequest; import in.koreatech.koin.domain.owner.model.Owner; -import in.koreatech.koin.domain.shop.dto.ModifyShopRequest.InnerShopOpen; +import in.koreatech.koin.domain.shop.dto.shop.ModifyShopRequest.InnerShopOpen; +import in.koreatech.koin.domain.shop.model.article.EventArticle; +import in.koreatech.koin.domain.shop.model.menu.MenuCategory; +import in.koreatech.koin.domain.shop.model.review.ShopReview; import in.koreatech.koin.global.domain.BaseEntity; import jakarta.persistence.Column; import jakarta.persistence.Entity; @@ -32,6 +35,7 @@ import jakarta.persistence.NamedSubgraph; import jakarta.persistence.OneToMany; import jakarta.persistence.Table; +import jakarta.persistence.Transient; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.PositiveOrZero; import jakarta.validation.constraints.Size; @@ -144,6 +148,12 @@ public class Shop extends BaseEntity { @Column(name = "accountNumber", length = 20) private String accountNumber; + @Transient + Boolean isOpen; + + @Transient + Boolean isEventActive; + @Builder private Shop( Owner owner, diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/ShopCategory.java b/src/main/java/in/koreatech/koin/domain/shop/model/shop/ShopCategory.java similarity index 97% rename from src/main/java/in/koreatech/koin/domain/shop/model/ShopCategory.java rename to src/main/java/in/koreatech/koin/domain/shop/model/shop/ShopCategory.java index 2375d5dc6..38a2980d6 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/ShopCategory.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/shop/ShopCategory.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.shop; import static jakarta.persistence.CascadeType.PERSIST; import static jakarta.persistence.CascadeType.REMOVE; diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/ShopCategoryMap.java b/src/main/java/in/koreatech/koin/domain/shop/model/shop/ShopCategoryMap.java similarity index 96% rename from src/main/java/in/koreatech/koin/domain/shop/model/ShopCategoryMap.java rename to src/main/java/in/koreatech/koin/domain/shop/model/shop/ShopCategoryMap.java index 77ae334d2..f532d392f 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/ShopCategoryMap.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/shop/ShopCategoryMap.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.shop; import static jakarta.persistence.GenerationType.IDENTITY; import static lombok.AccessLevel.PROTECTED; diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/ShopImage.java b/src/main/java/in/koreatech/koin/domain/shop/model/shop/ShopImage.java similarity index 96% rename from src/main/java/in/koreatech/koin/domain/shop/model/ShopImage.java rename to src/main/java/in/koreatech/koin/domain/shop/model/shop/ShopImage.java index 70d5e068b..aabecc648 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/ShopImage.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/shop/ShopImage.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.shop; import static jakarta.persistence.GenerationType.IDENTITY; import static lombok.AccessLevel.PROTECTED; diff --git a/src/main/java/in/koreatech/koin/domain/shop/model/ShopOpen.java b/src/main/java/in/koreatech/koin/domain/shop/model/shop/ShopOpen.java similarity index 98% rename from src/main/java/in/koreatech/koin/domain/shop/model/ShopOpen.java rename to src/main/java/in/koreatech/koin/domain/shop/model/shop/ShopOpen.java index 023b3f3be..cdbd350ed 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/model/ShopOpen.java +++ b/src/main/java/in/koreatech/koin/domain/shop/model/shop/ShopOpen.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.model; +package in.koreatech.koin.domain.shop.model.shop; import static jakarta.persistence.GenerationType.IDENTITY; import static lombok.AccessLevel.PROTECTED; diff --git a/src/main/java/in/koreatech/koin/domain/shop/repository/EventArticleImageRepository.java b/src/main/java/in/koreatech/koin/domain/shop/repository/event/EventArticleImageRepository.java similarity index 62% rename from src/main/java/in/koreatech/koin/domain/shop/repository/EventArticleImageRepository.java rename to src/main/java/in/koreatech/koin/domain/shop/repository/event/EventArticleImageRepository.java index 9b98993c6..81d53ca0d 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/repository/EventArticleImageRepository.java +++ b/src/main/java/in/koreatech/koin/domain/shop/repository/event/EventArticleImageRepository.java @@ -1,8 +1,8 @@ -package in.koreatech.koin.domain.shop.repository; +package in.koreatech.koin.domain.shop.repository.event; import org.springframework.data.repository.Repository; -import in.koreatech.koin.domain.shop.model.EventArticleImage; +import in.koreatech.koin.domain.shop.model.article.EventArticleImage; public interface EventArticleImageRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/domain/shop/repository/EventArticleRepository.java b/src/main/java/in/koreatech/koin/domain/shop/repository/event/EventArticleRepository.java similarity index 88% rename from src/main/java/in/koreatech/koin/domain/shop/repository/EventArticleRepository.java rename to src/main/java/in/koreatech/koin/domain/shop/repository/event/EventArticleRepository.java index 8cd3837c0..8a26f0abc 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/repository/EventArticleRepository.java +++ b/src/main/java/in/koreatech/koin/domain/shop/repository/event/EventArticleRepository.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.repository; +package in.koreatech.koin.domain.shop.repository.event; import java.time.LocalDate; import java.util.Optional; @@ -8,7 +8,7 @@ import org.springframework.data.repository.query.Param; import in.koreatech.koin.domain.ownershop.exception.EventArticleNotFoundException; -import in.koreatech.koin.domain.shop.model.EventArticle; +import in.koreatech.koin.domain.shop.model.article.EventArticle; public interface EventArticleRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/domain/shop/repository/MenuCategoryMapRepository.java b/src/main/java/in/koreatech/koin/domain/shop/repository/menu/MenuCategoryMapRepository.java similarity index 63% rename from src/main/java/in/koreatech/koin/domain/shop/repository/MenuCategoryMapRepository.java rename to src/main/java/in/koreatech/koin/domain/shop/repository/menu/MenuCategoryMapRepository.java index dac84b2d7..266946256 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/repository/MenuCategoryMapRepository.java +++ b/src/main/java/in/koreatech/koin/domain/shop/repository/menu/MenuCategoryMapRepository.java @@ -1,8 +1,8 @@ -package in.koreatech.koin.domain.shop.repository; +package in.koreatech.koin.domain.shop.repository.menu; import org.springframework.data.repository.Repository; -import in.koreatech.koin.domain.shop.model.MenuCategoryMap; +import in.koreatech.koin.domain.shop.model.menu.MenuCategoryMap; public interface MenuCategoryMapRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/domain/shop/repository/MenuCategoryRepository.java b/src/main/java/in/koreatech/koin/domain/shop/repository/menu/MenuCategoryRepository.java similarity index 85% rename from src/main/java/in/koreatech/koin/domain/shop/repository/MenuCategoryRepository.java rename to src/main/java/in/koreatech/koin/domain/shop/repository/menu/MenuCategoryRepository.java index d88cfcc4f..043feb26d 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/repository/MenuCategoryRepository.java +++ b/src/main/java/in/koreatech/koin/domain/shop/repository/menu/MenuCategoryRepository.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.repository; +package in.koreatech.koin.domain.shop.repository.menu; import java.util.List; import java.util.Optional; @@ -6,7 +6,7 @@ import org.springframework.data.repository.Repository; import in.koreatech.koin.domain.shop.exception.MenuCategoryNotFoundException; -import in.koreatech.koin.domain.shop.model.MenuCategory; +import in.koreatech.koin.domain.shop.model.menu.MenuCategory; public interface MenuCategoryRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/domain/shop/repository/MenuDetailRepository.java b/src/main/java/in/koreatech/koin/domain/shop/repository/menu/MenuDetailRepository.java similarity index 61% rename from src/main/java/in/koreatech/koin/domain/shop/repository/MenuDetailRepository.java rename to src/main/java/in/koreatech/koin/domain/shop/repository/menu/MenuDetailRepository.java index 1ebc0232e..376f8bef2 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/repository/MenuDetailRepository.java +++ b/src/main/java/in/koreatech/koin/domain/shop/repository/menu/MenuDetailRepository.java @@ -1,8 +1,8 @@ -package in.koreatech.koin.domain.shop.repository; +package in.koreatech.koin.domain.shop.repository.menu; import org.springframework.data.repository.Repository; -import in.koreatech.koin.domain.shop.model.MenuOption; +import in.koreatech.koin.domain.shop.model.menu.MenuOption; public interface MenuDetailRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/domain/shop/repository/MenuImageRepository.java b/src/main/java/in/koreatech/koin/domain/shop/repository/menu/MenuImageRepository.java similarity index 61% rename from src/main/java/in/koreatech/koin/domain/shop/repository/MenuImageRepository.java rename to src/main/java/in/koreatech/koin/domain/shop/repository/menu/MenuImageRepository.java index 0cd681bcc..bb64a4c95 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/repository/MenuImageRepository.java +++ b/src/main/java/in/koreatech/koin/domain/shop/repository/menu/MenuImageRepository.java @@ -1,8 +1,8 @@ -package in.koreatech.koin.domain.shop.repository; +package in.koreatech.koin.domain.shop.repository.menu; import org.springframework.data.repository.Repository; -import in.koreatech.koin.domain.shop.model.MenuImage; +import in.koreatech.koin.domain.shop.model.menu.MenuImage; public interface MenuImageRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/domain/shop/repository/MenuRepository.java b/src/main/java/in/koreatech/koin/domain/shop/repository/menu/MenuRepository.java similarity index 84% rename from src/main/java/in/koreatech/koin/domain/shop/repository/MenuRepository.java rename to src/main/java/in/koreatech/koin/domain/shop/repository/menu/MenuRepository.java index 221f1365f..451f12724 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/repository/MenuRepository.java +++ b/src/main/java/in/koreatech/koin/domain/shop/repository/menu/MenuRepository.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.repository; +package in.koreatech.koin.domain.shop.repository.menu; import java.util.List; import java.util.Optional; @@ -6,7 +6,7 @@ import org.springframework.data.repository.Repository; import in.koreatech.koin.domain.shop.exception.MenuNotFoundException; -import in.koreatech.koin.domain.shop.model.Menu; +import in.koreatech.koin.domain.shop.model.menu.Menu; public interface MenuRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/domain/shop/repository/redis/ShopsRedisRepository.java b/src/main/java/in/koreatech/koin/domain/shop/repository/redis/ShopsRedisRepository.java index 031c0298e..21b0cdbfa 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/repository/redis/ShopsRedisRepository.java +++ b/src/main/java/in/koreatech/koin/domain/shop/repository/redis/ShopsRedisRepository.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; -import in.koreatech.koin.domain.shop.dto.ShopsResponse; +import in.koreatech.koin.domain.shop.dto.shop.ShopsResponse; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/in/koreatech/koin/domain/shop/repository/ReviewImageRepository.java b/src/main/java/in/koreatech/koin/domain/shop/repository/review/ReviewImageRepository.java similarity index 62% rename from src/main/java/in/koreatech/koin/domain/shop/repository/ReviewImageRepository.java rename to src/main/java/in/koreatech/koin/domain/shop/repository/review/ReviewImageRepository.java index 7cf8865d2..15f36ff70 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/repository/ReviewImageRepository.java +++ b/src/main/java/in/koreatech/koin/domain/shop/repository/review/ReviewImageRepository.java @@ -1,9 +1,9 @@ -package in.koreatech.koin.domain.shop.repository; +package in.koreatech.koin.domain.shop.repository.review; import org.springframework.data.repository.Repository; -import in.koreatech.koin.domain.shop.model.ShopReviewImage; +import in.koreatech.koin.domain.shop.model.review.ShopReviewImage; public interface ReviewImageRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/domain/shop/repository/ReviewMenuRepository.java b/src/main/java/in/koreatech/koin/domain/shop/repository/review/ReviewMenuRepository.java similarity index 62% rename from src/main/java/in/koreatech/koin/domain/shop/repository/ReviewMenuRepository.java rename to src/main/java/in/koreatech/koin/domain/shop/repository/review/ReviewMenuRepository.java index f3e5584b5..14b98901b 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/repository/ReviewMenuRepository.java +++ b/src/main/java/in/koreatech/koin/domain/shop/repository/review/ReviewMenuRepository.java @@ -1,8 +1,8 @@ -package in.koreatech.koin.domain.shop.repository; +package in.koreatech.koin.domain.shop.repository.review; import org.springframework.data.repository.Repository; -import in.koreatech.koin.domain.shop.model.ShopReviewMenu; +import in.koreatech.koin.domain.shop.model.review.ShopReviewMenu; public interface ReviewMenuRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/domain/shop/repository/ShopReviewImageRepository.java b/src/main/java/in/koreatech/koin/domain/shop/repository/review/ShopReviewImageRepository.java similarity index 62% rename from src/main/java/in/koreatech/koin/domain/shop/repository/ShopReviewImageRepository.java rename to src/main/java/in/koreatech/koin/domain/shop/repository/review/ShopReviewImageRepository.java index ef4006fac..b18b60570 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/repository/ShopReviewImageRepository.java +++ b/src/main/java/in/koreatech/koin/domain/shop/repository/review/ShopReviewImageRepository.java @@ -1,8 +1,8 @@ -package in.koreatech.koin.domain.shop.repository; +package in.koreatech.koin.domain.shop.repository.review; import org.springframework.data.repository.Repository; -import in.koreatech.koin.domain.shop.model.ShopReviewImage; +import in.koreatech.koin.domain.shop.model.review.ShopReviewImage; public interface ShopReviewImageRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/domain/shop/repository/ShopReviewMenuRepository.java b/src/main/java/in/koreatech/koin/domain/shop/repository/review/ShopReviewMenuRepository.java similarity index 62% rename from src/main/java/in/koreatech/koin/domain/shop/repository/ShopReviewMenuRepository.java rename to src/main/java/in/koreatech/koin/domain/shop/repository/review/ShopReviewMenuRepository.java index f882bd19e..3ce17438c 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/repository/ShopReviewMenuRepository.java +++ b/src/main/java/in/koreatech/koin/domain/shop/repository/review/ShopReviewMenuRepository.java @@ -1,8 +1,8 @@ -package in.koreatech.koin.domain.shop.repository; +package in.koreatech.koin.domain.shop.repository.review; import org.springframework.data.repository.Repository; -import in.koreatech.koin.domain.shop.model.ShopReviewMenu; +import in.koreatech.koin.domain.shop.model.review.ShopReviewMenu; public interface ShopReviewMenuRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/domain/shop/repository/ShopReviewReportCategoryRepository.java b/src/main/java/in/koreatech/koin/domain/shop/repository/review/ShopReviewReportCategoryRepository.java similarity index 71% rename from src/main/java/in/koreatech/koin/domain/shop/repository/ShopReviewReportCategoryRepository.java rename to src/main/java/in/koreatech/koin/domain/shop/repository/review/ShopReviewReportCategoryRepository.java index 999e76f55..451222d5a 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/repository/ShopReviewReportCategoryRepository.java +++ b/src/main/java/in/koreatech/koin/domain/shop/repository/review/ShopReviewReportCategoryRepository.java @@ -1,10 +1,10 @@ -package in.koreatech.koin.domain.shop.repository; +package in.koreatech.koin.domain.shop.repository.review; import java.util.List; import org.springframework.data.repository.Repository; -import in.koreatech.koin.domain.shop.model.ShopReviewReportCategory; +import in.koreatech.koin.domain.shop.model.review.ShopReviewReportCategory; public interface ShopReviewReportCategoryRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/domain/shop/repository/ShopReviewReportRepository.java b/src/main/java/in/koreatech/koin/domain/shop/repository/review/ShopReviewReportRepository.java similarity index 70% rename from src/main/java/in/koreatech/koin/domain/shop/repository/ShopReviewReportRepository.java rename to src/main/java/in/koreatech/koin/domain/shop/repository/review/ShopReviewReportRepository.java index d62bee2cb..aa96fd147 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/repository/ShopReviewReportRepository.java +++ b/src/main/java/in/koreatech/koin/domain/shop/repository/review/ShopReviewReportRepository.java @@ -1,10 +1,10 @@ -package in.koreatech.koin.domain.shop.repository; +package in.koreatech.koin.domain.shop.repository.review; import java.util.Optional; import org.springframework.data.repository.Repository; -import in.koreatech.koin.domain.shop.model.ShopReviewReport; +import in.koreatech.koin.domain.shop.model.review.ShopReviewReport; public interface ShopReviewReportRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/domain/shop/repository/ShopReviewRepository.java b/src/main/java/in/koreatech/koin/domain/shop/repository/review/ShopReviewRepository.java similarity index 92% rename from src/main/java/in/koreatech/koin/domain/shop/repository/ShopReviewRepository.java rename to src/main/java/in/koreatech/koin/domain/shop/repository/review/ShopReviewRepository.java index da50500fb..7e44031ba 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/repository/ShopReviewRepository.java +++ b/src/main/java/in/koreatech/koin/domain/shop/repository/review/ShopReviewRepository.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.repository; +package in.koreatech.koin.domain.shop.repository.review; import java.util.List; import java.util.Optional; @@ -9,7 +9,7 @@ import org.springframework.data.repository.Repository; import in.koreatech.koin.domain.shop.exception.ReviewNotFoundException; -import in.koreatech.koin.domain.shop.model.ShopReview; +import in.koreatech.koin.domain.shop.model.review.ShopReview; public interface ShopReviewRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/domain/shop/repository/ShopCategoryMapRepository.java b/src/main/java/in/koreatech/koin/domain/shop/repository/shop/ShopCategoryMapRepository.java similarity index 71% rename from src/main/java/in/koreatech/koin/domain/shop/repository/ShopCategoryMapRepository.java rename to src/main/java/in/koreatech/koin/domain/shop/repository/shop/ShopCategoryMapRepository.java index 3184c9063..bb3604f11 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/repository/ShopCategoryMapRepository.java +++ b/src/main/java/in/koreatech/koin/domain/shop/repository/shop/ShopCategoryMapRepository.java @@ -1,10 +1,10 @@ -package in.koreatech.koin.domain.shop.repository; +package in.koreatech.koin.domain.shop.repository.shop; import java.util.List; import org.springframework.data.repository.Repository; -import in.koreatech.koin.domain.shop.model.ShopCategoryMap; +import in.koreatech.koin.domain.shop.model.shop.ShopCategoryMap; public interface ShopCategoryMapRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/domain/shop/repository/ShopCategoryRepository.java b/src/main/java/in/koreatech/koin/domain/shop/repository/shop/ShopCategoryRepository.java similarity index 85% rename from src/main/java/in/koreatech/koin/domain/shop/repository/ShopCategoryRepository.java rename to src/main/java/in/koreatech/koin/domain/shop/repository/shop/ShopCategoryRepository.java index bf715830f..cbc50fe41 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/repository/ShopCategoryRepository.java +++ b/src/main/java/in/koreatech/koin/domain/shop/repository/shop/ShopCategoryRepository.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.repository; +package in.koreatech.koin.domain.shop.repository.shop; import java.util.List; import java.util.Optional; @@ -6,7 +6,7 @@ import org.springframework.data.repository.Repository; import in.koreatech.koin.domain.shop.exception.ShopCategoryNotFoundException; -import in.koreatech.koin.domain.shop.model.ShopCategory; +import in.koreatech.koin.domain.shop.model.shop.ShopCategory; public interface ShopCategoryRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/domain/shop/repository/ShopImageRepository.java b/src/main/java/in/koreatech/koin/domain/shop/repository/shop/ShopImageRepository.java similarity index 69% rename from src/main/java/in/koreatech/koin/domain/shop/repository/ShopImageRepository.java rename to src/main/java/in/koreatech/koin/domain/shop/repository/shop/ShopImageRepository.java index 46a24c88f..65bb13064 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/repository/ShopImageRepository.java +++ b/src/main/java/in/koreatech/koin/domain/shop/repository/shop/ShopImageRepository.java @@ -1,10 +1,10 @@ -package in.koreatech.koin.domain.shop.repository; +package in.koreatech.koin.domain.shop.repository.shop; import java.util.List; import org.springframework.data.repository.Repository; -import in.koreatech.koin.domain.shop.model.ShopImage; +import in.koreatech.koin.domain.shop.model.shop.ShopImage; public interface ShopImageRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/domain/shop/repository/ShopOpenRepository.java b/src/main/java/in/koreatech/koin/domain/shop/repository/shop/ShopOpenRepository.java similarity index 69% rename from src/main/java/in/koreatech/koin/domain/shop/repository/ShopOpenRepository.java rename to src/main/java/in/koreatech/koin/domain/shop/repository/shop/ShopOpenRepository.java index f47ac5a47..ccd103567 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/repository/ShopOpenRepository.java +++ b/src/main/java/in/koreatech/koin/domain/shop/repository/shop/ShopOpenRepository.java @@ -1,10 +1,10 @@ -package in.koreatech.koin.domain.shop.repository; +package in.koreatech.koin.domain.shop.repository.shop; import java.util.List; import org.springframework.data.repository.Repository; -import in.koreatech.koin.domain.shop.model.ShopOpen; +import in.koreatech.koin.domain.shop.model.shop.ShopOpen; public interface ShopOpenRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/domain/shop/repository/ShopRepository.java b/src/main/java/in/koreatech/koin/domain/shop/repository/shop/ShopRepository.java similarity index 89% rename from src/main/java/in/koreatech/koin/domain/shop/repository/ShopRepository.java rename to src/main/java/in/koreatech/koin/domain/shop/repository/shop/ShopRepository.java index 7179cc12a..3d9d69dd2 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/repository/ShopRepository.java +++ b/src/main/java/in/koreatech/koin/domain/shop/repository/shop/ShopRepository.java @@ -1,4 +1,4 @@ -package in.koreatech.koin.domain.shop.repository; +package in.koreatech.koin.domain.shop.repository.shop; import java.util.List; import java.util.Optional; @@ -7,7 +7,7 @@ import org.springframework.data.repository.Repository; import in.koreatech.koin.domain.shop.exception.ShopNotFoundException; -import in.koreatech.koin.domain.shop.model.Shop; +import in.koreatech.koin.domain.shop.model.shop.Shop; public interface ShopRepository extends Repository { diff --git a/src/main/java/in/koreatech/koin/domain/shop/service/ShopReviewService.java b/src/main/java/in/koreatech/koin/domain/shop/service/ShopReviewService.java index c1066ac85..96953293c 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/service/ShopReviewService.java +++ b/src/main/java/in/koreatech/koin/domain/shop/service/ShopReviewService.java @@ -1,7 +1,7 @@ package in.koreatech.koin.domain.shop.service; -import static in.koreatech.koin.domain.shop.dto.ShopReviewReportRequest.InnerShopReviewReport; -import static in.koreatech.koin.domain.shop.model.ReportStatus.UNHANDLED; +import static in.koreatech.koin.domain.shop.dto.review.ShopReviewReportRequest.InnerShopReviewReport; +import static in.koreatech.koin.domain.shop.model.review.ReportStatus.UNHANDLED; import java.util.HashMap; import java.util.List; @@ -14,29 +14,29 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import in.koreatech.koin.domain.shop.dto.CreateReviewRequest; -import in.koreatech.koin.domain.shop.dto.ModifyReviewRequest; -import in.koreatech.koin.domain.shop.dto.ReviewsSortCriteria; -import in.koreatech.koin.domain.shop.dto.ShopMyReviewsResponse; -import in.koreatech.koin.domain.shop.dto.ShopReviewReportCategoryResponse; -import in.koreatech.koin.domain.shop.dto.ShopReviewReportRequest; -import in.koreatech.koin.domain.shop.dto.ShopReviewResponse; -import in.koreatech.koin.domain.shop.dto.ShopReviewsResponse; +import in.koreatech.koin.domain.shop.dto.review.CreateReviewRequest; +import in.koreatech.koin.domain.shop.dto.review.ModifyReviewRequest; +import in.koreatech.koin.domain.shop.dto.review.ReviewsSortCriteria; +import in.koreatech.koin.domain.shop.dto.review.ShopMyReviewsResponse; +import in.koreatech.koin.domain.shop.dto.review.ShopReviewReportCategoryResponse; +import in.koreatech.koin.domain.shop.dto.review.ShopReviewReportRequest; +import in.koreatech.koin.domain.shop.dto.review.ShopReviewResponse; +import in.koreatech.koin.domain.shop.dto.review.ShopReviewsResponse; import in.koreatech.koin.domain.shop.exception.ReviewNotFoundException; -import in.koreatech.koin.domain.shop.model.ReviewRegisterEvent; -import in.koreatech.koin.domain.shop.model.ReviewReportEvent; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.model.ShopReview; -import in.koreatech.koin.domain.shop.model.ShopReviewImage; -import in.koreatech.koin.domain.shop.model.ShopReviewMenu; -import in.koreatech.koin.domain.shop.model.ShopReviewReport; -import in.koreatech.koin.domain.shop.model.ShopReviewReportCategory; -import in.koreatech.koin.domain.shop.repository.ShopRepository; -import in.koreatech.koin.domain.shop.repository.ShopReviewImageRepository; -import in.koreatech.koin.domain.shop.repository.ShopReviewMenuRepository; -import in.koreatech.koin.domain.shop.repository.ShopReviewReportCategoryRepository; -import in.koreatech.koin.domain.shop.repository.ShopReviewReportRepository; -import in.koreatech.koin.domain.shop.repository.ShopReviewRepository; +import in.koreatech.koin.domain.shop.model.event.dto.ReviewRegisterEvent; +import in.koreatech.koin.domain.shop.model.event.dto.ReviewReportEvent; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.model.review.ShopReview; +import in.koreatech.koin.domain.shop.model.review.ShopReviewImage; +import in.koreatech.koin.domain.shop.model.review.ShopReviewMenu; +import in.koreatech.koin.domain.shop.model.review.ShopReviewReport; +import in.koreatech.koin.domain.shop.model.review.ShopReviewReportCategory; +import in.koreatech.koin.domain.shop.repository.shop.ShopRepository; +import in.koreatech.koin.domain.shop.repository.review.ShopReviewImageRepository; +import in.koreatech.koin.domain.shop.repository.review.ShopReviewMenuRepository; +import in.koreatech.koin.domain.shop.repository.review.ShopReviewReportCategoryRepository; +import in.koreatech.koin.domain.shop.repository.review.ShopReviewReportRepository; +import in.koreatech.koin.domain.shop.repository.review.ShopReviewRepository; import in.koreatech.koin.domain.user.model.Student; import in.koreatech.koin.domain.user.repository.StudentRepository; import in.koreatech.koin.global.auth.exception.AuthenticationException; diff --git a/src/main/java/in/koreatech/koin/domain/shop/service/ShopService.java b/src/main/java/in/koreatech/koin/domain/shop/service/ShopService.java index 207561fa4..7ed5c4d31 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/service/ShopService.java +++ b/src/main/java/in/koreatech/koin/domain/shop/service/ShopService.java @@ -1,6 +1,6 @@ package in.koreatech.koin.domain.shop.service; -import static in.koreatech.koin.domain.shop.dto.ShopsResponse.InnerShopResponse; +import static in.koreatech.koin.domain.shop.dto.shop.ShopsResponse.InnerShopResponse; import java.time.Clock; import java.time.LocalDate; @@ -12,26 +12,26 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import in.koreatech.koin.domain.shop.dto.MenuCategoriesResponse; -import in.koreatech.koin.domain.shop.dto.MenuDetailResponse; -import in.koreatech.koin.domain.shop.dto.ShopCategoriesResponse; -import in.koreatech.koin.domain.shop.dto.ShopEventsResponse; -import in.koreatech.koin.domain.shop.dto.ShopMenuResponse; -import in.koreatech.koin.domain.shop.dto.ShopResponse; -import in.koreatech.koin.domain.shop.dto.ShopsFilterCriteria; -import in.koreatech.koin.domain.shop.dto.ShopsResponse; -import in.koreatech.koin.domain.shop.dto.ShopsResponseV2; -import in.koreatech.koin.domain.shop.dto.ShopsSortCriteria; -import in.koreatech.koin.domain.shop.model.Menu; -import in.koreatech.koin.domain.shop.model.MenuCategory; -import in.koreatech.koin.domain.shop.model.MenuCategoryMap; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.model.ShopCategory; -import in.koreatech.koin.domain.shop.repository.EventArticleRepository; -import in.koreatech.koin.domain.shop.repository.MenuCategoryRepository; -import in.koreatech.koin.domain.shop.repository.MenuRepository; -import in.koreatech.koin.domain.shop.repository.ShopCategoryRepository; -import in.koreatech.koin.domain.shop.repository.ShopRepository; +import in.koreatech.koin.domain.shop.dto.menu.MenuCategoriesResponse; +import in.koreatech.koin.domain.shop.dto.menu.MenuDetailResponse; +import in.koreatech.koin.domain.shop.dto.shop.ShopCategoriesResponse; +import in.koreatech.koin.domain.shop.dto.shop.ShopEventsResponse; +import in.koreatech.koin.domain.shop.dto.menu.ShopMenuResponse; +import in.koreatech.koin.domain.shop.dto.shop.ShopResponse; +import in.koreatech.koin.domain.shop.dto.shop.ShopsFilterCriteria; +import in.koreatech.koin.domain.shop.dto.shop.ShopsResponse; +import in.koreatech.koin.domain.shop.dto.shop.ShopsResponseV2; +import in.koreatech.koin.domain.shop.dto.shop.ShopsSortCriteria; +import in.koreatech.koin.domain.shop.model.menu.Menu; +import in.koreatech.koin.domain.shop.model.menu.MenuCategory; +import in.koreatech.koin.domain.shop.model.menu.MenuCategoryMap; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.model.shop.ShopCategory; +import in.koreatech.koin.domain.shop.repository.event.EventArticleRepository; +import in.koreatech.koin.domain.shop.repository.menu.MenuCategoryRepository; +import in.koreatech.koin.domain.shop.repository.menu.MenuRepository; +import in.koreatech.koin.domain.shop.repository.shop.ShopCategoryRepository; +import in.koreatech.koin.domain.shop.repository.shop.ShopRepository; import in.koreatech.koin.domain.shop.repository.redis.ShopsRedisRepository; import in.koreatech.koin.global.exception.KoinIllegalArgumentException; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/in/koreatech/koin/global/config/WebConfig.java b/src/main/java/in/koreatech/koin/global/config/WebConfig.java index 909de47e4..d8dd8627a 100644 --- a/src/main/java/in/koreatech/koin/global/config/WebConfig.java +++ b/src/main/java/in/koreatech/koin/global/config/WebConfig.java @@ -11,7 +11,7 @@ import in.koreatech.koin.domain.bus.controller.BusStationEnumConverter; import in.koreatech.koin.domain.bus.controller.BusTypeEnumConverter; -import in.koreatech.koin.domain.shop.dto.ShopsFilterCriteriaConverter; +import in.koreatech.koin.domain.shop.dto.shop.ShopsFilterCriteriaConverter; import in.koreatech.koin.global.auth.AuthArgumentResolver; import in.koreatech.koin.global.auth.ExtractAuthenticationInterceptor; import in.koreatech.koin.global.auth.UserIdArgumentResolver; diff --git a/src/main/resources/db/migration/V58__add_benefit_table.sql b/src/main/resources/db/migration/V58__add_benefit_table.sql new file mode 100644 index 000000000..2200140f9 --- /dev/null +++ b/src/main/resources/db/migration/V58__add_benefit_table.sql @@ -0,0 +1,17 @@ +CREATE TABLE IF NOT EXISTS shop_benefit_categories ( + id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, + title VARCHAR(60) NOT NULL, + detail VARCHAR(255), + created_at timestamp default CURRENT_TIMESTAMP not null, + updated_at timestamp default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP +); + +CREATE TABLE IF NOT EXISTS shop_benefit_category_map ( + id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, + shop_id INT UNSIGNED NOT NULL, + benefit_id INT UNSIGNED NOT NULL, + created_at timestamp default CURRENT_TIMESTAMP not null, + updated_at timestamp default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP, + FOREIGN KEY (`shop_id`) references `shops` (`id`), + FOREIGN KEY (`benefit_id`) references `shop_benefit_categories` (`id`) +); diff --git a/src/main/resources/db/migration/V59__insert_benefit_category.sql b/src/main/resources/db/migration/V59__insert_benefit_category.sql new file mode 100644 index 000000000..d5e44b9dd --- /dev/null +++ b/src/main/resources/db/migration/V59__insert_benefit_category.sql @@ -0,0 +1,14 @@ +INSERT INTO shop_benefit_categories (title, detail) VALUES +('배달비 아끼기', '계좌이체하면 배달비가 무료(할인)인 상점들을 모아뒀어요.'), +('최소주문금액 무료', '계좌이체하면 최소주문금액이 무료인 상점들을 모아뒀어요.'), +('서비스 증정', '계좌이체하면 서비스를 주는 상점들을 모아뒀어요.'), +('가게까지 픽업', '사장님께서 직접 가게까지 데려다주시는 상점들을 모아뒀어요.'); + +INSERT INTO shop_benefit_category_map (shop_id, benefit_id) VALUES +(11, 1), +(11, 1), +(13, 2), +(13, 3), +(11, 3), +(11, 3), +(13, 4); diff --git a/src/test/java/in/koreatech/koin/AcceptanceTest.java b/src/test/java/in/koreatech/koin/AcceptanceTest.java index e9c5011ec..feb035955 100644 --- a/src/test/java/in/koreatech/koin/AcceptanceTest.java +++ b/src/test/java/in/koreatech/koin/AcceptanceTest.java @@ -25,8 +25,8 @@ import in.koreatech.koin.domain.community.keyword.model.ArticleKeywordEventListener; import in.koreatech.koin.domain.coop.model.CoopEventListener; import in.koreatech.koin.domain.owner.model.OwnerEventListener; -import in.koreatech.koin.domain.shop.model.ReviewEventListener; -import in.koreatech.koin.domain.shop.model.ShopEventListener; +import in.koreatech.koin.domain.shop.model.event.listener.ReviewEventListener; +import in.koreatech.koin.domain.shop.model.event.listener.ShopEventListener; import in.koreatech.koin.domain.user.model.StudentEventListener; import in.koreatech.koin.support.DBInitializer; import in.koreatech.koin.util.TestCircuitBreakerClient; diff --git a/src/test/java/in/koreatech/koin/acceptance/BenefitApiTest.java b/src/test/java/in/koreatech/koin/acceptance/BenefitApiTest.java new file mode 100644 index 000000000..8edda5d30 --- /dev/null +++ b/src/test/java/in/koreatech/koin/acceptance/BenefitApiTest.java @@ -0,0 +1,304 @@ +package in.koreatech.koin.acceptance; + +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; + +import in.koreatech.koin.AcceptanceTest; +import in.koreatech.koin.domain.benefit.model.BenefitCategory; +import in.koreatech.koin.domain.owner.model.Owner; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.user.model.Student; +import in.koreatech.koin.fixture.BenefitCategoryFixture; +import in.koreatech.koin.fixture.BenefitCategoryMapFixture; +import in.koreatech.koin.fixture.ShopFixture; +import in.koreatech.koin.fixture.ShopReviewFixture; +import in.koreatech.koin.fixture.UserFixture; + +@Transactional +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +public class BenefitApiTest extends AcceptanceTest { + + @Autowired + BenefitCategoryFixture benefitCategoryFixture; + + @Autowired + BenefitCategoryMapFixture benefitCategoryMapFixture; + + @Autowired + ShopReviewFixture shopReviewFixture; + + @Autowired + ShopFixture shopFixture; + + @Autowired + UserFixture userFixture; + + BenefitCategory 배달비_무료; + BenefitCategory 최소주문금액_무료; + BenefitCategory 서비스_증정; + BenefitCategory 가게까지_픽업; + + Owner 현수_사장님; + + Student 성빈_학생; + + Shop 마슬랜; + Shop 김밥천국; + Shop 영업중인_티바; + Shop 영업중이_아닌_신전_떡볶이; + + @BeforeAll + void setup() { + clear(); + 현수_사장님 = userFixture.현수_사장님(); + 배달비_무료 = benefitCategoryFixture.배달비_무료(); + 최소주문금액_무료 = benefitCategoryFixture.최소주문금액_무료(); + 서비스_증정 = benefitCategoryFixture.서비스_증정(); + 가게까지_픽업 = benefitCategoryFixture.가게까지_픽업(); + + 마슬랜 = shopFixture.마슬랜(현수_사장님); + 김밥천국 = shopFixture.김밥천국(현수_사장님); + 영업중인_티바 = shopFixture.영업중인_티바(현수_사장님); + 영업중이_아닌_신전_떡볶이 = shopFixture.영업중이_아닌_신전_떡볶이(현수_사장님); + + 성빈_학생 = userFixture.성빈_학생(); + + benefitCategoryMapFixture.혜택_추가(김밥천국, 배달비_무료); + benefitCategoryMapFixture.혜택_추가(마슬랜, 배달비_무료); + benefitCategoryMapFixture.혜택_추가(영업중인_티바, 배달비_무료); + benefitCategoryMapFixture.혜택_추가(영업중이_아닌_신전_떡볶이, 배달비_무료); + + shopReviewFixture.리뷰_4점(성빈_학생, 마슬랜); + shopReviewFixture.리뷰_4점(성빈_학생, 영업중인_티바); + shopReviewFixture.리뷰_5점(성빈_학생, 영업중이_아닌_신전_떡볶이); + shopReviewFixture.리뷰_5점(성빈_학생, 김밥천국); + } + + @Test + void 혜택_카테고리를_조회한다() throws Exception { + mockMvc.perform( + get("/benefit/categories") + ) + .andExpect(status().isOk()) + .andExpect(content().json(""" + { + "benefits": [ + { + "id": 1, + "title": "배달비 아끼기", + "detail": "계좌이체하면 배달비가 무료(할인)인 상점들을 모아뒀어요." + }, + { + "id": 2, + "title": "최소주문금액 무료", + "detail": "계좌이체하면 최소주문금액이 무료인 상점들을 모아뒀어요." + }, + { + "id": 3, + "title": "서비스 증정", + "detail": "계좌이체하면 서비스를 주는 상점들을 모아뒀어요." + }, + { + "id": 4, + "title": "가게까지 픽업", + "detail": "사장님께서 직접 가게까지 데려다주시는 상점들을 모아뒀어요." + } + ] + } + """)); + } + + @Test + void 특정_혜택을_제공하는_모든_상점을_조회한다() throws Exception { + mockMvc.perform( + get("/benefit/{id}/shops", 배달비_무료.getId()) + ) + .andExpect(status().isOk()) + .andExpect(content().json(String.format(""" + { + "count": 4, + "shops": [ + { + "categoryIds": [], + "delivery": true, + "id": %d, + "name": "김밥천국", + "open": [ + { + "day_of_week": "MONDAY", + "closed": false, + "open_time": "00:00", + "close_time": "21:00" + }, + { + "day_of_week": "FRIDAY", + "closed": false, + "open_time": "00:00", + "close_time": "00:00" + } + ], + "payBank": true, + "payCard": true, + "phone": "010-7574-1212", + "isEvent": false, + "isOpen": true, + "averageRate": 5.0, + "reviewCount": 1 + }, + { + "categoryIds": [], + "delivery": true, + "id": %d, + "name": "마슬랜 치킨", + "open": [ + { + "day_of_week": "MONDAY", + "closed": false, + "open_time": "00:00", + "close_time": "21:00" + }, + { + "day_of_week": "FRIDAY", + "closed": false, + "open_time": "00:00", + "close_time": "00:00" + } + ], + "payBank": true, + "payCard": true, + "phone": "010-7574-1212", + "isEvent": false, + "isOpen": true, + "averageRate": 4.0, + "reviewCount": 1 + }, + { + "categoryIds": [], + "delivery": true, + "id": %d, + "name": "티바", + "open": [ + { + "day_of_week": "SUNDAY", + "closed": false, + "open_time": "00:00", + "close_time": "00:00" + }, + { + "day_of_week": "MONDAY", + "closed": false, + "open_time": "11:30", + "close_time": "21:30" + }, + { + "day_of_week": "TUESDAY", + "closed": false, + "open_time": "11:30", + "close_time": "21:30" + }, + { + "day_of_week": "WEDNESDAY", + "closed": false, + "open_time": "11:30", + "close_time": "21:30" + }, + { + "day_of_week": "THURSDAY", + "closed": false, + "open_time": "11:30", + "close_time": "21:30" + }, + { + "day_of_week": "FRIDAY", + "closed": false, + "open_time": "11:30", + "close_time": "21:30" + }, + { + "day_of_week": "SATURDAY", + "closed": false, + "open_time": "11:30", + "close_time": "21:30" + } + ], + "payBank": true, + "payCard": true, + "phone": "010-7788-9900", + "isEvent": false, + "isOpen": true, + "averageRate": 4.0, + "reviewCount": 1 + }, + { + "categoryIds": [], + "delivery": true, + "id": %d, + "name": "신전 떡볶이", + "open": [ + { + "day_of_week": "SUNDAY", + "closed": false, + "open_time": "00:00", + "close_time": "00:00" + }, + { + "day_of_week": "MONDAY", + "closed": false, + "open_time": "12:30", + "close_time": "21:30" + }, + { + "day_of_week": "TUESDAY", + "closed": false, + "open_time": "11:30", + "close_time": "21:30" + }, + { + "day_of_week": "WEDNESDAY", + "closed": false, + "open_time": "11:30", + "close_time": "21:30" + }, + { + "day_of_week": "THURSDAY", + "closed": false, + "open_time": "11:30", + "close_time": "21:30" + }, + { + "day_of_week": "FRIDAY", + "closed": false, + "open_time": "11:30", + "close_time": "21:30" + }, + { + "day_of_week": "SATURDAY", + "closed": false, + "open_time": "11:30", + "close_time": "21:30" + } + ], + "payBank": true, + "payCard": true, + "phone": "010-7788-9900", + "isEvent": false, + "isOpen": false, + "averageRate": 5.0, + "reviewCount": 1 + } + ] + } + """, + 김밥천국.getId(), + 마슬랜.getId(), + 영업중인_티바.getId(), + 영업중이_아닌_신전_떡볶이.getId()))); + } +} diff --git a/src/test/java/in/koreatech/koin/acceptance/OwnerApiTest.java b/src/test/java/in/koreatech/koin/acceptance/OwnerApiTest.java index 785c9a5de..c92b53d94 100644 --- a/src/test/java/in/koreatech/koin/acceptance/OwnerApiTest.java +++ b/src/test/java/in/koreatech/koin/acceptance/OwnerApiTest.java @@ -26,7 +26,7 @@ import in.koreatech.koin.domain.owner.repository.OwnerRepository; import in.koreatech.koin.domain.owner.repository.OwnerShopRedisRepository; import in.koreatech.koin.domain.owner.repository.redis.OwnerVerificationStatusRepository; -import in.koreatech.koin.domain.shop.model.Shop; +import in.koreatech.koin.domain.shop.model.shop.Shop; import in.koreatech.koin.domain.user.model.User; import in.koreatech.koin.domain.user.repository.UserRepository; import in.koreatech.koin.fixture.ShopFixture; diff --git a/src/test/java/in/koreatech/koin/acceptance/OwnerShopApiTest.java b/src/test/java/in/koreatech/koin/acceptance/OwnerShopApiTest.java index 35019bf6a..bbe5cb785 100644 --- a/src/test/java/in/koreatech/koin/acceptance/OwnerShopApiTest.java +++ b/src/test/java/in/koreatech/koin/acceptance/OwnerShopApiTest.java @@ -24,21 +24,21 @@ import in.koreatech.koin.AcceptanceTest; import in.koreatech.koin.domain.owner.model.Owner; -import in.koreatech.koin.domain.shop.model.EventArticle; -import in.koreatech.koin.domain.shop.model.Menu; -import in.koreatech.koin.domain.shop.model.MenuCategory; -import in.koreatech.koin.domain.shop.model.MenuCategoryMap; -import in.koreatech.koin.domain.shop.model.MenuImage; -import in.koreatech.koin.domain.shop.model.MenuOption; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.model.ShopCategory; -import in.koreatech.koin.domain.shop.model.ShopCategoryMap; -import in.koreatech.koin.domain.shop.model.ShopImage; -import in.koreatech.koin.domain.shop.model.ShopOpen; -import in.koreatech.koin.domain.shop.repository.EventArticleRepository; -import in.koreatech.koin.domain.shop.repository.MenuCategoryRepository; -import in.koreatech.koin.domain.shop.repository.MenuRepository; -import in.koreatech.koin.domain.shop.repository.ShopRepository; +import in.koreatech.koin.domain.shop.model.article.EventArticle; +import in.koreatech.koin.domain.shop.model.menu.Menu; +import in.koreatech.koin.domain.shop.model.menu.MenuCategory; +import in.koreatech.koin.domain.shop.model.menu.MenuCategoryMap; +import in.koreatech.koin.domain.shop.model.menu.MenuImage; +import in.koreatech.koin.domain.shop.model.menu.MenuOption; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.model.shop.ShopCategory; +import in.koreatech.koin.domain.shop.model.shop.ShopCategoryMap; +import in.koreatech.koin.domain.shop.model.shop.ShopImage; +import in.koreatech.koin.domain.shop.model.shop.ShopOpen; +import in.koreatech.koin.domain.shop.repository.event.EventArticleRepository; +import in.koreatech.koin.domain.shop.repository.menu.MenuCategoryRepository; +import in.koreatech.koin.domain.shop.repository.menu.MenuRepository; +import in.koreatech.koin.domain.shop.repository.shop.ShopRepository; import in.koreatech.koin.fixture.EventArticleFixture; import in.koreatech.koin.fixture.MenuCategoryFixture; import in.koreatech.koin.fixture.MenuFixture; diff --git a/src/test/java/in/koreatech/koin/acceptance/ShopApiTest.java b/src/test/java/in/koreatech/koin/acceptance/ShopApiTest.java index ec4e2144a..b41808f25 100644 --- a/src/test/java/in/koreatech/koin/acceptance/ShopApiTest.java +++ b/src/test/java/in/koreatech/koin/acceptance/ShopApiTest.java @@ -1,9 +1,10 @@ package in.koreatech.koin.acceptance; -import static in.koreatech.koin.domain.shop.model.ReportStatus.DISMISSED; -import static in.koreatech.koin.domain.shop.model.ReportStatus.UNHANDLED; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; +import static in.koreatech.koin.domain.shop.model.review.ReportStatus.DISMISSED; +import static in.koreatech.koin.domain.shop.model.review.ReportStatus.UNHANDLED; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import java.time.LocalDate; @@ -15,9 +16,9 @@ import in.koreatech.koin.AcceptanceTest; import in.koreatech.koin.domain.owner.model.Owner; -import in.koreatech.koin.domain.shop.model.Menu; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.model.ShopReview; +import in.koreatech.koin.domain.shop.model.menu.Menu; +import in.koreatech.koin.domain.shop.model.review.ShopReview; +import in.koreatech.koin.domain.shop.model.shop.Shop; import in.koreatech.koin.domain.user.model.Student; import in.koreatech.koin.fixture.EventArticleFixture; import in.koreatech.koin.fixture.MenuCategoryFixture; diff --git a/src/test/java/in/koreatech/koin/acceptance/ShopReviewApiTest.java b/src/test/java/in/koreatech/koin/acceptance/ShopReviewApiTest.java index 7759e0e83..14db33285 100644 --- a/src/test/java/in/koreatech/koin/acceptance/ShopReviewApiTest.java +++ b/src/test/java/in/koreatech/koin/acceptance/ShopReviewApiTest.java @@ -1,6 +1,6 @@ package in.koreatech.koin.acceptance; -import static in.koreatech.koin.domain.shop.model.ReportStatus.UNHANDLED; +import static in.koreatech.koin.domain.shop.model.review.ReportStatus.*; import static org.assertj.core.api.SoftAssertions.assertSoftly; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.verify; @@ -20,13 +20,14 @@ import in.koreatech.koin.AcceptanceTest; import in.koreatech.koin.domain.owner.model.Owner; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.model.ShopReview; -import in.koreatech.koin.domain.shop.model.ShopReviewReport; -import in.koreatech.koin.domain.shop.model.ShopReviewReportCategory; -import in.koreatech.koin.domain.shop.repository.ShopReviewReportCategoryRepository; -import in.koreatech.koin.domain.shop.repository.ShopReviewReportRepository; -import in.koreatech.koin.domain.shop.repository.ShopReviewRepository; +import in.koreatech.koin.domain.shop.model.review.ReportStatus; +import in.koreatech.koin.domain.shop.model.review.ShopReview; +import in.koreatech.koin.domain.shop.model.review.ShopReviewReport; +import in.koreatech.koin.domain.shop.model.review.ShopReviewReportCategory; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.repository.review.ShopReviewReportCategoryRepository; +import in.koreatech.koin.domain.shop.repository.review.ShopReviewReportRepository; +import in.koreatech.koin.domain.shop.repository.review.ShopReviewRepository; import in.koreatech.koin.domain.user.model.Student; import in.koreatech.koin.fixture.ShopFixture; import in.koreatech.koin.fixture.ShopReviewFixture; diff --git a/src/test/java/in/koreatech/koin/admin/acceptance/AdminShopApiTest.java b/src/test/java/in/koreatech/koin/admin/acceptance/AdminShopApiTest.java index 13e8ceaa0..18238d288 100644 --- a/src/test/java/in/koreatech/koin/admin/acceptance/AdminShopApiTest.java +++ b/src/test/java/in/koreatech/koin/admin/acceptance/AdminShopApiTest.java @@ -23,16 +23,16 @@ import in.koreatech.koin.admin.shop.repository.AdminShopCategoryRepository; import in.koreatech.koin.admin.shop.repository.AdminShopRepository; import in.koreatech.koin.domain.owner.model.Owner; -import in.koreatech.koin.domain.shop.model.Menu; -import in.koreatech.koin.domain.shop.model.MenuCategory; -import in.koreatech.koin.domain.shop.model.MenuCategoryMap; -import in.koreatech.koin.domain.shop.model.MenuImage; -import in.koreatech.koin.domain.shop.model.MenuOption; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.model.ShopCategory; -import in.koreatech.koin.domain.shop.model.ShopCategoryMap; -import in.koreatech.koin.domain.shop.model.ShopImage; -import in.koreatech.koin.domain.shop.model.ShopOpen; +import in.koreatech.koin.domain.shop.model.menu.Menu; +import in.koreatech.koin.domain.shop.model.menu.MenuCategory; +import in.koreatech.koin.domain.shop.model.menu.MenuCategoryMap; +import in.koreatech.koin.domain.shop.model.menu.MenuImage; +import in.koreatech.koin.domain.shop.model.menu.MenuOption; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.model.shop.ShopCategory; +import in.koreatech.koin.domain.shop.model.shop.ShopCategoryMap; +import in.koreatech.koin.domain.shop.model.shop.ShopImage; +import in.koreatech.koin.domain.shop.model.shop.ShopOpen; import in.koreatech.koin.domain.user.model.User; import in.koreatech.koin.fixture.MenuCategoryFixture; import in.koreatech.koin.fixture.MenuFixture; diff --git a/src/test/java/in/koreatech/koin/admin/acceptance/AdminShopReviewApiTest.java b/src/test/java/in/koreatech/koin/admin/acceptance/AdminShopReviewApiTest.java index a7fcec28c..0c9523345 100644 --- a/src/test/java/in/koreatech/koin/admin/acceptance/AdminShopReviewApiTest.java +++ b/src/test/java/in/koreatech/koin/admin/acceptance/AdminShopReviewApiTest.java @@ -1,11 +1,12 @@ package in.koreatech.koin.admin.acceptance; +import static in.koreatech.koin.domain.shop.model.review.ReportStatus.*; import static org.assertj.core.api.Assertions.assertThat; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; import java.util.List; import java.util.Optional; @@ -20,10 +21,10 @@ import in.koreatech.koin.AcceptanceTest; import in.koreatech.koin.admin.shop.repository.AdminShopReviewRepository; import in.koreatech.koin.domain.owner.model.Owner; -import in.koreatech.koin.domain.shop.model.ReportStatus; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.model.ShopReview; -import in.koreatech.koin.domain.shop.model.ShopReviewReport; +import in.koreatech.koin.domain.shop.model.review.ReportStatus; +import in.koreatech.koin.domain.shop.model.review.ShopReview; +import in.koreatech.koin.domain.shop.model.review.ShopReviewReport; +import in.koreatech.koin.domain.shop.model.shop.Shop; import in.koreatech.koin.domain.user.model.Student; import in.koreatech.koin.domain.user.model.User; import in.koreatech.koin.fixture.ShopFixture; @@ -89,7 +90,7 @@ void setUp() { @Test void 어드민이_특정_리뷰의_신고_상태를_변경한다() throws Exception { - ShopReviewReport report = shopReviewReportFixture.리뷰_신고(student_익명, 준호_리뷰, ReportStatus.UNHANDLED); + ShopReviewReport report = shopReviewReportFixture.리뷰_신고(student_익명, 준호_리뷰, UNHANDLED); mockMvc.perform( put("/admin/shops/reviews/{id}", report.getId()) @@ -108,7 +109,7 @@ void setUp() { List shopReviewReport = updatedReport.getReports().stream() .filter(reviewReport -> reviewReport.getId().equals(report.getId())) .toList(); - assertThat(shopReviewReport.get(0).getReportStatus()).isEqualTo(ReportStatus.DELETED); + assertThat(shopReviewReport.get(0).getReportStatus()).isEqualTo(DELETED); } @Test diff --git a/src/test/java/in/koreatech/koin/admin/acceptance/AdminUserApiTest.java b/src/test/java/in/koreatech/koin/admin/acceptance/AdminUserApiTest.java index 152312a09..002a61e5d 100644 --- a/src/test/java/in/koreatech/koin/admin/acceptance/AdminUserApiTest.java +++ b/src/test/java/in/koreatech/koin/admin/acceptance/AdminUserApiTest.java @@ -33,7 +33,7 @@ import in.koreatech.koin.domain.owner.model.OwnerAttachment; import in.koreatech.koin.domain.owner.model.OwnerShop; import in.koreatech.koin.domain.owner.repository.OwnerShopRedisRepository; -import in.koreatech.koin.domain.shop.model.Shop; +import in.koreatech.koin.domain.shop.model.shop.Shop; import in.koreatech.koin.domain.user.model.Student; import in.koreatech.koin.domain.user.model.User; import in.koreatech.koin.domain.user.model.UserGender; diff --git a/src/test/java/in/koreatech/koin/fixture/BenefitCategoryFixture.java b/src/test/java/in/koreatech/koin/fixture/BenefitCategoryFixture.java new file mode 100644 index 000000000..190dcc129 --- /dev/null +++ b/src/test/java/in/koreatech/koin/fixture/BenefitCategoryFixture.java @@ -0,0 +1,54 @@ +package in.koreatech.koin.fixture; + +import org.springframework.stereotype.Component; + +import in.koreatech.koin.domain.benefit.model.BenefitCategory; +import in.koreatech.koin.domain.benefit.repository.BenefitCategoryMapRepository; +import in.koreatech.koin.domain.benefit.repository.BenefitCategoryRepository; + +@Component +public class BenefitCategoryFixture { + + private final BenefitCategoryRepository benefitCategoryRepository; + private final BenefitCategoryMapRepository benefitCategoryMapRepository; + + public BenefitCategoryFixture( + BenefitCategoryRepository benefitCategoryRepository, + BenefitCategoryMapRepository benefitCategoryMapRepository + ) { + this.benefitCategoryRepository = benefitCategoryRepository; + this.benefitCategoryMapRepository = benefitCategoryMapRepository; + } + + public BenefitCategory 배달비_무료() { + return benefitCategoryRepository.save(BenefitCategory.builder() + .title("배달비 아끼기") + .detail("계좌이체하면 배달비가 무료(할인)인 상점들을 모아뒀어요.") + .build() + ); + } + + public BenefitCategory 최소주문금액_무료() { + return benefitCategoryRepository.save(BenefitCategory.builder() + .title("최소주문금액 무료") + .detail("계좌이체하면 최소주문금액이 무료인 상점들을 모아뒀어요.") + .build() + ); + } + + public BenefitCategory 서비스_증정() { + return benefitCategoryRepository.save(BenefitCategory.builder() + .title("서비스 증정") + .detail("계좌이체하면 서비스를 주는 상점들을 모아뒀어요.") + .build() + ); + } + + public BenefitCategory 가게까지_픽업() { + return benefitCategoryRepository.save(BenefitCategory.builder() + .title("가게까지 픽업") + .detail("사장님께서 직접 가게까지 데려다주시는 상점들을 모아뒀어요.") + .build() + ); + } +} diff --git a/src/test/java/in/koreatech/koin/fixture/BenefitCategoryMapFixture.java b/src/test/java/in/koreatech/koin/fixture/BenefitCategoryMapFixture.java new file mode 100644 index 000000000..8eca67285 --- /dev/null +++ b/src/test/java/in/koreatech/koin/fixture/BenefitCategoryMapFixture.java @@ -0,0 +1,28 @@ +package in.koreatech.koin.fixture; + +import org.springframework.stereotype.Component; + +import in.koreatech.koin.domain.benefit.model.BenefitCategory; +import in.koreatech.koin.domain.benefit.model.BenefitCategoryMap; +import in.koreatech.koin.domain.benefit.repository.BenefitCategoryMapRepository; +import in.koreatech.koin.domain.benefit.repository.BenefitCategoryRepository; +import in.koreatech.koin.domain.shop.model.shop.Shop; + +@Component +public class BenefitCategoryMapFixture { + + private final BenefitCategoryMapRepository benefitCategoryMapRepository; + + public BenefitCategoryMapFixture( + BenefitCategoryMapRepository benefitCategoryMapRepository + ) { + this.benefitCategoryMapRepository = benefitCategoryMapRepository; + } + + public BenefitCategoryMap 혜택_추가(Shop shop, BenefitCategory benefitCategory) { + return benefitCategoryMapRepository.save(BenefitCategoryMap.builder() + .shop(shop) + .benefitCategory(benefitCategory) + .build()); + } +} diff --git a/src/test/java/in/koreatech/koin/fixture/EventArticleFixture.java b/src/test/java/in/koreatech/koin/fixture/EventArticleFixture.java index 308325451..c6bec31c1 100644 --- a/src/test/java/in/koreatech/koin/fixture/EventArticleFixture.java +++ b/src/test/java/in/koreatech/koin/fixture/EventArticleFixture.java @@ -5,10 +5,10 @@ import org.springframework.stereotype.Component; -import in.koreatech.koin.domain.shop.model.EventArticle; -import in.koreatech.koin.domain.shop.model.EventArticleImage; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.repository.EventArticleRepository; +import in.koreatech.koin.domain.shop.model.article.EventArticle; +import in.koreatech.koin.domain.shop.model.article.EventArticleImage; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.repository.event.EventArticleRepository; @Component @SuppressWarnings("NonAsciiCharacters") diff --git a/src/test/java/in/koreatech/koin/fixture/MenuCategoryFixture.java b/src/test/java/in/koreatech/koin/fixture/MenuCategoryFixture.java index 670aa6611..a7c6a6822 100644 --- a/src/test/java/in/koreatech/koin/fixture/MenuCategoryFixture.java +++ b/src/test/java/in/koreatech/koin/fixture/MenuCategoryFixture.java @@ -2,9 +2,9 @@ import org.springframework.stereotype.Component; -import in.koreatech.koin.domain.shop.model.MenuCategory; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.repository.MenuCategoryRepository; +import in.koreatech.koin.domain.shop.model.menu.MenuCategory; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.repository.menu.MenuCategoryRepository; @Component @SuppressWarnings("NonAsciiCharacters") diff --git a/src/test/java/in/koreatech/koin/fixture/MenuFixture.java b/src/test/java/in/koreatech/koin/fixture/MenuFixture.java index 2921d45dd..eb38e756c 100644 --- a/src/test/java/in/koreatech/koin/fixture/MenuFixture.java +++ b/src/test/java/in/koreatech/koin/fixture/MenuFixture.java @@ -4,14 +4,14 @@ import org.springframework.stereotype.Component; -import in.koreatech.koin.domain.shop.model.Menu; -import in.koreatech.koin.domain.shop.model.MenuCategory; -import in.koreatech.koin.domain.shop.model.MenuCategoryMap; -import in.koreatech.koin.domain.shop.model.MenuImage; -import in.koreatech.koin.domain.shop.model.MenuOption; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.repository.MenuCategoryMapRepository; -import in.koreatech.koin.domain.shop.repository.MenuRepository; +import in.koreatech.koin.domain.shop.model.menu.Menu; +import in.koreatech.koin.domain.shop.model.menu.MenuCategory; +import in.koreatech.koin.domain.shop.model.menu.MenuCategoryMap; +import in.koreatech.koin.domain.shop.model.menu.MenuImage; +import in.koreatech.koin.domain.shop.model.menu.MenuOption; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.repository.menu.MenuCategoryMapRepository; +import in.koreatech.koin.domain.shop.repository.menu.MenuRepository; @Component @SuppressWarnings("NonAsciiCharacters") diff --git a/src/test/java/in/koreatech/koin/fixture/ShopCategoryFixture.java b/src/test/java/in/koreatech/koin/fixture/ShopCategoryFixture.java index 27153f062..e30b4d8ae 100644 --- a/src/test/java/in/koreatech/koin/fixture/ShopCategoryFixture.java +++ b/src/test/java/in/koreatech/koin/fixture/ShopCategoryFixture.java @@ -2,8 +2,8 @@ import org.springframework.stereotype.Component; -import in.koreatech.koin.domain.shop.model.ShopCategory; -import in.koreatech.koin.domain.shop.repository.ShopCategoryRepository; +import in.koreatech.koin.domain.shop.model.shop.ShopCategory; +import in.koreatech.koin.domain.shop.repository.shop.ShopCategoryRepository; @Component @SuppressWarnings("NonAsciiCharacters") diff --git a/src/test/java/in/koreatech/koin/fixture/ShopFixture.java b/src/test/java/in/koreatech/koin/fixture/ShopFixture.java index f6d2cff5f..9cbf4f39d 100644 --- a/src/test/java/in/koreatech/koin/fixture/ShopFixture.java +++ b/src/test/java/in/koreatech/koin/fixture/ShopFixture.java @@ -7,12 +7,12 @@ import org.springframework.stereotype.Component; import in.koreatech.koin.domain.owner.model.Owner; -import in.koreatech.koin.domain.shop.model.MenuCategory; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.model.ShopCategoryMap; -import in.koreatech.koin.domain.shop.model.ShopImage; -import in.koreatech.koin.domain.shop.model.ShopOpen; -import in.koreatech.koin.domain.shop.repository.ShopRepository; +import in.koreatech.koin.domain.shop.model.menu.MenuCategory; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.model.shop.ShopCategoryMap; +import in.koreatech.koin.domain.shop.model.shop.ShopImage; +import in.koreatech.koin.domain.shop.model.shop.ShopOpen; +import in.koreatech.koin.domain.shop.repository.shop.ShopRepository; @Component @SuppressWarnings("NonAsciiCharacters") @@ -24,6 +24,61 @@ public ShopFixture(ShopRepository shopRepository) { this.shopRepository = shopRepository; } + public Shop 김밥천국(Owner owner) { + var shop = shopRepository.save( + Shop.builder() + .owner(owner) + .name("김밥천국") + .internalName("김천") + .chosung("김") + .phone("010-7574-1212") + .address("천안시 동남구 병천면 1600") + .description("김밥천국입니다.") + .delivery(true) + .deliveryPrice(3000) + .payCard(true) + .payBank(true) + .isDeleted(false) + .isEvent(false) + .remarks("비고") + .hit(0) + .bank("국민") + .accountNumber("01022595923") + .build() + ); + shop.getShopImages().addAll( + List.of( + ShopImage.builder() + .shop(shop) + .imageUrl("https://test-image.com/김천1.png") + .build(), + ShopImage.builder() + .shop(shop) + .imageUrl("https://test-image.com/김천2.png") + .build() + ) + ); + shop.getShopOpens().addAll( + List.of( + ShopOpen.builder() + .openTime(LocalTime.of(0, 0)) + .closeTime(LocalTime.of(21, 0)) + .shop(shop) + .closed(false) + .dayOfWeek("MONDAY") + .build(), + ShopOpen.builder() + .openTime(LocalTime.of(0, 0)) + .closeTime(LocalTime.of(0, 0)) + .shop(shop) + .closed(false) + .dayOfWeek("FRIDAY") + .build() + ) + ); + return shopRepository.save(shop); + } + public Shop 마슬랜(Owner owner) { var shop = shopRepository.save( Shop.builder() diff --git a/src/test/java/in/koreatech/koin/fixture/ShopReviewFixture.java b/src/test/java/in/koreatech/koin/fixture/ShopReviewFixture.java index 0c26cd572..543245712 100644 --- a/src/test/java/in/koreatech/koin/fixture/ShopReviewFixture.java +++ b/src/test/java/in/koreatech/koin/fixture/ShopReviewFixture.java @@ -5,14 +5,14 @@ import org.springframework.stereotype.Component; import in.koreatech.koin.config.FixedDate; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.model.ShopReview; -import in.koreatech.koin.domain.shop.model.ShopReviewImage; -import in.koreatech.koin.domain.shop.model.ShopReviewMenu; -import in.koreatech.koin.domain.shop.repository.ShopRepository; -import in.koreatech.koin.domain.shop.repository.ShopReviewImageRepository; -import in.koreatech.koin.domain.shop.repository.ShopReviewMenuRepository; -import in.koreatech.koin.domain.shop.repository.ShopReviewRepository; +import in.koreatech.koin.domain.shop.model.review.ShopReview; +import in.koreatech.koin.domain.shop.model.review.ShopReviewImage; +import in.koreatech.koin.domain.shop.model.review.ShopReviewMenu; +import in.koreatech.koin.domain.shop.model.shop.Shop; +import in.koreatech.koin.domain.shop.repository.review.ShopReviewImageRepository; +import in.koreatech.koin.domain.shop.repository.review.ShopReviewMenuRepository; +import in.koreatech.koin.domain.shop.repository.review.ShopReviewRepository; +import in.koreatech.koin.domain.shop.repository.shop.ShopRepository; import in.koreatech.koin.domain.user.model.Student; @Component diff --git a/src/test/java/in/koreatech/koin/fixture/ShopReviewReportCategoryFixture.java b/src/test/java/in/koreatech/koin/fixture/ShopReviewReportCategoryFixture.java index 06e9e059c..3421cb40d 100644 --- a/src/test/java/in/koreatech/koin/fixture/ShopReviewReportCategoryFixture.java +++ b/src/test/java/in/koreatech/koin/fixture/ShopReviewReportCategoryFixture.java @@ -2,8 +2,8 @@ import org.springframework.stereotype.Component; -import in.koreatech.koin.domain.shop.model.ShopReviewReportCategory; -import in.koreatech.koin.domain.shop.repository.ShopReviewReportCategoryRepository; +import in.koreatech.koin.domain.shop.model.review.ShopReviewReportCategory; +import in.koreatech.koin.domain.shop.repository.review.ShopReviewReportCategoryRepository; @Component @SuppressWarnings("NonAsciiCharacters") diff --git a/src/test/java/in/koreatech/koin/fixture/ShopReviewReportFixture.java b/src/test/java/in/koreatech/koin/fixture/ShopReviewReportFixture.java index 878adab9d..dfa80b87e 100644 --- a/src/test/java/in/koreatech/koin/fixture/ShopReviewReportFixture.java +++ b/src/test/java/in/koreatech/koin/fixture/ShopReviewReportFixture.java @@ -2,16 +2,10 @@ import org.springframework.stereotype.Component; -import in.koreatech.koin.domain.shop.model.ReportStatus; -import in.koreatech.koin.domain.shop.model.Shop; -import in.koreatech.koin.domain.shop.model.ShopReview; -import in.koreatech.koin.domain.shop.model.ShopReviewImage; -import in.koreatech.koin.domain.shop.model.ShopReviewMenu; -import in.koreatech.koin.domain.shop.model.ShopReviewReport; -import in.koreatech.koin.domain.shop.repository.ShopReviewImageRepository; -import in.koreatech.koin.domain.shop.repository.ShopReviewMenuRepository; -import in.koreatech.koin.domain.shop.repository.ShopReviewReportRepository; -import in.koreatech.koin.domain.shop.repository.ShopReviewRepository; +import in.koreatech.koin.domain.shop.model.review.ReportStatus; +import in.koreatech.koin.domain.shop.model.review.ShopReview; +import in.koreatech.koin.domain.shop.model.review.ShopReviewReport; +import in.koreatech.koin.domain.shop.repository.review.ShopReviewReportRepository; import in.koreatech.koin.domain.user.model.Student; @Component