""" Gateway configuration """ import os from typing import List, Dict from pydantic_settings import BaseSettings class Settings(BaseSettings): """Application settings""" # Basic settings APP_NAME: str = "Bakery Forecasting Gateway" VERSION: str = "1.0.0" DEBUG: bool = os.getenv("DEBUG", "False").lower() == "true" LOG_LEVEL: str = os.getenv("LOG_LEVEL", "INFO") # CORS settings - FIXED: Remove List[str] type and parse manually CORS_ORIGINS: str = "http://localhost:3000,http://localhost:3001" # Service URLs AUTH_SERVICE_URL: str = "http://auth-service:8000" TRAINING_SERVICE_URL: str = "http://training-service:8000" FORECASTING_SERVICE_URL: str = "http://forecasting-service:8000" DATA_SERVICE_URL: str = "http://data-service:8000" TENANT_SERVICE_URL: str = "http://tenant-service:8000" NOTIFICATION_SERVICE_URL: str = "http://notification-service:8000" # Redis settings REDIS_URL: str = "redis://redis:6379/6" # Rate limiting RATE_LIMIT_REQUESTS: int = 100 RATE_LIMIT_WINDOW: int = 60 # JWT settings JWT_SECRET_KEY: str = "your-secret-key-change-in-production" JWT_ALGORITHM: str = "HS256" @property def CORS_ORIGINS_LIST(self) -> List[str]: """Parse CORS origins from string to list""" return [origin.strip() for origin in self.CORS_ORIGINS.split(",") if origin.strip()] @property def SERVICES(self) -> Dict[str, str]: """Service registry""" return { "auth": self.AUTH_SERVICE_URL, "training": self.TRAINING_SERVICE_URL, "forecasting": self.FORECASTING_SERVICE_URL, "data": self.DATA_SERVICE_URL, "tenant": self.TENANT_SERVICE_URL, "notification": self.NOTIFICATION_SERVICE_URL } class Config: env_file = ".env" settings = Settings()