using EntitlementDAL.DTOs; using GB5Shared.DTO.Framework.Login; namespace EntitlementBLL.Interfaces; public interface IPlanBLL { Task GetAsync(int planId, LoginDTO login, CancellationToken ct); /// Resolves the caller's PartnerProductId (from LoginDTO when authenticated, or from /// the resolved tenant/domain when anonymous on the pricing page) and returns that product's /// plan catalogue only — same resolution shape as Partner's brand-resolution chain, applied to /// commercial tiers instead of visual branding. Task> GetListForPartnerProductAsync(int? partnerProductId, LoginDTO login, CancellationToken ct); /// Feature rows granted by a plan (code/name/group/enabled/value), for the public /// pricing matrix. Wraps IPlanDAL's plan-feature read (joined to the feature catalogue). Task> GetPlanFeaturesAsync(int planId, LoginDTO login, CancellationToken ct); Task SaveAsync(PlanDTO dto, LoginDTO login, CancellationToken ct); Task DeleteAsync(int planId, LoginDTO login, CancellationToken ct); }