#!/bin/bash

#############################################
# AI 夜間開發系統 - 專案配置管理
# 此腳本從 projects.yml 讀取專案配置
#############################################

# 取得腳本所在目錄
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
CONFIG_LOADER="$SCRIPT_DIR/load_project_config.py"

# 檢查 Python 腳本是否存在
if [ ! -f "$CONFIG_LOADER" ]; then
    echo "錯誤: 找不到配置載入器 $CONFIG_LOADER"
    return 1
fi

# 動態載入專案配置的通用函數
load_project_config() {
    local project_id="$1"

    if [ -z "$project_id" ]; then
        echo "錯誤: 請指定專案 ID"
        return 1
    fi

    # 執行 Python 腳本並 eval 輸出的 export 命令
    eval "$(python3 "$CONFIG_LOADER" export "$project_id")"
}

# ============================================
# 專案 1: SDD Spec 管理系統
# ============================================

export_sdd_config() {
    load_project_config "sdd-management"
}

# ============================================
# 專案 2: 婚禮規劃 APP
# ============================================

export_wedding_config() {
    load_project_config "wedding-app"
}

# ============================================
# 專案 3: ISO27001 管理系統
# ============================================

export_iso27001_config() {
    load_project_config "iso27001-system"
}

# ============================================
# 專案 4: 部落格 AI 撰寫
# ============================================

export_blog_config() {
    load_project_config "blog-writing"
}

# ============================================
# 專案 5: 外語學習系統
# ============================================

export_language_config() {
    load_project_config "language-learning"
}

# ============================================
# 專案 6: Drupal 教學專案
# ============================================

export_drupal_config() {
    load_project_config "drupal-tutorial"
}

# ============================================
# 列出所有可用專案
# ============================================

list_projects() {
    python3 "$CONFIG_LOADER" list 2>/dev/null | awk -F': ' '/^  - / {sub(/^  - /,"",$1); print $1}'
}

# ============================================
# 顯示專案資訊
# ============================================

show_project_info() {
    local project_id="$1"

    if [ -z "$project_id" ]; then
        echo "錯誤: 請指定專案 ID"
        return 1
    fi

    python3 "$CONFIG_LOADER" info "$project_id"
}

# ============================================
# 使用方式
# ============================================

show_usage() {
    cat <<EOF
使用方式:
    source project-configs.sh

    # 切換專案
    export_sdd_config        # 切換到 SDD 專案
    export_wedding_config    # 切換到婚禮 APP
    export_iso27001_config   # 切換到 ISO27001
    export_blog_config       # 切換到部落格
    export_language_config   # 切換到外語學習
    export_drupal_config     # 切換到 Drupal 教學

    # 通用載入方式
    load_project_config <project-id>  # 直接指定專案 ID

    # 查詢專案
    list_projects              # 列出所有可用專案
    show_project_info <id>     # 顯示專案詳細資訊

或直接執行:
    source project-configs.sh && export_sdd_config

將配置寫入到 ~/.bashrc 或 ~/.zshrc:
    echo "source $(pwd)/project-configs.sh" >> ~/.bashrc
    echo "export_sdd_config" >> ~/.bashrc

專案配置檔案:
    所有專案配置定義在 projects.yml 中
    可直接編輯該檔案來新增或修改專案配置
EOF
}

# 如果直接執行此腳本，顯示使用說明
if [ "${BASH_SOURCE[0]}" = "${0}" ]; then
    show_usage
fi
