package cn.iocoder.yudao.module.member.service;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.member.entity.ActiveMain;
import cn.iocoder.yudao.module.member.vo.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.validation.Valid;
import java.util.List;

/**
 * 营销活动 Service 接口
 *
 * @author pqz
 */
public interface ActiveMainService extends IService<ActiveMain> {

    /**
     * 保存营销活动
     *
     * @param saveReqVO ActiveMainSaveReqVO
     * @author PQZ
     * @date 14:14 2024/9/19
     **/
    void saveActiveMain(ActiveMainSaveReqVO saveReqVO);


    /**
     * 删除营销活动
     *
     * @param id 编号
     */
    void deleteActiveMain(String id);

    /**
     * 根据营销活动获取详情
     *
     * @param id      营销活动id
     * @param isChild 是否查询出关联的附属卡券信息
     * @return cn.iocoder.yudao.module.member.vo.ActiveMainRespVO
     * @author PQZ
     * @date 18:23 2024/9/19
     **/
    ActiveMainRespVO getActiveMain(String id, boolean isChild);

    /**
     * 分页查询营销活动
     *
     * @param pageReqVO ActiveMainPageReqVO实体
     * @param page      分页参数
     * @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.member.vo.ActiveMainRespVO>
     * @author PQZ
     * @date 14:17 2024/9/19
     **/
    IPage<ActiveMainRespVO> queryListPage(ActiveMainPageReqVO pageReqVO, Page<ActiveMainRespVO> page);


    /**
     * 不分页查询可参与的活动规则
     *
     * @param pageReqVO ActiveMainPageReqVO实体
     * @return java.util.List<cn.iocoder.yudao.module.member.vo.ActiveMainRespVO>
     * @author PQZ
     * @date 16:11 2024/9/23
     **/
    List<ActiveMainRespVO> listActive(ActiveMainPageReqVO pageReqVO);

}