package com.vetti.hotake.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

/**
 * 登录会话VO
 *
 * @author vetti
 * @date 2026-02-02
 */
@Data
@ApiModel("登录会话信息")
public class SecuritySessionVo
{
    /** 会话ID */
    @ApiModelProperty("会话ID")
    private Long id;

    /** 设备名称（浏览器 + 操作系统） */
    @ApiModelProperty("设备名称")
    private String deviceName;

    /** 设备类型 */
    @ApiModelProperty("设备类型")
    private String deviceType;

    /** 浏览器 */
    @ApiModelProperty("浏览器")
    private String browser;

    /** 操作系统 */
    @ApiModelProperty("操作系统")
    private String os;

    /** IP地址 */
    @ApiModelProperty("IP地址")
    private String ipAddress;

    /** 地理位置 */
    @ApiModelProperty("地理位置")
    private String location;

    /** 登录时间 */
    @ApiModelProperty("登录时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date loginTime;

    /** 最后活动时间 */
    @ApiModelProperty("最后活动时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastActivityTime;

    /** 是否当前会话 */
    @ApiModelProperty("是否当前会话")
    private Boolean isCurrent;

    /** 是否活跃 */
    @ApiModelProperty("是否活跃")
    private Boolean isActive;
}
