package com.hzs.activity.consume.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.activity.base.vo.AcMemberConsumeRuleVo;
import com.hzs.activity.recommend.param.AcRecommendParam;
import com.hzs.common.domain.activity.consume.AcMemberConsumeRule;
import com.hzs.system.sys.dto.ApprovalBusinessResultDTO;
import com.hzs.common.domain.activity.consume.ext.AcMemberConsumeRuleExt;

import java.util.Date;
import java.util.List;

/**
 * @description: 会员消费赠送活动规则配置
 * @author: zhang jing
 * @date: 2024/11/28 11:30
 * @param:
 * @return:
 **/
public interface IAcMemberConsumeRuleService extends IService<AcMemberConsumeRule> {


    /**
     * @description:会员消费赠送发起签呈
     * @author: zhang jing
     * @date: 2024/11/29 9:42
     * @param: [memberConsumeRuleVo]
     * @return: java.lang.Boolean
     **/
    Boolean onLinePetition(AcMemberConsumeRuleVo memberConsumeRuleVo);

    /**
     * @description: 会员消费赠审批
     * @author: zhang jing
     * @date: 2024/11/29 16:32
     * @param: [approvalBusinessResultDTO]
     * @return: java.lang.String
     **/
    String approvalAgree(ApprovalBusinessResultDTO approvalBusinessResultDTO);
    /**
     * 规则列表以及商品信息
     *
     * @param startDate   开始时间
     * @param endDate     结束时间
     * @param pkGrade     结算等级
     * @param memberPoint 会员点位数量
     * @param pkCountry   所属国家
     * @return
     */
    List<AcMemberConsumeRuleExt> listRuleAndProduct(Date startDate, Date endDate, Integer pkGrade, Integer memberPoint, Integer pkCountry);

    /**
     * @description: 新增会员消费活动
     * @author: zhang jing
     * @date: 2024/12/2 17:15
     * @param: [mcrVo]
     * @return: java.lang.Long
     **/
    Long saveMemberConsumeRule(AcMemberConsumeRuleVo mcrVo);
    /**
     * @description: 修改会员消费活动规则表
     * @author: zhang jing
     * @date: 2024/12/2 17:14
     * @param: [mcrVo]
     * @return: void
     **/
    void updateConsumptionGift(AcMemberConsumeRuleVo mcrVo);
    /**
     * @description: 删除会员消费活动
     * @author: zhang jing
     * @date: 2024/12/2 17:14
     * @param: [pkId]
     * @return: void
     **/
    void removeActivity(Integer pkId);
}
