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

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

/// Stable V1 logical collection names for persistence adapters.
abstract final class PersistenceCollections {
  /// Shared constant value for `tasks`.
  /// The constant gives this repeated scheduler or UI value one documented source of truth instead of scattering literals across call sites.
  static const tasks = 'tasks';

  /// Shared constant value for `projects`.
  /// The constant gives this repeated scheduler or UI value one documented source of truth instead of scattering literals across call sites.
  static const projects = 'projects';

  /// Shared constant value for `projectStatistics`.
  /// The constant gives this repeated scheduler or UI value one documented source of truth instead of scattering literals across call sites.
  static const projectStatistics = 'project_statistics';

  /// Shared constant value for `lockedBlocks`.
  /// The constant gives this repeated scheduler or UI value one documented source of truth instead of scattering literals across call sites.
  static const lockedBlocks = 'locked_blocks';

  /// Shared constant value for `lockedOverrides`.
  /// The constant gives this repeated scheduler or UI value one documented source of truth instead of scattering literals across call sites.
  static const lockedOverrides = 'locked_overrides';

  /// Shared constant value for `taskActivities`.
  /// The constant gives this repeated scheduler or UI value one documented source of truth instead of scattering literals across call sites.
  static const taskActivities = 'task_activities';

  /// Shared constant value for `ownerSettings`.
  /// The constant gives this repeated scheduler or UI value one documented source of truth instead of scattering literals across call sites.
  static const ownerSettings = 'owner_settings';

  /// Shared constant value for `noticeAcknowledgements`.
  /// The constant gives this repeated scheduler or UI value one documented source of truth instead of scattering literals across call sites.
  static const noticeAcknowledgements = 'notice_acknowledgements';

  /// Shared constant value for `applicationOperations`.
  /// The constant gives this repeated scheduler or UI value one documented source of truth instead of scattering literals across call sites.
  static const applicationOperations = 'application_operations';

  /// Shared constant value for `schedulingSnapshots`.
  /// The constant gives this repeated scheduler or UI value one documented source of truth instead of scattering literals across call sites.
  static const schedulingSnapshots = 'scheduling_snapshots';

  /// Shared constant value for `authoritative`.
  /// The constant gives this repeated scheduler or UI value one documented source of truth instead of scattering literals across call sites.
  static const authoritative = <String>{
    tasks,
    projects,
    projectStatistics,
    lockedBlocks,
    lockedOverrides,
    ownerSettings,
  };

  /// Shared constant value for `internalRetained`.
  /// The constant gives this repeated scheduler or UI value one documented source of truth instead of scattering literals across call sites.
  static const internalRetained = <String>{
    taskActivities,
    noticeAcknowledgements,
    applicationOperations,
    schedulingSnapshots,
  };
}
