"""ExtractionResult — resultado final del pipeline de extraccion."""

from dataclasses import dataclass, field

from python.types.datascience.entity_candidate import EntityCandidate
from python.types.datascience.extraction_stats import ExtractionStats
from python.types.datascience.relation_candidate import RelationCandidate


@dataclass
class ExtractionResult:
    """Resultado final del pipeline de extraccion de entidades y relaciones.

    Contiene las listas deduplicadas de entidades y relaciones junto con
    las estadisticas del proceso completo.
    """

    entities: list[EntityCandidate]
    relations: list[RelationCandidate]
    stats: ExtractionStats = field(default_factory=ExtractionStats)
