package com.crm.manager.service.ib;

import com.crm.rely.backend.core.constant.FeignClientAnnotation;
import com.crm.rely.backend.core.constant.IbReportAnnotation;
import com.crm.rely.backend.core.dto.base.BaseReportResultDto;
import com.crm.rely.backend.core.dto.base.BaseResultDto;
import com.crm.rely.backend.core.dto.ib.trade.*;
import com.crm.rely.backend.core.entity.custom.info.InfoEntity;
import com.crm.rely.backend.core.entity.ib.trade.TradeHiddenRebateListEntity;
import com.crm.rely.backend.core.entity.ib.trade.TradeHistoryListEntity;
import com.crm.rely.backend.core.entity.ib.trade.TradeStandardRebateListEntity;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * Created by max on 2020/12/2.
 */
@FeignClient(name = "IB-SERVICE", path = "/manage/service/trade/sharding")
public interface TradeShardingFeignService {

    @PostMapping("/history")
    BaseReportResultDto<List<TradeHistoryDto>, TradeHistorySumDto> tradeHistory(TradeHistoryListEntity entity) throws Exception;

    @PostMapping("/history/export")
    BaseResultDto<List<TradeHistoryDto>> tradeHistoryExport(TradeHistoryListEntity entity) throws Exception;

    @PostMapping("/standard/rebate")
    BaseReportResultDto<List<TradeStandardRebateManagerDto>, TradeStandardRebateSumDto> standardRebate(TradeStandardRebateListEntity entity) throws Exception;

    @PostMapping("/standard/rebate/export")
    BaseResultDto<List<TradeStandardRebateManagerDto>> standardRebateExport(TradeStandardRebateListEntity entity) throws Exception;

    @PostMapping("/hidden/rebate")
    BaseReportResultDto<List<TradeHiddenRebateManagerDto>, TradeHiddenRebateSumDto> hiddenRebate(TradeHiddenRebateListEntity entity) throws Exception;

    @PostMapping("/hidden/rebate/export")
    BaseResultDto<List<TradeHiddenRebateManagerDto>> hiddenRebateExport(TradeHiddenRebateListEntity entity) throws Exception;
}
