package com.ruoyi.asset.mapper;

import java.util.List;
import com.ruoyi.asset.domain.AmsAssetCategory;

/**
 * 资产类别Mapper接口
 * 
 * @author Yangk
 * @date 2026-06-04
 */
public interface AmsAssetCategoryMapper 
{
    /**
     * 查询资产类别
     * 
     * @param categoryId 资产类别主键
     * @return 资产类别
     */
    public AmsAssetCategory selectAmsAssetCategoryByCategoryId(Long categoryId);

    /**
     * 查询资产类别列表
     * 
     * @param amsAssetCategory 资产类别
     * @return 资产类别集合
     */
    public List<AmsAssetCategory> selectAmsAssetCategoryList(AmsAssetCategory amsAssetCategory);

    /**
     * 根据类别编码查询资产类别
     *
     * @param categoryCode 类别编码
     * @return 资产类别
     */
    public AmsAssetCategory checkCategoryCodeUnique(String categoryCode);

    /**
     * 统计资产类别被资产台账引用的数量
     *
     * @param categoryId 类别ID
     * @return 引用数量
     */
    public int countCategoryReferences(Long categoryId);

    /**
     * 新增资产类别
     * 
     * @param amsAssetCategory 资产类别
     * @return 结果
     */
    public int insertAmsAssetCategory(AmsAssetCategory amsAssetCategory);

    /**
     * 修改资产类别
     * 
     * @param amsAssetCategory 资产类别
     * @return 结果
     */
    public int updateAmsAssetCategory(AmsAssetCategory amsAssetCategory);

    /**
     * 删除资产类别
     * 
     * @param categoryId 资产类别主键
     * @return 结果
     */
    public int deleteAmsAssetCategoryByCategoryId(Long categoryId);

    /**
     * 批量删除资产类别
     * 
     * @param categoryIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAmsAssetCategoryByCategoryIds(String[] categoryIds);
}
