package roomescape.common.dto.response import com.fasterxml.jackson.annotation.JsonInclude import roomescape.common.exception.ErrorType @JsonInclude(JsonInclude.Include.NON_NULL) data class RoomescapeApiResponseKT( val success: Boolean, val data: T? = null, val errorType: ErrorType? = null, val message: String? = null, ) { companion object { @JvmStatic fun success(data: T? = null): RoomescapeApiResponseKT { return RoomescapeApiResponseKT( success = true, data = data, ) } @JvmStatic fun fail(errorType: ErrorType, message: String? = null): RoomescapeApiResponseKT { return RoomescapeApiResponseKT( success = false, errorType = errorType, message = message ?: errorType.description ) } } }