package cn.freemud.management.thirdparty;

import cn.freemud.management.entities.dto.request.order.MCCafeCouponLockRequest;
import cn.freemud.management.entities.dto.request.order.MCCafeCouponRequest;
import cn.freemud.management.entities.dto.response.coupon.McdNetBatchQueryResponse;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponQueryResponse;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@FeignClient(name = "OPEN-STORE-COUPON-ADAPTER-SERVICE",url="${saas.couponadapterclient.feign.url}")
@RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface CouponOfflineMCCafeClient {

    @PostMapping("/mccafe/redeem")
    CouponRedeemResponse redeem(MCCafeCouponRequest mcCafeCouponRequest);

    @PostMapping("/mccafe/cancelRedeem")
    CouponRedeemResponse cancelRedeem(MCCafeCouponRequest mcCafeCouponRequest);

    @PostMapping("/mccafe/query")
    CouponQueryResponse query(MCCafeCouponRequest mcCafeCouponRequest);

    @PostMapping("/mccafe/batchQuery")
    McdNetBatchQueryResponse batchQuery(MCCafeCouponRequest mcCafeCouponRequest);

    @PostMapping("/mccafe/lock")
    CouponBaseResponse lock(MCCafeCouponLockRequest MCCafeCouponLockRequest);

    @PostMapping("/mccafe/unlock")
    CouponBaseResponse unlock(MCCafeCouponLockRequest MCCafeCouponLockRequest);
}
