#!/bin/bash
# cc-tasks.sh - List pending Claude Code tasks from Work Tracker
#
# Usage: ./cc-tasks.sh [--json]

set -e

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

JSON_OUTPUT="${1:-}"

# Query Work Tracker for pending tasks
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":"Status","select":{"does_not_equal":"Done"}},{"property":"Status","select":{"does_not_equal":"Cancelled"}}]},"sorts":[{"property":"Priority","direction":"ascending"}],"page_size":20}' 2>/dev/null)

if [ "$JSON_OUTPUT" = "--json" ]; then
    echo "$TASKS"
else
    # Pass JSON via environment variable (heredoc takes stdin)
    export TASKS_JSON="$TASKS"
    python3 << 'PYEOF'
import os
import json

try:
    data = json.loads(os.environ.get('TASKS_JSON', '{}'))
    results = data.get('results', [])

    if not results:
        print("\n  No pending tasks - all caught up!\n")
        sys.exit(0)

    print("\n========================================")
    print("  PENDING TASKS (Work Tracker)")
    print("========================================\n")

    for i, r in enumerate(results, 1):
        props = r.get('properties', {})
        page_id = r.get('id', '')[:8]

        # Title
        title_arr = props.get('Task', {}).get('title', [])
        title = title_arr[0].get('text', {}).get('content', 'Untitled') if title_arr else 'Untitled'

        # Priority
        priority = props.get('Priority', {}).get('select', {})
        priority_name = priority.get('name', '?') if priority else '?'

        # Status
        status = props.get('Status', {}).get('status', {})
        status_name = status.get('name', '?') if status else '?'

        # Owner
        owner_select = props.get('Owner', {}).get('select', {})
        owner = owner_select.get('name', 'Unassigned') if owner_select else 'Unassigned'

        # Type
        task_type = props.get('Type', {}).get('select', {})
        type_name = task_type.get('name', '') if task_type else ''

        # Format output
        emoji = "🔴" if priority_name == "P0" else "🟠" if priority_name == "P1" else "🟡" if priority_name == "P2" else "⚪"

        print(f"{i}. {emoji} [{priority_name}] {title}")
        print(f"   ID: {page_id} | Status: {status_name} | Owner: {owner}")
        if type_name:
            print(f"   Type: {type_name}")
        print("")

    print("========================================")
    print(f"  Total: {len(results)} pending tasks")
    print("========================================\n")

except Exception as e:
    print(f"Error: {e}")
    sys.exit(1)
PYEOF
fi
