From 9e8cb87641f5185d6614efb52bf6dc8847c7bb23 Mon Sep 17 00:00:00 2001 From: pricelees Date: Sun, 7 Sep 2025 21:42:32 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=98=88=EC=95=BD=20API=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=EC=97=90=20=EB=94=B0=EB=A5=B8=20DTO=20=EC=9E=AC?= =?UTF-8?q?=EC=A0=95=EC=9D=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reservation/web/ReservationDto.kt | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/main/kotlin/roomescape/reservation/web/ReservationDto.kt diff --git a/src/main/kotlin/roomescape/reservation/web/ReservationDto.kt b/src/main/kotlin/roomescape/reservation/web/ReservationDto.kt new file mode 100644 index 00000000..85ee01fa --- /dev/null +++ b/src/main/kotlin/roomescape/reservation/web/ReservationDto.kt @@ -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 +) + +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 +) \ No newline at end of file