#!/bin/bash
# 省份调研脚本 - 逐个省份执行调研任务
# 使用 OpenClaw message API 与主 Agent 通信

set -e

WORKSPACE="/root/.openclaw/workspace/travel"
WIKI_DIR="$WORKSPACE/wiki"
PROGRESS_DIR="$WORKSPACE/.research_progress"
LOG_FILE="$WORKSPACE/research.log"

# 创建进度目录
mkdir -p "$PROGRESS_DIR"

# 日志函数
log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
}

# 调研省份列表（按优先级）
PROVINCES=(
    "河北"
    "陕西"
    "浙江"
    "山东"
    "江苏"
    "广东"
)

# 检查省份是否已完成
is_completed() {
    local province=$1
    [ -f "$PROGRESS_DIR/${province}_completed.json" ]
}

# 标记省份为进行中
mark_in_progress() {
    local province=$1
    echo "{\"province\":\"$province\",\"status\":\"in_progress\",\"start_time\":\"$(date -Iseconds)\"}" > "$PROGRESS_DIR/${province}_in_progress.json"
    log "📊 开始调研：$province"
}

# 标记省份为已完成
mark_completed() {
    local province=$1
    local count=$2
    local issues=$3

    # 删除进行中标记
    rm -f "$PROGRESS_DIR/${province}_in_progress.json"

    # 创建完成标记
    cat > "$PROGRESS_DIR/${province}_completed.json" << EOF
{
  "province": "$province",
  "status": "completed",
  "completion_time": "$(date -Iseconds)",
  "attractions_count": $count,
  "issues": "$issues"
}
EOF

    log "✅ 完成调研：$province（$count 个景点）"

    # 创建通知文件（供 heartbeat 检查）
    echo "{\"province\":\"$province\",\"count\":$count,\"time\":\"$(date '+%Y-%m-%d %H:%M:%S')\"}" > "$PROGRESS_DIR/.notification"
}

# 主调研循环
log "========== 省份调研任务开始 =========="

for province in "${PROVINCES[@]}"; do
    # 检查是否已完成
    if is_completed "$province"; then
        log "⏭️  跳过已完成的省份：$province"
        continue
    fi

    # 标记为进行中
    mark_in_progress "$province"

    # 这里需要调用实际的调研逻辑
    # 由于 bash 脚本无法直接调用 OpenClaw，这里只是创建标记
    # 实际调研需要通过 message 发送指令给主 Agent

    # 休息一段时间（避免过快执行）
    sleep 300  # 5分钟

    # 标记为已完成（示例）
    mark_completed "$province" 50 "无"

    # 休息一段时间再开始下一个
    sleep 60
done

log "========== 省份调研任务完成 =========="
