package com.bonus.canteen.core.device.domain;

import com.bonus.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import com.bonus.common.core.web.domain.BaseEntity;

/**
 * 设备资料对象 device_info
 * 
 * @author xsheng
 * @date 2025-05-25
 */


@EqualsAndHashCode(callSuper = true)
@Data
@ToString
public class DeviceInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 设备id  */
    private Long deviceId;

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

    /** 父类设备id */
    @Excel(name = "父类设备id")
    @ApiModelProperty(value = "父类设备id")
    private Long parentId;

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

    /** 商户id */
    private Long tenantId;

    /** 设备在线状态1在线2离线 */
    @Excel(name = "设备在线状态1在线2离线")
    @ApiModelProperty(value = "设备在线状态1在线2离线")
    private Long onlineState;

    /** 版本号 */
    @Excel(name = "版本号")
    @ApiModelProperty(value = "版本号")
    private Long versionCode;

    /** 版本名称 */
    @Excel(name = "版本名称")
    @ApiModelProperty(value = "版本名称")
    private String versionName;

    /** 消费模式(扣费模式)  1-手动 2-定额 3-类别 */
    @Excel(name = "消费模式(扣费模式)  1-手动 2-定额 3-类别")
    @ApiModelProperty(value = "消费模式(扣费模式)  1-手动 2-定额 3-类别")
    private Long consumeMode;

    /** 通讯模式 */
    @Excel(name = "通讯模式")
    @ApiModelProperty(value = "通讯模式")
    private Long communicateMode;

    /** 设备ip  */
    @Excel(name = "设备ip ")
    @ApiModelProperty(value = "设备ip ")
    private String deviceIp;

    /** 子网掩码  */
    @Excel(name = "子网掩码 ")
    @ApiModelProperty(value = "子网掩码 ")
    private String deviceMask;

    /** 设备mac  */
    @Excel(name = "设备mac ")
    @ApiModelProperty(value = "设备mac ")
    private String deviceMac;

    /** 网关  */
    @Excel(name = "网关 ")
    @ApiModelProperty(value = "网关 ")
    private String deviceGateway;

    /** 首选dns  */
    @Excel(name = "首选dns ")
    @ApiModelProperty(value = "首选dns ")
    private String dnsPrimary;

    /** 备选dns  */
    @Excel(name = "备选dns ")
    @ApiModelProperty(value = "备选dns ")
    private String dnsBackup;

    /** 设备sn码 */
    @Excel(name = "设备sn码")
    @ApiModelProperty(value = "设备sn码")
    private String deviceSn;

    /** 设备编号  */
    @Excel(name = "设备编号 ")
    @ApiModelProperty(value = "设备编号 ")
    private String deviceNumber;

    /** 设备型号  */
    @Excel(name = "设备型号 ")
    @ApiModelProperty(value = "设备型号 ")
    private String deviceModel;

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

    /** 设备密码 */
    @Excel(name = "设备密码")
    @ApiModelProperty(value = "设备密码")
    private String devicePwd;

    /** 设备安装地址 */
    @Excel(name = "设备安装地址")
    @ApiModelProperty(value = "设备安装地址")
    private String deviceAddr;

    /** 设备key */
    @Excel(name = "设备key")
    @ApiModelProperty(value = "设备key")
    private String deviceKey;

    /** 服务器ip/域名 */
    @Excel(name = "服务器ip/域名")
    @ApiModelProperty(value = "服务器ip/域名")
    private String deviceServiceIp;

    /** 服务器端口 */
    @Excel(name = "服务器端口")
    @ApiModelProperty(value = "服务器端口")
    private String deviceServicePort;

    /** 是否限额 */
    @Excel(name = "是否限额")
    @ApiModelProperty(value = "是否限额")
    private Long ifQuotaLimit;

    /** 是否打折 */
    @Excel(name = "是否打折")
    @ApiModelProperty(value = "是否打折")
    private Long ifDiscount;

    /** 是否限次 */
    @Excel(name = "是否限次")
    @ApiModelProperty(value = "是否限次")
    private Long ifTimeLimit;

    /** 是否启用叫号 */
    @Excel(name = "是否启用叫号")
    @ApiModelProperty(value = "是否启用叫号")
    private Long ifUseCallNum;

    /** 是否允许离线消费 */
    @Excel(name = "是否允许离线消费")
    @ApiModelProperty(value = "是否允许离线消费")
    private Long ifOffLinePay;

    /** 设备是否启用(1-是, 2-否) */
    @Excel(name = "设备是否启用(1-是, 2-否)")
    @ApiModelProperty(value = "设备是否启用(1-是, 2-否)")
    private Long ifUse;

    /** 图片地址（当mch_type为40 时，该字段表示背景图） */
    @Excel(name = "图片地址", readConverterExp = "当=mch_type为40,时=，该字段表示背景图")
    private String imgUrl;

    /** 设备数据传输状态(1-传输完毕,0-传输中) */
    @Excel(name = "设备数据传输状态(1-传输完毕,0-传输中)")
    @ApiModelProperty(value = "设备数据传输状态(1-传输完毕,0-传输中)")
    private Long dataTransferStatus;

    /** 打印机状态(1-离线 2-在线.工作状态正常  3-在线,工作状态不正常) */
    @Excel(name = "打印机状态(1-离线 2-在线.工作状态正常  3-在线,工作状态不正常)")
    @ApiModelProperty(value = "打印机状态(1-离线 2-在线.工作状态正常  3-在线,工作状态不正常)")
    private Long printStatus;

    /** 打印机key */
    @Excel(name = "打印机key")
    @ApiModelProperty(value = "打印机key")
    private String printKey;

    /** 设备状态(1正常 2异常) */
    @Excel(name = "设备状态(1正常 2异常)")
    @ApiModelProperty(value = "设备状态(1正常 2异常)")
    private Long deviceState;

    /** 通信协议(1-http,2-mqtt) */
    @Excel(name = "通信协议(1-http,2-mqtt)")
    @ApiModelProperty(value = "通信协议(1-http,2-mqtt)")
    private Long deviceProtocol;

    /** 心跳包时间(电子菜排) */
    @Excel(name = "心跳包时间(电子菜排)")
    @ApiModelProperty(value = "心跳包时间(电子菜排)")
    private Long heartBeatTime;

    /** 上次更新时间 */
    @Excel(name = "上次更新时间")
    @ApiModelProperty(value = "上次更新时间")
    private Long lastUpdateTime;


    private String areaId;
    private String areaName;
    private String canteenId;
    private String canteenName;
    private String stallId;
    private String stallName;
    private String recipeId;
    private String recipeName;
}
