package com.ruoyi.dj.mqtt.domain;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import java.util.List;

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class UpdateTopoRequest {
    private String tid; // 事务ID
    private String bid; // 业务ID
    private String method; // 方法名
    private Long timestamp; // 时间戳
    private DeviceData data; // 数据对象

    @Data
    public static class DeviceData {
        private String domain; // 网关设备的命名空间
        private int type; // 网关设备的产品类型
        private int sub_type; // 网关子设备的产品子类型
        private String device_secret; // 网关设备的密钥
        private String nonce; // nonce
        private String thing_version; // 网关设备的物模型版本
        private List<SubDevice> sub_devices; // 子设备列表

        @Data
        public static class SubDevice {
            private String sn; // 子设备序列号（SN）
            private String domain; // 子设备的命名空间
            private int type; // 子设备的产品类型
            private int sub_type; // 子设备的产品子类型
            private String index; // 连接网关设备的通道索引
            private String device_secret; // 子设备的密钥
            private String nonce; // nonce
            private String thing_version; // 子设备的物模型版本
        }
    }
}
