using CMSDAL.DTO.ContentBlock; using CMSDAL.DTO.Seo; namespace CMSDAL.DTO.SiteDocument; // The designer-agnostic render payload GetSiteDocument returns: the site-wide header/footer // (if authored) plus the requested page, each already resolved to the same // ContentFullDocumentDTO tree the existing container/block engine produces — no new document // shape, so any consumer (GrapesJS or otherwise) that already understands one understands all // three. Seo is the page's own resolved SEO sub-schema (Phase 6) for the renderer's . public class SiteDocumentDTO { public ContentFullDocumentDTO? Header { get; set; } public ContentFullDocumentDTO Page { get; set; } = new(); public ContentFullDocumentDTO? Footer { get; set; } public PageSeoMetadataDTO? Seo { get; set; } }