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

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

/// Stable issue identifiers for validation, no-slot, and no-op notices.
enum SchedulingIssueCode {
  /// Selects the `taskNotFound` option from this enum.
  /// Code should use this named value when it needs this exact scheduler state, presentation token, or persistence meaning.
  taskNotFound,

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

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

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

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

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

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

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

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