package cn.iocoder.yudao.module.iot.service.ota; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.firmware.IotOtaFirmwareCreateReqVO; import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.firmware.IotOtaFirmwarePageReqVO; import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.firmware.IotOtaFirmwareUpdateReqVO; import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaFirmwareDO; import jakarta.validation.Valid; import java.util.Collection; import java.util.List; import java.util.Map; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; /** * OTA 固件管理 Service 接口 * * @author Shelly Chan */ public interface IotOtaFirmwareService { /** * 创建 OTA 固件 * * @param saveReqVO 固件信息 * @return 固件编号 */ Long createOtaFirmware(@Valid IotOtaFirmwareCreateReqVO saveReqVO); /** * 更新 OTA 固件信息 * * @param updateReqVO 固件信息 */ void updateOtaFirmware(@Valid IotOtaFirmwareUpdateReqVO updateReqVO); /** * 获取 OTA 固件信息 * * @param id 固件编号 * @return 固件信息 */ IotOtaFirmwareDO getOtaFirmware(Long id); /** * 根据产品、版本号,获取 OTA 固件信息 * * @param productId 产品编号 * @param version 版本号 * @return OTA 固件信息 */ IotOtaFirmwareDO getOtaFirmwareByProductIdAndVersion(Long productId, String version); /** * 获取 OTA 固件信息列表 * * @param ids 固件编号集合 * @return 固件信息列表 */ List getOtaFirmwareList(Collection ids); /** * 获取 OTA 固件信息 Map * * @param ids 固件编号集合 * @return 固件信息 Map */ default Map getOtaFirmwareMap(Collection ids) { return convertMap(getOtaFirmwareList(ids), IotOtaFirmwareDO::getId); } /** * 分页查询 OTA 固件信息 * * @param pageReqVO 分页查询条件 * @return 分页结果 */ PageResult getOtaFirmwarePage(@Valid IotOtaFirmwarePageReqVO pageReqVO); /** * 验证 OTA 固件是否存在 * * @param id 固件编号 * @return 固件信息 */ IotOtaFirmwareDO validateFirmwareExists(Long id); }