penti/backend/app/config.py

44 lines
1.2 KiB
Python
Raw Permalink Normal View History

2026-01-31 23:30:51 +09:00
"""Application configuration."""
from typing import Optional
from pydantic_settings import BaseSettings
from pydantic import Field
class Settings(BaseSettings):
"""Application settings."""
# Application
app_name: str = "Pension Quant Platform"
environment: str = Field(default="development", env="ENVIRONMENT")
secret_key: str = Field(..., env="SECRET_KEY")
# Database
database_url: str = Field(..., env="DATABASE_URL")
# Redis
redis_url: str = Field(default="redis://localhost:6379/0", env="REDIS_URL")
# Celery
celery_broker_url: str = Field(default="redis://localhost:6379/1", env="CELERY_BROKER_URL")
celery_result_backend: str = Field(default="redis://localhost:6379/2", env="CELERY_RESULT_BACKEND")
# Data Collection
data_collection_hour: int = Field(default=18, env="DATA_COLLECTION_HOUR")
data_collection_minute: int = Field(default=0, env="DATA_COLLECTION_MINUTE")
# Backtest
default_commission_rate: float = 0.0015 # 0.15%
default_initial_capital: float = 10000000.0 # 1천만원
# API
api_v1_prefix: str = "/api/v1"
class Config:
env_file = ".env"
case_sensitive = False
extra = "ignore"
# Global settings instance
settings = Settings()