import requests
from typing import List, Dict, Any
from mcp_base import MCPBase

class CourseraMCP(MCPBase):
    def __init__(self):
        self.api_key = "YOUR_COURSERA_API_KEY"  # Replace with your actual Coursera API key
        self.base_url = "https://api.coursera.org/api/courses.v1"

    def fetch_courses(self, user_skills: List[Dict], skill_gaps: List[Dict], max_results: int = 10) -> List[Dict[str, Any]]:
        """Fetch courses from Coursera API with targeted search."""
        query_terms = [gap['skill_name'].lower() for gap in skill_gaps[:3]]
        query = f"management {' '.join(query_terms)} course tutorial training"

        endpoint = f"{self.base_url}"
        params = {
            "q": "search",
            "query": query,
            "fields": "elements.courseId,elements.name,elements.partners.v1.name,elements.description",
            "limit": max_results
        }

        try:
            response = requests.get(endpoint, params=params)
            if response.status_code == 200:
                return response.json().get("elements", [])
            return []
        except Exception as e:
            print(f"Error fetching Coursera courses: {str(e)}")
            return []
