import json
import sys
from datetime import datetime, timezone, timedelta

# 读取 issue 数据
with open('/home/multica/.claude/projects/-home-multica-multica-workspaces-b5fdce19-2a82-455d-b644-5b83da2b3078-3e2d2092-workdir/2fa78e5e-1ff3-4760-a2f7-2c73c7c3a351/tool-results/blg7jgr3s.txt', 'r') as f:
    data = json.load(f)

# 代码评审专家 ID
CODE_REVIEWER_ID = "34d7c53d-bd70-45a8-bbbb-77dbb1da16b5"

# 当前时间
now = datetime.now(timezone.utc)

# 分类统计
results = {
    "in_review_wrong_assignee": [],
    "todo_stale": [],
    "in_progress_stale": [],
    "missing_assignee": [],
    "all_good": []
}

# 过滤未完成的任务
issues = [issue for issue in data['issues'] 
          if issue['status'] not in ['done', 'cancelled', 'backlog']]

print(f"检查 {len(issues)} 个未完成的任务...\n")

for issue in issues:
    issue_id = issue['identifier']
    status = issue['status']
    assignee_id = issue.get('assignee_id')
    assignee_type = issue.get('assignee_type')
    updated_at = datetime.fromisoformat(issue['updated_at'].replace('Z', '+00:00'))
    hours_since_update = (now - updated_at).total_seconds() / 3600
    
    # 规则1: in_review 状态必须分配给代码评审专家
    if status == 'in_review':
        if assignee_id != CODE_REVIEWER_ID:
            results['in_review_wrong_assignee'].append({
                'id': issue['id'],
                'identifier': issue_id,
                'title': issue['title'],
                'current_assignee': assignee_id,
                'assignee_type': assignee_type
            })
        else:
            results['all_good'].append(issue_id)
    
    # 规则2: todo 状态且有 assignee，检查是否超过2小时未更新
    elif status == 'todo' and assignee_id:
        if hours_since_update > 2:
            results['todo_stale'].append({
                'id': issue['id'],
                'identifier': issue_id,
                'title': issue['title'],
                'assignee_id': assignee_id,
                'assignee_type': assignee_type,
                'hours_since_update': round(hours_since_update, 1)
            })
        else:
            results['all_good'].append(issue_id)
    
    # 规则3: in_progress 状态，检查是否超过48小时未更新
    elif status == 'in_progress':
        if hours_since_update > 48:
            results['in_progress_stale'].append({
                'id': issue['id'],
                'identifier': issue_id,
                'title': issue['title'],
                'assignee_id': assignee_id,
                'assignee_type': assignee_type,
                'hours_since_update': round(hours_since_update, 1)
            })
        else:
            results['all_good'].append(issue_id)
    
    # 规则4: 任何状态但 assignee 为 null，检查是否应该有人负责
    elif not assignee_id and status in ['todo', 'in_progress', 'in_review']:
        results['missing_assignee'].append({
            'id': issue['id'],
            'identifier': issue_id,
            'title': issue['title'],
            'status': status
        })
    else:
        results['all_good'].append(issue_id)

# 输出结果
print(json.dumps(results, indent=2, ensure_ascii=False))
