using System.Threading; using System.Threading.Tasks; using FrameworkDAL.DTO.Dashboard; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; namespace FrameworkDAL.CustomCode.Dashboard { public interface IDashboardDAL { Task GetDashboard(int DashboardId, LoginDTO LoginDTO, CancellationToken ct = default); Task SaveDashboard(DashboardDTO DashboardDTO, LoginDTO LoginDTO, CancellationToken ct = default); Task UpdateDashboard(DashboardDTO DashboardDTO, LoginDTO LoginDTO, CancellationToken ct = default); Task DeleteDashboard(int DashboardId, LoginDTO LoginDTO, CancellationToken ct = default); Task GetSelectListDashboard(CriteriaDTO CriteriaDTO, LoginDTO LoginDTO, CancellationToken ct = default); /// /// Resolves the dashboards visible to a user: unconditional Shared/System, /// owned Personal via UserId, and Role via MROLEVSDASHBOARD — each with its /// ordered, visible MDASHBOARDPAGE list, pin/order-personalized per user. /// Returns the typed list (not a JSON string) so DashboardBLL can apply /// Phase 5 entitlement-gating filters before serializing the response. /// Task> GetDashboardListForUser(int UserId, int RoleId, LoginDTO LoginDTO, CancellationToken ct = default); /// /// True if an active (Status=1) TCRITERIACONFIG row exists for this id — used to /// validate DashboardDTO.DefaultCriteriaConfigId before saving (Phase 3 filter tiers). /// Task CriteriaConfigExists(int CriteriaConfigId, LoginDTO LoginDTO, CancellationToken ct = default); } }