feat: add multi-platform CMS architecture (Phase 1)
Implement the foundation for multi-platform support allowing independent business offerings (OMS, Loyalty, etc.) with their own CMS pages. Database Models: - Add Platform model for business offerings (domain, branding, config) - Add VendorPlatform junction table for many-to-many relationship - Update SubscriptionTier with platform_id and CMS limits - Update ContentPage with platform_id, is_platform_page for three-tier hierarchy - Add CMS feature codes (cms_basic, cms_custom_pages, cms_templates, etc.) Three-Tier Content Resolution: 1. Vendor override (platform_id + vendor_id + slug) 2. Vendor default (platform_id + vendor_id=NULL + is_platform_page=False) 3. Platform marketing pages (is_platform_page=True) New Components: - PlatformContextMiddleware for detecting platform from domain/path - ContentPageService updated with full three-tier resolution - Platform folder structure (app/platforms/oms/, app/platforms/loyalty/) - Alembic migration with backfill for existing data Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -33,6 +33,7 @@ class FeatureCategory(str, enum.Enum):
|
||||
TEAM = "team"
|
||||
BRANDING = "branding"
|
||||
CUSTOMERS = "customers"
|
||||
CMS = "cms"
|
||||
|
||||
|
||||
class FeatureUILocation(str, enum.Enum):
|
||||
@@ -189,3 +190,11 @@ class FeatureCode:
|
||||
CUSTOMER_VIEW = "customer_view"
|
||||
CUSTOMER_EXPORT = "customer_export"
|
||||
CUSTOMER_MESSAGING = "customer_messaging"
|
||||
|
||||
# CMS
|
||||
CMS_BASIC = "cms_basic" # Basic CMS functionality (override defaults)
|
||||
CMS_CUSTOM_PAGES = "cms_custom_pages" # Create custom pages beyond defaults
|
||||
CMS_UNLIMITED_PAGES = "cms_unlimited_pages" # No page limit
|
||||
CMS_TEMPLATES = "cms_templates" # Access to page templates
|
||||
CMS_SEO = "cms_seo" # Advanced SEO features
|
||||
CMS_SCHEDULING = "cms_scheduling" # Schedule page publish/unpublish
|
||||
|
||||
Reference in New Issue
Block a user