validatePhone function
Validates phone number format (10-15 digits, optional +). Returns null if valid, error message if invalid.
Implementation
String? validatePhone({
  required String phone,
  String? emptyMessage,
  String? invalidFormatMessage,
  bool trimWhitespace = true,
  List<String>? existingPhones,
  String? alreadyExistsMessage,
}) {
  final input = trimWhitespace ? phone.trim() : phone;
  if (input.isEmpty) {
    return emptyMessage ?? "Please enter your phone number.";
  }
  if (!PatternType.phone.isValid(input)) {
    return invalidFormatMessage ??
        "The phone number is invalid. Please enter a valid 10–15 digit number.";
  }
  if (existingPhones != null && existingPhones.contains(input)) {
    return alreadyExistsMessage ?? "This phone number is already registered.";
  }
  return null;
}