focus-flow/packages/scheduler_persistence/lib/persistence/settings_repository.dart

22 lines
750 B
Dart

part of '../persistence.dart';
/// Repository contract for owner settings.
abstract interface class SettingsRepository {
/// Return settings for [ownerId], or null when no settings have been saved.
Future<RepoResult<core.OwnerSettings?>> findByOwner({
required core.OwnerId ownerId,
});
/// Insert [settings] for [ownerId] and return the assigned revision.
Future<RepoResult<core.Revision>> insert({
required core.OwnerId ownerId,
required core.OwnerSettings settings,
});
/// Save [settings] if [expectedRevision] still matches the stored record.
Future<RepoResult<core.Revision>> save({
required core.OwnerId ownerId,
required core.OwnerSettings settings,
required core.Revision expectedRevision,
});
}