from pydantic import Field from pydantic_settings import BaseSettings, SettingsConfigDict from pathlib import Path PROJECT_DIR = Path(__file__).resolve().parent _base_config = SettingsConfigDict( env_file=PROJECT_DIR / ".env", env_ignore_empty=True, extra="ignore", ) class SchedulerSettings(BaseSettings): # 백엔드 내부 API 설정 BACKEND_INTERNAL_URL: str = Field( default="http://castad-app:8000", description="백엔드 서버 내부 URL (Docker 네트워크)", ) INTERNAL_SECRET_KEY: str = Field( default="change-me-internal-secret-key", description="내부 API 인증 키 (백엔드와 동일해야 함)", ) # MySQL 설정 MYSQL_HOST: str = Field(default="mysql") MYSQL_PORT: int = Field(default=3306) MYSQL_USER: str = Field(default="root") MYSQL_PASSWORD: str = Field(default="") MYSQL_DB: str = Field(default="castad_test1") # 스케줄러 설정 CHECK_INTERVAL_MINUTES: int = Field( default=10, description="예약 업로드 체크 주기 (분)", ) model_config = _base_config @property def MYSQL_URL(self) -> str: return f"mysql+aiomysql://{self.MYSQL_USER}:{self.MYSQL_PASSWORD}@{self.MYSQL_HOST}:{self.MYSQL_PORT}/{self.MYSQL_DB}" settings = SchedulerSettings()