#!/usr/bin/env python3
"""
处理今日AI场景报告并生成
"""
import sqlite3
import json
import os
from datetime import datetime, timedelta
import hashlib

DB_PATH = "/root/.openclaw/workspace/projects/ai_usecase_collector/data/ai_usecases.db"

def get_db_connection():
    conn = sqlite3.connect(DB_PATH)
    conn.row_factory = sqlite3.Row
    return conn

def generate_id(title, source_url):
    """生成唯一ID"""
    content = f"{title}_{source_url}"
    return hashlib.md5(content.encode()).hexdigest()

def insert_scene(conn, scene_data):
    """插入或更新场景"""
    id_val = generate_id(scene_data['title'], scene_data.get('original_url', ''))
    
    now = datetime.now().isoformat()
    
    cursor = conn.cursor()
    
    # 检查是否已存在
    cursor.execute("SELECT id FROM scenes WHERE original_url = ?", (scene_data.get('original_url', ''),))
    existing = cursor.fetchone()
    
    if existing:
        # 更新
        cursor.execute("""
            UPDATE scenes SET
                title = ?,
                description = ?,
                categories = ?,
                tags = ?,
                key_technologies = ?,
                innovation_score = ?,
                llm_summary = ?,
                last_updated = ?
            WHERE original_url = ?
        """, (
            scene_data['title'],
            scene_data['description'],
            scene_data.get('categories', ''),
            scene_data.get('tags', ''),
            scene_data.get('key_technologies', ''),
            scene_data.get('innovation_score', 0),
            scene_data.get('llm_summary', ''),
            now,
            scene_data.get('original_url', '')
        ))
        print(f"✓ Updated: {scene_data['title'][:50]}...")
    else:
        # 插入新记录
        cursor.execute("""
            INSERT INTO scenes (
                id, title, description, original_url, source_platform,
                discovery_date, categories, tags, key_technologies,
                innovation_score, is_new, llm_summary, last_updated
            ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1, ?, ?)
        """, (
            id_val,
            scene_data['title'],
            scene_data['description'],
            scene_data.get('original_url', ''),
            scene_data.get('source_platform', 'web_search'),
            now,
            scene_data.get('categories', ''),
            scene_data.get('tags', ''),
            scene_data.get('key_technologies', ''),
            scene_data.get('innovation_score', 0),
            scene_data.get('llm_summary', ''),
            now
        ))
        print(f"✓ New: {scene_data['title'][:50]}...")
    
    conn.commit()
    return id_val

def log_collection(conn, source, items_found, items_new, status):
    """记录收集日志"""
    cursor = conn.cursor()
    cursor.execute("""
        INSERT INTO collection_log (run_date, source, items_found, items_new, status)
        VALUES (datetime('now'), ?, ?, ?, ?)
    """, (source, items_found, items_new, status))
    conn.commit()

def get_recent_scenes(conn, days=7, limit=20):
    """获取最近的新场景"""
    cursor = conn.cursor()
    since = (datetime.now() - timedelta(days=days)).isoformat()
    cursor.execute("""
        SELECT * FROM scenes
        WHERE discovery_date >= ?
        ORDER BY discovery_date DESC, innovation_score DESC
        LIMIT ?
    """, (since, limit))
    return cursor.fetchall()

def get_trending_categories(conn):
    """获取热门分类"""
    cursor = conn.cursor()
    cursor.execute("""
        SELECT categories, COUNT(*) as count
        FROM scenes
        WHERE discovery_date >= date('now', '-30 days')
        GROUP BY categories
        ORDER BY count DESC
        LIMIT 10
    """)
    return cursor.fetchall()

def get_high_innovation_scenes(conn, limit=10):
    """获取高创新分数的场景"""
    cursor = conn.cursor()
    cursor.execute("""
        SELECT * FROM scenes
        ORDER BY innovation_score DESC, discovery_date DESC
        LIMIT ?
    """, (limit,))
    return cursor.fetchall()

