Spaces:
Configuration error
Configuration error
| """Constants for KPI cache module.""" | |
| from app.kpi_cache.widget_groups import ( | |
| OPERATIONS_WIDGETS, | |
| INVENTORY_WIDGETS, | |
| FINANCIAL_WIDGETS, | |
| SALES_WIDGETS, | |
| CUSTOMERS_WIDGETS, | |
| CATALOGUE_WIDGETS, | |
| SPA_BOOKINGS_WIDGETS, | |
| TRADE_NETWORK_WIDGETS, | |
| SALES_CHART_WIDGETS, | |
| OPERATIONS_CHART_WIDGETS, | |
| STAFF_CHART_WIDGETS, | |
| CUSTOMERS_CHART_WIDGETS, | |
| CATALOGUE_CHART_WIDGETS, | |
| SALES_TABLE_WIDGETS, | |
| OPERATIONS_TABLE_WIDGETS, | |
| STAFF_TABLE_WIDGETS, | |
| CUSTOMERS_TABLE_WIDGETS, | |
| CATALOGUE_TABLE_WIDGETS, | |
| ) | |
| # MongoDB collection name for durable KPI snapshots | |
| KPI_CACHE_COLLECTION = "kpi_cache" | |
| # Redis key prefix for hot L1 cache | |
| REDIS_KPI_PREFIX = "kpi" | |
| # Redis TTLs (seconds) β L1 hot cache, shorter than MongoDB snapshots | |
| REDIS_TTL_FINANCIAL = 1800 # 30 min | |
| REDIS_TTL_INVENTORY = 600 # 10 min | |
| REDIS_TTL_OPERATIONS = 600 # 10 min | |
| REDIS_TTL_SALES = 900 # 15 min | |
| REDIS_TTL_CUSTOMERS = 600 # 10 min | |
| REDIS_TTL_CATALOGUE = 600 # 10 min | |
| REDIS_TTL_SPA_BOOKINGS = 300 # 5 min β booking state changes frequently | |
| REDIS_TTL_TRADE_NETWORK = 900 # 15 min | |
| # Widget category β Redis TTL mapping | |
| WIDGET_REDIS_TTL: dict = { | |
| "financial": REDIS_TTL_FINANCIAL, | |
| "inventory": REDIS_TTL_INVENTORY, | |
| "operations": REDIS_TTL_OPERATIONS, | |
| "sales": REDIS_TTL_SALES, | |
| "customers": REDIS_TTL_CUSTOMERS, | |
| "catalogue": REDIS_TTL_CATALOGUE, | |
| "spa_bookings": REDIS_TTL_SPA_BOOKINGS, | |
| "trade_network": REDIS_TTL_TRADE_NETWORK, | |
| # Chart widget categories share TTLs with their scalar counterparts | |
| "sales_charts": REDIS_TTL_SALES, | |
| "operations_charts": REDIS_TTL_OPERATIONS, | |
| "staff_charts": REDIS_TTL_OPERATIONS, | |
| "customers_charts": REDIS_TTL_CUSTOMERS, | |
| "catalogue_charts": REDIS_TTL_CATALOGUE, | |
| # Table widget categories | |
| "sales_tables": 300, | |
| "operations_tables": 120, | |
| "staff_tables": 300, | |
| "customers_tables": 600, | |
| "catalogue_tables": 600, | |
| } | |
| # Merged registry β assembled from per-category widget group files | |
| KPI_WIDGET_REGISTRY: dict = { | |
| **OPERATIONS_WIDGETS, | |
| **INVENTORY_WIDGETS, | |
| **FINANCIAL_WIDGETS, | |
| **SALES_WIDGETS, | |
| **CUSTOMERS_WIDGETS, | |
| **CATALOGUE_WIDGETS, | |
| **SPA_BOOKINGS_WIDGETS, | |
| **TRADE_NETWORK_WIDGETS, | |
| # Chart widgets | |
| **SALES_CHART_WIDGETS, | |
| **OPERATIONS_CHART_WIDGETS, | |
| **STAFF_CHART_WIDGETS, | |
| **CUSTOMERS_CHART_WIDGETS, | |
| **CATALOGUE_CHART_WIDGETS, | |
| # Table widgets | |
| **SALES_TABLE_WIDGETS, | |
| **OPERATIONS_TABLE_WIDGETS, | |
| **STAFF_TABLE_WIDGETS, | |
| **CUSTOMERS_TABLE_WIDGETS, | |
| **CATALOGUE_TABLE_WIDGETS, | |
| } | |