xm
2021-12-01 6d73bf6e816570291865674bef8bce8972e4de3f
HDL_ON/DAL/Server/NewApiRes.cs
@@ -17,7 +17,7 @@
    [System.Serializable]
    public class NullObj
    {
    }
    #region ■ 全球区域列表 ____________________________
@@ -49,6 +49,17 @@
        public string regionUrl;
    }
    /// <summary>
    /// 分页
    /// </summary>
    public class BasePagingObj
    {
        public int totalCount = 0;
        public int totalPage = 0;
        public int pageNo = 0;
        public int pageSize = 0;
    }
    #endregion
    #region  ■ 登录 ____________________________
@@ -75,7 +86,7 @@
        /// 验证码,短信登录时候用
        /// </summary>
        public string verifyCode;
    }
@@ -134,6 +145,27 @@
        /// 用户名字
        /// </summary>
        public string name;
    }
    /// <summary>
    /// 登录锁定后的异常扩展参数
    /// </summary>
    [Serializable]
    public class AccountLoginLockExtraRes
    {
        /// <summary>
        /// 最大允许的密码错误次数
        /// </summary>
        public int maxPwdErrorNum;
        /// <summary>
        /// 当前错误次数
        /// </summary>
        public int currentPwdErrorNum;
        /// <summary>
        /// 解锁事件
        /// </summary>
        public long unlockTime;
    }
    #endregion
@@ -219,7 +251,7 @@
        /// </summary>
        public string mail;
        /// <summary>
        /// 1:注册 2:找回密码 3:绑定4:验证码登陆 5:敏感数据
        /// 1:注册 2:找回密码 3:绑定 4:验证码登陆 5:敏感数据
        /// 默认传1
        /// </summary>
        public int verifyType = 1;
@@ -227,6 +259,10 @@
        /// 验证码过期时间(秒),默认5分钟
        /// </summary>
        public string verifyCode;
        /// <summary>
        /// 验证成功后验证码是否失效 不传值或者true失效,只有传false的时候,校验通过后验证码也不失效
        /// </summary>
        public bool verifySuccessFail = true;
    }
@@ -312,6 +348,10 @@
        /// 登录名
        /// </summary>
        public string loginName;
        /// <summary>
        /// 用户头像
        /// </summary>
        public string memberHeadIcon;
    }
@@ -328,6 +368,18 @@
    }
    /// <summary>
    /// 更新个人头像
    /// </summary>
    [System.Serializable]
    public class UpdateMemberHeadIconRes
    {
        /// <summary>
        /// 用户头像
        /// </summary>
        public string memberHeadIcon;
    }
    /// <summary>
    /// 绑定认证(手机/邮箱)
@@ -347,7 +399,7 @@
        /// 验证吗
        /// </summary>
        public string verifyCode;
    }
@@ -375,6 +427,10 @@
        /// 住宅类型
        /// </summary>
        public string homeType;
        /// <summary>
        /// 不自动生成默认住宅
        /// </summary>
        public bool autoGenerate = false;
    }
@@ -401,6 +457,10 @@
        /// 住宅名称
        /// </summary>
        public string homeName;
        /// <summary>
        /// 住宅地址
        /// </summary>
        public string homeAddress;
    }
