package com.sb.web.billing; import com.sb.web.auth.mapper.MemberMapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; /** * 만료된 유료 멤버십 자동 강등. 매시간 실행. * (만료일이 NULL 인 관리자 영구 부여는 강등되지 않음) */ @Slf4j @Component @RequiredArgsConstructor public class PremiumExpiryScheduler { private final MemberMapper memberMapper; @Scheduled(cron = "0 5 * * * *") // 매시 5분 public void downgradeExpired() { int n = memberMapper.downgradeExpired(); if (n > 0) { log.info("[billing] 만료 멤버십 강등: {}건", n); } } }