From 85c8db1866db0736e5a969ebe35e17ae5408bfcc Mon Sep 17 00:00:00 2001 From: pricelees Date: Sun, 7 Sep 2025 21:41:57 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=EA=B8=B0=EC=A1=B4=EC=9D=98=20?= =?UTF-8?q?=EC=98=88=EC=95=BD=20entity=EB=A5=BC=20=EC=83=88=EB=A1=9C=20?= =?UTF-8?q?=EC=A0=95=EC=9D=98=ED=95=9C=20entity=EB=A1=9C=20=EB=8C=80?= =?UTF-8?q?=EC=B2=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../persistence/ReservationEntity.kt | 70 +++++-------------- 1 file changed, 19 insertions(+), 51 deletions(-) diff --git a/src/main/kotlin/roomescape/reservation/infrastructure/persistence/ReservationEntity.kt b/src/main/kotlin/roomescape/reservation/infrastructure/persistence/ReservationEntity.kt index 3ad2949c..78ed6a95 100644 --- a/src/main/kotlin/roomescape/reservation/infrastructure/persistence/ReservationEntity.kt +++ b/src/main/kotlin/roomescape/reservation/infrastructure/persistence/ReservationEntity.kt @@ -1,68 +1,36 @@ package roomescape.reservation.infrastructure.persistence -import com.fasterxml.jackson.annotation.JsonIgnore -import jakarta.persistence.* -import roomescape.common.entity.BaseEntity -import roomescape.member.infrastructure.persistence.MemberEntity -import roomescape.theme.infrastructure.persistence.ThemeEntity -import roomescape.time.infrastructure.persistence.TimeEntity -import java.time.LocalDate +import jakarta.persistence.Entity +import jakarta.persistence.EnumType +import jakarta.persistence.Enumerated +import jakarta.persistence.Table +import roomescape.common.entity.AuditingBaseEntity @Entity -@Table(name = "reservations") +@Table(name = "reservation") class ReservationEntity( - @Id - @Column(name = "reservation_id") - private var _id: Long?, + id: Long, - @Column(name = "date", nullable = false) - var date: LocalDate, - - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "time_id", nullable = false) - var time: TimeEntity, - - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "theme_id", nullable = false) - var theme: ThemeEntity, - - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "member_id", nullable = false) - var member: MemberEntity, + val memberId: Long, + val scheduleId: Long, + val reserverName: String, + val reserverContact: String, + val participantCount: Short, + val requirement: String, @Enumerated(value = EnumType.STRING) - @Column(name = "status", nullable = false, length = 30) var status: ReservationStatus, -): BaseEntity() { - override fun getId(): Long? = _id - - @JsonIgnore - fun isWaiting(): Boolean = status == ReservationStatus.WAITING - - @JsonIgnore - fun isReservedBy(memberId: Long): Boolean { - return this.member.id == memberId - } - - fun cancelByUser() { - this.status = ReservationStatus.CANCELED_BY_USER - } + ) : AuditingBaseEntity(id) { fun confirm() { this.status = ReservationStatus.CONFIRMED } + + fun cancel() { + this.status = ReservationStatus.CANCELED + } } enum class ReservationStatus { - CONFIRMED, - CONFIRMED_PAYMENT_REQUIRED, - PENDING, - WAITING, - CANCELED_BY_USER, - AUTOMATICALLY_CANCELED, - ; - - companion object { - fun confirmedStatus(): Array = arrayOf(CONFIRMED, CONFIRMED_PAYMENT_REQUIRED) - } + PENDING, CONFIRMED, CANCELED, FAILED, EXPIRED }