using CMSDAL.DTO.Navigation; using GB5Shared.DTO.Framework.Login; using System.Data.Common; namespace CMSDAL.CustomCode.Navigation; public interface INavigationDAL { Task GetNavigation(int navigationId, LoginDTO loginDTO, CancellationToken ct = default); Task GetBySiteAsync(int siteId, LoginDTO loginDTO, CancellationToken ct = default); Task SaveNavigation(NavigationDTO dto, LoginDTO loginDTO, DbTransaction? tx = null, CancellationToken ct = default); Task UpdateNavigation(NavigationDTO dto, LoginDTO loginDTO, DbTransaction? tx = null, CancellationToken ct = default); Task DeleteNavigation(int navigationId, LoginDTO loginDTO, CancellationToken ct = default); // Used by the cross-tenant guard — returns the Navigation's true owning TenantId (or null // if it doesn't exist), independent of the caller's own claimed tenant. Task GetNavigationTenantIdAsync(int navigationId, LoginDTO loginDTO, CancellationToken ct = default); }