namespace CMSDAL.DTO.ContentBlock; public class ContentBlockDTO { public int ContentBlockId { get; set; } public int ContentContainerId { get; set; } public int BlockId { get; set; } public string? BlockCode { get; set; } public string? BlockName { get; set; } public string? SchemaJson { get; set; } public string ZoneName { get; set; } = "main"; public short PositionNo { get; set; } public string PropsJson { get; set; } = "{}"; public byte Status { get; set; } public int TenantId { get; set; } // Populated only when BlockCode == "COMPONENT_REF" (Site/Page platform Phase 5) — the // referenced site-component's own container/block tree, inlined one level deep by // SiteDocumentBLL at compose time. Never persisted; this is a render-time-only field. public ContentFullDocumentDTO? ReferencedComponent { get; set; } } public class ContentFullDocumentDTO { public int ContentId { get; set; } public string ContentTitle { get; set; } = string.Empty; public string ContentSlug { get; set; } = string.Empty; public byte ContentStatus { get; set; } public List Containers { get; set; } = new(); } public class ContentContainerFullDTO { public int ContentContainerId { get; set; } public string ContainerTypeCode { get; set; } = string.Empty; public string? ContainerLabel { get; set; } public short PositionNo { get; set; } public string ZoneDefinitionsJson { get; set; } = string.Empty; public List Blocks { get; set; } = new(); }