from abc import ABC, abstractmethod
from models.vulnerability_intelligence import VulnerabilityIntelligence
from typing import Dict

class BaseHandler(ABC):
    def __init__(self, enrichment_data: Dict):
        self.data = enrichment_data

    @abstractmethod
    def apply(self, vuln_intelligence: VulnerabilityIntelligence):
        pass

    def enrich_source_name(self, source):
        return f"VulnerabilityIntelligenceEnrichment/{source}"
    
    def enrich_source_name_mitigation(self, source):
        return f"VulnerabilityIntelligenceEnrichment/{source} - MITIGATION"