namespace EntitlementDAL.DTOs; // MENTITLEMENTFEATUREFLAG — release / kill-switch / rollout control per feature. public class FeatureFlagDTO { public int FeatureFlagId { get; set; } public int FeatureId { get; set; } public string FlagName { get; set; } = string.Empty; public byte FlagStatus { get; set; } // 0=Off 1=On 2=KillSwitch public byte RolloutType { get; set; } // 0=Global 1=Beta 2=SelClients 3=SelUsers 4=Percentage public byte RolloutPercent { get; set; } = 100; public string ReleaseVersion { get; set; } = string.Empty; public DateTime? ScheduledOffOn { get; set; } public DateTime? ScheduledOffOff { get; set; } public string? KillSwitchReason { get; set; } public string? Remarks { get; set; } // audit tail public short Version { get; set; } public byte Status { get; set; } = 1; public int SortOrder { get; set; } public int CreatedById { get; set; } public DateTime CreatedOn { get; set; } public int ModifiedById { get; set; } public DateTime ModifiedOn { get; set; } public byte SourceType { get; set; } public int TenantId { get; set; } = -1; } // MENTITLEMENTFEATUREFLAGTARGET (detail) — per-client / per-user overrides. public class FeatureFlagTargetDTO { public int FlagTargetId { get; set; } public int FeatureFlagId { get; set; } public short SlNo { get; set; } = 1; public byte TargetType { get; set; } // 0=Client 1=User public int TargetClientId { get; set; } = -1; public int TargetUserId { get; set; } = -1; public byte IsEnabled { get; set; } = 1; public string? Remarks { get; set; } // additive — 20260716_Entitlement_Phase1_5 } /// Request shape for IFeatureFlagService.AddTargetAsync. public class FlagTargetDto { public byte TargetType { get; set; } // 0=Client 1=User public int TargetClientId { get; set; } = -1; public int TargetUserId { get; set; } = -1; public bool IsEnabled { get; set; } = true; public string? Remarks { get; set; } }