diff --git a/src/main/java/ceos/backend/domain/application/dto/response/GetApplicationQuestion.java b/src/main/java/ceos/backend/domain/application/dto/response/GetApplicationQuestion.java index a1762d16..e49b4ef0 100644 --- a/src/main/java/ceos/backend/domain/application/dto/response/GetApplicationQuestion.java +++ b/src/main/java/ceos/backend/domain/application/dto/response/GetApplicationQuestion.java @@ -1,5 +1,6 @@ package ceos.backend.domain.application.dto.response; +import ceos.backend.domain.application.vo.InterviewDateTimesVo; import ceos.backend.domain.application.vo.QuestionVo; import ceos.backend.domain.application.vo.QuestionWithIdVo; import lombok.Builder; @@ -14,12 +15,12 @@ public class GetApplicationQuestion { private List designQuestions; private List frontendQuestions; private List backendQuestions; - private List times; + private List times; @Builder private GetApplicationQuestion(List commonQuestions, List productQuestions, List designQuestions, List frontendQuestions, - List backendQuestions, List times) { + List backendQuestions, List times) { this.commonQuestions = commonQuestions; this.productQuestions = productQuestions; this.designQuestions = designQuestions; @@ -30,7 +31,7 @@ private GetApplicationQuestion(List commonQuestions, List commonQuestions, List productQuestions, List designQuestions, List frontendQuestions, - List backendQuestions, List times) { + List backendQuestions, List times) { return GetApplicationQuestion.builder() .commonQuestions(commonQuestions) .productQuestions(productQuestions) diff --git a/src/main/java/ceos/backend/domain/application/mapper/ApplicationMapper.java b/src/main/java/ceos/backend/domain/application/mapper/ApplicationMapper.java index 51b45ec9..4526ee7c 100644 --- a/src/main/java/ceos/backend/domain/application/mapper/ApplicationMapper.java +++ b/src/main/java/ceos/backend/domain/application/mapper/ApplicationMapper.java @@ -20,6 +20,8 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; @Component public class ApplicationMapper { @@ -152,11 +154,23 @@ public GetApplicationQuestion toGetApplicationQuestion(List } }); - final List times = interviews.stream() + final List parsedDurations = interviews.stream() .map(InterviewDateFormatter::interviewDateFormatter) + .map(ParsingDuration::parsingDuration) .toList(); + final Set dateSets = parsedDurations.stream() + .map(ParsedDuration::getDate) + .collect(Collectors.toSet()); + final List interviewDateTimesVos = dateSets.stream() + .map(dateSet -> InterviewDateTimesVo.of(dateSet, + parsedDurations.stream() + .filter(parsedDuration -> parsedDuration.getDate().equals(dateSet)) + .map(ParsedDuration::getDuration) + .toList()) + ).toList(); + return GetApplicationQuestion.of(commonQuestions, productQuestions, designQuestions, - frontendQuestions, backendQuestions, times); + frontendQuestions, backendQuestions, interviewDateTimesVos); } public GetApplication toGetApplication(Application application, List interviews, diff --git a/src/main/java/ceos/backend/domain/application/vo/InterviewDateTimesVo.java b/src/main/java/ceos/backend/domain/application/vo/InterviewDateTimesVo.java new file mode 100644 index 00000000..c99debe0 --- /dev/null +++ b/src/main/java/ceos/backend/domain/application/vo/InterviewDateTimesVo.java @@ -0,0 +1,25 @@ +package ceos.backend.domain.application.vo; + +import lombok.Builder; +import lombok.Getter; + +import java.util.List; + +@Getter +public class InterviewDateTimesVo { + private String date; + private List durations; + + @Builder + private InterviewDateTimesVo(String date, List durations) { + this.date = date; + this.durations = durations; + } + + public static InterviewDateTimesVo of(String date, List durations) { + return InterviewDateTimesVo.builder() + .date(date) + .durations(durations) + .build(); + } +}