#!/usr/bin/env python3
"""
Dashboard Task Manager
Add, update, or complete tasks in the dashboard kanban board.
Usage: python3 add-dashboard-task.py "title" [priority] [status]
"""

import json
import sys
import os
from datetime import datetime

DASHBOARD_STATE_FILE = '/Users/neoclaw/.openclaw/workspace/live-dashboard-state.json'

def add_task(title, priority='medium', status='backlog'):
    """Add new task to dashboard"""
    try:
        # Load current state
        with open(DASHBOARD_STATE_FILE, 'r') as f:
            state = json.load(f)
        
        if 'tasks' not in state:
            state['tasks'] = []
        
        # Create new task
        timestamp = datetime.now().strftime('%Y-%m-%dT%H:%M:%S-06:00')
        new_task = {
            "id": f"task-{len(state['tasks'])+1}-{int(datetime.now().timestamp())}",
            "title": title,
            "priority": priority,
            "status": status,
            "tags": [],
            "createdAt": timestamp,
            "updatedAt": timestamp
        }
        
        # Add to tasks
        state['tasks'].append(new_task)
        
        # Update sync time
        state['lastSync'] = timestamp
        
        # Save back to file
        with open(DASHBOARD_STATE_FILE, 'w') as f:
            json.dump(state, f, indent=2)
        
        print(f"✅ Task added: {title} ({priority}, {status})")
        
    except Exception as e:
        print(f"❌ Failed to add task: {e}")

def complete_task(task_id):
    """Mark task as done"""
    try:
        with open(DASHBOARD_STATE_FILE, 'r') as f:
            state = json.load(f)
        
        for task in state.get('tasks', []):
            if task['id'] == task_id:
                task['status'] = 'done'
                task['updatedAt'] = datetime.now().strftime('%Y-%m-%dT%H:%M:%S-06:00')
                break
        
        state['lastSync'] = datetime.now().strftime('%Y-%m-%dT%H:%M:%S-06:00')
        
        with open(DASHBOARD_STATE_FILE, 'w') as f:
            json.dump(state, f, indent=2)
        
        print(f"✅ Task {task_id} marked as done")
        
    except Exception as e:
        print(f"❌ Failed to complete task: {e}")

if __name__ == '__main__':
    if len(sys.argv) < 2:
        print("Usage: python3 add-dashboard-task.py <title> [priority] [status]")
        print("Priority: high, medium, low")
        print("Status: backlog, in-progress, done, blocked") 
        sys.exit(1)
    
    title = sys.argv[1]
    priority = sys.argv[2] if len(sys.argv) > 2 else 'medium'
    status = sys.argv[3] if len(sys.argv) > 3 else 'backlog'
    
    add_task(title, priority, status)