#!/usr/bin/env python3
"""
重置指定选题状态为「待处理」（数据库 + JSON 备份）
"""

import sys
from pathlib import Path

PROJECT_ROOT = Path(__file__).parent.parent
sys.path.insert(0, str(PROJECT_ROOT))

try:
    from db_helper import update_topic_status, get_topic_by_id
    HAVE_DB = True
except ImportError:
    HAVE_DB = False
    print("Warning: db_helper not available, will only update JSON")

DATA_DIR = PROJECT_ROOT / "automation" / "data"
TOPICS_FILE = DATA_DIR / "sustainability_topics.json"

def reset_json_status(ids):
    try:
        with open(TOPICS_FILE, 'r', encoding='utf-8') as f:
            topics = json.load(f)
    except:
        topics = []
    updated_ids = []
    for t in topics:
        if t['id'] in ids:
            t['status'] = 'pending'
            if 'ready_at' in t:
                del t['ready_at']
            updated_ids.append(t['id'])
    with open(TOPICS_FILE, 'w', encoding='utf-8') as f:
        json.dump(topics, f, ensure_ascii=False, indent=2)
    return updated_ids

def reset_db_status(ids):
    if not HAVE_DB:
        return []
    updated = []
    for tid in ids:
        if update_topic_status(tid, 'pending'):
            updated.append(tid)
    return updated

def main():
    # 指定要重置的ID列表
    target_ids = ['D01', 'B05']  # 可修改
    print(f"正在重置选题状态: {target_ids}")

    # 更新数据库
    db_updated = reset_db_status(target_ids) if HAVE_DB else []
    if db_updated:
        print(f"[DB] 已重置: {db_updated}")
    else:
        print("[DB] 未更新或数据库不可用")

    # 更新 JSON 备份
    json_updated = reset_json_status(target_ids)
    print(f"[JSON] 已重置: {json_updated}")

    print("完成")

if __name__ == "__main__":
    import json
    main()
