from abc import ABC, abstractmethod from typing import Tuple class BaseIntegrationService(ABC): """ Базовый класс для всех интеграционных сервисов. Определяет общий интерфейс для работы с внешними API. """ def __init__(self, config): """ Args: config: Экземпляр модели интеграции (наследник BaseIntegration) """ self.config = config @abstractmethod def test_connection(self) -> Tuple[bool, str]: """ Проверить соединение с внешним API. Returns: tuple: (success: bool, message: str) """ pass @abstractmethod def sync(self) -> Tuple[bool, str]: """ Выполнить основную операцию синхронизации. Returns: tuple: (success: bool, message: str) """ pass def is_available(self) -> bool: """ Проверить, готова ли интеграция к использованию. Returns: bool: True если интеграция активна и настроена """ return ( self.config.is_active and self.config.is_configured )