package com.liquidnet.service.goblin.service;

import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinSqbPerfGoodsVo;
import com.liquidnet.service.goblin.param.shouqianba.request.GoblinSqbGoodsSyncParam;

import java.util.List;

/**
 * 收钱吧商品同步服务接口
 */
public interface IGoblinSqbGoodsService {

    /**
     * 根据搜索条件拉取商城商品列表
     *
     * @return 过滤后的商品列表
     */
    ResponseDto<List<GoblinSqbPerfGoodsVo>> getProductList();

    /**
     * 批量新增商品到 goblin 系统（不存在则新增）
     *
     * @param storeId 门店ID
     * @param items 待新增商品列表
     * @return 结果
     */
    ResponseDto<String> addGoods(String storeId, List<GoblinSqbGoodsSyncParam> items);

    /**
     * 批量更新商品到 goblin 系统（仅更新已存在）
     *
     * @param storeId 门店ID
     * @param items 待更新商品列表
     * @return 结果
     */
    ResponseDto<String> updateGoods(String storeId, List<GoblinSqbGoodsSyncParam> items);

    /**
     * 查询演出关联商品列表（先查 Redis 缓存，未命中则查 MySQL 并写入缓存）
     *
     * @param performancesId 演出ID
     * @return 演出关联商品列表
     */
    ResponseDto<List<GoblinSqbPerfGoodsVo>> getPerfGoods(String performancesId);
}
