BusinessFlowException.java
package io.extact.rms.application.exception;
/**
 * データ重複、該当データなしなどのユーザが意識する業務フローレベルのエラーを表す例外
 */
public class BusinessFlowException extends RentalReservationServiceException {
    private final CauseType causeType;
    public BusinessFlowException(String message, CauseType causeType, Throwable cause) {
        super(message, cause);
        this.causeType = causeType;
    }
    public BusinessFlowException(String message, CauseType causeType) {
        super(message);
        this.causeType = causeType;
    }
    public BusinessFlowException(CauseType causeType, Throwable cause) {
        super(cause);
        this.causeType = causeType;
    }
    public CauseType getCauseType() {
        return causeType;
    }
    public enum CauseType  {
        NOT_FOUND,
        DUPRICATE,
        FORBIDDEN,
        REFERED
    }
}