package cn.hanghui.outapi.platform.tenant.service;

import cn.hanghui.outapi.platform.common.entity.po.Account;
import cn.hanghui.outapi.platform.common.entity.rest.RestResult;
import cn.hanghui.outapi.platform.tenant.entity.config.fkj.device.template.FkjDeviceDto;
import cn.hanghui.outapi.platform.tenant.entity.config.fkj.device.template.FkjDeviceMiniDto;
import cn.hanghui.outapi.platform.tenant.entity.config.fkj.device.template.FkjDeviceSearch;
import cn.hanghui.outapi.platform.tenant.entity.config.fkj.device.template.FkjDeviceTemplateDto;
import cn.hanghui.outapi.platform.tenant.entity.config.fkj.device.template.FkjDeviceTemplateLessVo;
import cn.hanghui.outapi.platform.tenant.entity.config.fkj.device.template.FkjDeviceTemplateVo;
import cn.hanghui.outapi.platform.tenant.entity.config.fkj.device.template.FkjDeviceTemplateSearch;
import cn.hanghui.outapi.platform.tenant.entity.config.fkj.device.template.FkjDeviceUpdateMiniDto;
import cn.hanghui.outapi.platform.tenant.entity.config.fkj.device.template.FkjDeviceVo;
import cn.hanghui.outapi.platform.tenant.entity.dto.auth.fkj.FkjAuthDeviceDto;
import cn.hanghui.outapi.platform.tenant.entity.dto.auth.fkj.FkjAuthDeviceSearch;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.List;

/**
 * @author shisl
 * @package cn.hanghui.outapi.platform.tenant.service
 * @class FkjDeviceService
 * @date 2024/3/5 下午2:13
 * @description
 */
public interface FkjDeviceService {

    Boolean templateEdit(FkjDeviceTemplateDto dto);

    List<FkjDeviceTemplateLessVo> templateList();

    IPage<FkjDeviceTemplateVo> templatePage(FkjDeviceTemplateSearch dto);

    Boolean templateDelete(Long id);

    FkjDeviceTemplateVo templateDetail(Long id);

    RestResult<Boolean> add(FkjDeviceDto dto);

    RestResult<IPage<FkjDeviceVo>> page(FkjDeviceSearch dto);

    RestResult<Boolean> del(Long id);

    RestResult<Boolean> enable(Long id);

    RestResult<Boolean> disable(Long id);

    FkjDeviceVo snConfig(FkjDeviceMiniDto dto);

    void updateConfig(FkjDeviceUpdateMiniDto dto);
    RestResult<IPage<FkjDeviceVo>> authPage(FkjAuthDeviceSearch dto, Account account);

    RestResult<Boolean> update(FkjAuthDeviceDto dto, Account account);
}
