from abc import ABC, abstractmethod

from sator_core.models.vulnerability.attributes import VulnerabilityAttributes


class VulnerabilityAttributesExtractionPort(ABC):
    @abstractmethod
    def extract_vulnerability_attributes(self, vulnerability_id: str) -> VulnerabilityAttributes | None:
        """Method for extracting attributes from a vulnerability description by its ID."""
        raise NotImplementedError
