import {
  deleteAlarmHostApi,
  deleteCameraApi,
  deleteDecoderApi,
  deleteKeyboardApi,
  deleteMediaServerApi,
  deleteNvrApi,
  deleteSecurityBoxApi,
  deleteSwitchApi,
  deleteVideoServerApi,
  type Station,
} from '@/apis';
import { DEVICE_TYPE_LITERALS, type DeviceType } from '@/enums';

export const deleteDeviceApi = async (deviceType: DeviceType, id: string, options?: { stationCode?: Station['code']; signal?: AbortSignal }) => {
  const apiRecord = {
    [DEVICE_TYPE_LITERALS.ndmAlarmHost]: deleteAlarmHostApi,
    [DEVICE_TYPE_LITERALS.ndmCamera]: deleteCameraApi,
    [DEVICE_TYPE_LITERALS.ndmDecoder]: deleteDecoderApi,
    [DEVICE_TYPE_LITERALS.ndmKeyboard]: deleteKeyboardApi,
    [DEVICE_TYPE_LITERALS.ndmMediaServer]: deleteMediaServerApi,
    [DEVICE_TYPE_LITERALS.ndmNvr]: deleteNvrApi,
    [DEVICE_TYPE_LITERALS.ndmSecurityBox]: deleteSecurityBoxApi,
    [DEVICE_TYPE_LITERALS.ndmSwitch]: deleteSwitchApi,
    [DEVICE_TYPE_LITERALS.ndmVideoServer]: deleteVideoServerApi,
  };

  const deleteApi = apiRecord[deviceType];
  if (!deleteApi) throw new Error('接口不存在');

  return deleteApi([id], options);
};
