Files
orion/app/platforms/oms/config.py
Samir Boulahtit 408019dbb3 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>
2026-01-18 19:49:44 +01:00

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()