package cd.casic.module.machine.service;

import cd.casic.framework.commons.pojo.CommonResult;
import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.module.machine.dal.dataobject.MachineInfoDO;
import cd.casic.module.machine.dal.dataobject.SecretKeyDO;
import cd.casic.module.machine.controller.vo.SecretKeyVO;
import jakarta.validation.Valid;

import java.util.List;

public interface SecretKeyService {
    /**
     * 新增密钥
     */
    Long createSecretKey(@Valid SecretKeyVO secretKeyVO);

    /**
     * 更新密钥
     */
    void updateSecretKey(@Valid SecretKeyVO secretKeyVO);

    /**
     * 获取密钥列表(分页)
     */
    PageResult<SecretKeyDO> getSecretKeyPage(@Valid SecretKeyVO secretKeyVO);

    /**
     * 批量删除密钥
     * @param ids 密钥id集合
     */
    void deleteSecretKeyList(List<Long> ids);


    Integer deleteById(Long id);

    /**
     * 根据id获取密钥对象
     */
    SecretKeyVO getSecretKey(Long id);

    /**
     * 获取绑定的密钥的机器列表
     */
    List<MachineInfoDO> getBindMachine(Long secretKeyId);

    /**
     * 获取公钥内容
     */
    String getPublicKeyContent(Long secretKeyId);
}

