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

part of '../occupancy_policy.dart';

/// Scheduling-facing occupancy category for one task or external interval.
enum OccupancyCategory {
  /// Hidden locked time that constrains scheduling.
  hiddenLockedConstraint,

  /// Visible critical or inflexible commitment.
  requiredVisibleCommitment,

  /// Intentional protected rest.
  protectedFreeSlot,

  /// Planned flexible work that automatic scheduling may move.
  movablePlannedFlexible,

  /// Work currently in progress.
  activeWork,

  /// Known actual historical occupancy from completed work.
  completedActualOccupancy,

  /// Historical missed placement retained as context.
  retainedMissedHistoricalInterval,

  /// Record that should not occupy the scheduling window.
  nonOccupyingRecord,
}
