"""
Base exception classes
"""


class SentinelException(Exception):
    """Base exception for Sentinel application"""
    
    def __init__(self, message: str, details: str = None):
        self.message = message
        self.details = details
        super().__init__(self.message)


class ValidationError(SentinelException):
    """Validation error"""
    pass


class NotFoundError(SentinelException):
    """Resource not found error"""
    pass


class ConflictError(SentinelException):
    """Resource conflict error"""
    pass


class PermissionError(SentinelException):
    """Permission denied error"""
    pass


class ExternalServiceError(SentinelException):
    """External service error"""
    pass