@@ -475,75 +535,59 @@
    #endregion
    #region 获取住宅网关列表
    [Serializable]
    public class HomeGatewayRes
    {
        public int totalPages;
        public int totalElements;
        public bool last;
        public bool first;
        public int numberOfElements;
        public int size;
        public int number;
        public bool empty;
        public List<HomeGatewayInfo> content = new List<HomeGatewayInfo>();
    }
    //[Serializable]
    //public class HomeGatewayRes
    //{
    //    public int totalPages;
    //    public int totalElements;
    //    public bool last;
    //    public bool first;
    //    public int numberOfElements;
    //    public int size;
    //    public int number;
    //    public bool empty;
    //    public List<HomeGatewayInfo> content = new List<HomeGatewayInfo>();
    //}
    [Serializable]
    public class HomeGatewayInfo
    {
        /// <summary>
        /// 网关
        /// 网关ID
        /// </summary>
        public string id;
        public string gatewayId ="";
        /// <summary>
        /// 网关snID
        /// </summary>
        public string sn = "";
        /// <summary>
        ///
        /// </summary>
        public string aesKey = "";
        /// <summary>
        /// BUSUDPGATEWAY,
        /// AGATEWAY,
        /// ZIGBEEGATEWAY,
        /// KNXGATEWAY
        /// </summary>
        public string gatewayType = "";
        /// <summary>
        /// 住宅ID
        /// </summary>
        public string homeId;
        public string homeId = "";
        /// <summary>
        /// 
        /// </summary>
        public string untieMark;
        public string mac = "";
        /// <summary>
        /// 
        /// </summary>
        public string gwFirmwareVersion;
        public string primaryKey = "";
        /// <summary>
        /// 
        /// </summary>
        public string mac;
        /// <summary>
        ///
        /// </summary>
        public string projectName;
        /// <summary>
        ///
        /// </summary>
        public string userName;
        /// <summary>
        ///
        /// </summary>
        public string groupName;
        /// <summary>
        ///
        /// </summary>
        public string gatewayName;
        /// <summary>
        ///
        /// </summary>
        public string primaryKey;
        /// <summary>
        ///
        /// </summary>
        public string aesKey;
        /// <summary>
        ///
        /// </summary>
        public string encryptionType;
        /// <summary>
        ///
        /// </summary>
        public string gatewayType;
        public string encryptionType = "";
        /// <summary>
        /// 子网号
        /// </summary>
@@ -552,7 +596,34 @@
        /// 设备号
        /// </summary>
        public int deviceId;
        /// <summary>
        /// 网关状态
        /// ON_LINE(0,"在线"),
        /// OFF_LINE(1,"下线"),;
        /// </summary>
        public bool gatewayStatus;
        ///// <summary>
        /////
        ///// </summary>
        //public string gwFirmwareVersion;
        ///// <summary>
        /////
        ///// </summary>
        //public string projectName;
        ///// <summary>
        /////
        ///// </summary>
        //public string userName;
        ///// <summary>
        /////
        ///// </summary>
        //public string groupName;
        ///// <summary>
        /////
        ///// </summary>
        //public string gatewayName;
    }
@@ -776,6 +847,21 @@
    #region 添加、查询、删除子账号
    /// <summary>
    /// ChildBaseObj
    /// </summary>
    [System.Serializable]
    public class ChildBaseObj
    {
        /// <summary>
        /// 子账号ID childAccountId
        /// </summary>
        public string childAccountId;
        /// <summary>
        /// 住宅
        /// </summary>
        public string homeId;
    }
    /// <summary>
    /// 添加子账号
    /// </summary>
    [System.Serializable]
@@ -807,16 +893,9 @@
    /// 删除子账号
    /// </summary>
    [System.Serializable]
    public class ChildDeleteObj
    public class ChildDeleteObj : ChildBaseObj
    {
        /// <summary>
        ///
        /// </summary>
        public string childAccountId;
        /// <summary>
        /// 住宅
        /// </summary>
        public string homeId;
    }
    /// <summary>
