package com.hai.openApi.service;

import com.alibaba.fastjson.JSONObject;
import com.hai.entity.ApiMchProduct;

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

/**
 * @serviceName ApiMchProductService.java
 * @author Sum1Dream
 * @version 1.0.0
 * @Description // 商户产品配置
 * @createTime 11:51 2023/2/15
 **/
public interface ApiMchProductService {

    /**
     * @Author Sum1Dream
     * @Name insertMchProduct
     * @Description // 新增商户产品
     * @Date 11:55 2023/2/15
     * @Param [apiMchProduct]
     * @Return void
     */
    void insertMchProduct(ApiMchProduct apiMchProduct);

    void  configMchProduct(JSONObject object);

    /**
     * @Author Sum1Dream
     * @Name updateMchProduct
     * @Description // 更新商户产品
     * @Date 11:55 2023/2/15
     * @Param [apiMchProduct]
     * @Return void
     */
    void updateMchProduct(ApiMchProduct apiMchProduct);

    /**
     * @Author Sum1Dream
     * @Name getListMchProduct
     * @Description // 查询商户产品列表
     * @Date 11:55 2023/2/15
     * @Param [map]
     * @Return java.util.List<com.hai.entity.ApiMchProduct>
     */
    List<ApiMchProduct> getListMchProduct(Map<String, Object> map);

    /**
     * @Author Sum1Dream
     * @Name findById
     * @Description // 根据id 查询商户产品
     * @Date 11:55 2023/2/15
     * @Param [id]
     * @Return com.hai.entity.ApiMchProduct
     */
    ApiMchProduct findById(Long id);

    /**
     * @Author Sum1Dream
     * @Name whereExistence
     * @Description // 查询
     * @Date 14:31 2023/2/28
     * @Param [mchId, productType]
     * @Return com.hai.entity.ApiMchProduct
     */
    Boolean whereExistence(String mchId , Integer productType , Long merchantId);

    /**
     * @Author Sum1Dream
     * @Name findByMap
     * @Description // 根据map查询商户产品
     * @Date 10:55 2023/2/28
     * @Param [map]
     * @Return com.hai.entity.ApiMchProduct
     */
    ApiMchProduct findByMap(Map<String , Object> map);

    /**
     * @Author Sum1Dream
     * @Name detailConfigMchProduct
     * @Description // 删除商户配置相关产品
     * @Date 17:02 2023/2/23
     * @Param [mchId]
     * @Return void
     */
    void detailConfigMchProduct(String mchId);

    /**
     * @Author Sum1Dream
     * @Name detailApiMchProduct
     * @Description // 根据id删除配置产品
     * @Date 11:06 2023/2/24
     * @Param [id]
     * @Return void
     */
    void detailApiMchProduct(Long id);
}
