import logging
import requests

from enterprise_ai.core.service_config import resolve_service_url, resolve_timeout

logger = logging.getLogger(__name__)


def call_chatbot(_capability_code: str, input_data: dict, _file=None, _prompt_template=None, _model_config=None):

    BASE_URL = resolve_service_url("CHATBOT_AGENT_URL", agent="chatbot")

    session_id = input_data.get("session_id")
    content = input_data.get("message") or input_data.get("text", "")
    login = input_data.get("_login", "")
    headers = {"Login": login}

    if session_id:
        url = f"{BASE_URL}/gbaiapi/thread_chat"
        payload = {"content": content, "thread_id": session_id}
    else:
        url = f"{BASE_URL}/gbaiapi/chat"
        payload = {"content": content}

    response = requests.post(
        url, json=payload, headers=headers,
        timeout=resolve_timeout("CHATBOT_AGENT_TIMEOUT", 120),
    )

    if not response.ok:
        logger.error("Chatbot error %d: %s", response.status_code, response.text)

    response.raise_for_status()
    return response.json()


def handle_request(capability_code, input_data, file=None, prompt_template=None, model_config=None):
    return call_chatbot(capability_code, input_data, file, prompt_template, model_config)
