from abc import ABC, abstractmethod

from sator_core.models.vulnerability.metadata import VulnerabilityMetadata
from sator_core.models.vulnerability.description import VulnerabilityDescription


class VulnerabilityMetadataResolutionPort(ABC):
    @abstractmethod
    def resolve_vulnerability_metadata(self, vulnerability_id: str) -> VulnerabilityMetadata | None:
        """Method for getting a vulnerability by its ID."""
        raise NotImplementedError

    @abstractmethod
    def resolve_vulnerability_description(self, vulnerability_id: str) -> VulnerabilityDescription | None:
        """Method for getting a vulnerability description by its ID."""
        raise NotImplementedError
