package com.seamew.lottery.application.process;

import com.seamew.lottery.application.process.req.DrawProcessReq;
import com.seamew.lottery.application.process.res.DrawProcessResult;
import com.seamew.lottery.application.process.res.RuleQuantificationCrowdResult;
import com.seamew.lottery.domain.rule.model.req.DecisionMatterReq;

/**
 * @Author: seamew
 * @Title: IActivityProcess
 * @CreateTime: 2023年02月24日 16:17:00
 * @Description: 活动抽奖流程编排接口
 * @Version: 1.0
 */
public interface IActivityProcess {

    /**
     * 执行抽奖流程
     *
     * @param req 抽奖请求
     * @return 抽奖结果
     */
    DrawProcessResult doDrawProcess(DrawProcessReq req);

    /**
     * 规则量化人群，返回可参与的活动ID
     *
     * @param req 规则请求
     * @return 量化结果，用户可以参与的活动ID
     */
    RuleQuantificationCrowdResult doRuleQuantificationCrowd(DecisionMatterReq req);

}