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>> getAllMallProducts();

    /**
     * 批量新增商品到 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);
}
