""" Configuration settings for Authentication Service Loads environment variables and provides configuration object """ import os from pydantic_settings import BaseSettings from typing import Optional class Settings(BaseSettings): """Application settings using Pydantic BaseSettings""" # Database settings DATABASE_URL: str = os.getenv( "DATABASE_URL", # If DATABASE_URL is not set, raise an error to force proper configuration # For development, you can create a .env file with DATABASE_URL=mysql+aiomysql://user:password@host/dbname ) # JWT settings JWT_SECRET_KEY: str = os.getenv( "JWT_SECRET_KEY", # If JWT_SECRET_KEY is not set, raise an error to force proper configuration # For development, you can create a .env file with JWT_SECRET_KEY=your-secret-key ) JWT_ALGORITHM: str = "HS256" JWT_EXPIRATION_HOURS: int = 24 # Security settings BCRYPT_ROUNDS: int = 12 # Application settings APP_NAME: str = "Weibo-HotSign Authentication Service" DEBUG: bool = os.getenv("DEBUG", "False").lower() == "true" HOST: str = os.getenv("HOST", "0.0.0.0") PORT: int = int(os.getenv("PORT", 8000)) # CORS settings ALLOWED_ORIGINS: list = [ "http://localhost:3000", "http://localhost:80", "http://127.0.0.1:3000" ] class Config: case_sensitive = True env_file = ".env" # Create global settings instance settings = Settings()