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

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

/// Stable movement identifiers for task placement changes.
enum SchedulingMovementCode {
  /// Selects the `backlogTaskInserted` option from this enum.
  /// Code should use this named value when it needs this exact scheduler state, presentation token, or persistence meaning.
  backlogTaskInserted,

  /// Selects the `flexibleTaskMovedToMakeRoom` option from this enum.
  /// Code should use this named value when it needs this exact scheduler state, presentation token, or persistence meaning.
  flexibleTaskMovedToMakeRoom,

  /// Selects the `flexibleTaskPushedToNextAvailableSlot` option from this enum.
  /// Code should use this named value when it needs this exact scheduler state, presentation token, or persistence meaning.
  flexibleTaskPushedToNextAvailableSlot,

  /// Selects the `flexibleTaskMovedToTomorrow` option from this enum.
  /// Code should use this named value when it needs this exact scheduler state, presentation token, or persistence meaning.
  flexibleTaskMovedToTomorrow,

  /// Selects the `unfinishedFlexibleTasksRolledOver` option from this enum.
  /// Code should use this named value when it needs this exact scheduler state, presentation token, or persistence meaning.
  unfinishedFlexibleTasksRolledOver,

  /// Selects the `flexibleTaskMovedToBacklog` option from this enum.
  /// Code should use this named value when it needs this exact scheduler state, presentation token, or persistence meaning.
  flexibleTaskMovedToBacklog,

  /// Selects the `requiredCommitmentScheduled` option from this enum.
  /// Code should use this named value when it needs this exact scheduler state, presentation token, or persistence meaning.
  requiredCommitmentScheduled,
}
