using System.Threading;
using System.Threading.Tasks;
using GB5Shared.DTO.Framework.Login;
using GB5Shared.DTO.WorkFlow;
namespace GB5Shared.WorkFlow.Wip
{
///
/// Dispatches approved WIP records by replaying the original API call.
/// Implemented by HttpWipApprovalDispatcher in FrameworkBLL using IHttpClientFactory.
/// Called by WorkFlowBLL after the workflow action transaction is committed.
///
public interface IWipApprovalDispatcher
{
///
/// Replays the original entity save API call for the given WIP dispatch info.
/// Posts to with:
/// - Header X-Wip-Approval: {WipId} (bypass WIP check on target endpoint)
/// - Body: merged JSON of approver LoginDTO + original DataJson (STATUS patched to 1)
///
Task DispatchAsync(
WipDispatchInfo dispatch,
LoginDTO approverLogin,
CancellationToken ct = default);
}
}