package com.ruoyi.system.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.system.domain.PromotionActivity;
import com.ruoyi.system.domain.PromotionActivityRule;

/**
 * 促销活动Service接口
 *
 * @author ruoyi
 * @date 2024-05-30
 */
public interface IPromotionActivityService extends IService<PromotionActivity>
{
    /**
     * 创建促销活动（含规则）
     *
     * @param activity 活动主体
     * @param rules 活动规则列表
     * @return 是否成功
     */
    boolean createActivity(PromotionActivity activity, List<PromotionActivityRule> rules);

    /**
     * 查询活动详情（含规则）
     *
     * @param id 活动ID
     * @return 活动详情
     */
    PromotionActivity selectActivityWithRules(Long id);

    /**
     * 修改促销活动（仅未开始）
     *
     * @param activity 活动主体
     * @param rules 活动规则列表
     * @return 是否成功
     */
    boolean updateActivity(PromotionActivity activity, List<PromotionActivityRule> rules);

    /**
     * 删除促销活动（仅未开始）
     *
     * @param id 活动ID
     * @return 是否成功
     */
    boolean deleteActivity(Long id);

    /**
     * 结束活动
     *
     * @param id 活动ID
     * @return 是否成功
     */
    boolean endActivity(Long id);
}
