package com.ruoyi.framework.web.service;

/**
 * 登录审计记录接口。
 * <p>
 * 将写 {@code sys_logininfor} 的操作从 {@link LoginSmsService} 中抽离，
 * 避免单测时依赖 {@link com.ruoyi.framework.manager.AsyncManager} 与 Spring 容器。
 * 默认实现见 {@link AsyncLoginInforRecorder}。
 * </p>
 */
public interface LoginInforRecorder
{
    /**
     * 异步记录一条登录相关日志。
     *
     * @param username 尝试登录的用户名
     * @param status   {@link com.ruoyi.common.constant.Constants#LOGIN_SUCCESS} 或 LOGIN_FAIL
     * @param message  失败原因或成功说明（写入 sys_logininfor.msg）
     */
    void record(String username, String status, String message);
}
