package cd.casic.module.machine.service;

import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.module.machine.controller.vo.MachineProxyVO;
import cd.casic.module.machine.dal.dataobject.MachineProxyDO;
import jakarta.validation.Valid;

import java.util.Map;

/**
 * 机器代理服务接口
 */
public interface MachineProxyService {
    /**
     * 注册新的机器代理
     */
    Long createProxy(@Valid MachineProxyVO machineProxyVO);

    /**
     * 更新代理状态
     */
    void updateProxy(@Valid MachineProxyVO machineProxyVO);

    /**
     * 删除代理
     *
     */
    void delete(Long id);

    /**
     * 获取所有代理的状态统计
     *
     * @return 状态统计Map
     */
    Map<Integer, Long> getAllProxyStatus();


    /**
     * 批量删除代理
     *
     * @param proxyIds 代理ID列表
     */
    void deleteProxyList(String proxyIds);

    /**
     * 获取代理列表(分页)
     */
    PageResult<MachineProxyDO> getProxyPage(@Valid MachineProxyVO machineProxyVO);
}
