refactor: ReservationEntity의 not null 컬럼 지정 및 reservationStatus -> status 컬럼명 수정

This commit is contained in:
이상진 2025-07-31 16:52:51 +09:00
parent d96c890dc0
commit 6db8730764
6 changed files with 16 additions and 14 deletions

View File

@ -79,7 +79,7 @@ class ReservationService(
createEntity(timeId, themeId, date, memberId, ReservationStatus.CONFIRMED) createEntity(timeId, themeId, date, memberId, ReservationStatus.CONFIRMED)
return reservationRepository.save(reservation) return reservationRepository.save(reservation)
.also { log.info { "[ReservationService.createConfirmedReservation] 예약 추가 완료: reservationId=${it.id}, status=${it.reservationStatus}" } } .also { log.info { "[ReservationService.createConfirmedReservation] 예약 추가 완료: reservationId=${it.id}, status=${it.status}" } }
} }
fun createReservationByAdmin(request: AdminReservationCreateRequest): ReservationRetrieveResponse { fun createReservationByAdmin(request: AdminReservationCreateRequest): ReservationRetrieveResponse {
@ -192,7 +192,7 @@ class ReservationService(
time = time, time = time,
theme = theme, theme = theme,
member = member, member = member,
reservationStatus = status status = status
) )
} }
@ -259,7 +259,7 @@ class ReservationService(
if (!reservation.isWaiting()) { if (!reservation.isWaiting()) {
log.warn { log.warn {
"[ReservationService.deleteWaiting] 대기 취소 실패(대기 예약이 아님): reservationId=$reservationId" + "[ReservationService.deleteWaiting] 대기 취소 실패(대기 예약이 아님): reservationId=$reservationId" +
", currentStatus=${reservation.reservationStatus} memberId=$memberId" ", currentStatus=${reservation.status} memberId=$memberId"
} }
throw ReservationException(ReservationErrorCode.ALREADY_CONFIRMED) throw ReservationException(ReservationErrorCode.ALREADY_CONFIRMED)
} }
@ -284,7 +284,7 @@ class ReservationService(
if (!reservation.isWaiting()) { if (!reservation.isWaiting()) {
log.warn { log.warn {
"[ReservationService.rejectWaiting] 대기 예약 삭제 실패(이미 확정 상태): reservationId=$reservationId" + "[ReservationService.rejectWaiting] 대기 예약 삭제 실패(이미 확정 상태): reservationId=$reservationId" +
", status=${reservation.reservationStatus}" ", status=${reservation.status}"
} }
throw ReservationException(ReservationErrorCode.ALREADY_CONFIRMED) throw ReservationException(ReservationErrorCode.ALREADY_CONFIRMED)
} }

View File

@ -14,6 +14,7 @@ class ReservationEntity(
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
var id: Long? = null, var id: Long? = null,
@Column(name = "date", nullable = false)
var date: LocalDate, var date: LocalDate,
@ManyToOne(fetch = FetchType.LAZY) @ManyToOne(fetch = FetchType.LAZY)
@ -29,10 +30,11 @@ class ReservationEntity(
var member: MemberEntity, var member: MemberEntity,
@Enumerated(value = EnumType.STRING) @Enumerated(value = EnumType.STRING)
var reservationStatus: ReservationStatus @Column(name = "status", nullable = false)
var status: ReservationStatus
) { ) {
@JsonIgnore @JsonIgnore
fun isWaiting(): Boolean = reservationStatus == ReservationStatus.WAITING fun isWaiting(): Boolean = status == ReservationStatus.WAITING
@JsonIgnore @JsonIgnore
fun isReservedBy(memberId: Long): Boolean { fun isReservedBy(memberId: Long): Boolean {

View File

@ -19,7 +19,7 @@ interface ReservationRepository
@Query( @Query(
""" """
UPDATE ReservationEntity r UPDATE ReservationEntity r
SET r.reservationStatus = :status SET r.status = :status
WHERE r.id = :id WHERE r.id = :id
""" """
) )
@ -39,7 +39,7 @@ interface ReservationRepository
WHERE r.theme.id = r2.theme.id WHERE r.theme.id = r2.theme.id
AND r.time.id = r2.time.id AND r.time.id = r2.time.id
AND r.date = r2.date AND r.date = r2.date
AND r.reservationStatus != 'WAITING' AND r.status != 'WAITING'
) )
) )
""" """
@ -53,7 +53,7 @@ interface ReservationRepository
t.name, t.name,
r.date, r.date,
r.time.startAt, r.time.startAt,
r.reservationStatus, r.status,
(SELECT COUNT (r2) * 1L FROM ReservationEntity r2 WHERE r2.theme = r.theme AND r2.date = r.date AND r2.time = r.time AND r2.id < r.id), (SELECT COUNT (r2) * 1L FROM ReservationEntity r2 WHERE r2.theme = r.theme AND r2.date = r.date AND r2.time = r.time AND r2.id < r.id),
p.paymentKey, p.paymentKey,
p.totalAmount p.totalAmount

View File

@ -54,7 +54,7 @@ fun ReservationEntity.toRetrieveResponse(): ReservationRetrieveResponse = Reserv
member = this.member.toRetrieveResponse(), member = this.member.toRetrieveResponse(),
time = this.time.toCreateResponse(), time = this.time.toCreateResponse(),
theme = this.theme.toResponse(), theme = this.theme.toResponse(),
status = this.reservationStatus status = this.status
) )
data class ReservationRetrieveListResponse( data class ReservationRetrieveListResponse(

View File

@ -106,7 +106,7 @@ class ReservationRepositoryTest(
entityManager.clear() entityManager.clear()
reservationRepository.findByIdOrNull(reservationId)?.also { updated -> reservationRepository.findByIdOrNull(reservationId)?.also { updated ->
updated.reservationStatus shouldBe it updated.status shouldBe it
} }
} }
} }

View File

@ -331,7 +331,7 @@ class ReservationControllerTest(
ReservationEntity::class.java, ReservationEntity::class.java,
reservationId reservationId
) )
reservation.reservationStatus = ReservationStatus.CONFIRMED_PAYMENT_REQUIRED reservation.status = ReservationStatus.CONFIRMED_PAYMENT_REQUIRED
entityManager.persist(reservation) entityManager.persist(reservation)
entityManager.flush() entityManager.flush()
entityManager.clear() entityManager.clear()
@ -443,7 +443,7 @@ class ReservationControllerTest(
test("대기 중인 예약 목록을 조회한다.") { test("대기 중인 예약 목록을 조회한다.") {
login(MemberFixture.create(role = Role.ADMIN)) login(MemberFixture.create(role = Role.ADMIN))
val expected = reservations.values.flatten() val expected = reservations.values.flatten()
.count { it.reservationStatus == ReservationStatus.WAITING } .count { it.status == ReservationStatus.WAITING }
Given { Given {
port(port) port(port)
@ -601,7 +601,7 @@ class ReservationControllerTest(
ReservationEntity::class.java, ReservationEntity::class.java,
reservation.id reservation.id
)?.also { )?.also {
it.reservationStatus shouldBe ReservationStatus.CONFIRMED_PAYMENT_REQUIRED it.status shouldBe ReservationStatus.CONFIRMED_PAYMENT_REQUIRED
} ?: throw AssertionError("Reservation not found") } ?: throw AssertionError("Reservation not found")
} }
} }