#!/bin/bash
# Smart Session Manager Hook
# Auto-loads project context and saves session insights

EVENT_TYPE="$1"
TIMESTAMP=$(date +"%Y-%m-%d %H:%M:%S")
PROJECT_DIR="$(pwd)"
SESSION_ID="${TIMESTAMP}_$$"

# Colors for output
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

case "$EVENT_TYPE" in
  SessionStart)
    echo -e "${GREEN}📂 Hook: SessionStart triggered${NC}"
    echo -e "${BLUE}Time:${NC} $TIMESTAMP"
    echo -e "${BLUE}Project:${NC} $PROJECT_DIR"
    echo ""

    # Check for CLAUDE-PROJECT.md in current directory
    if [ -f "$PROJECT_DIR/CLAUDE-PROJECT.md" ]; then
      echo -e "${GREEN}✅ Found CLAUDE-PROJECT.md${NC}"
      echo -e "${YELLOW}📝 Project-specific instructions loaded!${NC}"
      echo ""

      # Display project context preview
      echo -e "${BLUE}═══════════════════════════════════════════════════${NC}"
      echo -e "${BLUE}Project Context Preview:${NC}"
      echo -e "${BLUE}═══════════════════════════════════════════════════${NC}"
      head -20 "$PROJECT_DIR/CLAUDE-PROJECT.md"
      echo -e "${BLUE}═══════════════════════════════════════════════════${NC}"
      echo ""

    else
      echo -e "${YELLOW}⚠️  No CLAUDE-PROJECT.md found${NC}"
      echo -e "${YELLOW}Using global ~/.claude/CLAUDE.md instructions${NC}"
      echo ""

      # Suggest creating CLAUDE-PROJECT.md
      echo -e "${BLUE}💡 Tip: Create CLAUDE-PROJECT.md for project-specific instructions${NC}"
      echo ""
    fi

    # Check for project-specific MCP config
    if [ -f "$PROJECT_DIR/.mcp.json" ]; then
      echo -e "${GREEN}✅ Found project-specific .mcp.json${NC}"
      echo -e "${YELLOW}🔧 Project MCP servers will be used${NC}"
      echo ""
    fi

    # Session log file
    SESSION_LOG="$HOME/.claude/sessions/session_${SESSION_ID}.log"
    mkdir -p "$HOME/.claude/sessions"
    echo "Session started: $TIMESTAMP" > "$SESSION_LOG"
    echo "Project: $PROJECT_DIR" >> "$SESSION_LOG"
    echo "" >> "$SESSION_LOG"

    echo -e "${GREEN}🎉 Session initialized!${NC}"
    echo ""

    ;;

  SessionStop)
    echo -e "${GREEN}📂 Hook: SessionStop triggered${NC}"
    echo -e "${BLUE}Time:${NC} $TIMESTAMP"
    echo ""

    # Update session log
    SESSION_LOG="$HOME/.claude/sessions/session_${SESSION_ID}.log"
    if [ -f "$SESSION_LOG" ]; then
      echo "Session ended: $TIMESTAMP" >> "$SESSION_LOG"
      echo -e "${GREEN}✅ Session log saved${NC}"
      echo -e "${BLUE}Location:${NC} $SESSION_LOG"
    fi

    # Auto-save memory suggestion
    echo ""
    echo -e "${BLUE}💡 Consider saving important context to Memory MCP before leaving!${NC}"
    echo -e "${YELLOW}Example: 'Ingat ya, project ini pakai TypeScript strict mode'${NC}"
    echo ""

    echo -e "${GREEN}👋 Session ended successfully!${NC}"
    echo ""

    ;;

  *)
    echo -e "${YELLOW}⚠️  Unknown event: $EVENT_TYPE${NC}"
    exit 1
    ;;
esac

exit 0
