"""Shared fixtures for tests."""

import pytest

from src.config.settings import EmailConfig, KPIThresholds
from src.models.data_models import SearchMetrics


@pytest.fixture
def sample_metrics():
    return SearchMetrics(clicks=600, impressions=3000, ctr=0.20, position=2.5)


@pytest.fixture
def low_metrics():
    return SearchMetrics(clicks=100, impressions=500, ctr=0.05, position=8.0)


@pytest.fixture
def thresholds():
    return KPIThresholds(
        min_clicks=500,
        min_impressions=2000,
        min_ctr=0.15,
        max_position=3.0,
        min_index_rate=0.95,
    )


@pytest.fixture
def sample_query_rows():
    return [
        {"keys": ["nroom"], "clicks": 50, "impressions": 200, "ctr": 0.25, "position": 1.5},
        {"keys": ["ブログ nroom"], "clicks": 30, "impressions": 150, "ctr": 0.20, "position": 3.0},
        {"keys": ["nroom ブログ"], "clicks": 20, "impressions": 100, "ctr": 0.20, "position": 4.2},
        {"keys": ["landing page nroom"], "clicks": 10, "impressions": 80, "ctr": 0.125, "position": 5.0},
        {"keys": ["unrelated query"], "clicks": 5, "impressions": 50, "ctr": 0.10, "position": 10.0},
    ]


@pytest.fixture
def email_config():
    return EmailConfig(
        smtp_host="smtp.gmail.com",
        smtp_port=587,
        smtp_user="test@gmail.com",
        smtp_password="testpass",
        email_from="test@gmail.com",
        email_to=["recipient@example.com"],
    )
