getPendingTasks method
Gets all pending tasks that can be assigned.
Implementation
List<SpectraTask> getPendingTasks() {
final assignedTaskIds = _agents
.where(
(a) => a.currentTaskId != null && a.status == AgentStatus.working,
)
.map((a) => a.currentTaskId!)
.toSet();
return _convoys
.where((c) => c.status != 'completed')
.expand((c) => c.tasks)
.where((t) {
// Not assigned and not completed
final completed = _taskHistory.values.any(
(list) => list.contains(t.id),
);
return !assignedTaskIds.contains(t.id) && !completed;
})
.toList();
}