package com.ruoyi.tuya.service;

import java.util.List;

import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.tuya.domain.TreeSelectS;
import com.ruoyi.tuya.domain.TuyaArticleInfo;
import com.ruoyi.tuya.domain.TuyaCategoryInfo;
import com.ruoyi.tuya.domain.TuyaSitesInfo;

/**
 * 栏目信息Service接口
 *
 * @author zf
 * @date 2022-07-07
 */
public interface ITuyaCategoryInfoService
{
    /**
     * 校验栏目名称
     *
     * @param tuyaCategoryInfo 栏目信息
     * @return 结果
     */
    public String checkCategoryNameUnique(TuyaCategoryInfo tuyaCategoryInfo);
    /**
     * 构建前端所需要树结构
     *
     * @param categorys 栏目列表
     * @return 树结构列表
     */
    public List<TuyaCategoryInfo> buildCategoryTree(List<TuyaCategoryInfo> categorys);

    /**
     * 构建前端所需要下拉树结构
     *
     * @param categorys 栏目列表
     * @return 下拉树结构列表
     */
    public List<TreeSelectS> buildCategoryTreeSelect(List<TuyaCategoryInfo> categorys);

    /**
     * 查询栏目信息
     *
     * @param categoryId 栏目信息主键
     * @return 栏目信息
     */
    public TuyaCategoryInfo selectTuyaCategoryInfoByCategoryId(Long categoryId);

    /**
     * 查询栏目信息列表
     *
     * @param tuyaCategoryInfo 栏目信息
     * @return 栏目信息集合
     */
    public List<TuyaCategoryInfo> selectTuyaCategoryInfoList(TuyaCategoryInfo tuyaCategoryInfo);


    /**
     * 新增栏目信息
     *
     * @param tuyaCategoryInfo 栏目信息
     * @return 结果
     */
    public int insertTuyaCategoryInfo(TuyaCategoryInfo tuyaCategoryInfo);

    /**
     * 修改栏目信息
     *
     * @param tuyaCategoryInfo 栏目信息
     * @return 结果
     */
    public int updateTuyaCategoryInfo(TuyaCategoryInfo tuyaCategoryInfo);

    /**
     * 批量删除栏目信息
     *
     * @param categoryIds 需要删除的栏目信息主键集合
     * @return 结果
     */
    public int deleteTuyaCategoryInfoByCategoryIds(Long[] categoryIds);

    /**
     * 删除栏目信息信息
     *
     * @param categoryId 栏目信息主键
     * @return 结果
     */
    public int deleteTuyaCategoryInfoByCategoryId(Long categoryId);

    /**
     * 是否存在子节点
     *
     * @param categoryId 部门ID
     * @return 结果
     */
    public boolean hasChildByCategoryId(Long categoryId);
}
