diff --git a/src/main/kotlin/com/didit/adapter/webapi/home/HomeApi.kt b/src/main/kotlin/com/didit/adapter/webapi/home/HomeApi.kt index 154e81c9..9f92c090 100644 --- a/src/main/kotlin/com/didit/adapter/webapi/home/HomeApi.kt +++ b/src/main/kotlin/com/didit/adapter/webapi/home/HomeApi.kt @@ -4,8 +4,8 @@ import com.didit.adapter.webapi.auth.annotation.CurrentUserId import com.didit.adapter.webapi.auth.annotation.RequireAuth import com.didit.adapter.webapi.home.dto.HomeResponse import com.didit.adapter.webapi.home.dto.HomeV2Response +import com.didit.adapter.webapi.home.dto.RecentRetrospectiveV2Response import com.didit.adapter.webapi.response.SuccessResponse -import com.didit.adapter.webapi.retrospect.dto.RetrospectiveListItemV2Response import com.didit.application.achievement.provided.MissionFinder import com.didit.application.achievement.provided.UserMissionRegister import com.didit.application.auth.provided.UserFinder @@ -65,7 +65,7 @@ class HomeApi( mission = missionFinder.getCurrentMission(userId), recentRetrospectives = recentRetros.map { - RetrospectiveListItemV2Response.from(it) + RecentRetrospectiveV2Response.from(it) }, ), ) diff --git a/src/main/kotlin/com/didit/adapter/webapi/home/dto/HomeV2Response.kt b/src/main/kotlin/com/didit/adapter/webapi/home/dto/HomeV2Response.kt index 0af97a74..bda176d2 100644 --- a/src/main/kotlin/com/didit/adapter/webapi/home/dto/HomeV2Response.kt +++ b/src/main/kotlin/com/didit/adapter/webapi/home/dto/HomeV2Response.kt @@ -1,6 +1,5 @@ package com.didit.adapter.webapi.home.dto -import com.didit.adapter.webapi.retrospect.dto.RetrospectiveListItemV2Response import com.didit.application.achievement.dto.CurrentMissionResponse data class HomeV2Response( @@ -8,5 +7,5 @@ data class HomeV2Response( val todayRetrospectiveCount: Int, val hasUnreadNotification: Boolean, val mission: CurrentMissionResponse, - val recentRetrospectives: List, + val recentRetrospectives: List, ) diff --git a/src/main/kotlin/com/didit/adapter/webapi/home/dto/RecentRetrospectiveV2Response.kt b/src/main/kotlin/com/didit/adapter/webapi/home/dto/RecentRetrospectiveV2Response.kt new file mode 100644 index 00000000..b62db538 --- /dev/null +++ b/src/main/kotlin/com/didit/adapter/webapi/home/dto/RecentRetrospectiveV2Response.kt @@ -0,0 +1,29 @@ +package com.didit.adapter.webapi.home.dto + +import com.didit.adapter.webapi.organization.dto.TagListResponse +import com.didit.application.retrospect.dto.RetrospectiveDetailResult +import java.time.LocalDateTime +import java.util.UUID + +// 홈 "최근 제안 받은 행동" 카드 전용 — 회고 요약이 아니라 다음 행동 제안 요약구(nextActionTitle)를 노출한다. +// 회고 목록/프로젝트별/태그별 목록은 회고 요약을 그대로 보여줘야 하므로 공유 DTO와 분리한다. +data class RecentRetrospectiveV2Response( + val id: UUID, + val title: String?, + val nextAction: String?, + val completedAt: LocalDateTime?, + val projectName: String?, + val tags: List, +) { + companion object { + fun from(result: RetrospectiveDetailResult): RecentRetrospectiveV2Response = + RecentRetrospectiveV2Response( + id = result.retrospective.id, + title = result.retrospective.title, + nextAction = result.retrospective.summary?.nextActionTitle, + completedAt = result.retrospective.completedAt, + projectName = result.project?.name, + tags = result.tags.map { TagListResponse.from(it) }, + ) + } +} diff --git a/src/test/kotlin/com/didit/adapter/webapi/home/HomeApiTest.kt b/src/test/kotlin/com/didit/adapter/webapi/home/HomeApiTest.kt index 5eab753e..475a6c6f 100644 --- a/src/test/kotlin/com/didit/adapter/webapi/home/HomeApiTest.kt +++ b/src/test/kotlin/com/didit/adapter/webapi/home/HomeApiTest.kt @@ -117,7 +117,9 @@ class HomeApiTest : AuthenticatedRestDocsSupport() { fieldWithPath("data.recentRetrospectives").type(JsonFieldType.ARRAY).description("최근 회고 목록"), fieldWithPath("data.recentRetrospectives[].id").type(JsonFieldType.STRING).description("회고 ID"), fieldWithPath("data.recentRetrospectives[].title").type(JsonFieldType.STRING).description("회고 제목").optional(), - fieldWithPath("data.recentRetrospectives[].summary").type(JsonFieldType.STRING).description("회고 요약").optional(), + fieldWithPath( + "data.recentRetrospectives[].nextAction", + ).type(JsonFieldType.STRING).description("다음 행동 제안 요약구").optional(), fieldWithPath("data.recentRetrospectives[].completedAt") .type(JsonFieldType.STRING) .description("완료 시간")