generated from pricelees/issue-pr-template
[#16] Reservation 도메인 코드 코틀린 마이그레이션 #17
@ -6,7 +6,6 @@ import roomescape.member.web.MemberResponse
|
|||||||
import roomescape.member.web.MemberResponse.Companion.fromEntity
|
import roomescape.member.web.MemberResponse.Companion.fromEntity
|
||||||
import roomescape.reservation.infrastructure.persistence.ReservationEntity
|
import roomescape.reservation.infrastructure.persistence.ReservationEntity
|
||||||
import roomescape.reservation.infrastructure.persistence.ReservationStatus
|
import roomescape.reservation.infrastructure.persistence.ReservationStatus
|
||||||
import roomescape.reservation.infrastructure.persistence.ReservationTimeEntity
|
|
||||||
import roomescape.theme.web.ThemeResponse
|
import roomescape.theme.web.ThemeResponse
|
||||||
import java.time.LocalDate
|
import java.time.LocalDate
|
||||||
import java.time.LocalTime
|
import java.time.LocalTime
|
||||||
@ -93,25 +92,3 @@ data class ReservationsResponse(
|
|||||||
val reservations: List<ReservationResponse>
|
val reservations: List<ReservationResponse>
|
||||||
)
|
)
|
||||||
|
|
||||||
@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
|
|
||||||
)
|
|
||||||
|
|||||||
@ -12,25 +12,27 @@ data class ReservationTimeRequest(
|
|||||||
val startAt: LocalTime
|
val startAt: LocalTime
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@Schema(name = "예약 시간 정보", description = "예약 시간 추가 및 조회 응답시 사용됩니다.")
|
||||||
@Schema(name = "특정 테마, 날짜에 대한 시간 정보 응답", description = "특정 날짜와 테마에 대해, 예약 가능 여부를 포함한 시간 정보를 저장합니다.")
|
|
||||||
@JvmRecord
|
@JvmRecord
|
||||||
data class ReservationTimeInfoResponse(
|
data class ReservationTimeResponse(
|
||||||
|
@JvmField
|
||||||
@field:Schema(description = "예약 시간 번호. 예약 시간을 식별할 때 사용합니다.")
|
@field:Schema(description = "예약 시간 번호. 예약 시간을 식별할 때 사용합니다.")
|
||||||
val timeId: Long,
|
val id: Long,
|
||||||
|
|
||||||
@field:Schema(description = "예약 시간", type = "string", example = "09:00")
|
@field:Schema(description = "예약 시간", type = "string", example = "09:00")
|
||||||
val startAt: LocalTime,
|
val startAt: LocalTime
|
||||||
|
) {
|
||||||
|
|
||||||
@field:Schema(description = "이미 예약이 완료된 시간인지 여부")
|
companion object {
|
||||||
val alreadyBooked: Boolean
|
@JvmStatic
|
||||||
)
|
fun from(reservationTime: ReservationTimeEntity): ReservationTimeResponse {
|
||||||
|
return ReservationTimeResponse(reservationTime.id!!, reservationTime.startAt)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Schema(name = "예약 시간 정보 목록 응답", description = "특정 테마, 날짜에 대한 모든 예약 가능 시간 정보를 저장합니다.")
|
fun ReservationTimeEntity.toResponse(): ReservationTimeResponse = ReservationTimeResponse(
|
||||||
@JvmRecord
|
this.id!!, this.startAt
|
||||||
data class ReservationTimeInfosResponse(
|
|
||||||
@field:Schema(description = "특정 테마, 날짜에 대한 예약 가능 여부를 포함한 시간 목록")
|
|
||||||
val reservationTimes: List<ReservationTimeInfoResponse>
|
|
||||||
)
|
)
|
||||||
|
|
||||||
@Schema(name = "예약 시간 정보 목록 응답", description = "모든 예약 시간 조회 응답시 사용됩니다.")
|
@Schema(name = "예약 시간 정보 목록 응답", description = "모든 예약 시간 조회 응답시 사용됩니다.")
|
||||||
@ -43,3 +45,29 @@ data class ReservationTimesResponse(
|
|||||||
fun List<ReservationTimeEntity>.toResponses(): ReservationTimesResponse = ReservationTimesResponse(
|
fun List<ReservationTimeEntity>.toResponses(): ReservationTimesResponse = ReservationTimesResponse(
|
||||||
this.map { it.toResponse() }
|
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<ReservationTimeInfoResponse>
|
||||||
|
)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user