""" Demo Session Service Configuration """ import os from typing import Optional from shared.config.base import BaseServiceSettings class Settings(BaseServiceSettings): """Demo Session Service Settings""" # Service info (override base settings) APP_NAME: str = "Demo Session Service" SERVICE_NAME: str = "demo-session" VERSION: str = "1.0.0" DESCRIPTION: str = "Demo session management and orchestration service" # Database (override base property) @property def DATABASE_URL(self) -> str: """Build database URL from environment""" return os.getenv( "DEMO_SESSION_DATABASE_URL", "postgresql+asyncpg://postgres:postgres@localhost:5432/demo_session_db" ) # Redis configuration (demo-specific) REDIS_KEY_PREFIX: str = "demo:session" REDIS_SESSION_TTL: int = 1800 # 30 minutes # Demo session configuration DEMO_SESSION_DURATION_MINUTES: int = 30 DEMO_SESSION_MAX_EXTENSIONS: int = 3 DEMO_SESSION_CLEANUP_INTERVAL_MINUTES: int = 60 # Demo account credentials (public) DEMO_ACCOUNTS: dict = { "professional": { "email": "demo.professional@panaderiaartesana.com", "name": "Panadería Artesana Madrid - Demo", "subdomain": "demo-artesana", "base_tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6", "subscription_tier": "professional", "tenant_type": "standalone" }, "enterprise": { "email": "central@panaderiaartesana.es", "name": "Panadería Artesana España - Central", "subdomain": "artesana-central", "base_tenant_id": "80000000-0000-4000-a000-000000000001", "subscription_tier": "enterprise", "tenant_type": "parent", "children": [ { "name": "Madrid - Salamanca", "base_tenant_id": "A0000000-0000-4000-a000-000000000001", "location": {"city": "Madrid", "zone": "Salamanca", "latitude": 40.4284, "longitude": -3.6847}, "description": "Premium location in upscale Salamanca district" }, { "name": "Barcelona - Eixample", "base_tenant_id": "B0000000-0000-4000-a000-000000000001", "location": {"city": "Barcelona", "zone": "Eixample", "latitude": 41.3947, "longitude": 2.1616}, "description": "High-volume tourist and local area in central Barcelona" }, { "name": "Valencia - Ruzafa", "base_tenant_id": "C0000000-0000-4000-a000-000000000001", "location": {"city": "Valencia", "zone": "Ruzafa", "latitude": 39.4623, "longitude": -0.3645}, "description": "Trendy artisan neighborhood with focus on quality" }, { "name": "Seville - Triana", "base_tenant_id": "D0000000-0000-4000-a000-000000000001", "location": {"city": "Seville", "zone": "Triana", "latitude": 37.3828, "longitude": -6.0026}, "description": "Traditional Andalusian location with local specialties" }, { "name": "Bilbao - Casco Viejo", "base_tenant_id": "E0000000-0000-4000-a000-000000000001", "location": {"city": "Bilbao", "zone": "Casco Viejo", "latitude": 43.2567, "longitude": -2.9272}, "description": "Basque region location with focus on quality and local culture" } ] } } # Service URLs - these are inherited from BaseServiceSettings # but we can override defaults if needed: # - GATEWAY_URL (inherited) # - AUTH_SERVICE_URL, TENANT_SERVICE_URL, etc. (inherited) # - JWT_SECRET_KEY, JWT_ALGORITHM (inherited) # - LOG_LEVEL (inherited) class Config: env_file = ".env" case_sensitive = True settings = Settings()