package cn.ibizlab.r7.runtime.runtimemgr.r7rt_base.feign;

import java.util.List;

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.cloud.openfeign.FeignClient;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import cn.ibizlab.r7.runtime.runtimemgr.r7rt_base.domain.LoginAccount;
import cn.ibizlab.r7.runtime.runtimemgr.r7rt_base.filter.*;


public interface LoginAccountFeignClient {



	@RequestMapping(method = RequestMethod.GET, value = "/runtimemgr/loginaccounts/{loginaccount_id}")
    public LoginAccount get(@PathVariable("loginaccount_id") String loginaccount_id) ;

	@RequestMapping(method = RequestMethod.POST, value = "/runtimemgr/loginaccounts/checkkey")
    public Boolean checkKey(@RequestBody LoginAccount loginaccount) ;

	@RequestMapping(method = RequestMethod.PUT, value = "/runtimemgr/loginaccounts/{loginaccount_id}/updatepwd")
    public LoginAccount updatePWD(@PathVariable("loginaccount_id") String loginaccount_id, @RequestBody LoginAccount loginaccount) ;

	@RequestMapping(method = RequestMethod.POST, value = "/runtimemgr/loginaccounts/{loginaccount_id}/save")
    public LoginAccount save(@PathVariable("loginaccount_id") String loginaccount_id, @RequestBody LoginAccount loginaccount) ;

	@RequestMapping(method = RequestMethod.DELETE, value = "/runtimemgr/loginaccounts/{loginaccount_id}")
    public Boolean remove(@PathVariable("loginaccount_id") String loginaccount_id) ;

	@RequestMapping(method = RequestMethod.POST, value = "/runtimemgr/loginaccounts")
    public LoginAccount create(@RequestBody LoginAccount loginaccount) ;

	@RequestMapping(method = RequestMethod.GET, value = "/runtimemgr/loginaccounts/{loginaccount_id}/getdraft")
    public LoginAccount getDraft(@PathVariable("loginaccount_id") String loginaccount_id, @RequestBody LoginAccount loginaccount) ;

	@RequestMapping(method = RequestMethod.PUT, value = "/runtimemgr/loginaccounts/{loginaccount_id}")
    public LoginAccount update(@PathVariable("loginaccount_id") String loginaccount_id, @RequestBody LoginAccount loginaccount) ;

    @RequestMapping(method= RequestMethod.GET , value="/runtimemgr/loginaccounts/fetchgetloginaccount")
	public Page<LoginAccount> fetchGetLoginaccount(LoginAccountSearchContext searchContext) ;

    @RequestMapping(method= RequestMethod.GET , value="/runtimemgr/loginaccounts/fetchdefault")
	public Page<LoginAccount> fetchDefault(LoginAccountSearchContext searchContext) ;

	@RequestMapping(method = RequestMethod.GET, value = "/runtimemgr/users/{user_id}/loginaccounts/{loginaccount_id}")
    public LoginAccount getByUser(@PathVariable("user_id") String user_id, @PathVariable("loginaccount_id") String loginaccount_id) ;

	@RequestMapping(method = RequestMethod.POST, value = "/runtimemgr/users/{user_id}/loginaccounts/checkkey")
    public Boolean checkKeyByUser(@PathVariable("user_id") String user_id, @RequestBody LoginAccount loginaccount) ;

	@RequestMapping(method = RequestMethod.PUT, value = "/runtimemgr/users/{user_id}/loginaccounts/{loginaccount_id}/updatepwd")
    public LoginAccount updatePWDByUser(@PathVariable("user_id") String user_id, @PathVariable("loginaccount_id") String loginaccount_id, @RequestBody LoginAccount loginaccount) ;

	@RequestMapping(method = RequestMethod.POST, value = "/runtimemgr/users/{user_id}/loginaccounts/{loginaccount_id}/save")
    public LoginAccount saveByUser(@PathVariable("user_id") String user_id, @PathVariable("loginaccount_id") String loginaccount_id, @RequestBody LoginAccount loginaccount) ;

	@RequestMapping(method = RequestMethod.DELETE, value = "/runtimemgr/users/{user_id}/loginaccounts/{loginaccount_id}")
    public Boolean removeByUser(@PathVariable("user_id") String user_id, @PathVariable("loginaccount_id") String loginaccount_id) ;

	@RequestMapping(method = RequestMethod.POST, value = "/runtimemgr/users/{user_id}/loginaccounts")
    public LoginAccount createByUser(@PathVariable("user_id") String user_id, @RequestBody LoginAccount loginaccount) ;

	@RequestMapping(method = RequestMethod.GET, value = "/runtimemgr/users/{user_id}/loginaccounts/{loginaccount_id}/getdraft")
    public LoginAccount getDraftByUser(@PathVariable("user_id") String user_id, @PathVariable("loginaccount_id") String loginaccount_id, @RequestBody LoginAccount loginaccount) ;

	@RequestMapping(method = RequestMethod.PUT, value = "/runtimemgr/users/{user_id}/loginaccounts/{loginaccount_id}")
    public LoginAccount updateByUser(@PathVariable("user_id") String user_id, @PathVariable("loginaccount_id") String loginaccount_id, @RequestBody LoginAccount loginaccount) ;

    @RequestMapping(method= RequestMethod.GET , value="/runtimemgr/users/{user_id}/loginaccounts/fetchgetloginaccount")
	public Page<LoginAccount> fetchGetLoginaccountByUser(@PathVariable("user_id") String user_id , LoginAccountSearchContext searchContext) ;

    @RequestMapping(method= RequestMethod.GET , value="/runtimemgr/users/{user_id}/loginaccounts/fetchdefault")
	public Page<LoginAccount> fetchDefaultByUser(@PathVariable("user_id") String user_id , LoginAccountSearchContext searchContext) ;
}
