package com.liquidnet.service.goblin.service;

import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinSqbPerfGoodsVo;

import java.util.List;
import java.util.Map;

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

    /**
     * 获取所有商城及商品列表
     * 自动拉取所有商城，循环获取每个商城的商品列表，聚合返回
     *
     * @return 商城商品列表
     */
    ResponseDto<List<GoblinSqbPerfGoodsVo>> getAllMallProducts();

    /**
     * 批量同步商品到 goblin 系统
     * 已存在则更新，不存在则新增（spuType=33）
     *
     * @param items 待同步商品列表，每项包含 mallSn、sqbProductId、sqbProductSn
     * @return 同步结果
     */
    ResponseDto<String> syncGoods(List<Map<String, String>> items);

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