package com.vetti.hotake.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.vetti.common.annotation.Excel;
import com.vetti.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * 可信设备对象 hotake_security_trusted_devices
 *
 * @author vetti
 * @date 2026-02-02
 */
@Data
@Accessors(chain = true)
@ApiModel("可信设备")
public class HotakeSecurityTrustedDevices extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @ApiModelProperty("主键ID")
    private Long id;

    /** 用户ID */
    @ApiModelProperty("用户ID")
    @Excel(name = "用户ID")
    private Long userId;

    /** 设备唯一标识 */
    @ApiModelProperty("设备唯一标识")
    @Excel(name = "设备唯一标识")
    private String deviceId;

    /** 设备名称 */
    @ApiModelProperty("设备名称")
    @Excel(name = "设备名称")
    private String deviceName;

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

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

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

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

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

    /** 是否可信 0-否 1-是 */
    @ApiModelProperty("是否可信")
    @Excel(name = "是否可信", readConverterExp = "0=否,1=是")
    private Integer isTrusted;

    /** 信任过期时间 */
    @ApiModelProperty("信任过期时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "信任过期时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date trustExpiresAt;
}
