using System; namespace EAIAdminDAL.DTO { /// Admin CRUD DTO for MEAICONTEXTSETTING — one value of a context key at a specific /// scope level. See EAIInitiativeAdminDTO for the shared shape/conventions this follows. public class EAIContextSettingDTO { public int ContextSettingId { get; set; } public int ContextKeyDefinitionId { get; set; } public string? ContextKey { get; set; } // denormalized, populated by list/get joins only /// 0 Global, 1 ClientAttribute, 2 Client, 3 Role, 4 OU, 5 User. public byte ScopeLevel { get; set; } /// Semantics depend on ScopeLevel — see IEAIContextResolver's doc comment. public string? ScopeValue { get; set; } public string ContextValue { get; set; } = string.Empty; /// Admin-settable tie-break for same-tier matches (see resolver algorithm). public short Priority { get; set; } /// -1 for Global/ClientAttribute rows (platform-wide); real TenantId for /// Client/Role/OU/User rows. public int TenantId { get; set; } = -1; public short Version { get; set; } public byte Status { get; set; } = 1; public int? CreatedById { get; set; } public string? CreatedByName { get; set; } public DateTime CreatedOn { get; set; } public int? ModifiedById { get; set; } public string? ModifiedByName { get; set; } public DateTime? ModifiedOn { get; set; } } }