namespace SeaHaven.DataServices.Interfaces { public interface IWorkOrderReconciliationDataService { Task EnqueueAsync( string reason, DateTimeOffset now, CancellationToken cancellationToken); Task TryAcquirePendingAsync( DateTimeOffset now, TimeSpan leaseDuration, CancellationToken cancellationToken); Task GetStatusAsync(CancellationToken cancellationToken); Task RenewLeaseAsync( Guid runId, Guid fenceToken, DateTimeOffset now, TimeSpan leaseDuration, CancellationToken cancellationToken); Task CompleteAsync( Guid runId, Guid fenceToken, DateTimeOffset completedAt, int workOrders, int comments, CancellationToken cancellationToken); Task FailAsync( Guid runId, Guid fenceToken, DateTimeOffset completedAt, string errorCode, CancellationToken cancellationToken); } public sealed record ReconciliationLease(Guid RunId, Guid FenceToken); public sealed record ReconciliationJobSnapshot( Guid? RunId, string State, string? Reason, DateTimeOffset? RequestedAt, DateTimeOffset? StartedAt, DateTimeOffset? CompletedAt, int WorkOrdersProcessed, int CommentsProcessed, string? ErrorCode); }