package com.hz.his.feign.service.platform;

import com.hx.resultTool.Result;
import com.hz.his.dto.coupon.CouponDto;
import com.hz.his.dto.coupon.CouponSendDto;
import com.hz.his.dto.coupon.OrderSendCouponDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * 这里这个name 需要填写 请求的服务提供者的注册到nacos Server上面的服务名,path 是请求接口前缀
 */
@FeignClient(name="phi-platform-service",path = "/phip",contextId = "phip-coupon")
public interface SPhipCouponService {

    /**
     * 开放平台-优惠券列表(含指定)
     */
    @PostMapping(value = "/coupon/list/all")
    Result getCouponList(@RequestBody CouponDto couponDto);

    /**
     * 开放平台-派发优惠券给用户
     */
    @PostMapping(value = "/coupon/send/coupon")
    Result sendUserCoupon(@RequestBody CouponDto couponDto);

    /**
     * 开放平台-派发优惠券给用户-金额版本
     */
    @PostMapping(value = "/coupon/send/coupon/by/money")
    Result sendUserCouponByMoney(@RequestBody CouponSendDto couponSendDto);

    /**
     * 开放平台-作废优惠券
     */
    @PostMapping(value = "/coupon/cancel/coupon")
    Result cancelUserCoupon(@RequestBody CouponDto couponDto);

    /**
     * 开放平台-获取艾心荟优惠券2.0列表
     * @param dto
     * @return
     */
    @PostMapping(value = "/coupon/get/Coupon")
    Result getCoupon(@RequestBody CouponDto dto);

    /**
     * 开放平台-作废用户优惠券
     */
    @PostMapping(value = "/coupon/invalid/user/coupon")
    Result invalidCouponNumber(@RequestBody CouponDto couponDto);

    /**
     * 开放平台-检查优惠券是否可用
     */
    @PostMapping(value = "/coupon/check/coupon")
    Result checkCoupon(@RequestBody CouponDto couponDto);

    /**
     * 开放平台-订单发放优惠券
     */
    @PostMapping(value = "/coupon/order/send/coupon")
    Result orderSendCoupon(@RequestBody OrderSendCouponDto couponDto);

    /**
     * 开放平台-检查优惠券是否可用 - 开单结账同时执行使用
     */
    @PostMapping(value = "/coupon/check/coupon/to/orderAndPay")
    Result checkCouponToOrderAndPay(@RequestBody CouponDto couponDto);
}