using FrameworkDAL.DTO.EIPConversation;
using GB5Shared.DTO.Framework.Login;
using PuppeteerSharp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FrameworkBLL.EIPConversation.EIPHandlers.EIPEngine.FlowEngine
{
///
/// Phase 3 – DSL Flow Execution Engine.
/// Interprets flow steps and executes logic accordingly.
///
public interface IEIPFlowEngine
{
/// Loads the flow definition from the repository then executes it.
Task ExecuteFlowAsync(
EIPExecutionContextDTO context,
string flowCode,
LoginDTO? loginDTO = null,
CancellationToken cancellationToken = default);
///
/// Executes a pre-parsed flow definition directly, bypassing the repository.
/// Used by the EIP Playground so flows can be tested from raw JSON without a DB record.
///
Task ExecuteFlowFromDefinitionAsync(
EIPExecutionContextDTO context,
EIPFlowDefinitionDTO flowDefinition,
LoginDTO? loginDTO = null,
CancellationToken cancellationToken = default);
}
}