"""QueryPlan — plan de busqueda generado por analisis de intenciones (LLM)."""

from __future__ import annotations

from dataclasses import dataclass

from typed_query import TypedQuery


@dataclass
class QueryPlan:
    """Plan de busqueda generado por analisis de intenciones.

    Contiene multiples queries tipadas y el razonamiento detras de la
    descomposicion. Generado tipicamente por un LLM que analiza el contexto
    de sesion y las intenciones del usuario.

    Attributes:
        queries:         Lista de TypedQueries a ejecutar, ordenadas por prioridad.
        session_context: Resumen del contexto de sesion que guio la descomposicion.
        reasoning:       Razonamiento del LLM sobre como descomponer la busqueda.
    """

    queries: list[TypedQuery]
    session_context: str
    reasoning: str
