package com.ruoyi.tuya.service;

import java.util.List;
import com.ruoyi.tuya.domain.TreeSelectS;
import com.ruoyi.tuya.domain.TuyaSitesInfo;

/**
 * 平台信息Service接口
 *
 * @author ruoyi
 * @date 2022-07-01
 */
public interface ITuyaSitesInfoService
{

    /**
     * 构建前端所需要下拉树结构
     *
     * @param sites 平台列表
     * @return 下拉树结构列表
     */
    public List<TreeSelectS> buildDeptTreeSelect(List<TuyaSitesInfo> sites);

    /**
     * 校验平台名称
     *
     * @param tuyaSitesInfo 平台信息
     * @return 结果
     */
    public String checkSiteNameUnique(TuyaSitesInfo tuyaSitesInfo);

    /**
     * 校验平台名称（英文名称）
     *
     * @param tuyaSitesInfo 平台信息
     * @return 结果
     */
    public String checkSiteNameEnUnique(TuyaSitesInfo tuyaSitesInfo);

    /**
     * 查询平台信息
     *
     * @param siteId 平台信息主键
     * @return 平台信息
     */
    public TuyaSitesInfo selectTuyaSitesInfoBySiteId(Long siteId);

    /**
     * 查询平台信息列表
     *
     * @param tuyaSitesInfo 平台信息
     * @return 平台信息集合
     */
    public List<TuyaSitesInfo> selectTuyaSitesInfoList(TuyaSitesInfo tuyaSitesInfo);

    /**
     * 查询平台信息下拉列表
     *
     * @param tuyaSitesInfo 平台信息
     * @return 平台信息集合
     */
    public List<TuyaSitesInfo> sitesInfoSelect(TuyaSitesInfo tuyaSitesInfo);

    /**
     * 新增平台信息
     *
     * @param tuyaSitesInfo 平台信息
     * @return 结果
     */
    public int insertTuyaSitesInfo(TuyaSitesInfo tuyaSitesInfo);

    /**
     * 修改平台信息
     *
     * @param tuyaSitesInfo 平台信息
     * @return 结果
     */
    public int updateTuyaSitesInfo(TuyaSitesInfo tuyaSitesInfo);

    /**
     * 批量删除平台信息
     *
     * @param siteIds 需要删除的平台信息主键集合
     * @return 结果
     */
    public int deleteTuyaSitesInfoBySiteIds(Long[] siteIds);

    /**
     * 删除平台信息信息
     *
     * @param siteId 平台信息主键
     * @return 结果
     */
    public int deleteTuyaSitesInfoBySiteId(Long siteId);

    /**
     * 是否存在子节点
     *
     * @param siteId 平台ID
     * @return 结果
     */
    public boolean hasChildBySiteId(Long siteId);
}
