using System; namespace EAIAdminDAL.DTO { /// /// Admin CRUD DTO for MEAIINITIATIVE — GB5's system-of-record mirror of gbEAI's /// (AI-Enterprise-v1.0) maiinitiative table. Saves here push to gbEAI over REST via /// IEAISyncClient after the local commit; see EAIInitiativeAdminBLL.SaveInitiativeAsync. /// public class EAIInitiativeAdminDTO { public int InitiativeId { get; set; } public int TenantId { get; set; } /// Globally unique across all tenants — matches gbEAI's unique=True on /// aiinitiativecode. public string InitiativeCode { get; set; } = string.Empty; public string InitiativeName { get; set; } = string.Empty; public short MaturityLevel { get; set; } /// gbEAI's own aiinitiativeid, captured from the push response. A cheap /// correlation accelerator only — the primary key of truth is InitiativeCode. public long? EAIRemoteId { get; set; } public short Version { get; set; } /// 1 = active row, 0 = soft-deleted. 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; } } }