package shop.alien.store.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import shop.alien.entity.store.ActivitySignInConfig;
import shop.alien.entity.store.ActivitySignInReward;
import shop.alien.entity.store.vo.ActivityConfigVo;
import shop.alien.entity.store.vo.ActivityPeriodVo;

import java.util.List;

/**
 * @author zhangchen
 * @version 1.0
 * @date 2025/09/05 10:00
 */
public interface ActivityConfigService extends IService<ActivitySignInConfig> {
    /**
     * 创建签到活动
     */
    ActivityConfigVo createOrUpdateActivity(ActivityConfigVo configVO);

    /**
     * 更新签到活动
     */
    ActivitySignInConfig updateActivity(Long id, ActivityConfigVo configVO);

    /**
     * 获取活动详情
     */
    ActivityConfigVo getActivitySignInConfigById(Long id);

    /**
     * 获取活动列表
     */
    IPage<ActivitySignInConfig> getActivityList(int pageNum, int pageSize, String activityName, Integer status);

    /**
     * 更新活动状态
     */
    boolean updateActivityStatus(Integer id, Integer status);

    /**
     * 保存活动奖励配置
     */
    void saveActivityRewards(Long activityId, List<ActivitySignInReward> rewards);

    /**
     * 删除活动
     */
    boolean deleteActivity(Integer id);

    /**
     * 获取默认方案
     */
    ActivityConfigVo getDefaultActivitySignInConfigById();

    /**
     * 校验时间段重复
     */
    List<ActivityPeriodVo> checkOverlapTime(String startTime, String endTime);
}
