11 — Page Document Types
Dev Guide — Savoy Signature Hotels PRD refs:
06_Content_Modeling_Umbraco.md,07_Modules_and_Templates.mdRelated dev guide:01_UMBRACO_CONTENT_MODELING.mdLast updated: 2026-04-28 (post Umbraco uniformity review)
Reference inventory of every Document Type that represents a page/template — the doc types editors use to author site content. Excludes repository folders/items, form config doc types, and Element Types.
1. Page Document Types — Inventory (15)
Section titled “1. Page Document Types — Inventory (15)”| # | Alias | Display Name | Type | Description |
|---|---|---|---|---|
| 1 | siteRoot | Site Root | 🏠 Root | Root node of each hotel site (1 per site). Holds site-wide configuration, branding, SEO defaults, hotel data, header/footer modules. Also acts as the homepage. |
| 2 | contentPage | Content Page | 📄 Generic | Generic content page composed via the Page Modules Block List. Self-nestable (Content Page → Content Page) for hierarchical URL structures. |
| 3 | roomsListPage | Rooms List Page | 📋 List | Accommodation listing page. Room detail pages are added as children. |
| 4 | roomDetailPage | Room Detail Page | 📑 Detail | Individual room/suite page with editorial content (name, descriptions), per-page modules, and details (size, max guests, floor plan, booking CTA). |
| 5 | diningListPage | Dining List Page | 📋 List | Restaurants & dining listing. Dining detail pages are added as children. |
| 6 | diningDetailPage | Dining Detail Page | 📑 Detail | Individual restaurant page with editorial content, per-page modules, and details (cuisine, dress code, reservations, menu PDF). |
| 7 | wellnessListPage | Wellness List Page | 📋 List | Wellness & SPA listing. Wellness detail pages are added as children. |
| 8 | wellnessDetailPage | Wellness Detail Page | 📑 Detail | Individual wellness/SPA service page with editorial content, per-page modules, and details (opening hours, services). |
| 9 | experienceListPage | Experience List Page | 📋 List | Experiences listing. Experience detail pages are added as children. |
| 10 | experienceDetailPage | Experience Detail Page | 📑 Detail | Individual experience/activity page with editorial content, per-page modules, and category. |
| 11 | eventsListPage | Events List Page | 📋 List | Events listing. Event detail pages are added as children. |
| 12 | eventDetailPage | Event Detail Page | 📑 Detail | Individual event page with editorial content, per-page modules, and details (start/end dates, location). |
| 13 | offersListPage | Offers List Page | 📋 List | Special offers listing. Offer detail pages are added as children. |
| 14 | offerDetailPage | Offer Detail Page | 📑 Detail | Individual special offer page with editorial content, per-page modules, and details (validity dates, booking CTA). |
| 15 | galleryPage | Gallery Page | 🖼️ Special | Page composed via the Page Modules Block List, intended for image-heavy compositions (M11 Banner, M24 Full Image, M16 Logo Carousel, etc.). |
Type legend: 🏠 Root · 📄 Generic · 📋 List · 📑 Detail · 🖼️ Special
2. Page Hierarchy (allowed children)
Section titled “2. Page Hierarchy (allowed children)”siteRoot (1 per site) ├── contentPage (auto-nestable) ├── roomsListPage │ └── roomDetailPage ├── diningListPage │ └── diningDetailPage ├── wellnessListPage │ └── wellnessDetailPage ├── experienceListPage │ └── experienceDetailPage ├── eventsListPage │ └── eventDetailPage ├── offersListPage │ └── offerDetailPage └── galleryPagesiteRoot allows: contentPage, roomsListPage, diningListPage, wellnessListPage, experienceListPage, eventsListPage, offersListPage, galleryPage.
contentPage allows: contentPage (self-nesting only).
Each list page allows ONLY its corresponding detail page as a child.
3. Tab Structure per Type (current state)
Section titled “3. Tab Structure per Type (current state)”Convention: tabs are sorted by
sortOrder. The “Info” tab (formerly sortOrder 0) was removed across the board on 2026-04-28; “Hero Images” sub-group viaresponsiveImageCompositionwas removed from all 6 detail pages on the same date.
Uniform alias rule: The “Content Modules” tab uses alias
contentModules(sortOrder 0) on EVERY page type. The aliascontentis reserved for the editorial “Content” tab (detail pages only).
3.1 siteRoot
Section titled “3.1 siteRoot”| sortOrder | Tab | Alias | Notes |
|---|---|---|---|
| 0 | Content Modules | contentModules | Page modules Block List |
| 2 | Site Modules | siteModules | Header + footer modules |
| 10 | SEO | seo | Meta + Open Graph + JSON-LD |
| 15 | Hotel Data | hotelData | schema.org Hotel structured data (14 fields) |
| 20 | Branding | branding | Logo, favicon, brand assets |
| 22 | Social Share | socialShare | Platform toggles (socialShareComposition) |
| 25 | Site Scripts | siteScripts | Header + footer scripts (admin only) |
| 30 | Settings | settings | Booking, analytics, navigation |
3.2 contentPage
Section titled “3.2 contentPage”| sortOrder | Tab | Alias | Notes |
|---|---|---|---|
| 0 | Content Modules | contentModules | ONLY the modules Block List (no editorial fields) |
| 10 | SEO | seo | Meta + OG + JSON-LD |
| 30 | Settings | settings | Sub-group “Navigation” (navigationComposition) |
3.3 List pages (roomsListPage, diningListPage, wellnessListPage, experienceListPage, eventsListPage, offersListPage, galleryPage)
Section titled “3.3 List pages (roomsListPage, diningListPage, wellnessListPage, experienceListPage, eventsListPage, offersListPage, galleryPage)”| sortOrder | Tab | Alias | Notes |
|---|---|---|---|
| 0 | Content Modules | contentModules | ONLY the modules Block List |
| 10 | SEO | seo | Meta + OG + JSON-LD |
| 30 | Settings | settings | (roomsListPage only — filterByCategory toggle) |
3.4 Detail pages (roomDetailPage, diningDetailPage, wellnessDetailPage, experienceDetailPage, eventDetailPage, offerDetailPage)
Section titled “3.4 Detail pages (roomDetailPage, diningDetailPage, wellnessDetailPage, experienceDetailPage, eventDetailPage, offerDetailPage)”| sortOrder | Tab | Alias | Notes |
|---|---|---|---|
| 0 | Content Modules | contentModules | Page modules Block List (modules) |
| 1 | Content | content | Editorial fields (name, descriptions, etc.) |
| 2 | Details | details | Page-specific metadata (size/dates/cuisine/etc.) |
| 10 | SEO | seo | Meta + OG + JSON-LD |
4. Compositions Applied per Type
Section titled “4. Compositions Applied per Type”| Doc Type | seoComposition | navigationComposition | hotelDataComposition | socialShareComposition | seedVersionComposition |
|---|---|---|---|---|---|
| siteRoot | ✓ | — | ✓ | ✓ | ✓ |
| contentPage | ✓ | ✓ | — | per-page settings | ✓ |
| All list pages | ✓ | — | — | per-page settings | ✓ |
| All detail pages | ✓ | — | — | per-page settings | ✓ |
| galleryPage | ✓ | — | — | per-page settings | ✓ |
Note:
responsiveImageCompositionis no longer applied to any page (removed 2026-04-28). Hero imagery is authored via the Page Modules Block List on the new “Content Modules” tab. The composition itself still exists in the codebase but is currently orphan — flag for future cleanup.
5. Related Doc Types (NOT pages)
Section titled “5. Related Doc Types (NOT pages)”These are valid Document Types in the Umbraco backoffice but they are NOT page templates — they’re either containers, repository items (shared content), or form configuration. Excluded from the inventory above.
| Category | Aliases | Purpose |
|---|---|---|
| Repository folders (containers) | repositoryRoot, eventsRepository, newsRepository, faqsRepository, awardsRepository, documentsRepository, testimonialsRepository | Folders that hold reusable content items shared across modules. |
| Repository items (shared content) | eventItem, newsItem, faqItem, awardItem, documentItem, testimonialItem | Individual reusable entries authored once and referenced by modules. |
| Filter / categories | filterCategoriesRoot, faqCategoriesFolder, faqCategory, faqRepositoryItem | Taxonomy used by category-based filters (e.g., FAQ groupings). |
| Form config (not page templates) | formFolder, formPage, newsletterFormPage | Form definitions consumed by M14 Form / M33 Newsletter modules. They render as part of a host page, not as standalone templates. |
| Content fragments (Element Types) | galleryImageItem | Used inside Block Lists, not on its own. (Currently orphan — flag for cleanup.) |
6. Cross-references
Section titled “6. Cross-references”- How to create a Document Type:
01_UMBRACO_CONTENT_MODELING.md - Modules used inside the modules Block List:
docs/PRD/07_Modules_and_Templates.md - Hierarchy / IA per hotel site:
docs/PRD/Arquitetura Informação/ - Tab ordering convention + icon validation:
.claude/rules/backend-umbraco.md§ “Tab Ordering Convention” - Uniformity review log:
docs/todo/umbraco-uniformity-tracker.md