#!/bin/bash
# cc-startup.sh - Claude Code Session Startup Protocol
# Run this at the start of every CC session to get current state
#
# Usage: ./cc-startup.sh
# Or source it: source ./cc-startup.sh

set -e

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/config.env"

echo "======================================"
echo "  CC STARTUP PROTOCOL"
echo "  $(date '+%Y-%m-%d %H:%M:%S')"
echo "======================================"
echo ""

# ===== 1. UPDATE OWN STATUS TO ONLINE =====
echo "📡 Updating CC status to Online..."
"$SCRIPT_DIR/agent-status.sh" "Claude Code" "Online" "Session starting" 2>/dev/null || echo "  (Status update skipped - agent-status.sh not configured)"
echo ""

# ===== 2. READ SYSTEM STATE =====
echo "🔧 SYSTEM STATE"
echo "---------------"
SYSTEM_STATE=$(curl -s -X POST "https://api.notion.com/v1/databases/${SYSTEM_STATE_DB}/query" \
    -H "Authorization: Bearer $NOTION_API_KEY" \
    -H "Content-Type: application/json" \
    -H "Notion-Version: 2022-06-28" \
    -d '{}' 2>/dev/null)

if [ -n "$SYSTEM_STATE" ]; then
    echo "$SYSTEM_STATE" | python3 -c "
import sys, json
data = json.load(sys.stdin)
for r in data.get('results', []):
    name = r.get('properties', {}).get('System', {}).get('title', [{}])[0].get('text', {}).get('content', 'Unknown')
    status = r.get('properties', {}).get('Status', {}).get('select', {}).get('name', 'Unknown')
    print(f'  {status} {name}')
" 2>/dev/null || echo "  (Could not parse system state)"
else
    echo "  (Could not fetch system state)"
fi
echo ""

# ===== 3. READ AI AGENTS STATUS =====
echo "🤖 AI AGENTS STATUS"
echo "-------------------"
AGENTS=$(curl -s -X POST "https://api.notion.com/v1/databases/${AI_AGENTS_DB}/query" \
    -H "Authorization: Bearer $NOTION_API_KEY" \
    -H "Content-Type: application/json" \
    -H "Notion-Version: 2022-06-28" \
    -d '{}' 2>/dev/null)

if [ -n "$AGENTS" ]; then
    echo "$AGENTS" | python3 -c "
import sys, json
data = json.load(sys.stdin)
for r in data.get('results', []):
    name = r.get('properties', {}).get('Agent', {}).get('title', [{}])[0].get('text', {}).get('content', 'Unknown')
    status = r.get('properties', {}).get('Status', {}).get('select', {}).get('name', 'Unknown')
    task = r.get('properties', {}).get('Current Task', {}).get('rich_text', [{}])[0].get('text', {}).get('content', '-')
    print(f'  {status} {name}: {task}')
" 2>/dev/null || echo "  (Could not parse agents)"
else
    echo "  (Could not fetch agents)"
fi
echo ""

# ===== 4. READ WORK TRACKER - MY ASSIGNED TASKS =====
echo "📋 MY ASSIGNED TASKS (Claude Code)"
echo "-----------------------------------"
TASKS=$(curl -s -X POST "https://api.notion.com/v1/databases/${WORK_TRACKER_DB}/query" \
    -H "Authorization: Bearer $NOTION_API_KEY" \
    -H "Content-Type: application/json" \
    -H "Notion-Version: 2022-06-28" \
    -d '{
        "filter": {
            "and": [
                {"property": "Owner", "select": {"equals": "Claude Code"}},
                {"property": "Status", "select": {"does_not_equal": "Done"}}
            ]
        },
        "sorts": [{"property": "Priority", "direction": "ascending"}]
    }' 2>/dev/null)

if [ -n "$TASKS" ]; then
    echo "$TASKS" | python3 -c "
