import 'package:flutter/services.dart';

/// Saisie code postal français : uniquement des chiffres, au plus 5.
final List<TextInputFormatter> kFrenchPostalCodeInputFormatters = [
  FilteringTextInputFormatter.digitsOnly,
  LengthLimitingTextInputFormatter(5),
];

/// Valide un code postal français (exactement 5 chiffres).
String? validateFrenchPostalCode(String? raw, {bool allowEmpty = false}) {
  final s = raw?.trim() ?? '';
  if (s.isEmpty) {
    return allowEmpty ? null : 'Ce champ est obligatoire';
  }
  if (s.length != 5 || int.tryParse(s) == null) {
    return 'Le code postal doit comporter 5 chiffres.';
  }
  return null;
}
