sortForDispatch static method
Sorts issues in dispatch order: priority asc, oldest createdAt, then
identifier as a stable tie-breaker.
Visible for testing.
Implementation
static List<Issue> sortForDispatch(List<Issue> issues) {
final copy = List<Issue>.from(issues);
copy.sort((a, b) {
final pa = a.priority ?? 1 << 30;
final pb = b.priority ?? 1 << 30;
if (pa != pb) return pa.compareTo(pb);
final ca = a.createdAt;
final cb = b.createdAt;
if (ca != null && cb != null) {
final cmp = ca.compareTo(cb);
if (cmp != 0) return cmp;
} else if (ca != null) {
return -1;
} else if (cb != null) {
return 1;
}
return a.identifier.compareTo(b.identifier);
});
return copy;
}