"""
Registry de output templates.

Cada template expõe:
    serialize(canonical: dict, etl_version: str) -> dict
"""

from pyjuris.outputs import datajud as _dj
from pyjuris.outputs import lops_api as _lops_api
from pyjuris.outputs import solucionare as _sol

_REGISTRY: dict[str, object] = {
    "lops_api": _lops_api,
    "datajud": _dj,
    "solucionare": _sol,
}


def get_serializer(name: str):
    """Retorna a função serialize do output template pelo nome."""
    if name not in _REGISTRY:
        available = list(_REGISTRY)
        raise ValueError(f"output_template '{name}' não registrado. Disponíveis: {available}")
    return _REGISTRY[name].serialize
