#!/bin/bash

# Backward compatibility wrapper for epic-list.js
# This script maintains compatibility while delegating to the Node.js implementation

# Get script directory to locate the Node.js implementation
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
NODE_SCRIPT="$SCRIPT_DIR/epic-list.js"

# Check if Node.js version exists and node is available
if [ -f "$NODE_SCRIPT" ] && command -v node >/dev/null 2>&1; then
  # Use Node.js implementation
  node "$NODE_SCRIPT" "$@"
else
  # Fallback to original bash implementation
  echo "Getting epics..."
  echo ""
  echo ""

  [ ! -d ".opencode/epics" ] && echo "📁 No epics directory found. Create your first epic with: /pm:prd-parse <feature-name>" && exit 0
  [ -z "$(ls -d .opencode/epics/*/ 2>/dev/null)" ] && echo "📁 No epics found. Create your first epic with: /pm:prd-parse <feature-name>" && exit 0

  echo "📚 Project Epics"
  echo "================"
  echo ""

  # Initialize arrays to store epics by status
  planning_epics=""
  in_progress_epics=""
  completed_epics=""

  # Process all epics
  for dir in .opencode/epics/*/; do
    [ -d "$dir" ] || continue
    [ -f "$dir/epic.md" ] || continue

    # Extract metadata
    n=$(grep "^name:" "$dir/epic.md" | head -1 | sed 's/^name: *//')
    s=$(grep "^status:" "$dir/epic.md" | head -1 | sed 's/^status: *//' | tr '[:upper:]' '[:lower:]')
    p=$(grep "^progress:" "$dir/epic.md" | head -1 | sed 's/^progress: *//')
    g=$(grep "^github:" "$dir/epic.md" | head -1 | sed 's/^github: *//')

    # Defaults
    [ -z "$n" ] && n=$(basename "$dir")
    [ -z "$p" ] && p="0%"

    # Count tasks
    t=$(ls "$dir"[0-9]*.md 2>/dev/null | wc -l)

    # Format output with GitHub issue number if available
    if [ -n "$g" ]; then
      i=$(echo "$g" | grep -o '/[0-9]*$' | tr -d '/')
      entry="   📋 ${dir}epic.md (#$i) - $p complete ($t tasks)"
    else
      entry="   📋 ${dir}epic.md - $p complete ($t tasks)"
    fi

    # Categorize by status (handle various status values)
    case "$s" in
      planning|draft|"")
        planning_epics="${planning_epics}${entry}\n"
        ;;
      in-progress|in_progress|active|started)
        in_progress_epics="${in_progress_epics}${entry}\n"
        ;;
      completed|complete|done|closed|finished)
        completed_epics="${completed_epics}${entry}\n"
        ;;
      *)
        # Default to planning for unknown statuses
        planning_epics="${planning_epics}${entry}\n"
        ;;
    esac
  done

  # Display categorized epics
  echo "📝 Planning:"
  if [ -n "$planning_epics" ]; then
    echo -e "$planning_epics" | sed '/^$/d'
  else
    echo "   (none)"
  fi

  echo ""
  echo "🚀 In Progress:"
  if [ -n "$in_progress_epics" ]; then
    echo -e "$in_progress_epics" | sed '/^$/d'
  else
    echo "   (none)"
  fi

  echo ""
  echo "✅ Completed:"
  if [ -n "$completed_epics" ]; then
    echo -e "$completed_epics" | sed '/^$/d'
  else
    echo "   (none)"
  fi

  # Summary
  echo ""
  echo "📊 Summary"
  total=$(ls -d .opencode/epics/*/ 2>/dev/null | wc -l)
  tasks=$(find .opencode/epics -name "[0-9]*.md" 2>/dev/null | wc -l)
  echo "   Total epics: $total"
  echo "   Total tasks: $tasks"

  exit 0
fi
