import re INDIAN_MOBILE_RE = re.compile(r"^[6-9]\d{9}$") def normalize_phone_number(value: str) -> str: cleaned = re.sub(r"\D", "", value.strip()) if cleaned.startswith("91") and len(cleaned) == 12: cleaned = cleaned[2:] if cleaned.startswith("0") and len(cleaned) == 11: cleaned = cleaned[1:] if not INDIAN_MOBILE_RE.fullmatch(cleaned): raise ValueError("Enter a 10-digit mobile number without +91, e.g. 9876543210") return cleaned def validate_price(value: float, label: str) -> float: if value < 0: raise ValueError(f"{label} must be zero or greater") if value > 999999: raise ValueError(f"{label} is too large") return round(float(value), 2) def validate_per_min_price(value: float, label: str) -> float: if value < 0: raise ValueError(f"{label} must be zero or greater") if value > 9999: raise ValueError(f"{label} is too large") return round(float(value), 4)