"""MyFatoorah-specific exceptions."""

from rest_framework.exceptions import APIException


class MyFatoorahError(APIException):
    """Base error for any MyFatoorah-side failure."""

    status_code = 502
    default_detail = "Upstream payment provider error."
    default_code = "myfatoorah_error"


class MyFatoorahValidationError(MyFatoorahError):
    """MyFatoorah returned IsSuccess=false with field/validation errors."""

    status_code = 400
    default_detail = "Invalid request to payment provider."
    default_code = "myfatoorah_validation_error"


class MyFatoorahNotConfigured(MyFatoorahError):
    """MyFatoorah API key is missing in settings."""

    status_code = 500
    default_detail = "MyFatoorah is not configured on the server."
    default_code = "myfatoorah_not_configured"
