using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using FrameworkDAL.CustomCode.EntityViewer.DTOs; using GB5Shared.DTO.Framework.Login; namespace FrameworkBLL.EntityViewer { public interface IEntityLayoutBLL { /// Upsert: EntityLayoutId = 0 creates a new header, otherwise updates the /// existing one (Title/TenantId/SortOrder/IsComponent). Task SaveLayout(EntityLayoutDTO dto, LoginDTO loginDTO, CancellationToken ct = default); Task DeleteLayout(int entityLayoutId, LoginDTO loginDTO, CancellationToken ct = default); Task GetActiveLayout(string entityCode, LoginDTO loginDTO, CancellationToken ct = default); /// Upsert: EntityLayoutVersionId = 0 creates a new Draft version, otherwise /// updates the existing one in place — only while it's still Draft. Task SaveLayoutVersion(EntityLayoutVersionDTO dto, LoginDTO loginDTO, CancellationToken ct = default); Task DeleteLayoutVersion(int entityLayoutVersionId, LoginDTO loginDTO, CancellationToken ct = default); Task ActivateLayoutVersion(int entityLayoutVersionId, int entityLayoutId, LoginDTO loginDTO, CancellationToken ct = default); Task> GetLayoutVersionList(int entityLayoutId, LoginDTO loginDTO, CancellationToken ct = default); Task> GetLayoutList(bool isComponent, LoginDTO loginDTO, CancellationToken ct = default); } }