package org.springblade.third.iotdevice.dto;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @author lidexi
 * @date 2021/5/27 10:00
 */
@Data
public class AepIotDeviceDto {

	@ApiModelProperty("接入类型（必填）: 1.设备直连，2.网关接入，3.南向云接入（只支持1）")
	private String accessType = "1";

	/**
	 * authType：认证方式 1:特征串认证,2:SM9认证,3:证书认证,4:IMEI认证，5:SIMID认证，6:SM2认证，7:IPV6标识认证
	 *  * 注：SM9认证、SIMID认证需要订购
	 *  * T-LINK协议支持：1:特征串认证,2:SM9认证,3:证书认证,5:SIMID认证
	 *  * MQTT协议支持：1:特征串认证,2:SM9认证,5:SIMID认证,6:SM2认证
	 *  * LWM2M协议支持：2:SM9认证,4:IMEI认证，5:SIMID认证，6:SM2认证，7:IPV6标识认证
	 *  * HTTP协议、TCP协议支持：1:特征串认证
	 *  * JT/T808支持：无
	 *  * 网关MQTT协议支持：1:特征串认证
	 */
	@ApiModelProperty("认证方式 1:特征串认证,2:SM9认证,3:证书认证,4:IMEI认证，5:SIMID认证，6:SM2认证，7:IPV6标识认证 ")
	private String authType;

	@ApiModelProperty("dataEncryption：数据加密方式 1:sm1,2:sm2,3:sm4,4:dtls,5:明文（只支持MQTT/LWM2M）")
	private String dataEncryption;

	@ApiModelProperty("T/T808协议 设备型号")
	private String deviceModel;

	@ApiModelProperty("encryptionType：安全类型(只支持MQTT,TCP协议) 0:一机一密，1:一型一密")
	private String encryptionType;

	@ApiModelProperty("Endpoint格式（LWM2M协议必填）:1.IMEI2.URN:IMEI:###############3.URN:IMEI-IMSI: ###############-############### 4.URN:IMEI+SM9\n" +
		" * 注：认证方式为SM9认证时，Endpoint格式只能为4\n" +
		" * 认证方式为IMEI认证，SIMID认证，SM2认证时，Endpoint格式为1/2/3\n" +
		" * 认证方式为IPV6标识认证时，Endpoint格式为3")
	private String endpointFormat;

	@ApiModelProperty("* lwm2mEdrxTime:eDRX模式时间窗(LWM2M协议,当省电模式为3时,必填):20 ～ 10485.76 间的值,精确到小数点后两位")
	private String lwm2mEdrxTime;

	@ApiModelProperty("JT/T808协议 制造商ID")
	private String manufacturerId;

	@ApiModelProperty("networkType：网络类型（必填）:1.WIFI,2.移动蜂窝数据3.NB-IoT,4.以太网,5.蓝牙,6.ZigBee（只支持1/2/3/4）")
	private String networkType;

	@ApiModelProperty("节点类型（必填）：1.设备 ，2.网关")
	private String nodeType;

	@ApiModelProperty("消息格式 1:json，2:紧凑二进制")
	private String payloadFormat;

	@ApiModelProperty("省电模式（LWM2M协议必填）：1.PSM 2.DRX 3.eDRX")
	private String powerModel;

	@ApiModelProperty("产品描述（选填）：产品描述最多100个字符")
	private String productDesc;

	@ApiModelProperty("productName：产品名称（必填）：产品名称最多 64 个字符，产品名称必须包含数字或字母或汉字,产品名称租户内不能重复")
	private String productName;

	@ApiModelProperty("产品协议（必填）：只支持 1.T-LINK协议 2.MQTT协议 3.LWM2M协议 5.HTTP协议 6.JT/T808 7.TCP协议 10.网关MQTT协议")
	private String productProtocol;

	@ApiModelProperty("* productType：产品分类（必填）")
	private String productType;

	@ApiModelProperty("secondaryType：二级分类（必填）")
	private String secondaryType;

	@ApiModelProperty("thirdType：三级分类（必填）")
	private String thirdType;

	@ApiModelProperty("tupIsThrough：是否透传：0.透传，1不透传（JT/T808，tcp协议，只有透传，消息格式必须只能传null）")
	private String tupIsThrough;

	@ApiModelProperty("设备型号，选填，设备直连并且非JT/T808协议产品必填")
	private String tupDeviceModel;


}
