package com.ruoyi.jarvis.mapper;

import java.util.List;
import com.ruoyi.jarvis.domain.FavoriteProduct;

/**
 * 常用商品Mapper接口
 * 
 * @author ruoyi
 * @date 2024-01-01
 */
public interface FavoriteProductMapper 
{
    /**
     * 查询常用商品
     * 
     * @param id 常用商品主键
     * @return 常用商品
     */
    public FavoriteProduct selectFavoriteProductById(Long id);

    /**
     * 查询常用商品列表
     * 
     * @param favoriteProduct 常用商品
     * @return 常用商品集合
     */
    public List<FavoriteProduct> selectFavoriteProductList(FavoriteProduct favoriteProduct);

    /**
     * 新增常用商品
     * 
     * @param favoriteProduct 常用商品
     * @return 结果
     */
    public int insertFavoriteProduct(FavoriteProduct favoriteProduct);

    /**
     * 修改常用商品
     * 
     * @param favoriteProduct 常用商品
     * @return 结果
     */
    public int updateFavoriteProduct(FavoriteProduct favoriteProduct);

    /**
     * 删除常用商品
     * 
     * @param id 常用商品主键
     * @return 结果
     */
    public int deleteFavoriteProductById(Long id);

    /**
     * 批量删除常用商品
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteFavoriteProductByIds(Long[] ids);

    /**
     * 根据SKUID查询常用商品
     * 
     * @param skuid SKUID
     * @return 常用商品
     */
    public FavoriteProduct selectFavoriteProductBySkuid(String skuid);

    /**
     * 更新使用次数和最后使用时间
     * 
     * @param id 常用商品ID
     * @return 结果
     */
    public int updateUseCountAndTime(Long id);

    /**
     * 更新置顶状态和排序权重
     * 
     * @param favoriteProduct 常用商品
     * @return 结果
     */
    public int updateTopStatus(FavoriteProduct favoriteProduct);

    /**
     * 更新发品信息
     * 
     * @param favoriteProduct 常用商品
     * @return 结果
     */
    public int updateProductInfo(FavoriteProduct favoriteProduct);

    /**
     * 查询用户的常用商品列表（按置顶和排序权重排序）
     * 
     * @param createUserId 创建用户ID
     * @return 常用商品集合
     */
    public List<FavoriteProduct> selectUserFavoriteProducts(Long createUserId);
}
