diff --git a/src/main/kotlin/com/moa/controller/screen/CalendarController.kt b/src/main/kotlin/com/moa/controller/screen/CalendarController.kt index fd696a1..448dc50 100644 --- a/src/main/kotlin/com/moa/controller/screen/CalendarController.kt +++ b/src/main/kotlin/com/moa/controller/screen/CalendarController.kt @@ -3,6 +3,7 @@ package com.moa.controller.screen import com.moa.common.auth.Auth import com.moa.common.auth.AuthMemberInfo import com.moa.common.response.ApiResponse +import com.moa.service.MemberService import com.moa.service.WorkdayService import com.moa.service.dto.CalendarResponse import io.swagger.v3.oas.annotations.tags.Tag @@ -15,6 +16,7 @@ import org.springframework.web.bind.annotation.RestController @RestController @RequestMapping("/api/v1/calendar") class CalendarController( + private val memberService: MemberService, private val workdayService: WorkdayService, ) { @@ -27,6 +29,7 @@ class CalendarController( CalendarResponse( earnings = workdayService.getMonthlyEarnings(member.id, year, month), schedules = workdayService.getMonthlyWorkdays(member.id, year, month), + joinedAt = memberService.getJoinedAt(member.id), ) ) } diff --git a/src/main/kotlin/com/moa/controller/screen/HomeController.kt b/src/main/kotlin/com/moa/controller/screen/HomeController.kt index fe61848..cc4c83d 100644 --- a/src/main/kotlin/com/moa/controller/screen/HomeController.kt +++ b/src/main/kotlin/com/moa/controller/screen/HomeController.kt @@ -33,6 +33,7 @@ class HomeController( dailyPay = schedule.dailyPay, type = schedule.type, status = schedule.status, + events = schedule.events, clockInTime = schedule.clockInTime, clockOutTime = schedule.clockOutTime, ) diff --git a/src/main/kotlin/com/moa/service/MemberService.kt b/src/main/kotlin/com/moa/service/MemberService.kt index 9d84e14..81f7400 100644 --- a/src/main/kotlin/com/moa/service/MemberService.kt +++ b/src/main/kotlin/com/moa/service/MemberService.kt @@ -9,6 +9,7 @@ import com.moa.service.dto.MemberResponse import com.moa.service.dto.WithdrawalRequest import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional +import java.time.LocalDate @Service class MemberService( @@ -28,6 +29,13 @@ class MemberService( ) } + @Transactional(readOnly = true) + fun getJoinedAt(memberId: Long): LocalDate = + memberRepository.findById(memberId) + .orElseThrow { NotFoundException() } + .createdAt + .toLocalDate() + @Transactional fun deleteMember(memberId: Long, req: WithdrawalRequest) { val member = memberRepository.findById(memberId) diff --git a/src/main/kotlin/com/moa/service/dto/CalendarResponse.kt b/src/main/kotlin/com/moa/service/dto/CalendarResponse.kt index 6902a1b..50991fa 100644 --- a/src/main/kotlin/com/moa/service/dto/CalendarResponse.kt +++ b/src/main/kotlin/com/moa/service/dto/CalendarResponse.kt @@ -1,6 +1,9 @@ package com.moa.service.dto +import java.time.LocalDate + data class CalendarResponse( val earnings: MonthlyEarningsResponse, val schedules: List, + val joinedAt: LocalDate, ) diff --git a/src/main/kotlin/com/moa/service/dto/HomeResponse.kt b/src/main/kotlin/com/moa/service/dto/HomeResponse.kt index 86a1ccc..20d30ba 100644 --- a/src/main/kotlin/com/moa/service/dto/HomeResponse.kt +++ b/src/main/kotlin/com/moa/service/dto/HomeResponse.kt @@ -1,6 +1,7 @@ package com.moa.service.dto import com.fasterxml.jackson.annotation.JsonFormat +import com.moa.entity.DailyEventType import com.moa.entity.DailyWorkScheduleType import com.moa.entity.DailyWorkStatusType import java.time.LocalTime @@ -12,6 +13,7 @@ data class HomeResponse( val dailyPay: Int, val type: DailyWorkScheduleType, val status: DailyWorkStatusType, + val events: List = emptyList(), @field:JsonFormat(pattern = "HH:mm") val clockInTime: LocalTime?, @field:JsonFormat(pattern = "HH:mm")