# app/modules/__init__.py """ Modular Platform Architecture. This package provides a module system for enabling/disabling feature bundles per platform. Module Hierarchy: Global (SaaS Provider) └── Platform (Business Product - OMS, Loyalty, etc.) └── Modules (Enabled features - Billing, Marketplace, Inventory, etc.) ├── Routes (API + Page routes) ├── Services (Business logic) ├── Menu Items (Sidebar entries) └── Templates (UI components) Modules vs Features: - Features: Granular capabilities (e.g., analytics_dashboard, letzshop_sync) Assigned to subscription tiers, gated at API route level. - Modules: Cohesive feature bundles (e.g., billing, marketplace, inventory) Enabled/disabled per platform, contains multiple features and menu items. Usage: from app.modules import module_service from app.modules.base import ModuleDefinition from app.modules.registry import MODULES # Check if module is enabled for platform if module_service.is_module_enabled(platform_id, "billing"): ... # Get menu items for enabled modules menu_items = module_service.get_module_menu_items(platform_id, FrontendType.ADMIN) # Get all enabled modules for platform modules = module_service.get_platform_modules(platform_id) """ from app.modules.base import ModuleDefinition from app.modules.registry import MODULES from app.modules.service import ModuleService, module_service __all__ = [ "ModuleDefinition", "MODULES", "ModuleService", "module_service", ]