//
//  RTCXDataChannelModel.h
//  RTCXMedia
//
//  Created by Apple on 2025/9/17.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface RTCXDataChannelModel : NSObject
// 设备型号 如：xLeWcoelZbyOePbJludl 必选
@property (nonatomic, copy) NSString *productKey;
// 设备序列号SN 如：TEST20240820002 必选
@property (nonatomic, copy) NSString *deviceName;
// 平台为设备颁发的ID，设备的唯一标识符 必选
@property (nonatomic, copy) NSString *iotId;
// 码流类型，0：主码流； 1：辅码流；2、3、...：其他码流，默认为0
@property (nonatomic, assign) int streamType;
// 镜头ID，默认0，可选
@property (nonatomic, strong) NSNumber *lensId;
// 设备类型 0：普通设备；1：专属版设备；2：AP设备；默认0，可选
@property (nonatomic, assign) NSInteger deviceType;
// 设备属性值字典，可选
@property (nonatomic, strong) NSDictionary *propertyMap;
@end

@interface RTCXDataChannelReq : RTCXDataChannelModel
@property (nonatomic, strong) NSNumber *dc_ordered;// for data channel  1: 保证顺序; 0: 不保证顺序, 默认：1
@property (nonatomic, strong) NSNumber *dc_maxRetransmits;// for data channel  -1: 不限制重传次数(无限重传); 0: 不重传; >0: 重传次数，默认：-1
@property (nonatomic, strong) NSNumber *dc_priority;// for data channel  0: verylow, 1: low, 2: medium, 3: high，默认：0
@property (nonatomic, strong) NSNumber *dc_timeout; // for data channel  send message timeout; 默认30ms
@end

@interface RTCXDCSDCardEventPictureReq : NSObject
// SD卡事件ID数组，eg：["picId1", "picId2"]，必选
@property (nonatomic, strong) NSArray *picIds;
@end

@interface RTCXDCStartPanoramaReq : NSObject
// 每次转动的角度值，可选
@property (nonatomic, strong) NSNumber *angle;
@end

@interface RTCXDCStopPanoramaReq : NSObject

@end

@interface RTCXDCCustomDataTransfer : NSObject
// 业务ID，不同业务请求，ID需要唯一性；同一个业务如果分多次请求，需要确保ID一致
@property (nonatomic, copy) NSString *busiId;
// cmdId，取值范围[0,1000]
@property (nonatomic, assign) NSInteger cmdId;
// 自定义二进制数据，要求size < 128KB
@property (nonatomic, strong) NSData *customBinary;
@end

NS_ASSUME_NONNULL_END
