"""
端到端测试：审批消息发送到个人和项目群
验证配置：个人（ou_498988d823b61ab89c9afe4310f85bb4）+ 项目群（oc_7940ec97cde40b245cff9cb606ff1ac7）
"""
import sys
from pathlib import Path

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

from dotenv import load_dotenv
load_dotenv()

from agent.tools.builtin.feishu.feishu_client import FeishuClient
from config import (
    FEISHU_APP_ID,
    FEISHU_APP_SECRET,
    FEISHU_OPERATOR_OPEN_ID,
    FEISHU_AD_PROJECT_CHAT_ID
)

print("=" * 70)
print("端到端测试：审批消息发送验证")
print("=" * 70)
print()
print(f"飞书应用 ID: {FEISHU_APP_ID}")
print(f"个人 Open ID: {FEISHU_OPERATOR_OPEN_ID}")
print(f"项目群聊 ID: {FEISHU_AD_PROJECT_CHAT_ID}")
print()

# 检查配置
if not FEISHU_OPERATOR_OPEN_ID:
    print("❌ 错误：FEISHU_OPERATOR_OPEN_ID 未配置")
    sys.exit(1)

if not FEISHU_AD_PROJECT_CHAT_ID:
    print("❌ 错误：FEISHU_AD_PROJECT_CHAT_ID 未配置")
    sys.exit(1)

client = FeishuClient(
    app_id=FEISHU_APP_ID,
    app_secret=FEISHU_APP_SECRET
)

# 模拟审批消息
test_message = """📋 **广告调控决策审批（测试）**

请求ID: test_e2e_20260418_001
时间: 2026-04-18 00:30

🔶 待审批操作（3 个）：
----------------------------------------
  ⏸️  暂停: 1 个
  ⬇️  降价: 2 个

前 3 个示例：
1. 广告 ID: 12345 | R500_test_ad_1 | 操作: pause
   理由: 动态ROI为1.5，低于R500组中位数30%

2. 广告 ID: 12346 | R500_test_ad_2 | 操作: bid_down 3%
   理由: 动态ROI为2.2，低于R500组中位数11%

3. 广告 ID: 12347 | R330_test_ad_1 | 操作: bid_down 5%
   理由: 动态ROI为1.8，低于R330组中位数15%

---
💬 **请回复以下内容进行审批**：
  - 回复 "通过" → 批准所有操作
  - 回复 "拒绝" → 拒绝所有操作
  - 回复 "广告12345不要暂停" → 修改决策

📊 详细报表将随后发送（Excel在线表格）
"""

print("测试 1/2：发送消息到个人")
print("-" * 70)
try:
    result_personal = client.send_message(to=FEISHU_OPERATOR_OPEN_ID, text=test_message)
    print("✅ 发送成功！")
    print(f"   消息 ID: {result_personal.message_id}")
    print(f"   接收者: {FEISHU_OPERATOR_OPEN_ID}")
    print()
except Exception as e:
    print(f"❌ 发送失败: {e}")
    print()

print("测试 2/2：发送消息到项目群聊")
print("-" * 70)
try:
    result_group = client.send_message(to=FEISHU_AD_PROJECT_CHAT_ID, text=test_message)
    print("✅ 发送成功！")
    print(f"   消息 ID: {result_group.message_id}")
    print(f"   群聊 ID: {result_group.chat_id}")
    print()
except Exception as e:
    print(f"❌ 发送失败: {e}")
    print()

print("=" * 70)
print("验证步骤：")
print("=" * 70)
print()
print("1️⃣  检查个人飞书消息，应该收到上述测试消息")
print("2️⃣  检查项目群聊，应该收到相同的测试消息")
print("3️⃣  在任一位置回复'通过'或'拒绝'，系统应能识别")
print()
print("如果两处都收到消息，说明配置成功！✅")
print()
