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

import com.neusoft.smart.pos.dto.trade.request.GetShopOrderSummaryRequest;
import com.neusoft.smart.pos.dto.trade.response.GetShopOrderDetailsResponse;
import com.neusoft.smart.pos.dto.trade.response.GetShopOrderSummaryResponse;
import com.neusoft.smart.pos.framework.bean.PaginationExtendBean;
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.ModelAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

@FeignClient(value = "service-trade/orderStatistics")
public interface RemoteOrderStatisticsService {

    @GetMapping("/shopOrderSummary")
    ResponseData<PaginationExtendBean<GetShopOrderSummaryResponse>> queryShopOrderSummary(
              @RequestParam("orgId") Integer orgId
            , @RequestParam(value="shopId") List<Integer> shopIds
            , @RequestParam("offset") Integer offset
            , @RequestParam("limit") Integer limit
            , @RequestParam("isPage") Boolean isPage
            , @RequestParam(value = "startTime",defaultValue = "") String startTime
            , @RequestParam(value = "endTime",defaultValue = "") String endTime);

    @GetMapping("/shopOrderDetails")
    ResponseData<GetShopOrderDetailsResponse> queryShopOrderDetails(
            @RequestParam(value="shopId",defaultValue = "") List<Integer> shopIds
            , @RequestParam(value="orderNumber",defaultValue = "") String orderNumber
            , @RequestParam(value="serialNo",defaultValue = "") String serialNo
            , @RequestParam(value="deviceName",defaultValue = "") String deviceName
            , @RequestParam(value="memberCardNo",defaultValue = "") String memberCardNo
            , @RequestParam(value="memberName",defaultValue = "") String memberName
            , @RequestParam(value="cardNum",defaultValue = "") String cardNum
            , @RequestParam(value="customerNumber",defaultValue = "") String customerNumber
            , @RequestParam(value="payType",defaultValue = "") String payType
            , @RequestParam(value="orderStatus",defaultValue = "") String orderStatus
            , @RequestParam(value="startTime",defaultValue = "") String startTime
            , @RequestParam(value="endTime",defaultValue = "") String endTime
            , @RequestParam(value="dateTime",defaultValue = "") String dateTime
            , @RequestParam(value="timeMode",defaultValue = "") String timeMode
            , @RequestParam(value="orderType",defaultValue = "") String orderType
            , @RequestParam("offset") Integer offset
            , @RequestParam("limit") Integer limit
            , @RequestParam("isPage") Boolean isPage);
}