first method
Returns the earliest (oldest) DateTime from an iterable.
Ignores any null values within the list. Returns null if the
iterable is null or contains no valid dates after filtering.
Implementation
DateTime? first(Iterable<DateTime?>? dates) {
if (dates == null) return null;
final filteredDates = dates.whereType<DateTime>();
if (filteredDates.isEmpty) return null;
return filteredDates.reduce((a, b) => a.isBefore(b) ? a : b);
}