EModel.h 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  1. //
  2. // ChildModel.h
  3. // Artimenring
  4. //
  5. // Created by BaH Cy on 14/12/19.
  6. // Copyright (c) 2014年 BaH Cy. All rights reserved.
  7. //
  8. #import <CoreLocation/CLLocation.h>
  9. #import "EDefines.h"
  10. #import <UIKit/UIKit.h>
  11. @interface BaseModel : NSObject<NSCopying, NSMutableCopying>
  12. + (BOOL)isnull:(NSString*)value;
  13. + (void)replaceObject:(NSMutableArray*)array oldObject:(id)oldObject newObject:(id)newObject;
  14. @end
  15. @interface BaseWeatherModel : BaseModel
  16. //@property(nonatomic, copy) NSString* cityId;
  17. //@property(nonatomic, copy) NSString* myTextCode; //自定义气象Code
  18. @property(nonatomic, copy) NSString* textCode; //原始气象Code
  19. @property(nonatomic, assign) NSInteger high;
  20. @property(nonatomic, assign) NSInteger low;
  21. @property(nonatomic, assign) NSInteger now;
  22. @property(nonatomic, assign) NSInteger air; //空气质量
  23. @end
  24. @interface BaseCoordinatesModel : BaseModel
  25. @property(nonatomic, copy) NSString* cid;
  26. @property(nonatomic, copy) NSString* latitude; //经度
  27. @property(nonatomic, copy) NSString* longitude; //纬度
  28. @property(nonatomic, copy) NSString* type; //定位类型 //AMAP、GPS
  29. @property(nonatomic, copy) NSString* locaType; //同type字段 //定位类型 //AMAP、GPS
  30. @property(nonatomic, assign) NSInteger pointType; //点位类型,8:未知,1:GPS 2:WIFI 3:基站定位
  31. @property(nonatomic, assign) NSInteger radius; //精度
  32. @property(nonatomic, assign) NSInteger positionTime;
  33. @property(nonatomic, copy) NSString* address; //地址
  34. @property(nonatomic, copy) NSString* adressPoint; //地址
  35. - (BOOL)isCoordinatesValid;
  36. - (CLLocationCoordinate2D)getCoordinates;
  37. - (void)setCoordinates:(double)lat lng:(double)lng;
  38. - (void)setCoordinates:(CLLocationCoordinate2D)coordinates;
  39. @end
  40. @interface BaseAvatarModel : BaseModel
  41. @property(nonatomic, copy) NSString* avatar;
  42. @property(nonatomic, copy) NSString* avatarUrl;
  43. @property(nonatomic, copy) NSString* avatarHttp;
  44. @property(nonatomic, assign) NSInteger avatarLocal;
  45. - (NSString*)getAvatarLocalName;
  46. - (NSString*)joinServerAvatar;
  47. @end
  48. @interface BaseRepeatsModel : BaseModel
  49. @property(nonatomic, assign) NSInteger onceTime;
  50. @property(nonatomic, copy) NSString* repeats; //重复天 eg: "1000000"周一开启; "1111100"工作日开启
  51. - (BOOL)getRepeatStatus:(NSInteger)index;
  52. - (void)setRepeatStatus:(NSInteger)index value:(NSString*)value;
  53. - (void)flipRepeatStatus:(NSInteger)index;
  54. - (NSInteger)getRepeatMode;
  55. - (BOOL)isSelectOne;
  56. - (NSString*)getRepeatString;
  57. @end
  58. @interface CloudMatchModel : BaseModel
  59. @property(nonatomic, assign) BOOL videoCall; //是否支持视频通话
  60. @property(nonatomic, assign) BOOL chat; //是否支持语聊
  61. @property(nonatomic, assign) BOOL chatMore; //是否支持更多操作
  62. @property(nonatomic, assign) BOOL chatEmoji; //是否支持表情
  63. @property(nonatomic, assign) BOOL chatImage; //是否支持图片
  64. @property(nonatomic, assign) BOOL chatVideo; //是否支持视频
  65. @property(nonatomic, assign) BOOL monitor; //是否支持监听
  66. @property(nonatomic, assign) BOOL shortNum; //是否支持短号
  67. @property(nonatomic, assign) BOOL callCharge; //是否支持话费查询
  68. @property(nonatomic, assign) BOOL callRecord; //是否支持通话记录
  69. @property(nonatomic, assign) BOOL watchSMS; //是否支持代收短信
  70. @property(nonatomic, assign) BOOL electricityMode; //是否支持省电模式
  71. @property(nonatomic, assign) BOOL flowControl; //是否支持流量控制
  72. @property(nonatomic, assign) BOOL flowQuery; //是否支持流量查询
  73. @property(nonatomic, assign) BOOL eyeCare; //是否支持护眼模式
  74. @property(nonatomic, assign) BOOL wifi; //是否支持Wi-Fi
  75. @property(nonatomic, assign) BOOL autoOnOff; //是否支持自动开关机
  76. @property(nonatomic, assign) BOOL function; //是否支持手表加减功能
  77. @property(nonatomic, assign) BOOL strangerIntercept; //是否支持陌生人拦截
  78. @property(nonatomic, assign) BOOL eventReminder; //是否支持事件提醒
  79. @property(nonatomic, assign) BOOL magicAcademy; //是否支持魔法学院
  80. @property(nonatomic, assign) BOOL redFlower; //是否支持红花
  81. @property(nonatomic, assign) BOOL update; //是否支持更新
  82. @property(nonatomic, assign) BOOL autoUpdate; //是否支持自动更新
  83. @property(nonatomic, assign) BOOL strongTrack; //是否支持强追踪
  84. @property(nonatomic, assign) BOOL autoLocation; //是否支持主动定位
  85. @property(nonatomic, assign) BOOL sendLocation; //是否支持发送定位,电信需求
  86. @property(nonatomic, assign) BOOL moveType; //是否支持动静判断
  87. @property(nonatomic, assign) BOOL holiday; //是否支持法定节假日
  88. @property(nonatomic, assign) BOOL clock; //是否支持闹钟
  89. @property(nonatomic, assign) BOOL clockOnce; //是否支持闹钟响一次
  90. @property(nonatomic, assign) NSInteger clockMax; //是否支持闹钟响一次
  91. @property(nonatomic, assign) BOOL apn; //是否支持Apn
  92. @property(nonatomic, assign) BOOL traceUploadSwitch; //单点多点轨迹是否上报开关[0-false-关 1-true-开]//
  93. @property(nonatomic, assign) NSInteger chatVoiceMax; //语音时长
  94. @property(nonatomic, assign) NSInteger historyPathMax; //历史轨迹显示天数
  95. @end
  96. /*! @class 用户登录 */
  97. @interface LogInModel : BaseModel
  98. @property(nonatomic, copy) NSString* token;
  99. @property(nonatomic, copy) NSString* uid;
  100. @property(nonatomic, copy) NSString* email;
  101. @property(nonatomic, copy) NSString* areaCode;
  102. @property(nonatomic, copy) NSString* phoneNumber;
  103. @end
  104. @interface DeviceModel : BaseModel
  105. typedef enum : NSUInteger {
  106. VIDEO_TYPE_NULL,
  107. VIDEO_TYPE_JUPHOON,
  108. VIDEO_TYPE_AGORA,
  109. } VIDEO_TYPE;
  110. @property(nonatomic, copy) NSString* ticket;
  111. @property(nonatomic, assign) NSInteger did;
  112. @property(nonatomic, assign) NSInteger signal;
  113. @property(nonatomic, assign) NSInteger signalMax;
  114. @property(nonatomic, assign) NSInteger battery;
  115. @property(nonatomic, assign) NSInteger startup; //开关机状态
  116. @property(nonatomic, copy) NSString* version;
  117. @property(nonatomic, copy) NSString* model;
  118. @property(nonatomic, assign) VIDEO_TYPE videoCallChannel; //选择哪家视频通话
  119. @property(nonatomic, copy) CloudMatchModel* match;
  120. - (BOOL)isBind;
  121. @end
  122. @interface ChildModel : BaseAvatarModel
  123. @property(nonatomic, copy) NSString* cid;
  124. @property(nonatomic, copy) NSString* areaCode;
  125. @property(nonatomic, copy) NSString* phoneNumber;
  126. @property(nonatomic, copy) NSString* name;
  127. @property(nonatomic, copy) NSString* appellation;
  128. @property(nonatomic, copy) NSString* birthday;
  129. @property(nonatomic, assign) NSInteger gender; //2:男 3:女
  130. @property(nonatomic, assign) NSInteger weight;
  131. @property(nonatomic, assign) NSInteger height;
  132. @property(nonatomic, assign) NSInteger stepCount; //计步
  133. @property(nonatomic, assign) NSInteger role;
  134. @property(nonatomic, copy) DeviceModel* device;
  135. @property(nonatomic, copy) BaseCoordinatesModel* lastLocation;
  136. @property(nonatomic, copy) BaseWeatherModel* weather;
  137. - (BOOL)isChildSelected:(NSString*)cid;
  138. @end
  139. //成员
  140. @interface ContactModel : BaseAvatarModel
  141. #define ROLE_ADMIN 1
  142. #define CONTACT_TYPE_WATCH 0
  143. #define CONTACT_TYPE_APP 1
  144. #define CONTACT_RELATION_LOCAL @"ids://local_"
  145. @property(nonatomic, assign) NSInteger ctid;
  146. @property(nonatomic, copy) NSString* refId;
  147. @property(nonatomic, copy) NSString* appellation;
  148. @property(nonatomic, copy) NSString* areaCode;
  149. @property(nonatomic, copy) NSString* phoneNumber;
  150. @property(nonatomic, assign) NSInteger role; //0:超级管理员 1:管理员 2:家人 3:朋友 4:其他人 5:小孩
  151. @property(nonatomic, assign) NSInteger type; //CONTACT_TYPE_APP:来源为手机app; CONTACT_TYPE_WATCH:来源为手表
  152. @end
  153. @interface ContactListModel : BaseModel
  154. @property(nonatomic, strong) NSMutableArray<ContactModel*>* persons;
  155. - (NSMutableArray<ContactModel*>*)getFamilys;
  156. - (NSMutableArray<ContactModel*>*)getFriends;
  157. @end
  158. @interface FenceModel : BaseCoordinatesModel
  159. #define FENCE_CATEGORY_SCHOOL @"school"
  160. #define FENCE_CATEGORY_FAMILY @"family"
  161. #define FENCE_CATEGORY_CUSTOM @"custom"
  162. @property(nonatomic, assign) NSInteger fid;
  163. @property(nonatomic, copy) NSString* fenceName; //围栏名称
  164. @property(nonatomic, assign) NSInteger fenceType; //围栏类型 1:安全 2:危险
  165. @property(nonatomic, assign) NSInteger range; //圆半径
  166. @property(nonatomic, assign) NSInteger state; //开关
  167. @property(nonatomic, copy) NSString* category; //围栏类别,1学校,2家 3自定义
  168. @property(nonatomic, assign) NSInteger coordinateType; //坐标体系类型 1:WGS84 2:火星坐标系
  169. @end
  170. @interface FenceListModel : BaseModel
  171. @property(nonatomic, assign) NSInteger totalSwitch; //开关
  172. @property(nonatomic, strong) NSMutableArray<FenceModel*>* fences;
  173. @end
  174. /** 历史轨迹 */
  175. @interface HistoryPathModel : BaseCoordinatesModel
  176. @end
  177. @interface StrangerInterceptModel : BaseModel
  178. @property(nonatomic, assign) NSInteger isEnable;
  179. @end
  180. @interface SchoolTimeModel : BaseRepeatsModel
  181. @property(nonatomic, assign) NSInteger sdid;
  182. @property(nonatomic, copy) NSString* startTime;
  183. @property(nonatomic, copy) NSString* endTime;
  184. @property(nonatomic, assign) NSInteger status;
  185. @property(nonatomic, assign) NSInteger holidaysFlag;
  186. @end
  187. @interface AlarmClockModel : BaseRepeatsModel
  188. @property(nonatomic, assign) NSInteger acid;
  189. @property(nonatomic, copy) NSString* label;
  190. @property(nonatomic, copy) NSString* time; //HH:mm
  191. @property(nonatomic, assign) NSInteger status;
  192. @property(nonatomic, assign) NSInteger holidaysFlag;
  193. @end
  194. @interface ApnModel : BaseModel
  195. @property(nonatomic, copy) NSString* apn;
  196. @property(nonatomic, copy) NSString* username;
  197. @property(nonatomic, copy) NSString* password;
  198. @property(nonatomic, assign) NSInteger mcc;
  199. @property(nonatomic, assign) NSInteger mnc;
  200. @property(nonatomic, assign) NSInteger iptype;
  201. @property(nonatomic, assign) NSInteger authtype;
  202. @end
  203. @interface CallRecordModel : BaseModel
  204. @property(nonatomic, copy) NSString* callName;
  205. @property(nonatomic, copy) NSString* callNumber;
  206. @property(nonatomic, assign) NSInteger callTime;
  207. @property(nonatomic, assign) NSInteger callDuration;
  208. @property(nonatomic, assign) NSInteger callType;
  209. @property(nonatomic, assign) NSInteger callStatus;
  210. @end
  211. @interface PushMessageParamsModel : BaseModel
  212. @property(nonatomic, copy) NSString* name;
  213. @property(nonatomic, copy) NSString* friendName;
  214. @property(nonatomic, assign) NSInteger num;
  215. @property(nonatomic, assign) NSInteger fenceType; //围栏类型 1:安全 2:危险
  216. @property(nonatomic, copy) NSString* fenceName; //围栏名称
  217. @property(nonatomic, copy) NSString* time; //围栏时间
  218. @property(nonatomic, assign) NSInteger status; //开关机 1:关机 2:开机
  219. @end
  220. @interface PushMessageModel : BaseModel
  221. @property(nonatomic, copy) NSString* cid;
  222. @property(nonatomic, assign) NSInteger type; //10:低电 20:电子围栏 30:通讯录 40:开关机 50:系统升级 60:手表高温 70:天气预警
  223. @property(nonatomic, assign) double create_time;
  224. @property(nonatomic, strong) PushMessageParamsModel* params;
  225. @property(nonatomic, strong) ChildModel* childModel;
  226. - (NSString*)getMessage;
  227. @end
  228. @interface RealPositionModel : BaseModel
  229. @property(nonatomic, copy) NSString* cid;
  230. @property(nonatomic, assign) NSInteger did;
  231. @property(nonatomic, assign) NSInteger toggle; //0:定位一次 1:定位5分钟
  232. @property(nonatomic, assign) NSInteger startTime;
  233. @property(nonatomic, assign) NSInteger costTime;
  234. @property(nonatomic, assign) NSInteger timeout;
  235. @property(nonatomic, assign) NSInteger status;
  236. @end
  237. //会话中的成员
  238. @interface SessionMemberModel : BaseAvatarModel
  239. @property(nonatomic, copy) NSString* refId;
  240. @property(nonatomic, copy) NSString* name;
  241. @property(nonatomic, copy) NSString* role;
  242. @property(nonatomic, assign) NSInteger refType;
  243. @end
  244. @interface SessionMessagePayloadModel : BaseModel
  245. @property(nonatomic, copy) NSString* raw;
  246. @property(nonatomic, copy) NSString* eid;
  247. @property(nonatomic, copy) NSString* fileUrl;
  248. @property(nonatomic, copy) NSString* fileType;
  249. @property(nonatomic, assign) NSInteger duration; //语言时长
  250. @end
  251. @interface SessionMessageModel : BaseModel
  252. @property(nonatomic, assign) NSInteger msgId; //消息id
  253. @property(nonatomic, assign) NSInteger msgType; //消息类型
  254. @property(nonatomic, copy) NSString* sendId;
  255. @property(nonatomic, copy) NSString* recvId;
  256. @property(nonatomic, assign) double sendTime;
  257. @property(nonatomic, assign) BOOL isGroup;
  258. @property(nonatomic, assign) NSInteger read; //是否已读 N: 未读 Y: 已读
  259. @property(nonatomic, assign) NSInteger received; //是否收到
  260. @property(nonatomic, copy) NSString* requestId; //custom
  261. @property(nonatomic, copy) SessionMessagePayloadModel* content;
  262. @end
  263. //某个会话
  264. @interface SessionModel : BaseAvatarModel
  265. @property(nonatomic, copy) NSString* sid;
  266. @property(nonatomic, copy) NSString* cid;
  267. @property(nonatomic, copy) NSString* name;
  268. @property(nonatomic, assign) NSInteger isGroup;
  269. @property(nonatomic, assign) NSInteger unreadCount;
  270. @property(nonatomic, assign) NSInteger unreadOldMsgId;
  271. @property(nonatomic, strong) NSMutableArray<SessionMemberModel*>* members;
  272. - (NSInteger)getSessionType;
  273. - (NSString*)getChildId;
  274. - (SessionMemberModel*)getChildMember;
  275. - (NSArray<SessionMemberModel*>*)getMembers;
  276. - (NSArray*)getMembersAvatars;
  277. @end
  278. @interface SocketModel : BaseModel
  279. @property(nonatomic, assign) NSInteger msgType;
  280. @property(nonatomic, assign) double sendTime;
  281. @property(nonatomic, copy) NSString* sendId;
  282. @property(nonatomic, copy) NSString* recvId;
  283. @property(nonatomic, copy) NSString* requestId;
  284. @property(nonatomic, copy) id content;
  285. @end
  286. @interface SocketPingPongModel : BaseModel
  287. @property(nonatomic, copy) NSString* raw;
  288. @end
  289. @interface SocketChatModel : SocketModel
  290. @property(nonatomic, copy) NSString* messageId;
  291. @property(nonatomic, copy) NSString* sessionId;
  292. @end
  293. @interface SocketVideoModel : BaseModel
  294. @property(nonatomic, copy) NSString* videoCallToken;
  295. @property(nonatomic, copy) NSString* roomId;
  296. @end
  297. @interface SocketCoordinatesModel : BaseCoordinatesModel
  298. @property(nonatomic, copy) NSString* lon;
  299. @property(nonatomic, copy) NSString* lat;
  300. @end
  301. typedef NS_ENUM(NSInteger, EScheduleType) {
  302. EScheduleTypeCustom = 0,
  303. EScheduleTypeGetup = 1,
  304. EScheduleTypeSleep = 2,
  305. EScheduleTypeBirthday = 3,
  306. EScheduleTypeEnd
  307. };
  308. @interface ScheduleEventData : NSObject
  309. - (instancetype) initWithDict:(NSDictionary *) dict;
  310. @property(nonatomic, copy) NSString* mID; //创建Schedule的时间作为key
  311. @property(nonatomic, assign) long mTimeID;
  312. @property(nonatomic, assign) int mOperationType; //1-add,2-modify,3-delete
  313. @property(nonatomic, copy) NSString* mChildId;
  314. @property(nonatomic, strong) NSDate *time;
  315. @property(nonatomic) EScheduleType mType;
  316. @property(nonatomic, copy) NSString* mScheduleName;
  317. @property(nonatomic, assign) int advanceDay;
  318. @property(nonatomic, assign) int colorIndex;
  319. @property(nonatomic, strong) NSMutableDictionary *weekSetDic;
  320. - (BOOL)isRepeatedEvent;
  321. @end