"""Respostas JSON/HTML para ações AJAX na extração."""

from django.template.loader import render_to_string

from reviews.models import DataExtractionField


def field_to_dict(field: DataExtractionField) -> dict:
    return {
        "id": field.id,
        "description": field.description,
        "field_type": field.field_type,
        "field_type_label": field.FIELD_TYPES.get(field.field_type, field.field_type),
        "lookups": [{"id": lk.id, "value": lk.value} for lk in field.lookups.all()],
    }


def render_field_blocks_html(review, articles, field) -> dict[str, str]:
    """HTML do bloco do campo para cada artigo (injeção sem recarregar página)."""
    return {
        str(article.id): render_to_string(
            "conducting/_extraction_field_block.html",
            {
                "review": review,
                "article": article,
                "field": field,
            },
        )
        for article in articles
    }
