package com.datacenter.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

@Mapper
public interface ExperienceGiftExpireMapper {

    /**
     * 查询所有已到期但未使用（status=0）的体验金券ID。
     * 用于日志记录，方便排查哪些用户的券被置为过期。
     */
    @Select("SELECT id FROM experience_gift_record WHERE status = 0 AND expire_at < NOW()")
    List<Long> findExpiredUnusedIds();

    /**
     * 批量将到期未使用（status=0, expire_at < NOW()）的体验金券置为已过期（status=4）。
     *
     * @return 实际更新行数
     */
    @Update("UPDATE experience_gift_record " +
            "SET status = 4, closed_at = NOW(), updated_at = NOW() " +
            "WHERE status = 0 AND expire_at < NOW()")
    int expireUnused();
}
