package com.bonus.sgzb.base.mapper;

import com.bonus.sgzb.base.api.domain.MaType;
import com.bonus.sgzb.base.domain.MaPropInfo;
import com.bonus.sgzb.base.domain.MaPropSet;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 资产管理ma_prop_info(MaPropInfo)表数据库访问层
 *
 * @author makejava
 * @since 2023-11-28 10:18:07
 */
@Mapper
public interface MaPropInfoMapper {

    /**
     * 根据资产名称查询资产属性列表
     * @param maPropInfo
     * @return
     */
    List<MaPropInfo> selectMaPropSet(MaPropInfo maPropInfo);
    /**
     * 根据资产名称查询资产名称列表
     * @param
     * @return
     */
    List<MaPropInfo> selectMaPropSets(String bindingName);
    /**
     * 校验资产项目名称唯一性
     * @param propName
     * @return
     */
    MaPropInfo checkPropNameUnique(String propName);

    /**
     * 新增资产项目
     * @param maPropInfo
     * @return
     */
    int insertProp(MaPropInfo maPropInfo);

    /**
     * 保存资产属性
     * @param maPropSet
     * @return
     */
    int insertMaPropSet(MaPropSet maPropSet);

    int updateMaPropSet(MaPropSet maPropSet);
    /**
     * 校验资产项目名称唯一性
     * @param maPropSet
     * @return
     */
    List<MaPropSet> checkPropIdUnique(MaPropSet maPropSet);
    List<MaType> selectMaType(MaPropInfo maPropInfo);
    /**
     * 删除资产项目
     * @param propId
     * @return
     */
    int deleteMaProp(Long propId);

    /**
     * 修改资产属性
     * @param maPropInfo
     * @return
     */
    int updateMaProp(MaPropInfo maPropInfo);

    /**
     * 批量删除资产属性配置ma_prop_set
     *
     * @param propIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMaPropSetByPropIds(Long propIds);

    int deleteByIdsAll(String[] typeIds);

    int add(List<MaPropSet> list);
}

