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>
53 lines
1.1 KiB
Python
53 lines
1.1 KiB
Python
# app/platforms/oms/config.py
|
|
"""
|
|
OMS Platform Configuration
|
|
|
|
Configuration for the Order Management System platform.
|
|
"""
|
|
|
|
from app.platforms.shared.base_platform import BasePlatformConfig
|
|
|
|
|
|
class OMSPlatformConfig(BasePlatformConfig):
|
|
"""Configuration for the OMS platform."""
|
|
|
|
@property
|
|
def code(self) -> str:
|
|
return "oms"
|
|
|
|
@property
|
|
def name(self) -> str:
|
|
return "Wizamart OMS"
|
|
|
|
@property
|
|
def description(self) -> str:
|
|
return "Order Management System for Luxembourg merchants"
|
|
|
|
@property
|
|
def features(self) -> list[str]:
|
|
"""OMS-specific features."""
|
|
return [
|
|
"order_management",
|
|
"inventory_basic",
|
|
"invoice_lu",
|
|
"letzshop_sync",
|
|
"customer_view",
|
|
]
|
|
|
|
@property
|
|
def vendor_default_page_slugs(self) -> list[str]:
|
|
"""Default pages for OMS vendor storefronts."""
|
|
return [
|
|
"about",
|
|
"shipping",
|
|
"returns",
|
|
"privacy-policy",
|
|
"terms-of-service",
|
|
"contact",
|
|
"faq",
|
|
]
|
|
|
|
|
|
# Singleton instance
|
|
oms_config = OMSPlatformConfig()
|