diff --git a/src/main/java/com/assu/server/domain/partnership/dto/PaperContentResponseDTO.java b/src/main/java/com/assu/server/domain/partnership/dto/PaperContentResponseDTO.java index fd8f0f7a..e467ac54 100644 --- a/src/main/java/com/assu/server/domain/partnership/dto/PaperContentResponseDTO.java +++ b/src/main/java/com/assu/server/domain/partnership/dto/PaperContentResponseDTO.java @@ -1,8 +1,10 @@ package com.assu.server.domain.partnership.dto; +import java.time.format.DateTimeFormatter; import java.util.List; import com.assu.server.domain.partnership.entity.Goods; +import com.assu.server.domain.partnership.entity.Paper; import com.assu.server.domain.partnership.entity.PaperContent; import com.assu.server.domain.partnership.entity.enums.CriterionType; import com.assu.server.domain.partnership.entity.enums.OptionType; @@ -14,8 +16,11 @@ public record PaperContentResponseDTO( Long contentId, List goods, Integer people, - Long cost + Long cost, + String partnershipPeriod ) { + private static final DateTimeFormatter PERIOD_DATE_FORMAT = DateTimeFormatter.ofPattern("yyyy.MM.dd"); + public static List toContentResponseList(List contents) { return contents.stream() .map(PaperContentResponseDTO::toContentResponse) @@ -41,12 +46,21 @@ public static PaperContentResponseDTO toContentResponse(PaperContent content) { content.getId(), goodsList, peopleValue, - content.getCost() + content.getCost(), + buildPartnershipPeriod(content.getPaper()) ); } + private static String buildPartnershipPeriod(Paper paper) { + if (paper.getPartnershipPeriodStart() == null || paper.getPartnershipPeriodEnd() == null) { + return null; + } + return "제휴기간 " + paper.getPartnershipPeriodStart().format(PERIOD_DATE_FORMAT) + + " ~ " + paper.getPartnershipPeriodEnd().format(PERIOD_DATE_FORMAT); + } + private static List extractGoods(PaperContent content) { if (content.getOptionType() == OptionType.SERVICE ) { return content.getGoods().stream() diff --git a/src/main/java/com/assu/server/domain/store/controller/StoreController.java b/src/main/java/com/assu/server/domain/store/controller/StoreController.java index 7a43e91f..d88c1550 100644 --- a/src/main/java/com/assu/server/domain/store/controller/StoreController.java +++ b/src/main/java/com/assu/server/domain/store/controller/StoreController.java @@ -103,7 +103,8 @@ public ResponseEntity> getTodayBestStore() { " - `contentId` (Long): 컨텐츠 고유 ID\n" + " - `goods` (List): 제공되는 상품/서비스 리스트\n" + " - `people` (Integer): 사용 가능 인원\n" + - " - `cost` (Long): 유저 부담 금액 (0이면 무료)\n\n" + + " - `cost` (Long): 유저 부담 금액 (0이면 무료)\n" + + " - `partnershipPeriod` (String): 제휴기간 (예: \"제휴기간 2026.07.21 ~ 2026.12.31\", 기간 정보가 없으면 null)\n\n" + "**Error Cases:**\n" + " - 성공: 200 OK, `isSuccess=true`, `result=PaperResponseDTO` (제휴 컨텐츠 상세 정보)\n" + " - 실패: \n" +