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

/// Domain-only repository contracts for scheduler persistence adapters.
///
/// This package defines the stable boundary that SQLite, memory, and future
/// adapters must implement. Interfaces accept and return domain objects from
/// `scheduler_core`; storage rows, Drift classes, SQL clients, and platform
/// details stay behind adapter packages.
library;

import 'package:scheduler_core/scheduler_core.dart' as core;
part 'persistence/failures/core/repository_failure.dart';
part 'persistence/failures/identity/repository_not_found.dart';
part 'persistence/failures/identity/repository_duplicate_id.dart';
part 'persistence/failures/revision/repository_invalid_revision.dart';
part 'persistence/failures/revision/repository_stale_revision.dart';
part 'persistence/failures/identity/repository_owner_mismatch.dart';
part 'persistence/failures/storage/repository_storage_failure.dart';
part 'persistence/results/either.dart';
part 'persistence/results/left.dart';
part 'persistence/results/right.dart';
part 'persistence/results/repo_result.dart';
part 'persistence/repositories/task_repository.dart';
part 'persistence/repositories/project_repository.dart';
part 'persistence/repositories/locked_block_repository.dart';
part 'persistence/repositories/settings_repository.dart';
part 'persistence/repositories/schedule_snapshot_repository.dart';
