using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using GB5Shared.DTO.GOP; namespace FrameworkBLL.GOP { public interface IMappingBLL { // ── Definition ──────────────────────────────────────────────────────────── Task SaveMappingDefinition(MappingDefinitionDTO dto, LoginDTO loginDTO, CancellationToken ct = default); Task GetMappingDefinitionById(int mappingDefinitionId, LoginDTO loginDTO, CancellationToken ct = default); Task> GetMappingDefinitionList(LoginDTO loginDTO, CancellationToken ct = default); Task> GetSelectListMapping(CriteriaDTO criteriaDTO, LoginDTO loginDTO, CancellationToken ct = default); Task DeleteMappingDefinition(int mappingDefinitionId, LoginDTO loginDTO, CancellationToken ct = default); // ── Version ─────────────────────────────────────────────────────────────── Task SaveMappingVersion(MappingVersionDTO dto, LoginDTO loginDTO, CancellationToken ct = default); Task ActivateMappingVersion(int mappingVersionId, int mappingDefinitionId, LoginDTO loginDTO, CancellationToken ct = default); Task GetActiveVersionByDefinition(int mappingDefinitionId, LoginDTO loginDTO, CancellationToken ct = default); Task> GetVersionsByDefinition(int mappingDefinitionId, LoginDTO loginDTO, CancellationToken ct = default); Task DeleteMappingVersion(int mappingVersionId, LoginDTO loginDTO, CancellationToken ct = default); // ── Node ────────────────────────────────────────────────────────────────── Task SaveMappingNode(MappingNodeDTO dto, LoginDTO loginDTO, CancellationToken ct = default); Task> GetNodesByVersion(int mappingVersionId, LoginDTO loginDTO, CancellationToken ct = default); Task DeleteMappingNode(int mappingNodeId, LoginDTO loginDTO, CancellationToken ct = default); // ── Test transform (Mapping Wizard, Step 4) ───────────────────────────────── // Thin passthrough to IMappingEngineBLL.TransformAsync's code-based overload — // lets the wizard preview a mapper's before/after JSON ad hoc, without a real // GOP Flow execution. No FactBag: [FactBag] source paths resolve to empty string // (matches TransformAsync's own documented behavior for that case). Task TestMappingTransform(string mapperCode, string samplePayloadJson, LoginDTO loginDTO, CancellationToken ct = default); } }