[#20] 도메인별 예외 분리 #21

Merged
pricelees merged 37 commits from refactor/#20 into main 2025-07-24 02:48:53 +00:00
6 changed files with 27 additions and 27 deletions
Showing only changes of commit 4820dcfca8 - Show all commits

View File

@ -9,7 +9,7 @@ data class LoginResponse(
) )
data class LoginCheckResponse( data class LoginCheckResponse(
@field:Schema(description = "로그인된 회원의 이름") @Schema(description = "로그인된 회원의 이름")
val name: String val name: String
) )

View File

@ -9,10 +9,10 @@ fun MemberEntity.toRetrieveResponse(): MemberRetrieveResponse = MemberRetrieveRe
) )
data class MemberRetrieveResponse( data class MemberRetrieveResponse(
@field:Schema(description = "회원 식별자") @Schema(description = "회원 식별자")
val id: Long, val id: Long,
@field:Schema(description = "회원 이름") @Schema(description = "회원 이름")
val name: String val name: String
) )

View File

@ -16,16 +16,16 @@ data class ReservationCreateWithPaymentRequest(
val timeId: Long, val timeId: Long,
val themeId: Long, val themeId: Long,
@field:Schema(description = "결제 위젯을 통해 받은 결제 키") @Schema(description = "결제 위젯을 통해 받은 결제 키")
val paymentKey: String, val paymentKey: String,
@field:Schema(description = "결제 위젯을 통해 받은 주문번호.") @Schema(description = "결제 위젯을 통해 받은 주문번호.")
val orderId: String, val orderId: String,
@field:Schema(description = "결제 위젯을 통해 받은 결제 금액") @Schema(description = "결제 위젯을 통해 받은 결제 금액")
val amount: Long, val amount: Long,
@field:Schema(description = "결제 타입", example = "NORMAL") @Schema(description = "결제 타입", example = "NORMAL")
val paymentType: String val paymentType: String
) )

View File

@ -17,16 +17,16 @@ data class MyReservationRetrieveResponse(
val date: LocalDate, val date: LocalDate,
val time: LocalTime, val time: LocalTime,
val status: ReservationStatus, val status: ReservationStatus,
@field:Schema(description = "대기 순번. 확정된 예약은 0의 값을 가집니다.") @Schema(description = "대기 순번. 확정된 예약은 0의 값을 가집니다.")
val rank: Long, val rank: Long,
@field:Schema(description = "결제 키. 결제가 완료된 예약에만 값이 존재합니다.") @Schema(description = "결제 키. 결제가 완료된 예약에만 값이 존재합니다.")
val paymentKey: String?, val paymentKey: String?,
@field:Schema(description = "결제 금액. 결제가 완료된 예약에만 값이 존재합니다.") @Schema(description = "결제 금액. 결제가 완료된 예약에만 값이 존재합니다.")
val amount: Long? val amount: Long?
) )
data class MyReservationRetrieveListResponse( data class MyReservationRetrieveListResponse(
@field:Schema(description = "현재 로그인한 회원의 예약 및 대기 목록") @Schema(description = "현재 로그인한 회원의 예약 및 대기 목록")
val reservations: List<MyReservationRetrieveResponse> val reservations: List<MyReservationRetrieveResponse>
) )

View File

