shoc-backend/SeaHaven.Services/Interfaces/IWorkOrderWebhookService.cs
2026-07-24 21:03:50 -03:00

32 lines
764 B
C#

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);
}