package com.cool.store.dto.huoma;

import com.alibaba.fastjson.parser.DefaultJSONParser;
import com.alibaba.fastjson.parser.deserializer.ObjectDeserializer;
import com.cool.store.utils.BrowserVersionUtils;
import com.cool.store.utils.StringUtil;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.lang.reflect.Type;

/**
 * @Author suzhuhong
 * @Date 2025/8/18 16:27
 * @Version 1.0
 */
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class StoreXinFaDeviceDetail {

    /**
     * 设备ID
     */
    @ApiModelProperty(value = "设备ID")
    private String id;

    @ApiModelProperty("设备id")
    private String deviceId;

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

    /**
     * 设备连接状态 0:未连接 1:已连接
     */
    @ApiModelProperty(value = "设备连接状态 false:未连接 true:已连接")
    private Boolean isConnect;

    /**
     * 设备总内存
     */
    @ApiModelProperty(value = "设备总内存")
    private String totalRam;

    /**
     * 设备可用内存
     */
    @ApiModelProperty(value = "设备可用内存")
    private String availRam;

    /**
     * 设备浏览器信息
     */
    @ApiModelProperty(value = "设备浏览器信息")
    private String userAgent;

    /**
     * 内用内存小于300M 或者 浏览器版本小于60
     */
    @ApiModelProperty(value = "内用内存小于300M 或者 浏览器版本小于60")
    private Boolean flag;

    public boolean getFlag() {
        if (StringUtil.isEmpty(availRam)||StringUtil.isEmpty(userAgent)){
            return false;
        }
        try {
            Boolean isOldChromeBrowser = BrowserVersionUtils.isOldChromeBrowser(userAgent);
            long availableMemoryMB = Long.parseLong(availRam) / (1024 * 1024);
            return availableMemoryMB < 300 || isOldChromeBrowser;
        } catch (NumberFormatException e) {
            return false;
        }
    }

}