@ -6,26 +6,26 @@ import java.time.LocalTime
@Schema(name = "예약 시간 저장 요청", description = "예약 시간 저장 요청시 사용됩니다.") @Schema(name = "예약 시간 저장 요청", description = "예약 시간 저장 요청시 사용됩니다.")
data class TimeCreateRequest( data class TimeCreateRequest(
@field:Schema(description = "시간", type = "string", example = "09:00") @Schema(description = "시간", type = "string", example = "09:00")
val startAt: LocalTime val startAt: LocalTime
) )
@Schema(name = "예약 시간 정보", description = "예약 시간 추가 및 조회 응답시 사용됩니다.") @Schema(name = "예약 시간 정보", description = "예약 시간 추가 및 조회 응답시 사용됩니다.")
data class TimeCreateResponse( data class TimeCreateResponse(
@field:Schema(description = "시간 식별자") @Schema(description = "시간 식별자")
val id: Long, val id: Long,
@field:Schema(description = "시간") @Schema(description = "시간")
val startAt: LocalTime val startAt: LocalTime
) )
fun TimeEntity.toCreateResponse(): TimeCreateResponse = TimeCreateResponse(this.id!!, this.startAt) fun TimeEntity.toCreateResponse(): TimeCreateResponse = TimeCreateResponse(this.id!!, this.startAt)
data class TimeRetrieveResponse( data class TimeRetrieveResponse(
@field:Schema(description = "시간 식별자.") @Schema(description = "시간 식별자.")
val id: Long, val id: Long,
@field:Schema(description = "시간") @Schema(description = "시간")
val startAt: LocalTime val startAt: LocalTime
) )
@ -40,13 +40,13 @@ fun List<TimeEntity>.toRetrieveListResponse(): TimeRetrieveListResponse = TimeRe
) )
data class TimeWithAvailabilityResponse( data class TimeWithAvailabilityResponse(
@field:Schema(description = "시간 식별자") @Schema(description = "시간 식별자")
val id: Long, val id: Long,
@field:Schema(description = "시간") @Schema(description = "시간")
val startAt: LocalTime, val startAt: LocalTime,
@field:Schema(description = "예약 가능 여부") @Schema(description = "예약 가능 여부")
val isAvailable: Boolean val isAvailable: Boolean
) )

View File

@ -8,17 +8,17 @@ import roomescape.theme.infrastructure.persistence.ThemeEntity
@Schema(name = "테마 저장 요청", description = "테마 정보를 저장할 때 사용합니다.") @Schema(name = "테마 저장 요청", description = "테마 정보를 저장할 때 사용합니다.")
data class ThemeRequest( data class ThemeRequest(
@field:Schema(description = "필수 값이며, 최대 20글자까지 입력 가능합니다.") @Schema(description = "필수 값이며, 최대 20글자까지 입력 가능합니다.")
@NotBlank @NotBlank
@Size(max = 20, message = "테마의 이름은 1~20글자 사이여야 합니다.") @Size(max = 20, message = "테마의 이름은 1~20글자 사이여야 합니다.")
val name: String, val name: String,
@field:Schema(description = "필수 값이며, 최대 100글자까지 입력 가능합니다.") @Schema(description = "필수 값이며, 최대 100글자까지 입력 가능합니다.")
@NotBlank @NotBlank
@Size(max = 100, message = "테마의 설명은 1~100글자 사이여야 합니다.") @Size(max = 100, message = "테마의 설명은 1~100글자 사이여야 합니다.")
val description: String, val description: String,
@field:Schema(description = "필수 값이며, 썸네일 이미지 URL 을 입력해주세요.") @Schema(description = "필수 값이며, 썸네일 이미지 URL 을 입력해주세요.")
@NotBlank @NotBlank
@URL @URL
val thumbnail: String val thumbnail: String
@ -26,16 +26,16 @@ data class ThemeRequest(
@Schema(name = "테마 정보", description = "테마 추가 및 조회 응답에 사용됩니다.") @Schema(name = "테마 정보", description = "테마 추가 및 조회 응답에 사용됩니다.")
data class ThemeResponse( data class ThemeResponse(
@field:Schema(description = "테마 번호. 테마를 식별할 때 사용합니다.") @Schema(description = "테마 번호. 테마를 식별할 때 사용합니다.")
val id: Long, val id: Long,
@field:Schema(description = "테마 이름. 중복을 허용하지 않습니다.") @Schema(description = "테마 이름. 중복을 허용하지 않습니다.")
val name: String, val name: String,
@field:Schema(description = "테마 설명") @Schema(description = "테마 설명")
val description: String, val description: String,
@field:Schema(description = "테마 썸네일 이미지 URL") @Schema(description = "테마 썸네일 이미지 URL")
val thumbnail: String val thumbnail: String
) )
@ -48,7 +48,7 @@ fun ThemeEntity.toResponse(): ThemeResponse = ThemeResponse(
@Schema(name = "테마 목록 조회 응답", description = "모든 테마 목록 조회 응답시 사용됩니다.") @Schema(name = "테마 목록 조회 응답", description = "모든 테마 목록 조회 응답시 사용됩니다.")
data class ThemesResponse( data class ThemesResponse(
@field:Schema(description = "모든 테마 목록") @Schema(description = "모든 테마 목록")
val themes: List<ThemeResponse> val themes: List<ThemeResponse>
) )