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);
}