diff --git a/src/main/java/com/ongil/backend/domain/pricealert/dto/request/PriceAlertRequest.java b/src/main/java/com/ongil/backend/domain/pricealert/dto/request/PriceAlertRequest.java index 7a29a4c..0ea4c1e 100644 --- a/src/main/java/com/ongil/backend/domain/pricealert/dto/request/PriceAlertRequest.java +++ b/src/main/java/com/ongil/backend/domain/pricealert/dto/request/PriceAlertRequest.java @@ -2,7 +2,6 @@ import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Positive; import lombok.Getter; @Getter @@ -13,8 +12,7 @@ public class PriceAlertRequest { @Schema(description = "상품 ID", example = "1") private Long productId; - @NotNull(message = "목표 가격은 필수입니다.") - @Positive(message = "목표 가격은 양수여야 합니다.") - @Schema(description = "목표 가격 (사용자가 선택한 할인가)", example = "47500") - private Integer targetPrice; + @NotNull(message = "할인율은 필수입니다.") + @Schema(description = "할인율 (10, 20, 30, 40 중 선택)", example = "20", allowableValues = {"10", "20", "30", "40"}) + private Integer discountRate; } \ No newline at end of file diff --git a/src/main/java/com/ongil/backend/domain/pricealert/service/PriceAlertService.java b/src/main/java/com/ongil/backend/domain/pricealert/service/PriceAlertService.java index f78b523..912167b 100644 --- a/src/main/java/com/ongil/backend/domain/pricealert/service/PriceAlertService.java +++ b/src/main/java/com/ongil/backend/domain/pricealert/service/PriceAlertService.java @@ -43,9 +43,12 @@ public PriceAlert createOrUpdatePriceAlert(Long userId, PriceAlertRequest reques priceAlertRepository.findByUserIdAndProductIdAndIsActiveTrue(userId, request.getProductId()) .ifPresent(PriceAlert::deactivate); + // 할인율로 목표 가격 계산 + int targetPrice = product.getPrice() * (100 - request.getDiscountRate()) / 100; + // 새 건 생성 PriceAlert priceAlert = PriceAlert.builder() - .targetPrice(request.getTargetPrice()) + .targetPrice(targetPrice) .isActive(true) .user(user) .product(product)