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

part of '../../../models.dart';

/// Current lifecycle state of a task.
///
/// Status is intentionally data-oriented: it describes what happened to a task,
/// not how important it is or how the scheduler should move it. Scheduler rules
/// combine [TaskStatus] with [TaskType]. For instance, a planned flexible task
/// can be pushed, while a planned critical task should remain visible and become
/// backlog if missed.
enum TaskStatus {
  /// Scheduled or queued work that has not started.
  planned,

  /// Work currently in progress.
  active,

  /// Work finished by the user.
  completed,

  /// Work that was not completed in its intended time.
  missed,

  /// Work intentionally removed from the plan.
  cancelled,

  /// Work intentionally dismissed because it no longer applies.
  noLongerRelevant,

  /// Unscheduled work kept for later planning.
  backlog,
}
