package com.yuchen.saas.parking.charge.api.feign;

import com.yuchen.saas.parking.charge.api.entity.charge.SpcOccupyFeeBill;
import com.yuchen.saas.parking.charge.api.vo.charge.OccupyFeeBillDataListVO;
import com.yuchen.saas.parking.charge.api.vo.charge.SpcOccupyFeeBillExcelVo;
import io.swagger.annotations.ApiOperation;
import org.nest.springwrap.core.launch.app.AppNameConstant;
import org.nest.springwrap.core.tool.api.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@FeignClient(
        value = AppNameConstant.SAAS_PARKING_CHARGE,
        fallbackFactory = SpcOccupyFeeBillFeignFallback.class
)
public interface SpcOccupyFeeBillFeignClient {

    /**
     * 根据车牌获取账单id
     * @param plateNo
     * @return
     */
    @GetMapping("/spcAdminOccupyFeeBill/getOccupyFeeBillDataByPlateNo/{plateNo}")
    R<List<SpcOccupyFeeBill>> getOccupyFeeBillDataByPlateNo(@PathVariable String plateNo);


    /**
     * 根据账单id获取占位账单列表
     * @param billIdlist
     * @return
     */
    @PostMapping("/spcAdminOccupyFeeBill/getChargeBillDataListByFinished")
    R<List<OccupyFeeBillDataListVO>>  getChargeBillDataListByFinished(@RequestBody List<Long>  billIdlist);

    /**
     * 根据账单id获取占位账单列表
     * @param billIdlist
     * @return
     */
    @PostMapping("/spcAdminOccupyFeeBill/getChargeBillDataListByNoFinished")
    R<List<OccupyFeeBillDataListVO>>  getChargeBillDataListByNoFinished(@RequestBody List<Long>  billIdlist);

    @GetMapping("/spcAdminOccupyFeeBill/geOccupancyFeeTerminalData/{billId}")
     R<OccupyFeeBillDataListVO> geOccupancyFeeTerminalData(@PathVariable Long billId) ;

    @PostMapping("/spcAdminOccupyFeeBill/exportOccupyFeeOrderData")
    @ApiOperation(value = "占用订单导出excel", notes = "占用订单导出excel")
     R<List<SpcOccupyFeeBillExcelVo>> exportOccupyFeeOrderData(@RequestBody List<Long> billIdList);
}
