from abc import ABC, abstractmethod

from sator_core.models.vulnerability.locator import VulnerabilityLocator


class VulnerabilityAttributesAnalysisPort(ABC):
    @abstractmethod
    def analyze_vulnerability_attributes(self, vulnerability_id: str) -> VulnerabilityLocator | None:
        """
            Analyze the attributes of the given vulnerability.

            Args:
                vulnerability_id: The id of the vulnerability.

            Returns:
                The location of the vulnerability.
        """
        raise NotImplementedError
