package com.ruoyi.project.system.service;

import com.ruoyi.project.system.domain.ProductCraftCate;
import com.ruoyi.project.system.domain.vo.FrontProductDetailVo;
import com.ruoyi.project.system.domain.vo.ProductCraftCateVo;
import com.ruoyi.project.system.domain.vo.ProductVo;

import java.util.List;

/**
 * 工艺分类Service接口
 *
 * @author zhu
 * @date 2023-10-26
 */
public interface IProductCraftCateService {
    /**
     * 查询工艺分类
     *
     * @param id 工艺分类主键
     * @return 工艺分类
     */
    public ProductCraftCate selectProductCraftCateById(Long id);

    /**
     * 查询工艺分类列表
     *
     * @param productCraftCate 工艺分类
     * @return 工艺分类集合
     */
    public List<ProductCraftCate> selectProductCraftCateList(ProductCraftCate productCraftCate);

    /**
     * 新增工艺分类
     *
     * @param productCraftCate 工艺分类
     * @return 结果
     */
    public int insertProductCraftCate(ProductCraftCate productCraftCate);

    /**
     * 修改工艺分类
     *
     * @param productCraftCate 工艺分类
     * @return 结果
     */
    public int updateProductCraftCate(ProductCraftCate productCraftCate);

    /**
     * 批量删除工艺分类
     *
     * @param ids 需要删除的工艺分类主键集合
     * @return 结果
     */
    public int deleteProductCraftCateByIds(Long[] ids);

    /**
     * 删除工艺分类信息
     *
     * @param id 工艺分类主键
     * @return 结果
     */
    public int deleteProductCraftCateById(Long id);

    /**
     * 更新商品价格
     *
     * @param productCates
     * @param productId
     * @param materialId
     * @return
     */
    public int updatePrice(List<ProductCraftCateVo> productCates, Long productId, Long materialId);

    /**
     * 获取商品详情
     *
     * @param productId
     * @param materialId
     * @return
     */
    public List<ProductCraftCateVo> selectProductDetail(Long productId, Long materialId);

    /**
     * 获取商品详情
     *
     * @param product
     * @return
     */
    public FrontProductDetailVo selectProductDetailById(ProductVo product);
}
