Files
bakery-ia/services/demo_session/app/core/config.py
2025-12-13 23:57:54 +01:00

87 lines
3.0 KiB
Python

"""
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": "demo.enterprise@panaderiacentral.com",
"name": "Panadería Central - Demo Enterprise",
"subdomain": "demo-central",
"base_tenant_id": "80000000-0000-4000-a000-000000000001",
"subscription_tier": "enterprise",
"tenant_type": "parent",
"children": [
{
"name": "Madrid Centro",
"base_tenant_id": "A0000000-0000-4000-a000-000000000001",
"location": {"city": "Madrid", "zone": "Centro", "latitude": 40.4168, "longitude": -3.7038}
},
{
"name": "Barcelona Gràcia",
"base_tenant_id": "B0000000-0000-4000-a000-000000000001",
"location": {"city": "Barcelona", "zone": "Gràcia", "latitude": 41.4036, "longitude": 2.1561}
},
{
"name": "Valencia Ruzafa",
"base_tenant_id": "C0000000-0000-4000-a000-000000000001",
"location": {"city": "Valencia", "zone": "Ruzafa", "latitude": 39.4623, "longitude": -0.3645}
}
]
}
}
# 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()