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; }
}
}