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

part of '../../reminder_policy.dart';

/// Stable reason codes for reminder directives.
enum ReminderDirectiveReason {
  /// Selects the `deliverNormal` option from this enum.
  /// Code should use this named value when it needs this exact scheduler state, presentation token, or persistence meaning.
  deliverNormal,

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

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

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

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

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

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

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

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

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

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