Files
website/CMS-CONTENT-MODEL.md
T

168 lines
4.5 KiB
Markdown
Raw Normal View History

2026-04-23 01:08:18 +08:00
# CMS Content Model
Selected platform: Payload CMS.
## Locales
- `en` (English)
- `zh` (简体中文)
Every content type supports both locales. Editors can publish locales independently.
## Content Types
### 1. Product
- `slug` (unique per locale)
- `model` (text)
- `template` (select; options sourced from valid directories under `webroot/Products/`)
- `tagline` (short text)
- `summary` (rich text)
- `heroImage` (media)
- `gallery` (media list)
- `keyFeatures` (list of { title, description, icon / image })
- `technologyHighlights` (rich text blocks)
- `specifications` (grouped list: group name + items)
- `firmware` (group)
- `showOnProductPage` (boolean; controls visibility on the product detail page)
- `showInDownloadsCenter` (boolean; controls visibility in the site-wide Downloads center)
- `items` (reference list: Download restricted to `type = firmware`)
- `displayLabel` (optional text override)
- `downloads` (reference: Download)
- `videos` (reference: ProductVideo)
- `externalReviews` (reference: ProductReview)
- `relatedProducts` (reference list: Product)
- `seo` (title, description, OG image)
Frontend rule:
- Product detail pages must render related downloads, videos, and reviews below the template-owned middle content region.
### 2. Product Category
- `slug`
- `name`
- `description`
- `order`
- `heroImage`
### 3. Homepage
Singleton.
- `heroScene` (image or video, headline, supporting line, primary CTA, secondary CTA)
- `featuredProducts` (exactly 4 references to Product)
- `statement` (short rich text)
- `supportShortcuts` (list of 34 links)
- `newsHighlights` (optional list of up to 3 news references)
- `seo`
### 4. Support Page
Singleton.
- `intro`
- `primaryEntries` (FAQ, Warranty, Contact — each with short blurb)
- `secondaryEntries` (Downloads, Manuals, Firmware — each with short blurb)
- `seo`
### 5. FAQ
- `group` (e.g., Setup, Streaming, Hardware)
- `question`
- `answer` (rich text)
- `relatedProducts` (optional references)
- `order`
### 6. Warranty
Singleton.
- `intro`
- `policyBody` (rich text)
- `registrationCta` (optional link)
- `regionalNotes` (optional blocks per region)
- `seo`
### 7. Contact
Singleton.
- `intro`
- `regions` (list of { region, email, phone, address, hours })
- `formEnabled` (boolean)
- `seo`
### 8. Download
- `title`
- `type` (firmware | manual | software | other)
- `product` (reference)
- `version`
- `releaseDate`
- `file` (media)
- `notes` (rich text)
### 8a. Product Video
- `title`
- `product` (reference)
- `provider` (youtube | vimeo | bilibili | other)
- `videoUrl`
- `thumbnail` (optional media)
- `description` (rich text)
### 8b. Product Review
- `title`
- `product` (reference)
- `sourceName`
- `reviewUrl`
- `thumbnail` (optional media)
- `excerpt`
### 9. About
Singleton.
- `intro`
- `brandStory` (rich text)
- `philosophy` (rich text)
- `milestones` (list)
- `seo`
### 10. Dealer
- `region`
- `country`
- `name`
- `website`
- `email`
- `phone`
- `address`
### 11. News Article
- `slug`
- `category` (announcement | press | review | event)
- `title`
- `excerpt`
- `body` (rich text)
- `coverImage`
- `publishedAt`
- `relatedProducts` (optional)
- `seo`
### 12. Global Settings
Singleton.
- `siteName`
- `logo`
- `navigation` (structured)
- `footer` (structured)
- `socialLinks`
- `defaultSeo`
- `redirects` (list of { from, to, statusCode })
## Editorial Workflow
- Draft → Review → Published
- Preview URLs for each content type
- Scheduled publishing for News
- Role-based access for editors, reviewers, and admins
## Payload Implementation Notes
- Use Payload `globals` for Homepage, Support, Warranty, Contact, About, and Global Settings.
- Use Payload `collections` for Products, Product Categories, FAQ, Downloads, Product Videos, Product Reviews, Dealers, and News Articles.
- Enable localization at the field level where content differs by locale.
- Store redirect rules in Global Settings or a dedicated Redirect collection.
- Use upload collections for image, video, and file assets.
- The Product `firmware.showOnProductPage` and `firmware.showInDownloadsCenter` toggles are independent. Each controls visibility in its surface only; editors can enable either, both, or neither.
## Localization Rules
- Each localized field is edited independently.
- Missing translations are allowed and fall back gracefully in the UI.
- Structured references (products, downloads) resolve per current locale.
## Media
- All images uploaded once, cropped per aspect ratio in CMS.
- Video uploads capped; prefer external CDN or provider integration for hero video.