validatePhone function

String? validatePhone({
  1. required String phone,
  2. String? emptyMessage,
  3. String? invalidFormatMessage,
  4. bool trimWhitespace = true,
  5. List<String>? existingPhones,
  6. String? alreadyExistsMessage,
  7. SahihLanguage? lang,
})

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,
  SahihLanguage? lang,
}) {
  final input = trimWhitespace ? phone.trim() : phone;

  if (input.isEmpty) {
    return emptyMessage ?? SahihLocalization.get('phone_empty', lang: lang);
  }

  if (!PatternType.phone.isValid(input)) {
    return invalidFormatMessage ??
        SahihLocalization.get('phone_invalid', lang: lang);
  }

  if (existingPhones != null && existingPhones.contains(input)) {
    return alreadyExistsMessage ??
        SahihLocalization.get('phone_already_exists', lang: lang);
  }

  return null;
}