package com.crm.manager.service.ucard;

import com.crm.rely.backend.core.dto.base.BaseResultDto;
import com.crm.rely.backend.core.dto.base.ResultWithPagerDto;
import com.crm.rely.backend.core.dto.ucard.CardBlockchainConfigDto;
import com.crm.rely.backend.core.dto.ucard.CardBlockchainRateConfigDto;
import com.crm.rely.backend.core.entity.base.BaseDeleteEntities;
import com.crm.rely.backend.core.entity.ucard.*;
import com.crm.rely.backend.exception.ServiceException;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;

@FeignClient(name = "UCARD-SERVICE", path = "/ucard/blockchain/manager")
public interface UcardBlockchainFeignService {

    /**
     * 区块链配置列表
     */
    @PostMapping("/config/page")
    ResultWithPagerDto<CardBlockchainConfigDto> getCardBlockchainConfigPageList(CardBlockchainConfigPageEntity entity) throws ServiceException;

    /**
     * 新增区块链配置
     */
    @PostMapping("/config/add")
    BaseResultDto addCardBlockchainConfig(CardBlockchainConfigAddEntity entity) throws ServiceException;

    /**
     * 修改区块链配置
     */
    @PostMapping("/config/update")
    BaseResultDto updateCardBlockchainConfig(CardBlockchainConfigUpdateEntity entity) throws ServiceException;

    /**
     * 删除区块链配置
     */
    @PostMapping("/config/delete")
    BaseResultDto deleteCardBlockchainConfig(BaseDeleteEntities entity) throws ServiceException;

    /**
     * 区块链下拉列表
     */
    @PostMapping("/dropdown")
    BaseResultDto getCardBlockchainDropdown() throws ServiceException;

    /**
     * 区块链汇率配置列表
     */
    @PostMapping("/rate/config/page")
    ResultWithPagerDto<CardBlockchainRateConfigDto> getCardBlockchainRateConfigPageList(CardBlockchainRateConfigPageEntity entity) throws ServiceException;

    /**
     * 新增区块链汇率配置
     */
    @PostMapping("/rate/config/add")
    BaseResultDto addCardBlockchainRateConfig(CardBlockchainRateConfigAddEntity entity) throws ServiceException;

    /**
     * 修改区块链汇率配置
     */
    @PostMapping("/rate/config/update")
    BaseResultDto updateCardBlockchainRateConfig(CardBlockchainRateConfigUpdateEntity entity) throws ServiceException;

    /**
     * 删除区块链汇率配置
     */
    @PostMapping("/rate/config/delete")
    BaseResultDto deleteCardBlockchainRateConfig(BaseDeleteEntities entity) throws ServiceException;


}
