package com.ga.core.mapper.notice;

import com.ga.core.vo.notice.UserDeviceTokenVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * user_device_token Mapper (V107).
 */
@Mapper
public interface UserDeviceTokenMapper {

    /** 토큰 등록(UPSERT) — 동일 token 재등록 시 user/플랫폼 갱신 + 활성화. */
    int upsert(UserDeviceTokenVO vo);

    /** 사용자의 활성 토큰 목록 — 푸시 디스패치용. */
    List<UserDeviceTokenVO> selectActiveByUser(@Param("userId") Long userId);

    /** 토큰 비활성화(로그아웃/만료). user_id 검증 포함. */
    int deactivate(@Param("token") String token, @Param("userId") Long userId);
}
