64 lines
2.2 KiB
Dart
64 lines
2.2 KiB
Dart
part of '../persistence.dart';
|
|
|
|
/// Repository contract for locked blocks and date-scoped overrides.
|
|
abstract interface class LockedBlockRepository {
|
|
/// Return the locked block with [blockId] in [ownerId], or null when absent.
|
|
Future<RepoResult<core.LockedBlock?>> findBlockById({
|
|
required core.OwnerId ownerId,
|
|
required String blockId,
|
|
});
|
|
|
|
/// Return owner-scoped locked blocks.
|
|
Future<RepoResult<core.Page<core.LockedBlock>>> findBlocksByOwner({
|
|
required core.OwnerId ownerId,
|
|
bool includeArchived = false,
|
|
core.PageRequest page = const core.PageRequest(),
|
|
});
|
|
|
|
/// Return the override with [overrideId] in [ownerId], or null when absent.
|
|
Future<RepoResult<core.LockedBlockOverride?>> findOverrideById({
|
|
required core.OwnerId ownerId,
|
|
required String overrideId,
|
|
});
|
|
|
|
/// Return owner-scoped overrides for [date].
|
|
Future<RepoResult<core.Page<core.LockedBlockOverride>>> findOverridesForDate({
|
|
required core.OwnerId ownerId,
|
|
required core.CivilDate date,
|
|
core.PageRequest page = const core.PageRequest(),
|
|
});
|
|
|
|
/// Insert [block] for [ownerId] and return the assigned revision.
|
|
Future<RepoResult<core.Revision>> insertBlock({
|
|
required core.OwnerId ownerId,
|
|
required core.LockedBlock block,
|
|
});
|
|
|
|
/// Save [block] if [expectedRevision] still matches the stored record.
|
|
Future<RepoResult<core.Revision>> saveBlock({
|
|
required core.OwnerId ownerId,
|
|
required core.LockedBlock block,
|
|
required core.Revision expectedRevision,
|
|
});
|
|
|
|
/// Archive [blockId] without deleting historical schedule context.
|
|
Future<RepoResult<core.Revision>> archiveBlock({
|
|
required core.OwnerId ownerId,
|
|
required String blockId,
|
|
required core.Revision expectedRevision,
|
|
required DateTime archivedAtUtc,
|
|
});
|
|
|
|
/// Insert [override] for [ownerId] and return the assigned revision.
|
|
Future<RepoResult<core.Revision>> insertOverride({
|
|
required core.OwnerId ownerId,
|
|
required core.LockedBlockOverride override,
|
|
});
|
|
|
|
/// Save [override] if [expectedRevision] still matches the stored record.
|
|
Future<RepoResult<core.Revision>> saveOverride({
|
|
required core.OwnerId ownerId,
|
|
required core.LockedBlockOverride override,
|
|
required core.Revision expectedRevision,
|
|
});
|
|
}
|