import requests
from datetime import date, timedelta
from config import NAVER_CLIENT_ID, NAVER_CLIENT_SECRET, REQUEST_TIMEOUT

def get_keyword_trends(keywords):
    cleaned = []

    for kw in keywords[:5]:
        if isinstance(kw, dict):
            value = kw.get("keyword", "").strip()
        else:
            value = str(kw).strip()

        if value:
            cleaned.append(value)

    if not cleaned:
        return {"results": []}

    end_date = date.today()
    start_date = end_date - timedelta(days=30)

    body = {
        "startDate": start_date.strftime("%Y-%m-%d"),
        "endDate": end_date.strftime("%Y-%m-%d"),
        "timeUnit": "date",
        "keywordGroups": [
            {"groupName": k, "keywords": [k]}
            for k in cleaned
        ]
    }

    headers = {
        "X-Naver-Client-Id": NAVER_CLIENT_ID.strip(),
        "X-Naver-Client-Secret": NAVER_CLIENT_SECRET.strip(),
        "Content-Type": "application/json; charset=utf-8"
    }

    response = requests.post(
        "https://openapi.naver.com/v1/datalab/search",
        headers=headers,
        json=body,
        timeout=REQUEST_TIMEOUT
    )

    if response.status_code != 200:
        print("DATALAB STATUS:", response.status_code)
        print("DATALAB BODY:", response.text)

    response.raise_for_status()
    return response.json()