package com.zioinfo.signage.uiws.auth;

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

/**
 * 2FA 로그인 검증 이력 매퍼 (tb_uiws_login_verify). 발급/검증 감사 기록.
 * verify_code 는 감사 이력에만 남고 API 응답에는 절대 노출하지 않는다.
 */
@Mapper
public interface LoginVerifyMapper {

    int insert(UiwsLoginVerify v);

    /** 동일 user 의 미검증 EMAIL 이력 중 최신 1건을 검증완료(Y) 처리. */
    @Update("""
            UPDATE tb_uiws_login_verify
            SET verified_yn = 'Y', updated_by = #{userId}, updated_at = now()
            WHERE verify_id = (
                SELECT verify_id FROM tb_uiws_login_verify
                WHERE user_id = #{userId} AND verify_method = 'EMAIL' AND verified_yn = 'N'
                ORDER BY verify_id DESC LIMIT 1
            )
            """)
    int markLatestVerified(String userId);
}
