def mask_mobile(value: str | None) -> str: if not value: return "" if len(value) < 7: return "***" return f"{value[:3]}****{value[-4:]}" def mask_email(value: str | None) -> str: if not value or "@" not in value: return "" name, _, domain = value.partition("@") if not name or not domain: return "" return f"{name[:1]}***@{domain}" def mask_id_card(value: str | None) -> str: if not value: return "" if len(value) < 8: return "***" return f"{value[:4]}**********{value[-4:]}"