DKB_ARMKA/api/src/core/config.py
2026-09-17 17:24:50 +03:00

58 lines
1.4 KiB
Python

from pydantic import Field
from pydantic_settings import BaseSettings, SettingsConfigDict
from pydantic import Field
class DBSettings(BaseSettings):
DATABASE_URL: str
class MinioSettings(BaseSettings):
MINIO_SECURE: bool = True
MINIO_URL: str
MINIO_ADMIN_LOGIN: str
MINIO_ADMIN_PASSWORD: str
MINIO_BUCKET: str
MINIO_SECURE: bool = True
class NATSSettings(BaseSettings):
NATS_URL: str
NATS_JWT: str = Field(min_length=1)
NATS_SEED: str = Field(min_length=1)
class SMBSettings(BaseSettings):
SMB_PORT: int = Field(default=445, ge=1, le=65535)
SMB_HOST: str
SMB_PORT: int = 445
SMB_PATH: str
SMB_LOGIN: str
SMB_PASSWORD: str
class OpenBAOSettings(BaseSettings):
DATABASE: DBSettings
MINIO: MinioSettings | None = None
NATS: NATSSettings | None = None
SMB: SMBSettings | None = None
class ServerSettings(BaseSettings):
HOST: str = "0.0.0.0"
PORT: int = 8000
class Settings(BaseSettings):
OPENBAO: OpenBAOSettings
DEBUG: bool = False
server: ServerSettings = ServerSettings()
ROOT_PATH: str = '/'
VERSION: str = '1.0.0'
class Config:
case_sensitive = True
extra = "ignore"
env_file = ".env"
env_nested_delimiter = "__"
nested_model_default_partial_update = False
def get_settings() -> Settings:
return Settings()
settings = get_settings()