# 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 3–4 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.