diff --git a/src/main/java/roomescape/reservation/web/ReservationResponse.kt b/src/main/java/roomescape/reservation/web/ReservationResponse.kt index e325369e..0503367b 100644 --- a/src/main/java/roomescape/reservation/web/ReservationResponse.kt +++ b/src/main/java/roomescape/reservation/web/ReservationResponse.kt @@ -6,7 +6,6 @@ import roomescape.member.web.MemberResponse import roomescape.member.web.MemberResponse.Companion.fromEntity import roomescape.reservation.infrastructure.persistence.ReservationEntity import roomescape.reservation.infrastructure.persistence.ReservationStatus -import roomescape.reservation.infrastructure.persistence.ReservationTimeEntity import roomescape.theme.web.ThemeResponse import java.time.LocalDate import java.time.LocalTime @@ -93,25 +92,3 @@ data class ReservationsResponse( val reservations: List ) -@Schema(name = "예약 시간 정보", description = "예약 시간 추가 및 조회 응답시 사용됩니다.") -@JvmRecord -data class ReservationTimeResponse( - @JvmField - @field:Schema(description = "예약 시간 번호. 예약 시간을 식별할 때 사용합니다.") - val id: Long, - - @field:Schema(description = "예약 시간", type = "string", example = "09:00") - val startAt: LocalTime -) { - - companion object { - @JvmStatic - fun from(reservationTime: ReservationTimeEntity): ReservationTimeResponse { - return ReservationTimeResponse(reservationTime.id!!, reservationTime.startAt) - } - } -} - -fun ReservationTimeEntity.toResponse(): ReservationTimeResponse = ReservationTimeResponse( - this.id!!, this.startAt -) diff --git a/src/main/java/roomescape/reservation/web/ReservationTimeDTO.kt b/src/main/java/roomescape/reservation/web/ReservationTimeDTO.kt index e4d09e5d..e0b06678 100644 --- a/src/main/java/roomescape/reservation/web/ReservationTimeDTO.kt +++ b/src/main/java/roomescape/reservation/web/ReservationTimeDTO.kt @@ -12,25 +12,27 @@ data class ReservationTimeRequest( val startAt: LocalTime ) - -@Schema(name = "특정 테마, 날짜에 대한 시간 정보 응답", description = "특정 날짜와 테마에 대해, 예약 가능 여부를 포함한 시간 정보를 저장합니다.") +@Schema(name = "예약 시간 정보", description = "예약 시간 추가 및 조회 응답시 사용됩니다.") @JvmRecord -data class ReservationTimeInfoResponse( +data class ReservationTimeResponse( + @JvmField @field:Schema(description = "예약 시간 번호. 예약 시간을 식별할 때 사용합니다.") - val timeId: Long, + val id: Long, @field:Schema(description = "예약 시간", type = "string", example = "09:00") - val startAt: LocalTime, + val startAt: LocalTime +) { - @field:Schema(description = "이미 예약이 완료된 시간인지 여부") - val alreadyBooked: Boolean -) + companion object { + @JvmStatic + fun from(reservationTime: ReservationTimeEntity): ReservationTimeResponse { + return ReservationTimeResponse(reservationTime.id!!, reservationTime.startAt) + } + } +} -@Schema(name = "예약 시간 정보 목록 응답", description = "특정 테마, 날짜에 대한 모든 예약 가능 시간 정보를 저장합니다.") -@JvmRecord -data class ReservationTimeInfosResponse( - @field:Schema(description = "특정 테마, 날짜에 대한 예약 가능 여부를 포함한 시간 목록") - val reservationTimes: List +fun ReservationTimeEntity.toResponse(): ReservationTimeResponse = ReservationTimeResponse( + this.id!!, this.startAt ) @Schema(name = "예약 시간 정보 목록 응답", description = "모든 예약 시간 조회 응답시 사용됩니다.") @@ -43,3 +45,29 @@ data class ReservationTimesResponse( fun List.toResponses(): ReservationTimesResponse = ReservationTimesResponse( this.map { it.toResponse() } ) + +@Schema(name = "특정 테마, 날짜에 대한 시간 정보 응답", description = "특정 날짜와 테마에 대해, 예약 가능 여부를 포함한 시간 정보를 저장합니다.") +@JvmRecord +data class ReservationTimeInfoResponse( + @field:Schema(description = "예약 시간 번호. 예약 시간을 식별할 때 사용합니다.") + val id: Long, + + @field:Schema(description = "예약 시간", type = "string", example = "09:00") + val startAt: LocalTime, + + @field:Schema(description = "이미 예약이 완료된 시간인지 여부") + val alreadyBooked: Boolean +) + +fun ReservationTimeEntity.toInfoResponse(alreadyBooked: Boolean): ReservationTimeInfoResponse = ReservationTimeInfoResponse( + id = this.id!!, + startAt = this.startAt, + alreadyBooked = alreadyBooked +) + +@Schema(name = "예약 시간 정보 목록 응답", description = "특정 테마, 날짜에 대한 모든 예약 가능 시간 정보를 저장합니다.") +@JvmRecord +data class ReservationTimeInfosResponse( + @field:Schema(description = "특정 테마, 날짜에 대한 예약 가능 여부를 포함한 시간 목록") + val times: List +)