"""TypedQuery — query tipada resultante del analisis de intenciones."""

from __future__ import annotations

from dataclasses import dataclass, field

from context_type import ContextType


@dataclass
class TypedQuery:
    """Query tipada que resulta del analisis de intenciones.

    Un plan de busqueda se descompone en multiples TypedQueries, cada una
    apuntando a un tipo de contexto diferente. Permite estrategias de
    retrieval especificas por categoria.

    Attributes:
        query:              Texto de la query de busqueda.
        context_type:       Tipo de contexto objetivo (MEMORY, RESOURCE, SKILL) o None para todos.
        intent:             Descripcion de la intencion detras de esta query.
        priority:           Prioridad 1-5 (1 es mayor prioridad).
        target_directories: URIs de directorios donde buscar. Lista vacia = buscar en todos.
    """

    query: str
    context_type: ContextType | None
    intent: str
    priority: int = 3
    target_directories: list[str] = field(default_factory=list)
