#!/bin/bash

# 互動式問題管理工具 - 不需要記任何參數！
# 使用方法: ./issue.sh

ISSUE_FILE="ISSUES.md"

# 顏色定義
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
RED='\033[0;31m'
NC='\033[0m'

# 顯示歡迎訊息
echo -e "${BLUE}🚨 Drama Ling 問題管理工具${NC}"
echo "================================"
echo -e "${YELLOW}💡 使用提醒：請使用此工具管理問題，避免直接編輯 ISSUES.md${NC}"
echo "================================"

# 確保問題文件存在
if [ ! -f "$ISSUE_FILE" ]; then
    echo -e "${RED}❌ 找不到 $ISSUE_FILE${NC}"
    echo "請確認您在正確的目錄中執行此腳本"
    exit 1
fi

# 主選單
while true; do
    echo ""
    echo -e "${YELLOW}請選擇操作:${NC}"
    echo "1) 📝 記錄新問題"
    echo "2) 📊 查看問題狀態"
    echo "3) ✅ 標記問題為已解決"
    echo "4) 📋 查看完整問題列表"
    echo "5) 🚪 退出"
    echo ""
    read -p "請選擇 (1-5): " choice

    case $choice in
        1)
            # 記錄新問題
            echo ""
            echo -e "${BLUE}📝 記錄新問題${NC}"
            echo "---------------"
            read -p "問題描述: " problem_desc
            
            if [ -z "$problem_desc" ]; then
                echo -e "${RED}❌ 問題描述不能為空${NC}"
                continue
            fi
            
            echo ""
            echo "選擇優先級："
            echo "1) 🔥 緊急 - 阻擋開發的嚴重問題"
            echo "2) ⚠️ 重要 - 影響進度的重要問題"  
            echo "3) 📝 一般 - 可以延後的問題"
            read -p "請選擇 (1-3, 預設3): " priority

            case $priority in
                1) 
                    section="## 🔥 緊急問題"
                    priority_text="🔥 緊急"
                    ;;
                2) 
                    section="## ⚠️ 重要問題"
                    priority_text="⚠️ 重要"
                    ;;
                *) 
                    section="## 📝 一般問題"
                    priority_text="📝 一般"
                    ;;
            esac

            # 詢問相關文件 (可選)
            read -p "相關文件路徑 (可選，直接按Enter跳過): " file_path
            
            # 建立問題條目
            issue_line="- [ ] $problem_desc"
            if [ -n "$file_path" ]; then
                issue_line="$issue_line (檔案: $file_path)"
            fi

            # 添加到文件
            if sed -i '' "/^$section$/a\\
$issue_line
" "$ISSUE_FILE"; then
                echo -e "${GREEN}✅ 問題已記錄到: $priority_text${NC}"
            else
                echo -e "${RED}❌ 記錄失敗${NC}"
            fi
            ;;
            
        2)
            # 查看問題狀態
            echo ""
            echo -e "${BLUE}📊 問題狀態總覽${NC}"
            echo "=================="
            
            urgent=$(sed -n '/## 🔥 緊急問題/,/## ⚠️ /p' "$ISSUE_FILE" | grep -c "^- \[ \]")
            important=$(sed -n '/## ⚠️ 重要問題/,/## 📝 /p' "$ISSUE_FILE" | grep -c "^- \[ \]")
            normal=$(sed -n '/## 📝 一般問題/,/## 🤖 /p' "$ISSUE_FILE" | grep -c "^- \[ \]")
            resolved=$(sed -n '/# 📚 已完成歷史/,$p' "$ISSUE_FILE" | grep -c "^- \[x\]")
            
            echo "🔥 緊急問題: $urgent 個"
            echo "⚠️ 重要問題: $important 個"
            echo "📝 一般問題: $normal 個"
            echo "✅ 已解決: $resolved 個"
            
            total_open=$((urgent + important + normal))
            echo ""
            echo "📊 總計: $total_open 個待處理問題"
            
            if [ $urgent -gt 0 ]; then
                echo ""
                echo -e "${RED}🚨 緊急問題:${NC}"
                sed -n '/## 🔥 緊急問題/,/## /p' "$ISSUE_FILE" | grep "^- \[ \]" | head -3
            fi
            ;;
            
        3)
            # 標記問題為已解決
            echo ""
            echo -e "${BLUE}✅ 標記問題為已解決${NC}"
            echo "----------------------"
            
            # 顯示未解決的問題
            echo "待處理的問題:"
            echo ""
            
            # 顯示緊急問題
            urgent_issues=$(sed -n '/## 🔥 緊急問題/,/## ⚠️ /p' "$ISSUE_FILE" | grep "^- \[ \]")
            if [ -n "$urgent_issues" ]; then
                echo -e "${RED}🔥 緊急問題:${NC}"
                echo "$urgent_issues" | nl -w2 -s') '
                echo ""
            fi
            
            # 顯示重要問題  
            important_issues=$(sed -n '/## ⚠️ 重要問題/,/## 📝 /p' "$ISSUE_FILE" | grep "^- \[ \]")
            if [ -n "$important_issues" ]; then
                echo -e "${YELLOW}⚠️ 重要問題:${NC}"
                echo "$important_issues" | nl -w2 -s') '
                echo ""
            fi
            
            # 顯示一般問題
            normal_issues=$(sed -n '/## 📝 一般問題/,/## 🤖 /p' "$ISSUE_FILE" | grep "^- \[ \]")
            if [ -n "$normal_issues" ]; then
                echo -e "${BLUE}📝 一般問題:${NC}"
                echo "$normal_issues" | nl -w2 -s') '
                echo ""
            fi
            
            echo -e "${YELLOW}💡 提示: 請直接編輯 $ISSUE_FILE 文件來標記問題為已解決${NC}"
            echo "將 '[ ]' 改為 '[x]' 並移動到 '# 📚 已完成歷史' 區域下的對應日期"
            ;;
            
        4)
            # 查看完整問題列表
            echo ""
            echo -e "${BLUE}📋 完整問題列表${NC}"
            echo "=================="
            cat "$ISSUE_FILE"
            ;;
            
        5)
            # 退出
            echo ""
            echo -e "${GREEN}👋 再見！${NC}"
            exit 0
            ;;
            
        *)
            echo -e "${RED}❌ 無效選擇，請輸入 1-5${NC}"
            ;;
    esac
done