package com.njcn.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.user.pojo.param.ComponentParam;
import com.njcn.user.pojo.po.Component;
import com.njcn.user.pojo.vo.ComponentVO;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author hongawen
 * @since 2021-12-13
 */
public interface IComponentService extends IService<Component> {

    /**
     * 功能描述: 新增组件
     *
     * @param componentParam
     * @return boolean
     * @author xy
     * @date 2022/1/19 9:55
     */
    boolean addComponent(ComponentParam componentParam);

    /**
     * 功能描述: 删除组件
     *
     * @param id
     * @return boolean
     * @author xy
     * @date 2022/1/19 9:55
     */
    boolean deleteComponent(String id);

    /**
     * 功能描述: 修改组件
     *
     * @param componentParam
     * @return boolean
     * @author xy
     * @date 2022/1/19 9:55
     */
    boolean updateComponent(ComponentParam.ComponentUpdateParam componentParam);

    /**
     * 功能描述: 获取组件树
     *
     * @param
     * @return com.njcn.user.pojo.po.Component
     * @author xy
     * @date 2022/1/19 14:45
     */
    List<ComponentVO> getComponentTree();


    /**
     * 功能描述: 获取用户组件树
     * @param
     * @return java.util.List<com.njcn.user.pojo.vo.ComponentVO>
     * @author xy
     * @date 2022/1/24 12:33
     */
    List<ComponentVO> getUserComponentTree();

    List<Component> getFatherComponent(String systemType);
}
