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> findBlockById({ required core.OwnerId ownerId, required String blockId, }); /// Return owner-scoped locked blocks. Future>> 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> findOverrideById({ required core.OwnerId ownerId, required String overrideId, }); /// Return owner-scoped overrides for [date]. Future>> 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> insertBlock({ required core.OwnerId ownerId, required core.LockedBlock block, }); /// Save [block] if [expectedRevision] still matches the stored record. Future> saveBlock({ required core.OwnerId ownerId, required core.LockedBlock block, required core.Revision expectedRevision, }); /// Archive [blockId] without deleting historical schedule context. Future> 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> insertOverride({ required core.OwnerId ownerId, required core.LockedBlockOverride override, }); /// Save [override] if [expectedRevision] still matches the stored record. Future> saveOverride({ required core.OwnerId ownerId, required core.LockedBlockOverride override, required core.Revision expectedRevision, }); }