using System; using System.Collections.Generic; using System.Data.Common; using System.Threading; using System.Threading.Tasks; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using GB5Shared.DTO.GOP; namespace FrameworkDAL.CustomCode.GOP { public interface IMappingDAL { // ── Definition ──────────────────────────────────────────────────────────── Task SaveMappingDefinition(MappingDefinitionDTO dto, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct = default); Task UpdateMappingDefinition(MappingDefinitionDTO dto, LoginDTO loginDTO, DbTransaction tx, 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, int modifiedById, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct = default); // ── Version ─────────────────────────────────────────────────────────────── Task SaveMappingVersion(MappingVersionDTO dto, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct = default); /// Archives the currently Active version for the given definition. Task ArchiveActiveVersion(int mappingDefinitionId, int modifiedById, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct = default); /// Sets the given version to Active status and stamps ACTIVATEDON. Task ActivateVersion(int mappingVersionId, int modifiedById, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct = default); Task GetActiveVersionByDefinition(int mappingDefinitionId, LoginDTO loginDTO, CancellationToken ct = default); Task> GetVersionsByDefinition(int mappingDefinitionId, LoginDTO loginDTO, CancellationToken ct = default); /// Returns null if the version doesn't exist (or belongs to a different tenant). Task GetMappingVersionStatus(int mappingVersionId, LoginDTO loginDTO, CancellationToken ct = default); Task DeleteMappingVersion(int mappingVersionId, int modifiedById, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct = default); // ── Node ────────────────────────────────────────────────────────────────── Task SaveMappingNode(MappingNodeDTO dto, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct = default); Task UpdateMappingNode(MappingNodeDTO dto, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct = default); Task DeleteNodesByVersion(int mappingVersionId, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct = default); Task DeleteMappingNode(int mappingNodeId, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct = default); Task> GetNodesByVersion(int mappingVersionId, LoginDTO loginDTO, CancellationToken ct = default); /// /// Runtime query: returns all MMAPPINGNODE rows belonging to the Active version /// of the MMAPPINGDEFINITION with the given MapperCode, filtered by TENANTID. /// /// Used by MappingEngineBLL.TransformAsync(mapperCode, ...) during GOP execution. /// Returns an empty list (not null) when no active mapping is found. /// Task> GetActiveNodesByMapperCode(string mapperCode, LoginDTO loginDTO, CancellationToken ct = default); } }