package com.neusoft.smart.pos.gateway.service.feignService;

import com.neusoft.smart.pos.dto.inventory.request.InventoryConfigRequest;
import com.neusoft.smart.pos.dto.inventory.request.SellAndWarehouseOutRequest;
import com.neusoft.smart.pos.dto.inventory.response.InventoryGoodsConfigResponse;
import com.neusoft.smart.pos.framework.dto.ResponseData;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;

@FeignClient(value = "service-inventory")
public interface RemoteInventoryService {
    
    
    @PostMapping("/inventory/config")
    ResponseData<?> createConfig(@RequestBody InventoryConfigRequest InventoryConfigRequest);
    
    @PutMapping("/inventory/config")
    ResponseData<?> updateConfig(@RequestBody InventoryConfigRequest InventoryConfigRequest);
    
    @GetMapping("/inventory/config/{orgId}/{shopId}")
    ResponseData<InventoryGoodsConfigResponse> getConfig(@PathVariable("orgId") Integer orgId, @PathVariable("shopId") Integer shopId);
    
    @PutMapping("/inventory/store/order/{orderStatus}")
    ResponseData<?> orderChangeStatus(@PathVariable("orderStatus") Integer orderStatus,
            @RequestBody SellAndWarehouseOutRequest sellAndWarehouseOutRequest);
    
}
