from typing import List

from models.vulnerability import Vulnerability
from models.vulnerability_intelligence import VulnerabilityIntelligence

class VulnerabilityIntelligenceFactory:
    @staticmethod
    def make(vulnerabilities: List[Vulnerability]) -> List[VulnerabilityIntelligence]:
        intelligence_map = {}

        for vuln in vulnerabilities:
            if vuln.id not in intelligence_map:
                intelligence_map[vuln.id] = VulnerabilityIntelligence(vuln.id)
            intelligence_map[vuln.id].add_vulnerability(vuln)

        return list(intelligence_map.values())
