package com.crm.ucard.service;

import com.crm.rely.backend.core.dto.account.apply.AccountApplyExcludeShowLoginTypesDto;
import com.crm.rely.backend.core.dto.base.BaseResultDto;
import com.crm.rely.backend.core.dto.custom.info.CustomRegisterLinkCodeDto;
import com.crm.rely.backend.core.dto.ib.info.IbInfoDto;
import com.crm.rely.backend.core.entity.base.SingleLongEntity;
import com.crm.rely.backend.core.entity.ib.info.IbLoginEntity;
import com.crm.rely.backend.exception.ServiceException;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * Created by max on 2020/5/20.
 */
@FeignClient(name = "IB-SERVICE")
public interface IbInfoFeignService {

    @PostMapping("/ib/login")
    BaseResultDto<IbInfoDto> ibLogin(IbLoginEntity entity) throws Exception;

    @PostMapping("/custom/service/search/single/cid")
    BaseResultDto<IbInfoDto> getIbInfoByCid(SingleLongEntity entity) throws Exception;

    @PostMapping("/custom/service/get/exclude/show/login/type")
    BaseResultDto<AccountApplyExcludeShowLoginTypesDto> getExcludeShowLoginTypeById(SingleLongEntity entity) throws Exception;

    @PostMapping("/custom/service/register/link/custom/orient")
    CustomRegisterLinkCodeDto customLinkOrient(@RequestParam(name = "linkValue") String linkValue) throws ServiceException;
}
