using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using GB5Shared.DTO.Framework.Login; using GB5Shared.DTO.GOP; namespace FrameworkBLL.GOP { public interface IGopFlowBLL { // ── Flow management ─────────────────────────────────────────────────────── Task SaveGopFlow(GopFlowDTO dto, LoginDTO loginDTO, CancellationToken ct = default); Task DeleteGopFlow(int flowId, LoginDTO loginDTO, CancellationToken ct = default); Task GetGopFlow(int flowId, LoginDTO loginDTO, CancellationToken ct = default); Task> GetGopFlowList(LoginDTO loginDTO, CancellationToken ct = default); Task PublishGopFlow(int flowId, string snapshotVersionLabel, LoginDTO loginDTO, CancellationToken ct = default); Task> GetGopFlowVersionHistory(int flowId, LoginDTO loginDTO, CancellationToken ct = default); // ── Flow Step / Edge (design-time graph) management ─────────────────────── Task GetGopFlowGraph(int flowId, LoginDTO loginDTO, CancellationToken ct = default); Task SaveGopFlowStep(GopFlowStepDTO dto, LoginDTO loginDTO, CancellationToken ct = default); Task GetGopFlowStep(int flowStepId, LoginDTO loginDTO, CancellationToken ct = default); Task> GetGopFlowStepList(int flowId, LoginDTO loginDTO, CancellationToken ct = default); Task DeleteGopFlowStep(int flowStepId, LoginDTO loginDTO, CancellationToken ct = default); Task SaveGopFlowStepEdge(GopFlowStepEdgeDTO dto, LoginDTO loginDTO, CancellationToken ct = default); Task GetGopFlowStepEdge(int flowStepEdgeId, LoginDTO loginDTO, CancellationToken ct = default); Task> GetGopFlowStepEdgeList(int flowId, LoginDTO loginDTO, CancellationToken ct = default); Task DeleteGopFlowStepEdge(int flowStepEdgeId, LoginDTO loginDTO, CancellationToken ct = default); // ── Source Binding management ───────────────────────────────────────────── Task SaveGopSourceBinding(GopSourceBindingDTO dto, LoginDTO loginDTO, CancellationToken ct = default); Task DeleteGopSourceBinding(int sourceBindingId, LoginDTO loginDTO, CancellationToken ct = default); Task GetGopSourceBinding(int sourceBindingId, LoginDTO loginDTO, CancellationToken ct = default); Task> GetGopSourceBindingList(LoginDTO loginDTO, CancellationToken ct = default); Task> GetAllSourceBindings(LoginDTO loginDTO); // ── Read-only (used internally / by execution) ──────────────────────────── Task GetFlowSnapshot(int flowId, string snapshotVersion, LoginDTO loginDTO); Task> GetSnapshotSteps(string snapshotVersion, LoginDTO loginDTO); } }