generated from pricelees/issue-pr-template
[#41] 예약 스키마 재정의 #42
67
src/main/kotlin/roomescape/reservation/web/ReservationDto.kt
Normal file
67
src/main/kotlin/roomescape/reservation/web/ReservationDto.kt
Normal file
@ -0,0 +1,67 @@
|
||||
package roomescape.reservation.web
|
||||
|
||||
import roomescape.member.web.MemberSummaryRetrieveResponse
|
||||
import roomescape.payment.web.PaymentRetrieveResponse
|
||||
import roomescape.reservation.infrastructure.persistence.ReservationEntity
|
||||
import roomescape.reservation.infrastructure.persistence.ReservationStatus
|
||||
import java.time.LocalDate
|
||||
import java.time.LocalDateTime
|
||||
import java.time.LocalTime
|
||||
|
||||
data class PendingReservationCreateRequest(
|
||||
val scheduleId: Long,
|
||||
val reserverName: String,
|
||||
val reserverContact: String,
|
||||
val participantCount: Short,
|
||||
val requirement: String
|
||||
)
|
||||
|
||||
fun PendingReservationCreateRequest.toEntity(id: Long, memberId: Long) = ReservationEntity(
|
||||
id = id,
|
||||
memberId = memberId,
|
||||
scheduleId = this.scheduleId,
|
||||
reserverName = this.reserverName,
|
||||
reserverContact = this.reserverContact,
|
||||
participantCount = this.participantCount,
|
||||
requirement = this.requirement,
|
||||
status = ReservationStatus.PENDING
|
||||
)
|
||||
|
||||
data class PendingReservationCreateResponse(
|
||||
val id: Long
|
||||
)
|
||||
|
||||
data class ReservationSummaryRetrieveResponse(
|
||||
val id: Long,
|
||||
val themeName: String,
|
||||
val date: LocalDate,
|
||||
val startAt: LocalTime,
|
||||
val status: ReservationStatus
|
||||
)
|
||||
|
||||
data class ReservationSummaryRetrieveListResponse(
|
||||
val reservations: List<ReservationSummaryRetrieveResponse>
|
||||
)
|
||||
|
||||
data class ReservationDetailRetrieveResponse(
|
||||
val id: Long,
|
||||
val member: MemberSummaryRetrieveResponse,
|
||||
val applicationDateTime: LocalDateTime,
|
||||
val payment: PaymentRetrieveResponse,
|
||||
)
|
||||
|
||||
fun ReservationEntity.toReservationDetailRetrieveResponse(
|
||||
member: MemberSummaryRetrieveResponse,
|
||||
payment: PaymentRetrieveResponse,
|
||||
): ReservationDetailRetrieveResponse {
|
||||
return ReservationDetailRetrieveResponse(
|
||||
id = this.id,
|
||||
member = member,
|
||||
applicationDateTime = this.createdAt,
|
||||
payment = payment,
|
||||
)
|
||||
}
|
||||
|
||||
data class ReservationCancelRequest(
|
||||
val cancelReason: String
|
||||
)
|
||||
Loading…
x
Reference in New Issue
Block a user