shoc-backend/SeaHaven.Services/Interfaces/IWorkOrderReconciliationService.cs

35 lines
1.1 KiB
C#
Raw Normal View History

using System.Security.Claims;
namespace SeaHaven.Services.Interfaces
{
/// <summary>
/// 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.
/// </summary>
public interface IWorkOrderReconciliationService
{
Task<WorkOrderReconciliationTriggerResult> TriggerAsync(
ClaimsPrincipal user,
string reason,
CancellationToken cancellationToken);
Task<WorkOrderReconciliationStatus> 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);
}