namespace EnablementDAL.DTO; public class ShowContentLinkDTO { public int ShowContentLinkId { get; set; } public int ShowId { get; set; } public int StepId { get; set; } = -1; // -1 = show-level link public short SlNo { get; set; } = 1; public byte LinkType { get; set; } = 1; // 1=InternalCMS, 2=ExternalURL, 3=File, 4=Video, 5=Document, 6=WorkInstruction, 7=Training, 8=Quiz public int ContentId { get; set; } = -1; // -1 = not applicable; used when LinkType=1 (CMS content id), LinkType=6 (WiId — StepId column carries the optional deep-linked WiStepId), LinkType=7 (SessionTopicId — always, regardless of whether this row is show-level or step-level; StepId keeps its normal meaning, not overloaded like LinkType=6), or LinkType=8 (MQUIZ.QuizId — never MSESSIONASSESSMENT.AssessmentId, which is programme-bound) public string LinkUrl { get; set; } = string.Empty; public string LinkTitle { get; set; } = string.Empty; public byte DisplayHint { get; set; } = 0; // 0=Inline, 1=SidePanel, 2=NewTab, 3=Download public byte IsActive { get; set; } = 1; public string Remarks { get; set; } = string.Empty; public short SortOrder { get; set; } = 9999; public short Version { get; set; } public byte Status { 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; } // Part B, Slice 3 — true for rows synthesized live from the Show's linked CMS Channel // (see ShowContentLinkBLL.GetShowContentLinkListAsync), not a real TSHOWCONTENTLINK row. // The FE should render these distinctly and disable delete/reorder for them. public bool IsAutoLinked { get; set; } // Part B, Slice 5 — populated only when LinkType=7 (Training), from the joined // MSESSIONTOPIC row, so the FE can offer an "Open in LMS" action with zero extra // round-trips. Null when not applicable or the Topic has no LMS pointer set. public int? LmsContentId { get; set; } public int? LmsCourseId { get; set; } }