"""Fallback regex-based extraction when LLM is unavailable."""

from __future__ import annotations

from agent_samochodowy.extraction.keywords import (
    extract_brand,
    extract_category,
    extract_engine_codes,
    extract_oe_numbers,
    has_buy_intent,
)
from agent_samochodowy.models import PartQuery, Post


def extract_with_regex(post: Post) -> PartQuery:
    """Extract PartQuery using regex patterns only. Lower quality than LLM."""
    text = post.text
    is_request = has_buy_intent(text)
    brand = extract_brand(text)
    category = extract_category(text)
    engine_codes = extract_engine_codes(text)
    oe_numbers = extract_oe_numbers(text)

    return PartQuery(
        is_part_request=is_request,
        raw_text=text,
        brand=brand,
        model=None,  # Regex can't reliably extract model
        year=None,
        category=category,
        engine_code=engine_codes[0] if engine_codes else None,
        oe_numbers=oe_numbers,
        reason="regex fallback" if is_request else "regex: no buy intent",
    )
