using EntitlementDAL.DTOs; using GB5Shared.DTO.Framework.Login; namespace EntitlementBLL.Interfaces; /// Plain CRUD for MENTITLEMENTFEATUREFLAG, kept separate from IFeatureFlagService /// (which owns the kill-switch/rollout/target mutation + audit semantics per the core spec). public interface IFeatureFlagBLL { Task GetAsync(int featureFlagId, LoginDTO login, CancellationToken ct); Task> GetListAsync(LoginDTO login, CancellationToken ct); Task SaveAsync(FeatureFlagDTO dto, LoginDTO login, CancellationToken ct); /// Resolves a flag by its feature's FEATURECODE — used by CapabilityDisabledSubscriber /// to mirror an EAP capability-disable event as a kill switch (see that class's TODO note). Task GetByFeatureCodeAsync(string featureCode, LoginDTO login, CancellationToken ct); /// MENTITLEMENTFEATUREFLAGTARGET rows for a flag (FeatureFlag.svc/GetTargetList) — /// previously only addable/removable via AddTarget/RemoveTarget, never listable. Task> GetTargetListAsync(int featureFlagId, LoginDTO login, CancellationToken ct); }