package com.sqx.modules.member.service;

import com.sqx.modules.member.vo.VipReduceVO;
import com.sqx.modules.pay.entity.PayDetails;
import com.sqx.modules.pay.vo.PayTransactionsVO;

public interface VipService {

    /**
     * 获取购买vip支付参数
     * @param userId 用户id
     * @param promoCode 优惠券码，可选
     * @return 支付参数
     */
    PayTransactionsVO getPayParam(Long userId, String promoCode);

     /**
      * 处理会员支付成功通知
      * @param payDetails 支付详情
      */
    void paySuccess(PayDetails payDetails);

     /**
      * 余额购买vip
      * @param userId 用户id
      * @param promoCode 优惠券码，可选
      */
    void balancePay(Long userId, String promoCode);

     /**
      * 获取用户是否可以会员立减
      *
      * @param userId  用户id
      * @param orderId 订单id
      * @return vip 立减信息
      */
    VipReduceVO getVipReduceInfo(Long userId, Long orderId);
}
