package com.hzs.activity.base;

import com.hzs.activity.dto.AcRecommendUpgradeDTO;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.activity.recommend.AcRepurCouponsRuleConfig;
import com.hzs.common.domain.sale.ext.SaOrderExt;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 所有活动的生效
 */
public interface IActivityServiceApi {

    /**
     * 在线支付查询待支付金额
     *
     * @param pkMember
     * @param orderCode
     * @return
     */
    R<BigDecimal> queryDrawRewardPayNumMoney(Long pkMember, String orderCode);

    /**
     * 抽奖在线支付购买次数
     *
     * @param pkMember
     * @param orderCode
     * @return
     */
    R<Boolean> callBackOnlinePay(Long pkMember, String orderCode);

    /**
     * 处理活动
     */
    R<Boolean> handleActivity(SaOrderExt saOrderExt);

    /**
     * 撤单时回退抽奖次数
     *
     * @param saOrderExt
     * @return
     */
    R<Boolean> backGiveMemberDrawNum(SaOrderExt saOrderExt);

    /**
     * 查询目前所有启用的复购券规则
     *
     * @param settleDate
     * @return
     */
    R<List<AcRepurCouponsRuleConfig>> queryAcRepurchaseCouponsRule(Date settleDate);

    /**
     * 调用调用直推升级接口
     *
     * @param recommendUpgradeDTO 入参
     * @return Boolean
     */
    R<Boolean> invokeRecommendUpgrade(AcRecommendUpgradeDTO recommendUpgradeDTO);

}
