● Platform Homepage Configuration Analysis Summary: Current Flexibility ┌──────────────────────┬─────────────┬──────────────────────────────────────────────────┐ │ Feature │ Flexibility │ Notes │ ├──────────────────────┼─────────────┼──────────────────────────────────────────────────┤ │ Homepage Content │ ✅ High │ Fully CMS-driven via ContentPage model │ ├──────────────────────┼─────────────┼──────────────────────────────────────────────────┤ │ Header/Footer Menus │ ⚠️ Medium │ Driven by ContentPage flags, flat structure only │ ├──────────────────────┼─────────────┼──────────────────────────────────────────────────┤ │ Platform Branding │ ✅ High │ Logo, favicon, colors via Platform model │ ├──────────────────────┼─────────────┼──────────────────────────────────────────────────┤ │ Vendor Themes │ ✅ High │ 7 presets + custom CSS + full color control │ ├──────────────────────┼─────────────┼──────────────────────────────────────────────────┤ │ Pricing/Features │ ❌ Low │ Hardcoded in TIER_LIMITS │ ├──────────────────────┼─────────────┼──────────────────────────────────────────────────┤ │ Navigation Structure │ ❌ Low │ No nested menus, no icons │ └──────────────────────┴─────────────┴──────────────────────────────────────────────────┘ --- 1. Homepage Content Configuration Model: ContentPage with three-tier hierarchy Platform Marketing Pages (is_platform_page=True, vendor_id=NULL) ↓ e.g., /pricing, /about, /features for oms.lu Vendor Default Pages (is_platform_page=False, vendor_id=NULL) ↓ Fallback for all vendors (About, Shipping Policy, etc.) Vendor Override Pages (is_platform_page=False, vendor_id=set) ↓ Vendor-specific customizations Configurable per page: - title, content (HTML/Markdown), slug - template (default, minimal, modern, full) - meta_description, meta_keywords (SEO) - show_in_header, show_in_footer, show_in_legal - display_order, is_published --- 2. Menu Configuration Current approach: Content-driven (no separate Menu model) ┌───────────────┬─────────────┬─────────────────────┐ │ Menu Location │ Source │ Filter │ ├───────────────┼─────────────┼─────────────────────┤ │ Header │ ContentPage │ show_in_header=True │ ├───────────────┼─────────────┼─────────────────────┤ │ Footer │ ContentPage │ show_in_footer=True │ ├───────────────┼─────────────┼─────────────────────┤ │ Legal bar │ ContentPage │ show_in_legal=True │ └───────────────┴─────────────┴─────────────────────┘ Limitations: - Flat structure only (no dropdowns/submenus) - No custom menu items (only links to content pages) - No menu icons or special styling - No external URLs --- 3. Platform Model File: models/database/platform.py Platform: code # 'main', 'oms', 'loyalty' name # Display name domain # Production: 'oms.lu' path_prefix # Dev: '/oms/' logo # Light mode logo URL logo_dark # Dark mode logo URL favicon # Favicon URL theme_config # JSON: colors, fonts, etc. default_language # 'fr', 'en', 'de' supported_languages # ['fr', 'de', 'en'] settings # JSON: feature flags --- 4. Theme System Vendor-level only (not platform-level defaults) ┌───────────────┬────────┬─────────────────────────────────────────────────────────────┐ │ Property │ Type │ Options │ ├───────────────┼────────┼─────────────────────────────────────────────────────────────┤ │ Colors │ JSON │ primary, secondary, accent, background, text, border │ ├───────────────┼────────┼─────────────────────────────────────────────────────────────┤ │ Fonts │ String │ font_family_heading, font_family_body │ ├───────────────┼────────┼─────────────────────────────────────────────────────────────┤ │ Layout │ String │ grid, list, masonry │ ├───────────────┼────────┼─────────────────────────────────────────────────────────────┤ │ Header │ String │ fixed, static, transparent │ ├───────────────┼────────┼─────────────────────────────────────────────────────────────┤ │ Product cards │ String │ modern, classic, minimal │ ├───────────────┼────────┼─────────────────────────────────────────────────────────────┤ │ Custom CSS │ Text │ Injected into