package com.dora.config;

import com.dora.service.PromotionLevelService;
import com.dora.service.UserMembershipService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;

/**
 * 定时任务配置类
 */
@Slf4j
@Configuration
@EnableScheduling
@RequiredArgsConstructor
public class ScheduleConfig {

    private final UserMembershipService userMembershipService;
    private final PromotionLevelService promotionLevelService;

    /**
     * 每天凌晨2点执行用户会员状态更新任务
     * cron表达式：秒 分 时 日 月 周
     */
    @Scheduled(cron = "0 0 2 * * ?")
    public void updateUserMembershipStatus() {
        log.info("开始执行定时任务：更新用户会员状态");
        userMembershipService.updateUserMembershipStatus();
    }

    /**
     * 移除定时任务：推广等级更新改为实时处理
     * 原定时任务：每小时执行一次推广等级更新任务
     * 新机制：在用户付款成功后实时更新推广等级
     */
    // @Scheduled(cron = "0 0 * * * ?")
    // public void updateAllUserPromotionLevels() {
    //     log.info("开始执行定时任务：更新所有用户推广等级");
    //     // 已移除：改为实时处理，在推广分成处理时同步更新等级
    // }
} 