package com.xingxi.master.product.service;

import com.xingxi.master.product.domain.ProdAttr;

import java.util.List;

/**
 * 商品属性Service接口
 *
 * @author xingxi
 * @date 2025-03-06
 */
public interface IProdAttrService {
    /**
     * 查询商品属性
     *
     * @param prodAttrId 商品属性主键
     * @return 商品属性
     */
    ProdAttr selectProdAttrByProdAttrId(Long prodAttrId);

    /**
     * 查询商品属性列表
     *
     * @param prodAttr 商品属性
     * @return 商品属性集合
     */
    List<ProdAttr> selectProdAttrList(ProdAttr prodAttr);

    /**
     * 新增商品属性
     *
     * @param prodAttr 商品属性
     * @return 结果
     */
    int insertProdAttr(ProdAttr prodAttr);

    /**
     * 新增商品属性
     *
     * @param prodAttrList 商品属性
     * @return 结果
     */
    int batchInsertProdAttr(List<ProdAttr> prodAttrList);

    /**
     * 修改商品属性
     *
     * @param prodAttr 商品属性
     * @return 结果
     */
    int updateProdAttr(ProdAttr prodAttr);

    /**
     * 批量删除商品属性
     *
     * @param prodAttrIds 需要删除的商品属性主键集合
     * @return 结果
     */
    int deleteProdAttrByProdAttrIds(String prodAttrIds);

    /**
     * 删除商品属性信息
     *
     * @param prodAttrId 商品属性主键
     * @return 结果
     */
    int deleteProdAttrByProdAttrId(Long prodAttrId);

    /**
     * 逻辑删除商品属性
     *
     * @param prodAttrId 商品属性主键
     * @return 结果
     */
    int logicDeleteProdAttrByProdAttrId(Long prodAttrId);

    /**
     * 逻辑批量删除商品属性
     *
     * @param prodAttrIds 需要删除的数据主键集合
     * @return 结果
     */
    int logicDeleteProdAttrByProdAttrIds(String[] prodAttrIds);

    /**
     * 逻辑批量删除商品属性
     *
     * @param prodAttr 商品属性
     * @return 结果
     */
    int logicDeleteProdAttrByCondition(ProdAttr prodAttr);
}
