#!/usr/bin/env python3
"""
測試通知範例 - 發送所有通知類型的範例到 Telegram 和 Line
讓用戶可以看到實際通知效果並決定是否需要調整
"""
import sys
import os
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))

from services.notification_manager import NotificationManager
from datetime import datetime

def send_notification_samples():
    """發送所有通知範例"""
    notifier = NotificationManager()

    print("=" * 60)
    print("📱 開始發送通知範例...")
    print("=" * 60)

    # 1. 商品看板爬蟲更新通知
    print("\n1. 發送商品看板爬蟲更新通知...")
    momo_message = (
        "🛍️ 商品看板 更新通知 (2026-01-13 18:30)\n"
        "詳細數據請參閱儀表板: https://mo.wooo.work\n"
        "=========================\n"
        "📈 本日異動摘要：\n"
        "  - ▲ 漲價商品: 217 件\n"
        "  - ▼ 跌價商品: 217 件\n"
        "  - 🟢 新上架: 2 件\n"
        "  - 總處理分類: 85 個\n"
        "  - 總價格記錄: 4,358 筆"
    )
    notifier._send_line_messages([momo_message])
    notifier._send_telegram_messages([momo_message])
    print("   ✅ 已發送")

    # 2. EDM 限時搶購更新通知
    print("\n2. 發送 EDM 限時搶購更新通知...")
    edm_message = (
        "📊 🔥 限時搶購 更新通知 (2026-01-13 16:19)\n"
        "完整內容請看：\n"
        "==================================\n"
        "https://mo.wooo.work/edm\n"
        "==================================\n\n"
        "✨ 本輪重點摘要：\n"
        "  - 🟢 新增商品: 10 件\n"
        "  - 📉 價格下跌: 8 件\n"
        "  - ℹ️ 資訊更新: 15 件\n"
        "  - 🗑️ 商品下架: 5 件\n\n"
        "--- 📉 價格下跌範例 ---\n\n"
        "Apple iPhone 15 Pro Max 256GB\n"
        "💰 $35,900 (▼ 原 $39,900)\n\n"
        "Sony WH-1000XM5 無線降噪耳機\n"
        "💰 $8,990 (▼ 原 $10,900)"
    )
    notifier._send_line_messages([edm_message])
    notifier._send_telegram_messages([edm_message])
    print("   ✅ 已發送")

    # 3. 購物節活動更新通知
    print("\n3. 發送購物節活動更新通知...")
    festival_message = (
        "📊 🎉 1.1狂歡購物節 更新通知 (2026-01-13 19:00)\n"
        "完整內容請看：\n"
        "==================================\n"
        "https://mo.wooo.work/edm\n"
        "==================================\n\n"
        "✨ 本輪重點摘要：\n"
        "  - 🟢 新增商品: 25 件\n"
        "  - 📉 價格下跌: 12 件\n"
        "  - 📈 價格上漲: 5 件\n"
        "  - ℹ️ 資訊更新: 8 件\n"
        "  - ⏳ 時段結束: 5 件"
    )
    notifier._send_line_messages([festival_message])
    notifier._send_telegram_messages([festival_message])
    print("   ✅ 已發送")

    # 4. Google Drive 自動匯入成功通知
    print("\n4. 發送 Google Drive 自動匯入成功通知...")
    import_success_message = (
        "📊 當日業績自動匯入通知 (2026-01-13 14:30)\n"
        "==============================\n"
        "✅ 匯入狀態：成功\n"
        "📁 處理檔案數：2 個\n"
        "📝 匯入記錄數：1,245 筆\n"
        "📌 訊息：成功匯入 2 個檔案\n"
        "==============================\n"
        "詳細資料請至系統查看"
    )
    notifier._send_line_messages([import_success_message])
    notifier._send_telegram_messages([import_success_message])
    print("   ✅ 已發送")

    # 5. Google Drive 自動匯入失敗通知
    print("\n5. 發送 Google Drive 自動匯入失敗通知...")
    import_fail_message = (
        "⚠️ 當日業績自動匯入失敗 (2026-01-13 14:30)\n"
        "==============================\n"
        "❌ 匯入狀態：失敗\n"
        "📌 錯誤訊息：Google Drive 連線超時\n"
        "==============================\n"
        "請檢查 Google Drive 設定或手動匯入"
    )
    notifier._send_line_messages([import_fail_message])
    notifier._send_telegram_messages([import_fail_message])
    print("   ✅ 已發送")

    print("\n" + "=" * 60)
    print("✅ 已完成的通知範例發送完畢！")
    print("=" * 60)
    print("\n請檢查您的 Telegram 和 Line，查看通知效果。")
    print("\n接下來將發送「建議添加的通知」範例...")
    print("=" * 60)

    # 6. 廠商缺貨郵件發送通知（建議添加）
    print("\n6. 發送廠商缺貨郵件發送通知（建議）...")
    vendor_email_message = (
        "📧 廠商缺貨通知郵件發送報告 (2026-01-13 10:00)\n"
        "==============================\n"
        "✅ 發送狀態：完成\n"
        "📊 總計：\n"
        "  - 成功發送：15 個廠商\n"
        "  - 失敗：2 個廠商\n"
        "  - 缺貨商品總數：87 件\n"
        "==============================\n\n"
        "✅ 成功發送廠商（前3名）：\n"
        "  - 台灣三星電子（15件）\n"
        "  - 華碩電腦（12件）\n"
        "  - 微星科技（8件）\n\n"
        "❌ 失敗廠商：\n"
        "  - 廠商A（未設定郵件）\n"
        "  - 廠商B（郵件發送失敗）"
    )
    notifier._send_line_messages([vendor_email_message])
    notifier._send_telegram_messages([vendor_email_message])
    print("   ✅ 已發送")

    # 7. 系統錯誤警報通知（建議添加）
    print("\n7. 發送系統錯誤警報通知（建議）...")
    error_alert_message = (
        "🚨 系統錯誤警報 (2026-01-13 15:30)\n"
        "==============================\n"
        "❌ 錯誤類型：爬蟲連續失敗\n"
        "📌 詳細資訊：\n"
        "  - EDM 爬蟲已連續失敗 3 次\n"
        "  - 最後錯誤：網頁載入超時\n"
        "  - 時間：15:15, 15:20, 15:25\n"
        "==============================\n"
        "⚠️ 請立即檢查系統狀態"
    )
    notifier._send_line_messages([error_alert_message])
    notifier._send_telegram_messages([error_alert_message])
    print("   ✅ 已發送")

    # 8. 備份完成通知（建議添加）
    print("\n8. 發送備份完成通知（建議）...")
    backup_message = (
        "💾 系統備份完成通知 (2026-01-13 02:00)\n"
        "==============================\n"
        "✅ 備份狀態：成功\n"
        "📁 備份檔案：momo_pro_system_backup_20260113_020000_V9.4.zip\n"
        "📦 檔案大小：261 MB\n"
        "⏱️ 備份時間：35 秒\n"
        "📍 備份位置：/backups/\n"
        "=============================="
    )
    notifier._send_line_messages([backup_message])
    notifier._send_telegram_messages([backup_message])
    print("   ✅ 已發送")

    # 9. 手動匯入完成通知（建議添加）
    print("\n9. 發送手動匯入完成通知（建議）...")
    manual_import_message = (
        "📊 手動業績匯入通知 (2026-01-13 16:45)\n"
        "==============================\n"
        "✅ 匯入狀態：成功\n"
        "👤 操作者：管理員\n"
        "📁 檔案名稱：即時業績_當日_20260113.xlsx\n"
        "📝 匯入記錄數：1,458 筆\n"
        "⏱️ 處理時間：2.3 秒\n"
        "=============================="
    )
    notifier._send_line_messages([manual_import_message])
    notifier._send_telegram_messages([manual_import_message])
    print("   ✅ 已發送")

    # 10. 每日系統健康報告（建議添加 - 可選）
    print("\n10. 發送每日系統健康報告（建議 - 可選）...")
    daily_health_message = (
        "📊 每日系統健康報告 (2026-01-13 08:00)\n"
        "==============================\n"
        "✅ 系統狀態：正常運行\n\n"
        "📈 昨日統計：\n"
        "  - 商品爬蟲：執行 24 次，成功 24 次\n"
        "  - EDM 爬蟲：執行 24 次，成功 23 次\n"
        "  - 自動匯入：執行 48 次，成功 3 次\n\n"
        "💾 資料庫狀態：\n"
        "  - 資料庫大小：574 MB\n"
        "  - 商品記錄：286,787 筆\n"
        "  - 價格記錄：1,245,678 筆\n\n"
        "💻 服務器狀態：\n"
        "  - 記憶體使用：1.6GB / 7.8GB (20%)\n"
        "  - 磁碟使用：9.9GB / 20GB (52%)\n"
        "  - CPU 使用率：12%\n"
        "=============================="
    )
    notifier._send_line_messages([daily_health_message])
    notifier._send_telegram_messages([daily_health_message])
    print("   ✅ 已發送")

    print("\n" + "=" * 60)
    print("🎉 所有通知範例已發送完畢！")
    print("=" * 60)
    print("\n請檢查您的 Telegram 和 Line 收到的通知。")
    print("\n討論要點：")
    print("1. 通知內容長度是否合適？")
    print("2. 格式是否易讀？")
    print("3. Emoji 使用是否恰當？")
    print("4. 哪些通知是必要的？哪些可以省略？")
    print("5. 是否需要縮減或調整某些通知的內容？")
    print("\n等待您的反饋... 😊")

if __name__ == "__main__":
    send_notification_samples()
