// SPDX-FileCopyrightText: 2026 FocusFlow contributors
// SPDX-License-Identifier: AGPL-3.0-only

part of '../../../scheduling_engine.dart';

/// Stable scheduler operation identifiers.
enum SchedulingOperationCode {
  /// Operation was built outside the core scheduler or is not specified.
  unspecified,

  /// Insert a backlog task into the next available slot.
  insertBacklogTaskIntoNextAvailableSlot,

  /// Push a flexible task later in the current window.
  pushFlexibleTaskToNextAvailableSlot,

  /// Move a flexible task to the top of a future/tomorrow queue.
  pushFlexibleTaskToTomorrowTopOfQueue,

  /// Roll unfinished flexible tasks into a target window.
  rollOverUnfinishedFlexibleTasks,

  /// Analyze overlaps without moving tasks.
  analyzeSchedule,

  /// Move a flexible task to backlog through the action service.
  moveFlexibleTaskToBacklog,

  /// Log completed surprise work.
  logSurpriseTask,

  /// Explicitly schedule a critical or inflexible commitment.
  scheduleRequiredCommitment,
}
