"""
Inyecta labels.en en definiciones de columnas TEMPLATE_COLUMNS tras cargar el dict.
"""
from __future__ import annotations

from typing import Any, Dict, List, Optional

from .csv_headers_en import HEADER_LABEL_EN


def inject_en_labels_into_columns(columns: Optional[List[Dict[str, Any]]]) -> None:
    """Añade item['labels']['en'] cuando existe traducción para canonical."""
    if not columns:
        return
    for item in columns:
        if not isinstance(item, dict):
            continue
        c = item.get("canonical")
        if not c:
            continue
        en = HEADER_LABEL_EN.get(str(c).strip())
        if en:
            lab = item.setdefault("labels", {})
            lab["en"] = en


def inject_en_labels_into_template_columns(template_columns: Dict[str, Optional[List[Dict[str, Any]]]]) -> None:
    """Recorre todas las plantillas de un TEMPLATE_COLUMNS."""
    for cols in template_columns.values():
        inject_en_labels_into_columns(cols)
