import { GET, POST, PUT, DELETE } from "./http";
import type { VqdPollingBaseRes, VqdPollingRes, VqdPollingConf, CreateVqdPollingReq, UpdateVqdPollingReq, VqdPollingDetailRes, VqdPollingReq, ChannelPollingRes, ChannelPollingReq } from "../types/vqdpolling";

/**
 * 获取列表
 * @returns 列表
 */
export async function GetVqdPolling(data: VqdPollingReq) {
  return await GET<VqdPollingRes>(`/polling`, data);
}

// 获取通道列表
export const getChannels = "GetChannels";
export async function GetPollingChannels(data: ChannelPollingReq) {
  return await GET<ChannelPollingRes>(`/polling/channels`, data);
}


/**
 * 创建
 * @param data 创建参数
 */
export async function CreateVqdPolling(data: CreateVqdPollingReq) {
  return await POST<VqdPollingBaseRes>(`/polling`, data);
}

/**
 * 获取详情
 * @param id ID
 */
export async function GetVqdPollingById(id: string) {
  return await GET<VqdPollingDetailRes>(`/polling/${id}`);
}

/**
 * 更新
 * @param data 更新参数（需包含 id）
 */
export async function UpdateVqdPolling(data: UpdateVqdPollingReq) {
  const { id, ...payload } = data;
  return await PUT<VqdPollingBaseRes>(`/polling/${id}`, payload);
}

/**
 * 删除
 * @param id ID
 */
export async function DeleteVqdPolling(id: number) {
  return await DELETE<VqdPollingBaseRes>(`/polling/${id}`);
}
/**
 * 批量删除
 * @param ids ID
 */
export async function DeleteVqdPollingAll(data: string[]) {
  return await DELETE<VqdPollingBaseRes>(`/polling`, {ids: data});
}


/**
 * 获取配置
 * @param data 
 */
export async function GetVqdPollingConf() {
  return await GET<VqdPollingConf>(`/polling/conf`);
}

/**
 * 修改配置
 * @param data 
 */
export async function UpdateVqdPollingConf(data: VqdPollingConf) {
  return await PUT<VqdPollingBaseRes>(`/polling/conf`, data);
}
