package com.qs.mp.admin.service;

import com.qs.mp.admin.domain.Marketing;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.mp.admin.domain.param.MarketingCreateParam;
import com.qs.mp.admin.domain.param.MarketingQueryParam;
import com.qs.mp.admin.domain.param.MarketingUpdateParam;
import com.qs.mp.admin.domain.vo.MarketingListVO;
import com.qs.mp.user.domain.param.MarketingHelpParam;

import java.util.List;

/**
 * <p>
 * 营销活动表 服务类
 * </p>
 *
 * @author quanshu
 * @since 2022-05-16
 */
public interface IMarketingService extends IService<Marketing> {

    /**
     * 创建营销活动
     * @param marketingCreateParam
     */
    void createMarketing(MarketingCreateParam marketingCreateParam);

    /**
     * 更新营销活动
     * @param marketingUpdateParam
     */
    void updateMarketing(MarketingUpdateParam marketingUpdateParam);

    /**
     * 获取营销活动列表
     * @param
     * @return
     */
    List<Marketing> listMarketing(MarketingQueryParam marketingQueryParam);

    /**
     * 根据活动id删除活动相关信息
     * @param id
     */
    void deleteById(Long id);

    /**
     * 活动助力
     * @param marketingHelpParam
     * @param userId
     */
    void help(MarketingHelpParam marketingHelpParam, Long userId);

    /**
     * 开奖
     * @param marketing
     */
    void lottery(Marketing marketing);

    /**
     * 立即获取抽奖码
     * @param marketingId
     * @param userId
     */
    void generateCode(Long marketingId, Long userId);

    /**
     * 拷贝营销活动
     * @param marketingId
     */
    void copyById(Long marketingId);
}
