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

part of '../../repositories.dart';

/// Repository contract for scheduling operation/state snapshot documents.
abstract interface class SchedulingSnapshotRepository {
  /// Return a snapshot by stable id, or null when it does not exist.
  Future<SchedulingStateSnapshot?> findById(String id);

  /// Return all snapshots overlapping [window].
  Future<List<SchedulingStateSnapshot>> findInWindow(SchedulingWindow window);

  /// Save or replace [snapshot] by stable id.
  Future<void> save(SchedulingStateSnapshot snapshot);
}