@@ -831,71 +910,24 @@
        public string homeId;
    }
    //获取项目 (住宅)下面的子账号
    /// <summary>
    /// 获取成员信息的结果
    /// 更新子账号备注名字
    /// </summary>
    ///  [Serializable]
    public class SubAccountNewRes
    [System.Serializable]
    public class UpdateChildNickNameObj : ChildBaseObj
    {
        /// <summary>
        ///
        /// </summary>
        public string id;
        /// <summary>
        ///
        /// </summary>
        public string homeId;
        /// <summary>
        ///
        /// </summary>
        public string homeRegionId;
        /// <summary>
        ///
        /// </summary>
        public string childAccountId;
        /// <summary>
        ///
        /// </summary>
        public string childAccountRegionId;
        /// <summary>
        /// 子账户类型 ORDINARY、DEBUG、ADMIN
        /// </summary>
        public string childAccountType;
        /// <summary>
        /// 是否允许远程控制
        /// </summary>
        public bool isRemoteControl;
        /// <summary>
        /// 昵称1
        /// nickName
        /// </summary>
        public string nickName;
        /// <summary>
        ///
        /// </summary>
        public string createTime;
    }
    /// <summary>
    /// 更新远程控制
    /// </summary>
    [System.Serializable]
    public class UpdateRemoteObj
    public class UpdateRemoteObj : ChildBaseObj
    {
        /// <summary>
        /// 子账号ID
        /// </summary>
        public string childAccountId;
        /// <summary>
        /// 住宅
        /// </summary>
        public string homeId;
        /// <summary>
        /// 是否允许远程控制
        /// </summary>
@@ -906,6 +938,33 @@
        public string childAccountType;
    }
    /// <summary>
    /// 修改是否允许创建场景
    /// </summary>
    [System.Serializable]
    public class UpdateChildAllowCreateSceneObj : ChildBaseObj
    {
        /// <summary>
        /// 是否允许创建场景
        /// </summary>
        public bool isAllowCreateScene;
    }
    /// <summary>
    ///
    /// </summary>
    [System.Serializable]
    public class AccountObj
    {
        /// <summary>
        /// 账号
        /// </summary>
        public string account;
    }
    #endregion
    #region 数据分享
@@ -913,16 +972,8 @@
    /// 查询某住宅某子账号的分享文件信息
    /// </summary>
    [System.Serializable]
    public class HomeShareFindAll
    public class HomeShareFindAll : ChildBaseObj
    {
        /// <summary>
        /// 住宅ID
        /// </summary>
        public string homeId;
        /// <summary>
        /// 子账号id
        /// </summary>
        public string childAccountId;
    }
@@ -1001,7 +1052,7 @@
        /// </summary>
        public string deviceName;
        /// <summary>
        ///
        /// Android、IOS、WinPhone
        /// </summary>
        public string deviceType;
        /// <summary>
@@ -1011,55 +1062,76 @@
        /// <summary>
        /// 推送ID
        /// </summary>
        public string pushid;
        public string pushToken;
        /// <summary>
        /// 1是HDL_ON、2HDL_Zigbee
        /// 软件来源,Evoyo、ON、ON_Plus
        /// </summary>
        //public string software = MainPage.RequestSource;
        public string software = "HDL_ON";
        public string software = SoftwareType.ON_Plus.ToString();
        /// <summary>
        /// 小区codes(不传,默认绑定所有住宅和小区的推送)
        /// </summary>
        public List<string> communityCodes;
        /// <summary>
        /// 指定推送语言 (目前该参数还没用)
        /// 2021-09-13 增加当前APP使用的语言参数, 目前云端接口还没支持
        /// </summary>
        public string languageType;
    }
    /// <summary>
    ///
    /// </summary>
    [System.Serializable]
    public class PushserivceIdObj
    public class PushIdObj
    {
        /// <summary>
        /// 
        /// </summary>
        public string id;
        public string pushId;
    }
    ///// <summary>
    ///// 推送消息列表
    ///// </summary>
    //[System.Serializable]
    //public class PushMesInfoRes
    //{
    //    /// <summary>
    //    ///
    //    /// </summary>
    //    public string pushId;
    //    /// <summary>
    //    ///
    //    /// </summary>
    //    public string pushTitle;
    //    /// <summary>
    //    ///
    //    /// </summary>
    //    public string pushContent;
    //    /// <summary>
    //    ///
    //    /// </summary>
    //    public string pushType;
    //    /// <summary>
    //    ///
    //    /// </summary>
    //    public bool isRead;
    //    /// <summary>
    //    ///
    //    /// </summary>
    //    public string pushDatetime;
    //}
    /// <summary>
    ///
    /// </summary>
    [System.Serializable]
    public class GetMessageListObj : PushIdObj
    {
        /// <summary>
        /// 住宅主键id
        /// 1、传空查询全部(需要根据用户域名查询) 2、传指定住宅ID查询指定记录 (需要根据住宅域名查询)
        /// </summary>
        public string homeId;
        /// <summary>
        /// "":全部;Default:分享与功能;Alarm:报警类;Prompt:系统消息
        /// </summary>
        public string pushType;
        /// <summary>
        ///  页面大小
        /// </summary>
        public int pageSize = 100;
        /// <summary>
        ///  页面序号
        /// </summary>
        public int pageNo = 1;
    }
    /// <summary>
    /// 消息记录Id
    /// </summary>
    [System.Serializable]
    public class PushMsgIdObj
    {
        /// <summary>
        /// 消息记录Id
        /// </summary>
        public string msgId;
        /// <summary>
        /// 删除物业公告要这个
        /// </summary>
        public string pushType;
    }
    #endregion
