"""Configuration dataclass for the FastMCP-Langfuse integration.

Users pass a ``LangfuseConfig`` to ``instrument()`` to control which
enrichment features are active.  Every field has a sensible default so
``instrument(mcp)`` works with zero configuration.
"""

from __future__ import annotations

from dataclasses import dataclass


@dataclass
class LangfuseConfig:
    """Controls what Langfuse enrichment is applied to every handler.

    Attributes:
        environment: Value for ``langfuse.environment`` span attribute.
                     Typically ``"development"``, ``"staging"``, ``"production"``.
        release:     Value for ``langfuse.release`` span attribute.
                     Useful for tagging a git SHA or version string.
        session_tracking: When ``True``, sets ``langfuse.session.id`` and
                          ``langfuse.user.id`` from FastMCP's request context.
        trace_urls:  When ``True``, prints a clickable Langfuse trace URL to
                     the console for every handled request.
        base_url:    Langfuse instance base URL (used to build trace URLs).
    """

    environment: str = ""
    release: str = ""
    session_tracking: bool = True
    trace_urls: bool = True
    base_url: str = "https://cloud.langfuse.com"
