"""Static pricing data for offline cost calculation."""

from pricetoken.types import ModelPricing

STATIC_PRICING: list[ModelPricing] = [
    # Anthropic
    ModelPricing(
        model_id="claude-opus-4-6",
        provider="anthropic",
        display_name="Claude Opus 4.6",
        input_per_m_tok=5,
        output_per_m_tok=25,
        context_window=200_000,
        max_output_tokens=128_000,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="claude-sonnet-4-6",
        provider="anthropic",
        display_name="Claude Sonnet 4.6",
        input_per_m_tok=3,
        output_per_m_tok=15,
        context_window=200_000,
        max_output_tokens=64_000,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="claude-haiku-4-5-20251001",
        provider="anthropic",
        display_name="Claude Haiku 4.5",
        input_per_m_tok=1,
        output_per_m_tok=5,
        context_window=200_000,
        max_output_tokens=64_000,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    # OpenAI
    ModelPricing(
        model_id="gpt-5.2",
        provider="openai",
        display_name="GPT-5.2",
        input_per_m_tok=1.75,
        output_per_m_tok=14,
        context_window=400_000,
        max_output_tokens=128_000,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="gpt-5",
        provider="openai",
        display_name="GPT-5",
        input_per_m_tok=1.25,
        output_per_m_tok=10,
        context_window=400_000,
        max_output_tokens=128_000,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="gpt-5-mini",
        provider="openai",
        display_name="GPT-5 Mini",
        input_per_m_tok=0.25,
        output_per_m_tok=2,
        context_window=400_000,
        max_output_tokens=128_000,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="gpt-5-nano",
        provider="openai",
        display_name="GPT-5 Nano",
        input_per_m_tok=0.05,
        output_per_m_tok=0.40,
        context_window=400_000,
        max_output_tokens=128_000,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="gpt-4.1",
        provider="openai",
        display_name="GPT-4.1",
        input_per_m_tok=2.0,
        output_per_m_tok=8.0,
        context_window=1_000_000,
        max_output_tokens=32_768,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="gpt-4.1-mini",
        provider="openai",
        display_name="GPT-4.1 Mini",
        input_per_m_tok=0.40,
        output_per_m_tok=1.60,
        context_window=1_000_000,
        max_output_tokens=32_768,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="gpt-4.1-nano",
        provider="openai",
        display_name="GPT-4.1 Nano",
        input_per_m_tok=0.10,
        output_per_m_tok=0.40,
        context_window=1_000_000,
        max_output_tokens=32_768,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="gpt-4o",
        provider="openai",
        display_name="GPT-4o",
        input_per_m_tok=2.5,
        output_per_m_tok=10,
        context_window=128_000,
        max_output_tokens=16_384,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="gpt-4o-mini",
        provider="openai",
        display_name="GPT-4o Mini",
        input_per_m_tok=0.15,
        output_per_m_tok=0.60,
        context_window=128_000,
        max_output_tokens=16_384,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="o3",
        provider="openai",
        display_name="o3",
        input_per_m_tok=2,
        output_per_m_tok=8,
        context_window=200_000,
        max_output_tokens=100_000,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="o4-mini",
        provider="openai",
        display_name="o4-mini",
        input_per_m_tok=1.10,
        output_per_m_tok=4.40,
        context_window=200_000,
        max_output_tokens=100_000,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="gpt-5.1",
        provider="openai",
        display_name="GPT-5.1",
        input_per_m_tok=1.25,
        output_per_m_tok=10,
        context_window=400_000,
        max_output_tokens=128_000,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="o3-pro",
        provider="openai",
        display_name="o3 Pro",
        input_per_m_tok=20,
        output_per_m_tok=80,
        context_window=200_000,
        max_output_tokens=100_000,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="o3-mini",
        provider="openai",
        display_name="o3 Mini",
        input_per_m_tok=1.10,
        output_per_m_tok=4.40,
        context_window=200_000,
        max_output_tokens=100_000,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    # Google
    ModelPricing(
        model_id="gemini-2.5-pro",
        provider="google",
        display_name="Gemini 2.5 Pro",
        input_per_m_tok=1.25,
        output_per_m_tok=10,
        context_window=1_048_576,
        max_output_tokens=65_536,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="gemini-2.5-flash",
        provider="google",
        display_name="Gemini 2.5 Flash",
        input_per_m_tok=0.30,
        output_per_m_tok=2.50,
        context_window=1_048_576,
        max_output_tokens=65_536,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="gemini-2.0-flash",
        provider="google",
        display_name="Gemini 2.0 Flash",
        input_per_m_tok=0.10,
        output_per_m_tok=0.40,
        context_window=1_048_576,
        max_output_tokens=8_192,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="gemini-2.0-flash-lite",
        provider="google",
        display_name="Gemini 2.0 Flash-Lite",
        input_per_m_tok=0.075,
        output_per_m_tok=0.30,
        context_window=1_048_576,
        max_output_tokens=8_192,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="gemini-2.5-flash-lite",
        provider="google",
        display_name="Gemini 2.5 Flash-Lite",
        input_per_m_tok=0.10,
        output_per_m_tok=0.40,
        context_window=1_048_576,
        max_output_tokens=65_536,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="gemini-3.1-pro-preview",
        provider="google",
        display_name="Gemini 3.1 Pro Preview",
        input_per_m_tok=2,
        output_per_m_tok=12,
        context_window=1_048_576,
        max_output_tokens=65_536,
        source="seed",
        status="preview",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="gemini-3-flash-preview",
        provider="google",
        display_name="Gemini 3 Flash Preview",
        input_per_m_tok=0.50,
        output_per_m_tok=3,
        context_window=1_048_576,
        max_output_tokens=65_536,
        source="seed",
        status="preview",
        confidence="high",
        last_updated=None,
    ),
    # DeepSeek
    ModelPricing(
        model_id="deepseek-chat",
        provider="deepseek",
        display_name="DeepSeek V3",
        input_per_m_tok=0.28,
        output_per_m_tok=0.42,
        context_window=131_072,
        max_output_tokens=8_192,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="deepseek-reasoner",
        provider="deepseek",
        display_name="DeepSeek R1",
        input_per_m_tok=0.28,
        output_per_m_tok=0.42,
        context_window=131_072,
        max_output_tokens=65_536,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    # xAI
    ModelPricing(
        model_id="grok-4",
        provider="xai",
        display_name="Grok 4",
        input_per_m_tok=3,
        output_per_m_tok=15,
        context_window=256_000,
        max_output_tokens=None,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="grok-4.1-fast",
        provider="xai",
        display_name="Grok 4.1 Fast",
        input_per_m_tok=0.20,
        output_per_m_tok=0.50,
        context_window=2_000_000,
        max_output_tokens=None,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="grok-3",
        provider="xai",
        display_name="Grok 3",
        input_per_m_tok=3,
        output_per_m_tok=15,
        context_window=131_072,
        max_output_tokens=None,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="grok-3-mini",
        provider="xai",
        display_name="Grok 3 Mini",
        input_per_m_tok=0.30,
        output_per_m_tok=0.50,
        context_window=131_072,
        max_output_tokens=None,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    # Mistral
    ModelPricing(
        model_id="mistral-large-3",
        provider="mistral",
        display_name="Mistral Large 3",
        input_per_m_tok=0.50,
        output_per_m_tok=1.50,
        context_window=262_000,
        max_output_tokens=None,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="mistral-medium-3",
        provider="mistral",
        display_name="Mistral Medium 3",
        input_per_m_tok=0.40,
        output_per_m_tok=2,
        context_window=131_072,
        max_output_tokens=None,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="codestral",
        provider="mistral",
        display_name="Codestral",
        input_per_m_tok=0.30,
        output_per_m_tok=0.90,
        context_window=256_000,
        max_output_tokens=None,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
    ModelPricing(
        model_id="mistral-small-3.1",
        provider="mistral",
        display_name="Mistral Small 3.1",
        input_per_m_tok=0.35,
        output_per_m_tok=0.56,
        context_window=128_000,
        max_output_tokens=None,
        source="seed",
        status="active",
        confidence="high",
        last_updated=None,
    ),
]