@@ -1083,190 +1155,592 @@
        public string Id;
    }
    #endregion
    #region ■ 枚举 ____________________________
    /// <summary>
    /// 客户端类型 如HdlOn、EvoyoHome、调试宝
    /// AppNameObj
    /// </summary>
    public enum APIClientType
    {
        HdlOn,
        EvoyoHome,
        调试宝,
    }
    /// <summary>
    /// 备份类型
    /// </summary>
    public enum BackupClassify
    [System.Serializable]
    public class AppNameObj
    {
        /// <summary>
        /// 交互备份
        /// 软件来源,Evoyo、ON、ON_Plus
        /// </summary>
        INTERACTIVE_ENGINEERING_BACKUP,
        /// <summary>
        ///  自定义工程备份
        /// </summary>
        CUSTOM_PROJECT_BACKUP,
        /// <summary>
        /// 用户自动备份
        /// </summary>
        AUTOMATIC_USER_BACKUP,
        /// <summary>
        /// 用户自定义备份
        /// </summary>
        USER_DEFINED_BACKUP
        public string appName = SoftwareType.ON_Plus.ToString();
    }
    #region APP版本检测
    /// <summary>
    /// BackupDataType
    /// AppVersionCheckObj
    /// </summary>
    public enum BackupDataType
    {
        HDL_ON,
        ZIGBEE,
        ZIGBEE_HOME,
        HDL_ON_PRO,
        BUSPRO
    }
    /// <summary>
    /// 住宅类型
    /// </summary>
    public enum HomeTypeEnum
    {
        ZIGBEE = 1,
        BUSPRO,
        A,
        ALL
    }
    /// <summary>
    /// 语言类型
    /// </summary>
    public enum LanguageTypeEnum
    {
        CHINESE,
        ENGLISH,
    }
    /// <summary>
    /// 发送验证码功能类型
    /// </summary>
    public enum VerifyType
    [System.Serializable]
    public class AppVersionCheckObj
    {
        /// <summary>
        /// 用户注册
        ///
        /// </summary>
        REGISTER_USER = 1,
        public string version = MainPage.VersionString;
        /// <summary>
        /// 忘记密码,找回密码
        /// 软件来源,Evoyo、ON、ON_Plus
        /// </summary>
        FIND_PASSWORD,
        /// <summary>
        /// 绑定
        /// </summary>
        REGISTER_USER_SYSTEM,
        /// <summary>
        /// 验证码登陆
        /// </summary>
        VERIFY_LOGIN,
        /// <summary>
        /// 敏感数据验证
        /// </summary>
        SENSITIVE_DATA,
        public string appName = SoftwareType.ON_Plus.ToString();
    }
    /// <summary>
    /// ChildAccountType
    /// </summary>
    public enum ChildAccountType
    {
        /// <summary>
        /// 主账号自己(本人)
        /// </summary>
        MYSELF = 0,
        /// <summary>
        /// 普通
        /// </summary>
        ORDINARY = 1,
        /// <summary>
        /// 调试人员
        /// </summary>
        DEBUG,
        /// <summary>
        /// 管理员
        /// </summary>
        ADMIN,
    }
    #endregion
    #region 旧接口
    /// <summary>
    /// 
    /// </summary>
    public class FindCityObj
    [System.Serializable]
    public class AppVersionRes
    {
        /// <summary>
        /// 城市ID
        /// 应用市场名称
        /// </summary>
        public string Cid;
        public string appMarket;
        /// <summary>
        ///
        /// app名称
        /// </summary>
        public string Location;
        public string appName;
        /// <summary>
        /// 城市
        /// ios下载地址
        /// </summary>
        public string City;
        public string iosUrl;
        /// <summary>
        ///
        /// 安卓下载地址
        /// </summary>
        public string Province;
        public string androidUrl;
        /// <summary>
        ///
        /// 是否是强制更新
        /// </summary>
        public string Country;
        public bool isEnforce;
        /// <summary>
        ///
        /// 发布系统,IOS、Android
        /// </summary>
        public string TimeZone;
        public string releaseSystem;
        /// <summary>
        /// 备注
        /// </summary>
        public string remark;
        /// <summary>
        /// 更新说明json,多语言有客户端解析
        /// </summary>
        public string updateDescription;
        /// <summary>
        /// 版本号
        /// </summary>
        public string version;
    }
    /// <summary>
    /// 更新说明json,多语言有客户端解析
    /// </summary>
    public class ReasonStrJson
    {
        /// <summary>
        /// 中文
        /// </summary>
        public string Chinese;
        /// <summary>
        /// 英文
        /// </summary>
        public string English;
        /// <summary>
        ///
        /// </summary>
        public string Czech;
    }
    /// <summary>
    /// 检测更新返回字段
    /// </summary>
    public class UpdateDialogInfo
    {
        ///// <summary>
        ///// 需要强制更新
        ///// </summary>
        //public bool IsNeedForceUpdate;
        /// <summary>
        /// 1.提示更新的内容
        /// 2.强制更新原因
        /// 3.提示的通知内容
        /// </summary>
        public string ReasonStr;
        /// <summary>
        /// O 不需要更新
        /// 1 提示更新
        /// 2 强制更新
        /// 3 提示通知内容
        /// </summary>
        public int UpdateType;
        /// <summary>
        /// 当前新版本号
        /// </summary>
        public string NewVersion;
        /// <summary>
        /// 当前新版本号
        /// </summary>
        public string NewVersionUrl;
    }
    ///// <summary>
    ///// 检测APP版本 响应参数
    ///// 如果是iOS返回iOS的最新版本和Url下载地址
    ///// 如果是Android返回iOS的最新版本和Url下载地址
    ///// </summary>
    //public class APPVersion
    //{
    //    /// <summary>
    //    /// 当前最新的版本号
    //    /// </summary>
    //    public string NewVersion;
    //    /// <summary>
    //    /// 当前最新版本下载地址
    //    /// </summary>
    //    public string NewVersionUrl;
    //}
    #endregion
    #region 数据分享
    ///// <summary>
    ///// 添加分享
    ///// </summary>
    //[System.Serializable]
    //public class ShareData
    //{
    //    /// <summary>
    //    /// 住宅ID
    //    /// </summary>
    //    public int homeId;
    //    /// <summary>
    //    ///
    //    /// </summary>
    //    public List<ShareDatasItem> shareDatas;
    //    /// <summary>
    //    /// 子账号ID
    //    /// </summary>
    //    public List<string> childAccountIds;
    //}
    /// <summary>
    /// 添加分享
    /// </summary>
    [System.Serializable]
    public class AddShareObj
    {
        /// <summary>
        /// 住宅ID
        /// </summary>
        public string homeId;
        /// <summary>
        ///
        /// </summary>
        public List<ShareData> shareDatas;
        /// <summary>
        /// 子账号ID
        /// </summary>
        public List<string> childAccountIds;
    }
    /// <summary>
    /// 
    /// </summary>
    public class GetWeatherObj
    public class ShareData
    {
        /// <summary>
        /// 分享类型表id
        /// </summary>
        public string shareTypeId;
        /// <summary>
        /// 子帐号ID
        /// </summary>
        public string childAccountId;
        /// <summary>
        /// 分享类型 1.ROOM  2.DEVICE 3.SCENE
        /// </summary>
        public string shareType = "DEVICE";
    }
        public string Temperature;
    /// <summary>
    /// 删除分享
    /// </summary>
    [System.Serializable]
    public class DeleteShareObj
    {
        /// <summary>
        /// 住宅ID
        /// </summary>
        public string homeId;
        /// <summary>
        /// 
        /// </summary>
        public string Humidity;
        public List<ShareData> shareDatas;
    }
    /// <summary>
    /// 获取分享
    /// </summary>
    [System.Serializable]
    public class GetShareObj
    {
        /// <summary>
        ///
        /// 住宅ID
        /// </summary>
        public string PM25;
        public string homeId;
        /// <summary>
        ///
        /// 子账号ID
        /// </summary>
        public string Weather;
        public string childAccountId;
        ///// <summary>
        ///// 分享类型 1.ROOM  2.DEVICE 3.SCENE
        ///// 不传默认查全部
        ///// </summary>
        //public string shareType = "DEVICE";
    }
    #endregion
    #region 图片上传下载
    /// <summary>
    /// 上传图片
    /// </summary>
    [System.Serializable]
    public class UploadImageObj
    {
        /// <summary>
        /// 前缀标识
        /// </summary>
        public string prefix;
        /// <summary>
        /// 关联ID
        /// </summary>
        public string uid;
        /// <summary>
        /// 文件名称
        /// </summary>
        public string fileName;
        /// <summary>
        /// 图片二进制流
        /// </summary>
        public byte[] content;
    }
    /// <summary>
    /// 查询图片路径
    /// </summary>
    [System.Serializable]
    public class GetImageUrlObj
    {
        /// <summary>
        /// 图片下载路径标识
        /// </summary>
        public string imageKey;
    }
    #endregion
    #endregion
    /// <summary>
    /// 极光推送消息
    /// </summary>
    [System.Serializable]
    public class JPushMessageInfo
    {
        /// <summary>
        /// 住宅ID
        /// </summary>
        public string HomeId;
        /// <summary>
        /// 推送标题
        /// </summary>
        public string Title;
        /// <summary>
        /// 推送内容
        /// </summary>
        public string Content;
        /// <summary>
        /// 推送附加数据
        /// </summary>
        public string Extras;
        /// <summary>
        /// 信息类型
        /// </summary>
        public string messageType = "";
        /// <summary>
        /// 扩展数据内容
        /// </summary>
        public string expantContent = "";
    }
    /// <summary>
    /// 极光推送消息
    /// </summary>
    [System.Serializable]
    public class JPushExpandData
    {
        /// <summary>
        /// 附加内容
        /// </summary>
        public string expandData;
    }
    /// <summary>
    /// 极光推送消息
    /// </summary>
    [System.Serializable]
    public class ExpandData
    {
        /// <summary>
        /// 住宅ID
        /// </summary>
        public string homeId;
        /// <summary>
        /// 附加内容
        /// </summary>
        public string expantContent;
        /// <summary>
        ///  信息类型
        /// </summary>
        public string messageType;
    }
    /// <summary>
    /// 萤石云子账号token
    /// </summary>
    [System.Serializable]
    public class EZChildAccessToken
    {
        /// <summary>
        /// token
        /// </summary>
        public string accessToken;
        /// <summary>
        ///  过期时间
        /// </summary>
        public string expireTime;
    }
    #region 音箱
    /// <summary>
    /// 获取音箱列表
    /// </summary>
    [System.Serializable]
    public class GetSpeakerObj : HomeIdObj
    {
        /// <summary>
        /// 平台名称
        /// </summary>
        public string platformName;
        /// <summary>
        ///  页面大小
        /// </summary>
        public int pageSize = 100;
        /// <summary>
        ///  页面序号
        /// </summary>
        public int pageNo = 1;
    }
    [System.Serializable]
    public class SpeakerObj : HomeIdObj
    {
        /// <summary>
        /// 记录的主键id
        /// </summary>
        public string tokenId;
    }
    /// <summary>
    /// 更新音箱备注
    /// </summary>
    [System.Serializable]
    public class UpdateSpeakerRemarkObj : SpeakerObj
    {
        /// <summary>
        /// 备注
        /// </summary>
        public string remark;
    }
    /// <summary>
    /// 获取音箱分配的设备和场景列表
    /// </summary>
    [System.Serializable]
    public class GetSpeakerDeviceListObj : HomeIdObj
    {
        /// <summary>
        /// 记录的主键id
        /// </summary>
        public string tokenId;
    }
    /// <summary>
    /// 配置的语音设备和场景数据
    /// </summary>
    [System.Serializable]
    public class SpeakerTargetInfo
    {
        /// <summary>
        /// 控制的目标Id,云端的设备Id或者场景Id
        /// </summary>
        public string targetId;
        /// <summary>
        /// 是否是设备,场景为false
        /// </summary>
        public bool isDevice;
        /// <summary>
        /// 目标名称
        /// </summary>
        public string targetName;
        /// <summary>
        /// 扩展参数当前rowview是否选中
        /// </summary>
        public bool IsSelect;
    }
    //[System.Serializable]
    //public class SpeakerTargetInfoRow: SpeakerTargetInfo
    //{
    //    /// <summary>
    //    /// 当前rowview是否选中
    //    /// </summary>
    //    public bool isSelect;
    //}
        /// <summary>
        /// 更新音箱控制的设备和场景目标
        /// </summary>
        [System.Serializable]
    public class UpdateSpeakerDeviceListObj : SpeakerObj
    {
        /// <summary>
        /// 备注
        /// </summary>
        public List<SpeakerTargetInfo> targetInfos;
    }
    /// <summary>
    /// 更新音箱控制的设备和场景目标
    /// </summary>
    [System.Serializable]
    public class SpeakerListRes
    {
        /// <summary>
        /// 音箱列表
        /// </summary>
        public List<SpeakerInfo> list;
    }
    /// <summary>
    /// 音箱信息
    /// </summary>
    [System.Serializable]
    public class SpeakerInfo
    {
        /// <summary>
        ///
        /// </summary>
        public string platformName { get; set; }
        /// <summary>
        ///
        /// </summary>
        public string remark { get; set; }
        /// <summary>
        ///
        /// </summary>
        public string tokenId { get; set; }
        /// <summary>
        ///
        /// </summary>
        public string userId { get; set; }
        /// <summary>
        ///
        /// </summary>
        public string userRegion { get; set; }
        /// <summary>
        ///
        /// </summary>
        public string homeId { get; set; }
        /// <summary>
        ///
        /// </summary>
        public string homeRegion { get; set; }
    }
    #endregion
    //#region 旧接口
    ///// <summary>
    /////
    ///// </summary>
    //public class FindCityObj
    //{
    //    /// <summary>
    //    /// 城市ID
    //    /// </summary>
    //    public string Cid;
    //    /// <summary>
    //    ///
    //    /// </summary>
    //    public string Location;
    //    /// <summary>
    //    /// 城市
    //    /// </summary>
    //    public string City;
    //    /// <summary>
    //    ///
    //    /// </summary>
    //    public string Province;
    //    /// <summary>
    //    ///
    //    /// </summary>
    //    public string Country;
    //    /// <summary>
    //    ///
    //    /// </summary>
    //    public string TimeZone;
    //}
    ///// <summary>
    /////
    ///// </summary>
    //public class GetWeatherObj
    //{
    //    public string Temperature;
    //    /// <summary>
    //    ///
    //    /// </summary>
    //    public string Humidity;
    //    /// <summary>
    //    ///
    //    /// </summary>
    //    public string PM25;
    //    /// <summary>
    //    ///
    //    /// </summary>
    //    public string Weather;
    //}
    //#endregion
}