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