package com.flightticket.exception;

/**
 * Exception thrown when Expedia API service is unavailable or fails
 * Requirements: 11.5, 13.3
 */
public class ExpediaServiceException extends RuntimeException {
    
    private final ErrorType errorType;
    
    public enum ErrorType {
        TIMEOUT,
        CIRCUIT_BREAKER_OPEN,
        SERVICE_UNAVAILABLE,
        LINK_EXPIRED,
        PRICE_CHANGED,
        PAYMENT_FAILED,
        UNKNOWN
    }
    
    public ExpediaServiceException(String message, ErrorType errorType) {
        super(message);
        this.errorType = errorType;
    }
    
    public ExpediaServiceException(String message, Throwable cause, ErrorType errorType) {
        super(message, cause);
        this.errorType = errorType;
    }
    
    public ErrorType getErrorType() {
        return errorType;
    }
}
