package com.ruoyi.system.service;

import com.ruoyi.common.core.domain.TreeSelect;
import com.ruoyi.common.core.domain.entity.AssetType;

import java.util.List;


/**
 * 资产类型Service接口
 * 
 * @author boman
 * @date 2025-02-17
 */
public interface IAssetTypeService 
{
    /**
     * 查询资产类型
     * 
     * @param assetId 资产类型主键
     * @return 资产类型
     */
    public AssetType selectAssetTypeByAssetId(Long assetId);

    /**
     * 查询资产类型列表
     * 
     * @param assetType 资产类型
     * @return 资产类型集合
     */
    public List<AssetType> selectAssetTypeList(AssetType assetType);

    /**
     * 新增资产类型
     * 
     * @param assetType 资产类型
     * @return 结果
     */
    public int insertAssetType(AssetType assetType);

    /**
     * 修改资产类型
     * 
     * @param assetType 资产类型
     * @return 结果
     */
    public int updateAssetType(AssetType assetType);

    /**
     * 批量删除资产类型
     * 
     * @param assetIds 需要删除的资产类型主键集合
     * @return 结果
     */
    public int deleteAssetTypeByAssetIds(Long[] assetIds);

    /**
     * 删除资产类型信息
     * 
     * @param assetId 资产类型主键
     * @return 结果
     */
    public int deleteAssetTypeByAssetId(Long assetId);

    /**
     * 构建前端所需要树结构
     * @param assetType
     * @return
     */
    List<TreeSelect>selectAssetTypeTreeList(AssetType assetType);

    boolean checkAssetTypeNameUnique(AssetType assetType);

   int selectNormalChildrenAssetById(Long assetId);

    boolean  hasChildByAssetId (Long assetId);
}
