import os from pathlib import Path from dotenv import load_dotenv # 載入環境變數 load_dotenv() # 專案路徑 BASE_DIR = Path(__file__).resolve().parent.parent.parent DATA_DIR = BASE_DIR / "data" UPLOAD_DIR = DATA_DIR / "uploads" STATIC_DIR = BASE_DIR / "backend" / "static" # 確保目錄存在 DATA_DIR.mkdir(exist_ok=True) UPLOAD_DIR.mkdir(exist_ok=True) STATIC_DIR.mkdir(exist_ok=True) # MySQL 資料庫設定 DB_HOST = os.getenv("DB_HOST", "localhost") DB_PORT = os.getenv("DB_PORT", "3306") DB_USER = os.getenv("DB_USER", "root") DB_PASSWORD = os.getenv("DB_PASSWORD", "") DB_DATABASE = os.getenv("DB_DATABASE", "sales_pipeline") # MySQL 連線字串 DATABASE_URL = f"mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_DATABASE}?charset=utf8mb4" # 資料表前綴 TABLE_PREFIX = os.getenv("TABLE_PREFIX", "PJ_SOA_") # JWT 設定 SECRET_KEY = os.getenv("SECRET_KEY", "your-secret-key-change-in-production-12345678") ALGORITHM = os.getenv("ALGORITHM", "HS256") ACCESS_TOKEN_EXPIRE_MINUTES = int(os.getenv("ACCESS_TOKEN_EXPIRE_MINUTES", "1440")) # 模糊比對閾值 MATCH_THRESHOLD_AUTO = int(os.getenv("MATCH_THRESHOLD_AUTO", "95")) MATCH_THRESHOLD_REVIEW = int(os.getenv("MATCH_THRESHOLD_REVIEW", "80")) # Excel 解析設定 MAX_HEADER_SCAN_ROWS = int(os.getenv("MAX_HEADER_SCAN_ROWS", "20")) # 應用設定 APP_HOST = os.getenv("APP_HOST", "0.0.0.0") APP_PORT = int(os.getenv("APP_PORT", "8000")) WORKERS = int(os.getenv("WORKERS", "1")) DEBUG = os.getenv("DEBUG", "False").lower() == "true" # CORS 設定 CORS_ORIGINS = [ origin.strip() for origin in os.getenv( "CORS_ORIGINS", "http://localhost:3000,http://127.0.0.1:3000,http://localhost:5173,http://127.0.0.1:5173" ).split(",") if origin.strip() ]