from __future__ import annotations import os from dataclasses import dataclass from pathlib import Path BASE_DIR = Path(__file__).resolve().parent.parent @dataclass(frozen=True) class Settings: app_name: str = os.getenv("APP_NAME", "激光材料数据平台") secret: str = os.getenv("APP_SECRET", "dev-only-change-this-secret") database_url: str = os.getenv("DATABASE_URL", f"sqlite:///{BASE_DIR / 'data' / 'laser_data.db'}") admin_username: str = os.getenv("ADMIN_USERNAME", "admin") admin_password: str = os.getenv("ADMIN_PASSWORD", "Admin@123456") session_hours: int = int(os.getenv("SESSION_HOURS", "12")) backup_keep_days: int = int(os.getenv("BACKUP_KEEP_DAYS", "30")) backup_dir: Path = BASE_DIR / "backups" settings = Settings() for directory in (BASE_DIR / "data", settings.backup_dir): directory.mkdir(parents=True, exist_ok=True)