"""MyFatoorah-specific exceptions."""

from rest_framework.exceptions import APIException


class MyFatoorahError(APIException):
    """General MyFatoorah API error — maps to HTTP 502."""

    status_code = 502
    default_detail = "Payment gateway returned an error."
    default_code = "myfatoorah_error"


class MyFatoorahNotConfigured(APIException):
    """MyFatoorah settings are missing — maps to HTTP 503."""

    status_code = 503
    default_detail = "Payment gateway is not configured."
    default_code = "myfatoorah_not_configured"


class MyFatoorahValidationError(APIException):
    """MyFatoorah validation error — maps to HTTP 422."""

    status_code = 422
    default_detail = "Payment gateway validation failed."
    default_code = "myfatoorah_validation_error"
