from typing import List, Dict
from terminal.colors import RED, GREEN, YELLOW, BLACK_ON_WHITE, RESET

class Vulnerability:
    def __init__(
        self, 
        id: str,
        source: str,
        url: str,
        reference_urls: List[str],
        base_score: str,
        base_severity: str,
        title: str,
        description: str,
        vulnerable_components: List[str],
        tags: List[str],
        date: str,
        weaknesses: List[str] = None,
        patched_versions: str = None
    ):
        self.id = id
        self.source = source
        self.title = title
        self.description = description
        self.reference_urls = reference_urls
        self.url = url
        self.base_score = base_score
        self.base_severity = base_severity
        self.vulnerable_components = vulnerable_components
        self.date = date
        self.tags = tags
        self.weaknesses = weaknesses if weaknesses is not None else []
        self.patched_versions = patched_versions
