35 lines
1022 B
Python
Executable File
35 lines
1022 B
Python
Executable File
ffrom typing import Optional
|
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
|
|
class Settings(BaseSettings):
|
|
# --- General ---
|
|
PROJECT_NAME: str = "Traffic Ecosystem SuperApp"
|
|
VERSION: str = "2.0.0"
|
|
API_V1_STR: str = "/api/v1"
|
|
|
|
# --- Security ---
|
|
SECRET_KEY: str # Must be set in .env
|
|
ALGORITHM: str = "HS256"
|
|
ACCESS_TOKEN_EXPIRE_MINUTES: int = 60
|
|
|
|
# --- Database (Postgres) ---
|
|
DATABASE_URL: str # e.g., postgresql+asyncpg://user:pass@db:5432/dbname
|
|
|
|
# --- Storage (MinIO) ---
|
|
MINIO_ENDPOINT: str # e.g., minio:9000
|
|
MINIO_ACCESS_KEY: str
|
|
MINIO_SECRET_KEY: str
|
|
MINIO_BUCKET_NAME: str = "fleet-data"
|
|
|
|
# --- Cache (Redis) ---
|
|
REDIS_URL: str = "redis://redis:6379/0"
|
|
|
|
# Pydantic V2 Config
|
|
model_config = SettingsConfigDict(
|
|
env_file=".env",
|
|
env_file_encoding="utf-8",
|
|
case_sensitive=True,
|
|
extra="ignore" # Ignore extra env vars (like Docker internal vars)
|
|
)
|
|
|
|
settings = Settings() |