package jnpf.franchisee;


import jnpf.franchisee.fallback.FranchiseeFallbackApi;
import jnpf.model.franchisee.vo.FranchiseeIdName;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.Collection;
import java.util.List;

@FeignClient(name = "jnpf-ftb", fallback = FranchiseeFallbackApi.class, path = "/web/franchise-api")
public interface FranchiseeApi {

    /**
     * 获取所有加盟商信息
     * @return
     */
    @GetMapping("/getFranchiseeIdNameList")
    List<FranchiseeIdName> getFranchiseeIdNameList();

    /**
     * 根据ID列表获取加盟商信息
     * @param ids
     * @return
     */
    @GetMapping("/getFranchiseeIdNameListByIds")
    List<FranchiseeIdName> getFranchiseeIdNameListByIds(Collection<String> ids);

    /**
     * 根据ID获取加盟商信息
     * @param id
     * @return
     */
    @GetMapping("/getFranchiseeIdNameListById")
    FranchiseeIdName getFranchiseeIdNameListById(String id);

    /**
     * 根据名称获取加盟商信息
     * @param name
     * @return
     */
    @GetMapping("/getFranchiseeIdNameListByName")
    List<FranchiseeIdName> getFranchiseeIdNameListByName(String name);

    /**
     * 根据名称列表获取加盟商信息
     * @param names
     * @return
     */
    @GetMapping("/getFranchiseeIdNameListByNames")
    List<FranchiseeIdName> getFranchiseeIdNameListByNames(Collection<String> names);


    /**
     * 根据编码获取加盟商信息
     * @param code
     * @return
     */
    @GetMapping("/getFranchiseeIdNameListByCode")
    FranchiseeIdName getFranchiseeIdNameListByCode(String code);

    /**
     * 根据编码列表获取加盟商信息
     * @param codes
     * @return
     */
    @GetMapping("/getFranchiseeIdNameListByCodes")
    List<FranchiseeIdName> getFranchiseeIdNameListByCodes(Collection<String> codes);

}
