using FrameworkDAL.DTO.Playground;
using GB5Shared.DTO.Framework.Login;
using System.Threading;
using System.Threading.Tasks;
namespace FrameworkBLL.Playground
{
public interface IPlaygroundBLL
{
///
/// Fire a trigger event into the real pipeline.
/// In Live mode: loads real MACTION rows for the EventTypeId and creates
/// TEVENTACTIONRUN + TACTIONOUTBOX rows (up to RecordLimit).
/// In Mock mode: creates synthetic rows for the requested action type.
/// Returns a PlaygroundRunId (short GUID) that identifies all created rows.
///
Task TriggerEventAsync(
TriggerEventDTO dto, LoginDTO login, CancellationToken ct = default);
///
/// Aggregate pipeline stage status for a playground run.
/// Polls TEVENTACTIONRUN and TACTIONOUTBOX by PlaygroundRunId.
///
Task GetPipelineStatusAsync(
string runId, LoginDTO login, CancellationToken ct = default);
///
/// Paged list of action run rows for the Queue Monitor table.
///
Task GetActionQueueAsync(
string runId, LoginDTO login, CancellationToken ct = default);
///
/// Reset a failed action run so ActionProcessorWorker will retry it.
///
Task RetryActionAsync(
int actionRunId, LoginDTO login, CancellationToken ct = default);
}
}