package com.m2pool.lease.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.m2pool.lease.dto.*;
import com.m2pool.lease.dto.v2.ShopWalletInfoDto;
import com.m2pool.lease.entity.LeasePayRecordMessage;
import com.m2pool.lease.entity.LeaseShopConfig;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 店铺商品配置表 Mapper 接口
 * </p>
 *
 * @author yyb
 * @since 2025-08-05
 */
public interface LeaseShopConfigMapper extends BaseMapper<LeaseShopConfig> {
    /**
     * 获取链和币种
     * @return
     */
    List<CoinFullDto> getChainAndList(@Param("chain") String chain);

    List<CoinFullDto> getChainAndListForSeller(@Param("shopId") Long shopId);

    /**
     * 更具链名称和币种名称获取币种图标
     * @param chain
     * @param coinList
     * @return
     */
    List<LeaseShopConfig> getCoinIconByChainAndCoin(@Param("chain") String chain, @Param("coinList") List<String> coinList);

    /**
     * 根据店铺id和链名称和币种获取店铺配置（包含已删除的配置）
     * @param list
     * @return
     */
    List<ShopConfigDelDto> selectShopConfigByShopIdAndSymbolAndChain(@Param("list") List<ShopChainAndCoinDto> list);

    /**
     * 获取店铺支持的支付方式
     * @param shopIds
     * @return
     */
   List<PayTypeDto> getPayType(@Param("list") List<Long> shopIds);

   /**
     * 获取店铺钱包信息
     * @param shopId
     * @return
     */
    List<ShopWalletInfoDto> getShopWalletInfoList(@Param("shopId") Long shopId);


    /**
     * 获取店铺钱包信息
     * @param shopId
     * @return
     */
    ShopWalletInfoDto getShopWalletInfo(@Param("shopId") Long shopId,@Param("address") String address,@Param("chain") String chain,@Param("coin") String coin);



    /**
     * 根据支付记录修改余额
     * @param reocrdList 钱包信息
     * @return 更新数量
     */
    int updateBalance(@Param("list") List<LeasePayRecordMessage> reocrdList);
}
