30 lines
1.5 KiB
Dart
30 lines
1.5 KiB
Dart
// SPDX-FileCopyrightText: 2026 FocusFlow contributors
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
/// In-memory implementations of the scheduler persistence repository contracts.
|
|
///
|
|
/// These repositories are intended for core tests, local integration tests, and
|
|
/// adapter conformance checks. They model optimistic compare-and-set behavior
|
|
/// but do not provide durable storage.
|
|
library;
|
|
|
|
import 'dart:convert';
|
|
|
|
import 'package:scheduler_core/scheduler_core.dart' as core;
|
|
import 'package:scheduler_persistence/persistence.dart';
|
|
part 'persistence_memory/repositories/in_memory_task_repository.dart';
|
|
part 'persistence_memory/repositories/in_memory_project_repository.dart';
|
|
part 'persistence_memory/repositories/in_memory_locked_block_repository.dart';
|
|
part 'persistence_memory/repositories/in_memory_settings_repository.dart';
|
|
part 'persistence_memory/repositories/in_memory_schedule_snapshot_repository.dart';
|
|
part 'persistence_memory/records/identified_record.dart';
|
|
part 'persistence_memory/records/record.dart';
|
|
part 'persistence_memory/records/snapshot_record.dart';
|
|
|
|
/// Private file-level value for `_snapshotRetention`.
|
|
/// Keeping this value near the helpers that use it avoids hidden global configuration while still preventing duplicate literals.
|
|
const _snapshotRetention = Duration(days: 30);
|
|
|
|
/// Private file-level value for `_epoch`.
|
|
/// Keeping this value near the helpers that use it avoids hidden global configuration while still preventing duplicate literals.
|
|
final _epoch = DateTime.fromMillisecondsSinceEpoch(0, isUtc: true);
|