32 lines
1.1 KiB
Java

package roomescape.reservation.dto.request;
import java.time.LocalTime;
import org.springframework.http.HttpStatus;
import io.micrometer.common.util.StringUtils;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import roomescape.common.exception.ErrorType;
import roomescape.common.exception.RoomescapeException;
import roomescape.reservation.domain.ReservationTime;
@Schema(name = "예약 시간 저장 요청", description = "예약 시간 저장 요청시 사용됩니다.")
public record ReservationTimeRequest(
@NotNull(message = "예약 시간은 null일 수 없습니다.")
@Schema(description = "예약 시간. HH:mm 형식으로 입력해야 합니다.", type = "string", example = "09:00")
LocalTime startAt
) {
public ReservationTimeRequest {
if (StringUtils.isBlank(startAt.toString())) {
throw new RoomescapeException(ErrorType.REQUEST_DATA_BLANK,
String.format("[values: %s]", this), HttpStatus.BAD_REQUEST);
}
}
public ReservationTime toTime() {
return new ReservationTime(this.startAt);
}
}