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

33 lines
764 B
C#
Raw Normal View History

namespace SeaHaven.Services.Interfaces
{
public interface IWorkOrderWebhookService
{
int MaximumBodyBytes { get; }
Task<WorkOrderWebhookResult> ProcessAsync(
WorkOrderWebhookRequest request,
CancellationToken cancellationToken);
}
public sealed record WorkOrderWebhookRequest(
string? Timestamp,
string? KeyId,
string? Signature,
byte[] Body);
public enum WorkOrderWebhookStatus
{
Applied,
Duplicate,
Unauthorized,
Disabled,
InvalidEnvelope,
HashConflict,
Unavailable
}
public sealed record WorkOrderWebhookResult(
WorkOrderWebhookStatus Status,
bool StateMutationSkipped = false);
}