44 lines
1.0 KiB
Python
44 lines
1.0 KiB
Python
"""Application configuration via Pydantic Settings."""
|
|
from pydantic_settings import BaseSettings
|
|
from functools import lru_cache
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
"""Settings loaded from environment variables."""
|
|
|
|
# Database
|
|
database_url: str = "sqlite+aiosqlite:///./test.db"
|
|
|
|
# Redis
|
|
redis_url: str = "redis://localhost:6379/0"
|
|
|
|
# Rentman
|
|
rentman_api_token: str = ""
|
|
|
|
# JWT
|
|
jwt_secret: str = "change-me-in-production"
|
|
jwt_algorithm: str = "HS256"
|
|
jwt_expire_hours: int = 24
|
|
|
|
# SMTP
|
|
smtp_host: str = ""
|
|
smtp_port: int = 587
|
|
smtp_user: str = ""
|
|
smtp_password: str = ""
|
|
smtp_from: str = "info@hms-licht-ton.de"
|
|
|
|
# CORS
|
|
cors_origins: str = "https://hms.media-on.de,http://localhost:3000"
|
|
|
|
# Admin seed
|
|
admin_username: str = "admin"
|
|
admin_password: str = "change_me_in_production"
|
|
|
|
model_config = {"env_file": ".env", "extra": "ignore"}
|
|
|
|
|
|
@lru_cache
|
|
def get_settings() -> Settings:
|
|
"""Return cached settings instance."""
|
|
return Settings()
|