birthDate static method

String? Function(String?) birthDate({
  1. String? message,
})

Validates birth date (format DD/MM/YYYY or YYYY-MM-DD)

Implementation

static String? Function(String?) birthDate({String? message}) {
  return (String? value) {
    if (value == null || value.trim().isEmpty) {
      return null;
    }

    try {
      // Try to parse the date
      final date = DateTime.parse(value);

      // Validate not in the future
      if (date.isAfter(DateTime.now())) {
        return message ?? _defaultMessages['birthDate'];
      }

      // Validate minimum age (e.g., 1 year)
      if (date.isAfter(DateTime.now().subtract(const Duration(days: 365)))) {
        return message ?? _defaultMessages['birthDate'];
      }

      return null;
    } catch (e) {
      return message ?? _defaultMessages['birthDate'];
    }
  };
}