"""
Исключения для AuroraPay Payment API
"""


class AuroraPayError(Exception):
    """Базовое исключение для всех ошибок API"""
    
    def __init__(self, message: str, code: str = None, status_code: int = None):
        self.message = message
        self.code = code
        self.status_code = status_code
        super().__init__(self.message)


class ValidationError(AuroraPayError):
    """Ошибка валидации входных данных"""
    pass


class OrderCreationError(AuroraPayError):
    """Ошибка создания заказа"""
    pass


class OrderNotFoundError(AuroraPayError):
    """Заказ не найден"""
    pass


class UnauthorizedError(AuroraPayError):
    """Отсутствует или неверный API ключ"""
    pass


class InactiveShopError(AuroraPayError):
    """Магазин неактивен"""
    pass


class ForbiddenError(AuroraPayError):
    """Доступ запрещен"""
    pass
