"""DirectoryScanResult — resultado de un escaneo de arbol de directorios."""

from dataclasses import dataclass, field

from classified_file import ClassifiedFile


@dataclass
class DirectoryScanResult:
    """Resultado de un escaneo de arbol de directorios.

    Agrupa los archivos procesables, no soportados, los paths saltados
    y los warnings generados durante el escaneo.
    """

    root: str
    processable: list[ClassifiedFile] = field(default_factory=list)
    unsupported: list[ClassifiedFile] = field(default_factory=list)
    skipped: list[str] = field(default_factory=list)   # "path (reason)"
    warnings: list[str] = field(default_factory=list)

    def all_processable_files(self) -> list[ClassifiedFile]:
        """Alias de processable para una API mas clara."""
        return self.processable
