"""Convierte texto a slug ASCII lowercase sin diacriticos."""

import re
import unicodedata


def slugify_ascii(text: str, max_len: int = 80, default: str = "centro") -> str:
    """Convierte texto a slug ASCII lowercase sin diacriticos.

    Aplica: strip + lower + eliminar diacriticos NFD + reemplazar
    no-alphanum por guion + colapsar guiones + trim. Si el resultado
    esta vacio retorna default. Trunca a max_len.

    Args:
        text: Texto de entrada. None se trata como vacio.
        max_len: Longitud maxima del slug resultante (default 80).
        default: Valor a retornar si el slug queda vacio (default "centro").

    Returns:
        Slug ASCII lowercase, maximo max_len caracteres.
    """
    if text is None:
        return default
    text = str(text).strip().lower()
    text = "".join(
        c for c in unicodedata.normalize("NFD", text)
        if unicodedata.category(c) != "Mn"
    )
    text = re.sub(r"[^a-z0-9]+", "-", text)
    text = text.strip("-")
    if not text:
        return default
    return text[:max_len]
