51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
from pydantic_settings import BaseSettings
|
|
from typing import Optional
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
# Database
|
|
postgres_db: str = "hartomat"
|
|
postgres_user: str = "hartomat"
|
|
postgres_password: str = "hartomat"
|
|
postgres_host: str = "localhost"
|
|
postgres_port: int = 5432
|
|
|
|
@property
|
|
def database_url(self) -> str:
|
|
return (
|
|
f"postgresql+asyncpg://{self.postgres_user}:{self.postgres_password}"
|
|
f"@{self.postgres_host}:{self.postgres_port}/{self.postgres_db}"
|
|
)
|
|
|
|
@property
|
|
def database_url_sync(self) -> str:
|
|
return (
|
|
f"postgresql://{self.postgres_user}:{self.postgres_password}"
|
|
f"@{self.postgres_host}:{self.postgres_port}/{self.postgres_db}"
|
|
)
|
|
|
|
# Redis / Celery
|
|
redis_url: str = "redis://localhost:6379/0"
|
|
|
|
# JWT
|
|
jwt_secret_key: str = "changeme"
|
|
jwt_algorithm: str = "HS256"
|
|
jwt_access_token_expire_minutes: int = 480
|
|
|
|
# Azure OpenAI
|
|
azure_openai_api_key: Optional[str] = None
|
|
azure_openai_endpoint: Optional[str] = None
|
|
azure_openai_deployment: str = "gpt-4o"
|
|
azure_openai_api_version: str = "2024-02-01"
|
|
|
|
# File Storage
|
|
upload_dir: str = "/app/uploads"
|
|
max_upload_size_mb: int = 500
|
|
|
|
class Config:
|
|
env_file = ".env"
|
|
case_sensitive = False
|
|
|
|
|
|
settings = Settings()
|