"""
Script to add the 10 UMP innovation ideas to the vector database
"""
import asyncio
import sys
from pathlib import Path

# Add parent directory to path
sys.path.insert(0, str(Path(__file__).parent.parent))

from src.infrastructure.vector_db.qdrant_service import get_qdrant_service

UMP_IDEAS = [
    {
        "title": "Nền tảng Trợ lý AI học tập lâm sàng (Clinical AI Tutor)",
        "description": "Ứng dụng AI đóng vai trò trợ giảng cho sinh viên y, hỗ trợ phân tích ca bệnh giả lập, giải thích cận lâm sàng, và gợi ý chẩn đoán theo phác đồ Việt Nam.",
        "category": "Giáo dục - AI"
    },
    {
        "title": "Hệ thống bệnh án điện tử học thuật (Academic EMR Sandbox)",
        "description": "Môi trường EMR mô phỏng cho đào tạo và nghiên cứu, cho phép sinh viên và giảng viên thực hành nhập – phân tích – khai thác dữ liệu y khoa mà không ảnh hưởng dữ liệu bệnh nhân thật.",
        "category": "Giáo dục - Chuyển đổi số"
    },
    {
        "title": "Trung tâm mô phỏng y khoa bằng AR/VR & Digital Twin",
        "description": "Xây dựng phòng lab mô phỏng phẫu thuật, cấp cứu, và quy trình điều trị bằng AR/VR, kết hợp mô hình \"digital twin\" của cơ thể người phục vụ đào tạo nâng cao.",
        "category": "Giáo dục - AR/VR"
    },
    {
        "title": "Chương trình Y tế cộng đồng số cho vùng sâu vùng xa",
        "description": "Kết hợp telehealth, trợ lý ảo y tế (agentic care) và AI sàng lọc sớm bệnh không lây (NCD) cho người dân vùng nông thôn, miền núi và hải đảo.",
        "category": "Tác động xã hội - Telehealth"
    },
    {
        "title": "Nền tảng nghiên cứu AI y sinh dùng chung (UMP AI Research Hub)",
        "description": "Cung cấp hạ tầng GPU, kho dữ liệu y khoa ẩn danh, và công cụ phân tích AI cho giảng viên – nghiên cứu sinh – startup hợp tác nghiên cứu.",
        "category": "Nghiên cứu - AI"
    },
    {
        "title": "Hệ thống theo dõi và dự báo sức khỏe sinh viên & nhân viên y tế",
        "description": "Ứng dụng phân tích dữ liệu và AI để phát hiện sớm stress, burnout, và vấn đề sức khỏe tâm thần trong cộng đồng sinh viên và nhân viên y tế.",
        "category": "Tác động xã hội - Sức khỏe"
    },
    {
        "title": "Vườn ươm khởi nghiệp công nghệ y sinh (MedTech Incubator)",
        "description": "Hỗ trợ sinh viên, bác sĩ và giảng viên phát triển startup MedTech, HealthTech, AI y tế thông qua mentoring, quỹ seed và kết nối bệnh viện – doanh nghiệp.",
        "category": "Khởi nghiệp - MedTech"
    },
    {
        "title": "Hệ thống quản lý chất lượng đào tạo và kiểm định số",
        "description": "Số hóa toàn bộ quy trình đảm bảo chất lượng nội bộ (IQA), đánh giá chương trình đào tạo, và chuẩn hóa theo tiêu chuẩn quốc tế (WFME, AUN-QA).",
        "category": "Giáo dục - Quản lý chất lượng"
    },
    {
        "title": "Nền tảng dữ liệu lớn phòng chống dịch và bệnh không lây",
        "description": "Phân tích dữ liệu dịch tễ, môi trường, và hành vi để dự báo dịch bệnh, hỗ trợ Sở Y tế và Bộ Y tế trong ra quyết định chính sách.",
        "category": "Nghiên cứu - Dịch tễ học"
    },
    {
        "title": "Học viện Y học chính xác & Y học cá thể hóa",
        "description": "Kết hợp dữ liệu gen, hình ảnh y khoa, lối sống và AI để nghiên cứu và ứng dụng điều trị cá thể hóa cho bệnh ung thư, tim mạch và bệnh mạn tính.",
        "category": "Nghiên cứu - Y học chính xác"
    }
]

async def main():
    """Add all UMP ideas to the database"""
    print("Initializing Qdrant service...")
    qdrant_service = get_qdrant_service()
    
    print("Initializing collection...")
    await qdrant_service.initialize_collection()
    
    print(f"Adding {len(UMP_IDEAS)} ideas to the database...")
    results = []
    for i, idea in enumerate(UMP_IDEAS, 1):
        try:
            print(f"Adding idea {i}/{len(UMP_IDEAS)}: {idea['title']}")
            result = await qdrant_service.add_idea(
                title=idea['title'],
                description=idea['description'],
                category=idea['category']
            )
            results.append(result)
            print(f"✓ Added: {result['id']}")
        except Exception as e:
            print(f"✗ Error adding idea {i}: {e}")
    
    print(f"\n✓ Successfully added {len(results)}/{len(UMP_IDEAS)} ideas")
    return results

if __name__ == "__main__":
    asyncio.run(main())
