Skip to content

Commit 9e64281

Browse files
authored
[Feature] 스와이프 카드 수업날짜 응답 구현 (#121)
1 parent a743e02 commit 9e64281

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

src/main/java/com/danthis/backend/application/danceclass/response/DanceClassListServiceResponse.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,13 @@
22

33
import com.danthis.backend.domain.danceclass.DanceClass;
44
import com.danthis.backend.domain.danceclass.danceclassimage.DanceClassImage;
5+
import com.danthis.backend.domain.danceclass.danceclassschedule.DanceClassSchedule;
6+
import com.danthis.backend.domain.danceclass.danceclassschedule.Week;
7+
import java.time.format.DateTimeFormatter;
58
import java.util.Comparator;
69
import java.util.List;
710
import java.util.Set;
11+
import java.util.stream.Collectors;
812
import lombok.Builder;
913
import lombok.Getter;
1014
import org.springframework.data.domain.Page;
@@ -28,6 +32,8 @@ public static class DanceClassSummary {
2832
private String thumbnailImage;
2933
private String genre;
3034
private Set<Long> hashtagIds;
35+
private Set<String> days;
36+
private Set<String> dates;
3137
}
3238

3339
public static DanceClassListServiceResponse from(Page<DanceClass> danceClassPage) {
@@ -43,6 +49,8 @@ public static DanceClassListServiceResponse from(Page<DanceClass> danceClassPage
4349
.thumbnailImage(getFixedThumbnailImage(danceClass))
4450
.genre(danceClass.getGenre().getName())
4551
.hashtagIds(danceClass.getHashtagIds())
52+
.days(extractDays(danceClass))
53+
.dates(extractDates(danceClass))
4654
.build())
4755
.toList())
4856
.build();
@@ -61,6 +69,8 @@ public static DanceClassListServiceResponse from(List<DanceClass> danceClasses)
6169
.thumbnailImage(getFixedThumbnailImage(danceClass))
6270
.genre(danceClass.getGenre().getName())
6371
.hashtagIds(danceClass.getHashtagIds())
72+
.days(extractDays(danceClass))
73+
.dates(extractDates(danceClass))
6474
.build())
6575
.toList())
6676
.build();
@@ -73,4 +83,29 @@ private static String getFixedThumbnailImage(DanceClass danceClass) {
7383
.findFirst()
7484
.orElse(null);
7585
}
86+
87+
private static Set<String> extractDays(DanceClass danceClass) {
88+
if (danceClass.getDanceClassSchedules() == null) {
89+
return Set.of();
90+
}
91+
92+
return danceClass.getDanceClassSchedules().stream()
93+
.map(DanceClassSchedule::getDay)
94+
.filter(day -> day != null)
95+
.map(Week::name)
96+
.collect(Collectors.toSet());
97+
}
98+
99+
private static Set<String> extractDates(DanceClass danceClass) {
100+
if (danceClass.getDanceClassSchedules() == null) {
101+
return Set.of();
102+
}
103+
104+
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
105+
return danceClass.getDanceClassSchedules().stream()
106+
.map(DanceClassSchedule::getDate)
107+
.filter(date -> date != null)
108+
.map(date -> date.format(formatter))
109+
.collect(Collectors.toSet());
110+
}
76111
}

0 commit comments

Comments
 (0)