31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
# app/core/config.py
|
|
from pydantic import Field
|
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
|
|
class Settings(BaseSettings):
|
|
# общие
|
|
env: str = "dev"
|
|
tz: str = "Asia/Seoul"
|
|
|
|
# БД (async/sync)
|
|
database_url: str = Field(alias="DATABASE_URL")
|
|
database_url_sync: str | None = Field(default=None, alias="DATABASE_URL_SYNC")
|
|
|
|
# Redis/Celery
|
|
redis_url: str = Field(alias="REDIS_URL")
|
|
celery_broker_url: str = Field(alias="CELERY_BROKER_URL")
|
|
celery_result_backend: str = Field(alias="CELERY_RESULT_BACKEND")
|
|
|
|
# Telegram / секреты
|
|
editor_bot_token: str = Field(alias="EDITOR_BOT_TOKEN")
|
|
secret_key: str | None = Field(default=None, alias="SECRET_KEY")
|
|
|
|
# Конфиг загрузки
|
|
model_config = SettingsConfigDict(
|
|
env_file=".env",
|
|
extra="ignore", # игнорировать лишние переменные (DB_HOST, DB_USER и т.п.)
|
|
case_sensitive=False, # имена переменных без учета регистра
|
|
)
|
|
|
|
settings = Settings()
|