import axios from "axios";

import { getIMToken } from "@/utils/storage";

// RTC（音视频通话）令牌改由自研账号服务签发（原 OpenIM chat 服务 :10008 已下线）。
// 账号服务 /api/rtc_token 用登录拿到的 IM token 鉴权（Authorization: Bearer），
// 返回形状保持 { data: { serverUrl, token } }，RtcCallModal 调用处无需改动。
export const getRtcConnectData = async (room: string, identity: string) => {
  const imToken = await getIMToken();
  if (!imToken) {
    return Promise.reject(new Error("登录已过期，请重新登录"));
  }
  const { data: res } = await axios.post<{
    code: number;
    msg: string;
    data: { token: string };
  }>(
    `${import.meta.env.VITE_ACCOUNT_URL}/api/rtc_token`,
    { room, identity },
    { headers: { Authorization: `Bearer ${imToken}` } },
  );
  if (res.code !== 0) {
    return Promise.reject(new Error(res.msg || "获取通话令牌失败"));
  }
  return {
    data: {
      serverUrl: import.meta.env.VITE_LIVEKIT_URL as string,
      token: res.data.token,
    },
  };
};
