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

part of '../../../persistence_contract.dart';

/// Document field names for [TaskStatistics] embedded documents.
abstract final class TaskStatisticsDocumentFields {
  /// Stable storage field for `skippedDuringBurnoutCount`.
  /// Keeping the key in one documented constant protects repository adapters, migrations, and tests from drifting string literals.
  static const skippedDuringBurnoutCount = 'skippedDuringBurnoutCount';

  /// Stable storage field for `manuallyPushedCount`.
  /// Keeping the key in one documented constant protects repository adapters, migrations, and tests from drifting string literals.
  static const manuallyPushedCount = 'manuallyPushedCount';

  /// Stable storage field for `autoPushedCount`.
  /// Keeping the key in one documented constant protects repository adapters, migrations, and tests from drifting string literals.
  static const autoPushedCount = 'autoPushedCount';

  /// Stable storage field for `movedToBacklogCount`.
  /// Keeping the key in one documented constant protects repository adapters, migrations, and tests from drifting string literals.
  static const movedToBacklogCount = 'movedToBacklogCount';

  /// Stable storage field for `restoredFromBacklogCount`.
  /// Keeping the key in one documented constant protects repository adapters, migrations, and tests from drifting string literals.
  static const restoredFromBacklogCount = 'restoredFromBacklogCount';

  /// Stable storage field for `missedCount`.
  /// Keeping the key in one documented constant protects repository adapters, migrations, and tests from drifting string literals.
  static const missedCount = 'missedCount';

  /// Stable storage field for `cancelledCount`.
  /// Keeping the key in one documented constant protects repository adapters, migrations, and tests from drifting string literals.
  static const cancelledCount = 'cancelledCount';

  /// Stable storage field for `completedLateCount`.
  /// Keeping the key in one documented constant protects repository adapters, migrations, and tests from drifting string literals.
  static const completedLateCount = 'completedLateCount';

  /// Stable storage field for `completedDuringLockedHoursCount`.
  /// Keeping the key in one documented constant protects repository adapters, migrations, and tests from drifting string literals.
  static const completedDuringLockedHoursCount =
      'completedDuringLockedHoursCount';

  /// Stable storage field for `completedDuringLockedHoursMinutes`.
  /// Keeping the key in one documented constant protects repository adapters, migrations, and tests from drifting string literals.
  static const completedDuringLockedHoursMinutes =
      'completedDuringLockedHoursMinutes';

  /// Stable storage field for `completedAfterShieldCount`.
  /// Keeping the key in one documented constant protects repository adapters, migrations, and tests from drifting string literals.
  static const completedAfterShieldCount = 'completedAfterShieldCount';

  /// Stable storage field for `completedAfterPushCount`.
  /// Keeping the key in one documented constant protects repository adapters, migrations, and tests from drifting string literals.
  static const completedAfterPushCount = 'completedAfterPushCount';

  /// Stable storage field for `totalPushesBeforeCompletion`.
  /// Keeping the key in one documented constant protects repository adapters, migrations, and tests from drifting string literals.
  static const totalPushesBeforeCompletion = 'totalPushesBeforeCompletion';

  /// Stable storage field for `all`.
  /// Keeping the key in one documented constant protects repository adapters, migrations, and tests from drifting string literals.
  static const all = <String>{
    skippedDuringBurnoutCount,
    manuallyPushedCount,
    autoPushedCount,
    movedToBacklogCount,
    restoredFromBacklogCount,
    missedCount,
    cancelledCount,
    completedLateCount,
    completedDuringLockedHoursCount,
    completedDuringLockedHoursMinutes,
    completedAfterShieldCount,
    completedAfterPushCount,
    totalPushesBeforeCompletion,
  };
}
