using System.Security.Claims;
namespace SeaHaven.Services.Interfaces
{
///
/// Controller-facing admin surface for work-order reconciliation. Every method enforces an
/// authenticated Admin principal at service entry before any data-service call, independent of
/// any HTTP-layer authorization filter.
///
public interface IWorkOrderReconciliationService
{
Task TriggerAsync(
ClaimsPrincipal user,
string reason,
CancellationToken cancellationToken);
Task GetStatusAsync(
ClaimsPrincipal user,
CancellationToken cancellationToken);
}
public sealed record WorkOrderReconciliationTriggerResult(bool Queued, Guid RunId);
public sealed record WorkOrderReconciliationStatus(
Guid? RunId,
string State,
string? Reason,
DateTimeOffset? RequestedAt,
DateTimeOffset? StartedAt,
DateTimeOffset? CompletedAt,
int WorkOrdersProcessed,
int CommentsProcessed,
string? ErrorCode);
}