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

import com.neusoft.smart.pos.dto.trade.request.*;
import com.neusoft.smart.pos.dto.trade.response.*;
import com.neusoft.smart.pos.framework.dto.ResponseData;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 订单管理使用远程调用service
 */
@FeignClient(value = "service-trade/bill")
public interface RemoteBillService {

    @GetMapping("/noAcceptBills")
    ResponseData<GetNoAcceptBillsResponse> queryNoAcceptBills(
            @RequestParam(value="orgId",defaultValue = "0") Integer orgId
            , @RequestParam(value = "shopIds") List<Integer> shopIds
            ,@RequestParam(value="billNumber",defaultValue = "") String billNumber
            ,@RequestParam(value="rebuild",defaultValue = "0") String rebuild);
    
    @GetMapping("/acceptBills")
    ResponseData<GetAcceptBillsResponse> queryAcceptBills(
            @RequestParam(value="orgId",defaultValue = "0") Integer orgId
            ,@RequestParam(value = "shopIds") List<Integer> shopIds
            ,@RequestParam(value="startTime",defaultValue = "") String startTime
            ,@RequestParam(value="endTime",defaultValue = "") String endTime);
    
    @GetMapping("/billDetails")
    ResponseData<GetBillDetailsResponse> queryBillDetails(
            @RequestParam(value = "shopId") Integer shopId
            , @RequestParam(value="billNumber") String billNumber
            , @RequestParam("offset") Integer offset
            , @RequestParam("limit") Integer limit
            , @RequestParam("isPage") Boolean isPage);
}