getPendingTasks method

List<SpectraTask> getPendingTasks()

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