package com.fzm.mall.server.admin.goods_center.service;

import com.fzm.mall.server.admin.goods_center.entity.dto.AuctionDTO;
import com.fzm.mall.server.admin.goods_center.entity.dto.NFTDTO;
import com.fzm.mall.server.admin.goods_center.entity.dto.PackageDTO;
import com.fzm.mall.server.admin.goods_center.entity.vo.GoodsNftVO;
import com.fzm.mall.server.admin.goods_center.model.GoodsNft;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author fzm
 * @since 2021-08-30
 */
public interface IGoodsNftService extends IService<GoodsNft> {

    /**
     * 新增NFT商品
     *
     * @param nftdto  NFT信息
     * @param goodsId 商品id
     */
    void add(NFTDTO nftdto, String goodsId, String name, String nftAddr, String merchantId, long timestamp);

    /**
     * 草稿NFT商品
     *
     * @param nftdto  NFT信息
     * @param goodsId 商品id
     */
    void draft(NFTDTO nftdto, String goodsId);

    /**
     * 根据商品id查询商品信息
     *
     * @param goodsId 商品id
     */
    GoodsNftVO getByGoodsId(String goodsId);

    /**
     * 根据商品id查询商品信息
     *
     * @param goodsId 商品id
     */
    GoodsNft getByGoodsIdInner(String goodsId);

    /**
     * 编辑NFT商品
     *
     * @param nftdto  NFT信息
     * @param goodsId 商品id
     */
    void edit(NFTDTO nftdto, String goodsId);

    /**
     * 编辑NFT商品
     *
     * @param nftdto  NFT信息
     * @param goodsId 商品id
     */
    void republish(NFTDTO nftdto, String goodsId, String nftAddr);

    /**
     * 编辑NFT商品
     */
    GoodsNft queryByTokenId(String tokenId);

    /**
     * 根据goodsId清除商品
     *
     * @param goodsId 商品ID
     */
    void removeByGoodsId(String goodsId);
}
