class ValidationError(Exception):
    """Error de validación de datos de entrada."""
    def __init__(self, message, field=None):
        self.message = message
        self.field = field
        super().__init__(message)

    def to_response(self):
        detail = {'error': self.message}
        if self.field:
            detail['field'] = self.field
        return {'body': {'data': [], **detail}, 'mensaje': self.message}


class ExternalServiceError(Exception):
    """Error en la comunicación con un servicio externo."""
    def __init__(self, message, service=None):
        self.message = message
        self.service = service
        super().__init__(message)

    def to_response(self):
        return {'body': {'data': [], 'error': self.message}, 'mensaje': self.message}


class NotFoundError(Exception):
    """Recurso no encontrado."""
    def __init__(self, message='Recurso no encontrado'):
        self.message = message
        super().__init__(message)

    def to_response(self):
        return {'body': {'data': [], 'error': self.message}, 'mensaje': self.message}
