import re

from .config import settings


def normalize(raw: str) -> str | None:
    """Return digits-only international number (no +), or None if it cannot be a phone."""
    if not raw:
        return None
    raw = raw.strip().split("@")[0].split(":")[0]
    # Arabic-Indic digits -> ASCII
    raw = raw.translate(str.maketrans("٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹", "01234567890123456789"))
    digits = re.sub(r"\D", "", raw)
    if digits.startswith("00"):
        digits = digits[2:]
    elif digits.startswith("0"):
        digits = settings.default_country_code + digits[1:]
    elif len(digits) <= 9:  # local number without leading zero, e.g. 5xxxxxxxx
        digits = settings.default_country_code + digits
    if not 9 <= len(digits) <= 15:
        return None
    return digits