def main():
    conn = get_db_connection()
    
    # 从搜索结果中提取的场景数据
    new_scenes = [
        # 从 Kore.ai Healthcare 文章
        {
            'title': 'Healthcare Employee Self-Service and Internal Support',
            'description': 'AI agents handle internal requests from HR, IT, billing, and operations teams. Instead of just logging tickets, agents retrieve encounter details, cross-check payer requirements, identify missing information, initiate corrections, and track issues to resolution.',
            'original_url': 'https://www.kore.ai/blog/ai-agents-in-healthcare-12-real-world-use-cases-2026',
            'source_platform': 'kore.ai',
            'categories': 'healthcare,enterprise_automation',
            'tags': 'employee_support,ticket_automation,hr_it',
            'key_technologies': 'agentic_ai,multi_agent,rpa_integration',
            'innovation_score': 8,
            'llm_summary': 'AI agents automate internal support workflows by retrieving context from multiple systems, taking action, and tracking resolution.'
        },
        {
            'title': 'Clinical Documentation Automation in Healthcare',
            'description': 'AI agents listen to patient consultations with consent, capture clinically relevant details, structure content to align with documentation standards, update EHR fields automatically, and check for missing elements before notes are finalized.',
            'original_url': 'https://www.kore.ai/blog/ai-agents-in-healthcare-12-real-world-use-cases-2026',
            'source_platform': 'kore.ai',
            'categories': 'healthcare,clinical_support',
            'tags': 'documentation,ehr_integration,voice_capture',
            'key_technologies': 'asr,nlp,ehr_integration',
            'innovation_score': 9,
            'llm_summary': 'AI agents transform documentation from retrospective task to real-time workflow, capturing clinical details during consultations and auto-updating EHRs.'
        },
        {
            'title': 'Healthcare Claims Management and Denial Reduction',
            'description': 'AI agents pull encounter details from EHR, review coding and documentation, check payer requirements, identify missing information, route corrections, track claim status, and act on denials automatically.',
            'original_url': 'https://www.kore.ai/blog/ai-agents-in-healthcare-12-real-world-use-cases-2026',
            'source_platform': 'kore.ai',
            'categories': 'healthcare,financial_operations',
            'tags': 'claims_management,denial_prevention,revenue_cycle',
            'key_technologies': 'agentic_ai,rule_engine,predictive_analytics',
            'innovation_score': 9,
            'llm_summary': 'AI-driven claims workflows see denial rates drop by up to 40% through automated review and correction.'
        },
        {
            'title': 'Patient Scheduling and Intake Automation',
            'description': 'AI agents treat scheduling and intake as single connected workflow, checking provider availability, confirming eligibility, booking visits, collecting intake information ahead of time, and handling rescheduling automatically.',
            'original_url': 'https://www.kore.ai/blog/ai-agents-in-healthcare-12-real-world-use-cases-2026',
            'source_platform': 'kore.ai',
            'categories': 'healthcare,patient_experience',
            'tags': 'scheduling,intake,patient_journey',
            'key_technologies': 'agentic_ai,calendar_integration,forms_automation',
            'innovation_score': 7,
            'llm_summary': 'AI agents reduce front-desk workload and improve patient preparation by automating scheduling and intake.'
        },
        {
            'title': 'Care Team Coordination and Handoffs',
            'description': 'AI agents track discharge orders in real time, check appointment availability, schedule follow-ups, verify discharge documentation, prescriptions, and referral notes are complete, and flag missing information.',
            'original_url': 'https://www.kore.ai/blog/ai-agents-in-healthcare-12-real-world-use-cases-2026',
            'source_platform': 'kore.ai',
            'categories': 'healthcare,patient_care',
            'tags': 'care_coordination,handoffs,discharge',
            'key_technologies': 'agentic_ai,multi_agent,workflow_automation',
            'innovation_score': 8,
            'llm_summary': 'AI agents reduce stalled handoffs and improve patient continuity by automating care coordination.'
        },
        
        {
            'title': 'Multi-Agent Research Assistant',
            'description': 'Combines retrieval agents, analysis agents, and synthesis agents to help users quickly understand complex topics by pulling insights from diverse sources and synthesizing comprehensive reports.',
            'original_url': 'https://www.databricks.com/blog/ai-agent-examples-shaping-business-landscape',
            'source_platform': 'databricks',
            'categories': 'research,knowledge_management',
            'tags': 'multi_agent,retrieval,synthesis',
            'key_technologies': 'rag,llm,multi_agent_orchestration',
            'innovation_score': 9,
            'llm_summary': 'Multi-agent systems enable comprehensive research by combining retrieval, analysis, and synthesis capabilities.'
        },
        {
            'title': 'Utility-Based Trading Agents',
            'description': 'Evaluate market conditions, assess future consequences of trades, and execute strategies that maximize returns while managing risk exposure by balancing multiple competing objectives.',
            'original_url': 'https://www.databricks.com/blog/ai-agent-examples-shaping-business-landscape',
            'source_platform': 'databricks',
            'categories': 'finance,trading',
            'tags': 'trading,risk_management,utility_optimization',
            'key_technologies': 'utility_agent,real_time_analysis,ml',
            'innovation_score': 8,
            'llm_summary': 'Utility-based trading agents optimize decisions by balancing return potential, risk, and regulatory requirements.'
        },
        {
            'title': 'Personalized Content Creation Agent',
            'description': 'Learning agents adapt to individual user preferences, writing styles, and information needs, delivering increasingly relevant outputs through continuous refinement for research and content tasks.',
            'original_url': 'https://www.databricks.com/blog/ai-agent-examples-shaping-business-landscape',
            'source_platform': 'databricks',
            'categories': 'content_creation,marketing',
            'tags': 'personalization,content_generation,learning',
            'key_technologies': 'llm,learning_agent,user_profiling',
            'innovation_score': 8,
            'llm_summary': 'AI agents deliver personalized content by adapting to user preferences and refining outputs over time.'
        },
        
        # 从 InData Labs
        {
            'title': 'Diagnostic Support for Clinicians',
            'description': 'AI agents analyze patient data including history, symptoms, and lab results to formulate diagnostic hypotheses and treatment recommendations, helping clinicians make faster, sound decisions.',
            'original_url': 'https://indatalabs.com/blog/ai-agent-useful-case-studies',
            'source_platform': 'indatalabs',
            'categories': 'healthcare,diagnostic',
            'tags': 'diagnosis,decision_support,clinical_ai',
            'key_technologies': 'ml,predictive_analytics,clinical_nlp',
            'innovation_score': 9,
            'llm_summary': 'AI agents support clinical decision-making by analyzing patient data and recommending treatments.'
        },
        {
            'title': 'Personalized Patient Monitoring and Intervention',
            'description': 'AI constantly monitors patients with chronic diagnoses via wearable devices, identifying risks, coordinating follow-up appointments, notifying patients and providers, and adjusting prescriptions within approved parameters.',
            'original_url': 'https://indatalabs.com/blog/ai-agent-useful-case-studies',
            'source_platform': 'indatalabs',
            'categories': 'healthcare,remote_monitoring',
            'tags': 'remote_monitoring,chronic_care,wearable_integration',
            'key_technologies': 'iot_integration,predictive_analytics,ml',
            'innovation_score': 9,
            'llm_summary': 'AI agents enable proactive chronic disease management through wearable monitoring and automated interventions.'
        },
        {
            'title': 'Intelligent Supply Chain Risk Management',
            'description': 'AI agents track operational data, analyze environment to find difficulties like geopolitical events or natural disasters, elaborate mitigation strategies, immediately adjust delivery routes, find alternative suppliers.',
            'original_url': 'https://indatalabs.com/blog/ai-agent-useful-case-studies',
            'source_platform': 'indatalabs',
            'categories': 'supply_chain,risk_management',
            'tags': 'risk_management,supply_resilience,logistics',
            'key_technologies': 'predictive_analytics,ml,real_time_monitoring',
            'innovation_score': 8,
            'llm_summary': 'AI agents proactively manage supply chain risks by analyzing conditions and adjusting operations.'
        },
        {
            'title': 'Agentic Marketing Campaign Automation',
            'description': 'AI agents autonomously perform communication and promotional processes including updating ad performance in real time, personalizing content, building audience segments, and handling campaigns with minimal human input.',
            'original_url': 'https://indatalabs.com/blog/ai-agent-useful-case-studies',
            'source_platform': 'indatalabs',
            'categories': 'marketing,advertising',
            'tags': 'campaign_automation,real_time_optimization,segmentation',
            'key_technologies': 'agentic_ai,real_time_analytics,personalization',
            'innovation_score': 8,
            'llm_summary': 'Agentic AI automates marketing campaigns with real-time performance updates and autonomous optimization.'
        },
        
        # 从 Aisera
        {
            'title': 'Fraud Detection Agent',
            'description': 'AI agents check up to 5,000 transaction details in milliseconds, looking for unusual patterns to spot fraud quickly and accurately, protecting people and banks from scams.',
            'original_url': 'https://aisera.com/blog/ai-agents-examples',
            'source_platform': 'aisera',
            'categories': 'finance,security',
            'tags': 'fraud_detection,security,transaction_monitoring',
            'key_technologies': 'ml,pattern_recognition,real_time_processing',
            'innovation_score': 8,
            'llm_summary': 'AI agents detect fraud by analyzing thousands of transaction points in milliseconds.'
        },
        {
            'title': 'HR Onboarding and Access Provisioning',
            'description': 'New hires get automated checklists, training modules, and system access in hours not days. Agents talk to identity management systems to grant or revoke access as roles change.',
            'original_url': 'https://aisera.com/blog/ai-agents-examples',
            'source_platform': 'aisera',
            'categories': 'hr,employee_experience',
            'tags': 'onboarding,access_management,provisioning',
            'key_technologies': 'workflow_automation,identity_management,agentic_ai',
            'innovation_score': 7,
            'llm_summary': 'AI agents automate HR onboarding, reducing onboarding time from days to hours.'
        },
        {
            'title': 'Sales Prospecting and Lead Enrichment',
            'description': 'Agents scan public data, enrich leads with firmographics and surface high intent prospects. Contact records are updated automatically with titles, company size, and engagement scores.',
            'original_url': 'https://aisera.com/blog/ai-agents-examples',
            'source_platform': 'aisera',
            'categories': 'sales,crm',
            'tags': 'prospecting,lead_enrichment,automation',
            'key_technologies': 'data_enrichment,web_scraping,crm_integration',
            'innovation_score': 7,
            'llm_summary': 'AI agents automate sales prospecting by enriching leads and identifying high-intent prospects.'
        },
        {
            'title': 'Predictive Maintenance for Manufacturing',
            'description': 'AI agents analyze sensor data to predict when equipment will need fixing, using internal models to compare against equipment behavior patterns and anticipate failures before they occur.',
            'original_url': 'https://aisera.com/blog/ai-agents-examples',
            'source_platform': 'aisera',
            'categories': 'manufacturing,maintenance',
            'tags': 'predictive_maintenance,iot,quality_control',
            'key_technologies': 'iot,ml,predictive_analytics',
            'innovation_score': 8,
            'llm_summary': 'AI agents predict equipment failures with high accuracy, reducing downtime and maintenance costs.'
        },
        {
            'title': 'E-commerce Order Placement and Tracking',
            'description': 'AI agents autonomously place orders and provide tracking updates, improving shopping experience and keeping customers informed throughout the purchase journey.',
            'original_url': 'https://aisera.com/blog/ai-agents-examples',
            'source_platform': 'aisera',
            'categories': 'ecommerce,order_management',
            'tags': 'order_automation,tracking,customer_experience',
            'key_technologies': 'agentic_ai,ecommerce_integration,automation',
            'innovation_score': 7,
            'llm_summary': 'AI agents automate e-commerce tasks from order placement to tracking, enhancing customer experience.'
        },
        {
            'title': 'Autonomous Vehicle Hierarchical Agents',
            'description': 'Self-driving cars use hierarchical agent systems with perception stacks processing sensor data, utility-based planning weighing safety and efficiency, and execution agents translating plans into vehicle commands.',
            'original_url': 'https://aisera.com/blog/ai-agents-examples',
            'source_platform': 'aisera',
            'categories': 'autonomous_vehicles,robotics',
            'tags': 'autonomous_driving,hierarchical_agents,safety',
            'key_technologies': 'computer_vision,control_systems,ml',
            'innovation_score': 10,
            'llm_summary': 'Hierarchical agent systems enable autonomous driving through perception, planning, and execution layers.'
        },
    ]
    
    items_found = len(new_scenes)
    items_new = 0
    
    print(f"\n📊 Processing {items_found} scenes...")
    print("=" * 60)
    
    for scene in new_scenes:
        cursor = conn.cursor()
        cursor.execute("SELECT id FROM scenes WHERE original_url = ?", (scene.get('original_url', ''),))
        existing = cursor.fetchone()
        
        insert_scene(conn, scene)
        
        if not existing:
            items_new += 1
    
    # 记录收集日志
    log_collection(conn, 'daily_report', items_found, items_new, 'completed')
    
    print(f"\n✅ Collection complete: {items_found} found, {items_new} new")
    
    conn.close()

if __name__ == '__main__':
    main()
