59 lines
1.7 KiB
Python
59 lines
1.7 KiB
Python
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()
|
|
]
|