package com.snack.server.module.favorite.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.snack.server.module.favorite.vo.FavoriteVO;

/**
 * 用户收藏业务接口
 */
public interface FavoriteService {

    /**
     * 分页查询当前用户的收藏列表（含商品信息）
     */
    Page<FavoriteVO> pageByCurrentUser(Long current, Long size);

    /**
     * 添加收藏
     */
    void addFavorite(Long productId);

    /**
     * 取消收藏（按收藏 ID）
     */
    void cancelFavorite(Long favoriteId);

    /**
     * 取消收藏（按商品 ID）
     */
    void cancelFavoriteByProductId(Long productId);

    /**
     * 检查当前用户是否已收藏该商品
     */
    boolean isFavorited(Long productId);

    /**
     * 获取当前用户收藏数量
     */
    Long getFavoriteCount();
}