import sys, json
data = json.load(sys.stdin)
for r in data.get('results', []):
    title = r.get('properties', {}).get('Task', {}).get('title', [{}])[0].get('text', {}).get('content', 'Unknown')
    priority = r.get('properties', {}).get('Priority', {}).get('select', {}).get('name', 'Unknown')
    status = r.get('properties', {}).get('Status', {}).get('select', {}).get('name', 'Unknown')
    print(f'  [{priority}] {title} ({status})')
" 2>/dev/null || echo "  (Could not parse tasks)"
else
    echo "  (Could not fetch tasks)"
fi
echo ""

# ===== 5. CHECK FOR ITEMS NEEDING APPROVAL =====
echo "⏳ NEEDS APPROVAL"
echo "-----------------"
APPROVALS=$(curl -s -X POST "https://api.notion.com/v1/databases/${WORK_TRACKER_DB}/query" \
    -H "Authorization: Bearer $NOTION_API_KEY" \
    -H "Content-Type: application/json" \
    -H "Notion-Version: 2022-06-28" \
    -d '{
        "filter": {
            "property": "Needs Approval",
            "checkbox": {"equals": true}
        }
    }' 2>/dev/null)

APPROVAL_COUNT=$(echo "$APPROVALS" | python3 -c "import sys,json; print(len(json.load(sys.stdin).get('results',[])))" 2>/dev/null || echo "0")

if [ "$APPROVAL_COUNT" -gt 0 ]; then
    echo "$APPROVALS" | python3 -c "
import sys, json
data = json.load(sys.stdin)
for r in data.get('results', []):
    title = r.get('properties', {}).get('Task', {}).get('title', [{}])[0].get('text', {}).get('content', 'Unknown')
    print(f'  ⚠️  {title}')
" 2>/dev/null
else
    echo "  None - all clear"
fi
echo ""

# ===== 6. CHECK RECENT DEPLOYS =====
echo "🚀 RECENT DEPLOYS (last 24h)"
echo "----------------------------"
YESTERDAY=$(date -d "yesterday" +"%Y-%m-%d" 2>/dev/null || date -v-1d +"%Y-%m-%d" 2>/dev/null || echo "2026-01-29")
DEPLOYS=$(curl -s -X POST "https://api.notion.com/v1/databases/${DEPLOY_LOG_DB}/query" \
    -H "Authorization: Bearer $NOTION_API_KEY" \
    -H "Content-Type: application/json" \
    -H "Notion-Version: 2022-06-28" \
    -d "{
        \"filter\": {
            \"property\": \"Date\",
            \"date\": {\"on_or_after\": \"$YESTERDAY\"}
        },
        \"sorts\": [{\"property\": \"Date\", \"direction\": \"descending\"}]
    }" 2>/dev/null)

if [ -n "$DEPLOYS" ]; then
    DEPLOY_COUNT=$(echo "$DEPLOYS" | python3 -c "import sys,json; print(len(json.load(sys.stdin).get('results',[])))" 2>/dev/null || echo "0")
    if [ "$DEPLOY_COUNT" -gt 0 ]; then
        echo "$DEPLOYS" | python3 -c "
import sys, json
data = json.load(sys.stdin)
for r in data.get('results', []):
    title = r.get('properties', {}).get('Deploy', {}).get('title', [{}])[0].get('text', {}).get('content', 'Unknown')
    status = r.get('properties', {}).get('Status', {}).get('select', {}).get('name', 'Unknown')
    tier = r.get('properties', {}).get('Type', {}).get('select', {}).get('name', 'Unknown')
    print(f'  {status} {title} ({tier})')
" 2>/dev/null
    else
        echo "  None"
    fi
else
    echo "  (Could not fetch deploys)"
fi
echo ""

# ===== 7. SUMMARY =====
echo "======================================"
echo "  STARTUP COMPLETE"
echo "======================================"
echo ""
echo "READY TO WORK. Next steps:"
echo "1. Pick highest priority task from MY ASSIGNED TASKS"
echo "2. Follow Self-Separating Pipeline (INVESTIGATE → PLAN → BUILD → TEST → DEPLOY → LEARN)"
echo "3. Update task status at each stage"
echo "4. If blocked, check NEEDS APPROVAL section"
echo ""
