import { get, post } from '@/utils/request'
import type {
  IPageResponse,
  IBaseResponse,
  IListResponse,
  BaseResponse,
  LssDTO,
  LssListRequest,
  LssNodeDTO,
  LssNodeListRequest,
  LssNodeStatsDTO
} from '@/types'

// ==================== LSS 节点管理 APIs (新) ====================

// 1. 获取 LSS 节点列表（分页）
export function listLssNodes(params?: LssNodeListRequest): Promise<IPageResponse<LssNodeDTO>> {
  return post('/admin/lss-nodes/list', params || {})
}

// 2. 获取全部 LSS 节点列表
export function listAllLssNodes(): Promise<IListResponse<LssNodeDTO>> {
  return get('/admin/lss-nodes/listAll')
}

// 3. 获取 LSS 节点详情
export function getLssNodeDetail(lssId: string): Promise<IBaseResponse<LssNodeDTO>> {
  return get('/admin/lss-nodes/detail', { lssId })
}

// 4. 根据机器 ID 获取关联的 LSS 节点
export function getLssNodesByMachine(machineId: string): Promise<IListResponse<LssNodeDTO>> {
  return get('/admin/lss-nodes/byMachine', { machineId })
}

// 5. 启用/禁用 LSS 节点
export function setLssNodeEnabled(lssId: string, enabled: boolean): Promise<BaseResponse> {
  return post('/admin/lss-nodes/setEnabled', { lssId, enabled })
}

// 6. 删除 LSS 节点
export function deleteLssNode(lssId: string): Promise<BaseResponse> {
  return post('/admin/lss-nodes/delete', { lssId })
}

// 7. 获取 LSS 节点统计信息
export function getLssNodeStats(): Promise<IBaseResponse<LssNodeStatsDTO>> {
  return get('/admin/lss-nodes/stats')
}

// ==================== LSS Admin APIs (旧，兼容) ====================

// 获取 LSS 列表 (分页) - 旧接口
export function listLss(params?: LssListRequest): Promise<IPageResponse<LssDTO>> {
  return post('/admin/lss/list', params || {})
}
