# app/modules/analytics/definition.py """ Analytics module definition. Defines the analytics module including its features, menu items, and route configurations. """ from app.modules.base import ModuleDefinition from models.database.admin_menu_config import FrontendType def _get_vendor_router(): """Lazy import of vendor router to avoid circular imports.""" from app.modules.analytics.routes.vendor import vendor_router return vendor_router # Analytics module definition analytics_module = ModuleDefinition( code="analytics", name="Analytics & Reporting", description="Dashboard analytics, custom reports, and data exports.", features=[ "basic_reports", # Basic reporting "analytics_dashboard", # Analytics dashboard "custom_reports", # Custom report builder "export_reports", # Export to CSV/Excel ], menu_items={ FrontendType.ADMIN: [ # Analytics appears in dashboard for admin ], FrontendType.VENDOR: [ "analytics", # Vendor analytics page ], }, is_core=False, ) def get_analytics_module_with_routers() -> ModuleDefinition: """ Get analytics module with routers attached. This function attaches the routers lazily to avoid circular imports during module initialization. """ analytics_module.vendor_router = _get_vendor_router() return analytics_module __all__ = ["analytics_module", "get_analytics_module_with_routers"]