EModel.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  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* lat; //经度
  27. @property(nonatomic, copy) NSString* lng; //纬度
  28. @property(nonatomic, copy) NSString* type; //定位类型
  29. @property(nonatomic, assign) NSInteger radius; //精度
  30. @property(nonatomic, assign) NSInteger positionTime;
  31. @property(nonatomic, copy) NSString* address; //地址
  32. @property(nonatomic, copy) BaseWeatherModel* weatherResult;
  33. - (BOOL)isCoordinatesValid;
  34. - (CLLocationCoordinate2D)getCoordinates;
  35. - (void)setCoordinates:(double)lat lng:(double)lng;
  36. - (void)setCoordinates:(CLLocationCoordinate2D)coordinates;
  37. @end
  38. @interface BaseAvatarModel : BaseModel
  39. @property(nonatomic, copy) NSString* avatar;
  40. @property(nonatomic, copy) NSString* avatarUrl;
  41. @property(nonatomic, copy) NSString* avatarHttp;
  42. @property(nonatomic, assign) NSInteger avatarLocal;
  43. - (NSString*)getAvatarLocalName;
  44. - (NSString*)joinServerAvatar;
  45. @end
  46. @interface BaseRepeatsModel : BaseModel
  47. @property(nonatomic, assign) NSInteger onceTime;
  48. @property(nonatomic, copy) NSString* repeats; //重复天 eg: "1000000"周一开启; "1111100"工作日开启
  49. - (BOOL)getRepeatStatus:(NSInteger)index;
  50. - (void)setRepeatStatus:(NSInteger)index value:(NSString*)value;
  51. - (void)flipRepeatStatus:(NSInteger)index;
  52. - (NSInteger)getRepeatMode;
  53. - (NSString*)getRepeatString;
  54. @end
  55. @interface CloudMatchModel : BaseModel
  56. @property(nonatomic, assign) BOOL videoCall; //是否支持视频通话
  57. @property(nonatomic, assign) BOOL chat; //是否支持语聊
  58. @property(nonatomic, assign) BOOL chatMore; //是否支持更多操作
  59. @property(nonatomic, assign) BOOL chatEmoji; //是否支持表情
  60. @property(nonatomic, assign) BOOL chatImage; //是否支持图片
  61. @property(nonatomic, assign) BOOL chatVideo; //是否支持视频
  62. @property(nonatomic, assign) BOOL monitor; //是否支持监听
  63. @property(nonatomic, assign) BOOL shortNum; //是否支持短号
  64. @property(nonatomic, assign) BOOL callCharge; //是否支持话费查询
  65. @property(nonatomic, assign) BOOL callRecord; //是否支持通话记录
  66. @property(nonatomic, assign) BOOL watchSMS; //是否支持代收短信
  67. @property(nonatomic, assign) BOOL electricityMode; //是否支持省电模式
  68. @property(nonatomic, assign) BOOL flowControl; //是否支持流量控制
  69. @property(nonatomic, assign) BOOL flowQuery; //是否支持流量查询
  70. @property(nonatomic, assign) BOOL eyeCare; //是否支持护眼模式
  71. @property(nonatomic, assign) BOOL wifi; //是否支持Wi-Fi
  72. @property(nonatomic, assign) BOOL autoOnOff; //是否支持自动开关机
  73. @property(nonatomic, assign) BOOL strangerIntercept; //是否支持陌生人拦截
  74. @property(nonatomic, assign) BOOL eventReminder; //是否支持事件提醒
  75. @property(nonatomic, assign) BOOL magicAcademy; //是否支持魔法学院
  76. @property(nonatomic, assign) BOOL redFlower; //是否支持红花
  77. @property(nonatomic, assign) BOOL update; //是否支持更新
  78. @property(nonatomic, assign) BOOL autoUpdate; //是否支持自动更新
  79. @property(nonatomic, assign) BOOL strongTrack; //是否支持强追踪
  80. @property(nonatomic, assign) BOOL autoLocation; //是否支持主动定位
  81. @property(nonatomic, assign) BOOL sendLocation; //是否支持发送定位,电信需求
  82. @property(nonatomic, assign) BOOL moveType; //是否支持动静判断
  83. @property(nonatomic, assign) BOOL holiday; //是否支持法定节假日
  84. @property(nonatomic, assign) BOOL clock; //是否支持闹钟
  85. @property(nonatomic, assign) BOOL clockOnce; //是否支持闹钟响一次
  86. @property(nonatomic, assign) NSInteger clockMax; //是否支持闹钟响一次
  87. @property(nonatomic, assign) BOOL apn; //是否支持Apn
  88. @property(nonatomic, assign) BOOL traceUploadSwitch; //单点多点轨迹是否上报开关[0-false-关 1-true-开]//
  89. @property(nonatomic, assign) NSInteger chatVoiceMax; //语音时长
  90. @property(nonatomic, assign) NSInteger historyPathMax; //历史轨迹显示天数
  91. @end
  92. /*! @class 用户登录 */
  93. @interface LogInModel : BaseModel
  94. @property(nonatomic, copy) NSString* token;
  95. @property(nonatomic, copy) NSString* userId;
  96. @property(nonatomic, copy) NSString* email;
  97. @property(nonatomic, copy) NSString* internationalAreaCode;
  98. @property(nonatomic, copy) NSString* phone;
  99. @property(nonatomic, copy) NSString* nickname;
  100. @property(nonatomic, copy) NSString* portraitUri;
  101. @end
  102. @interface DeviceModel : BaseModel
  103. @property(nonatomic, copy) NSString* ticket;
  104. @property(nonatomic, assign) NSInteger deviceId;
  105. @property(nonatomic, assign) NSInteger signal;
  106. @property(nonatomic, assign) NSInteger signalMax;
  107. @property(nonatomic, assign) NSInteger battery;
  108. @property(nonatomic, assign) NSInteger startup; //开关机状态
  109. @property(nonatomic, copy) NSString* version;
  110. @property(nonatomic, copy) NSString* model;
  111. @property(nonatomic, copy) BaseCoordinatesModel* location;
  112. @property(nonatomic, copy) CloudMatchModel* match;
  113. /** 运动状态[0-静止 1-运动] */
  114. @property(nonatomic, assign) NSInteger mMotionState;
  115. /** 上课时间 k2s 及以上 */
  116. @property(nonatomic, copy) NSMutableArray *mScheduleArray;
  117. - (BOOL)isBind;
  118. @end
  119. @interface ChildModel : BaseAvatarModel
  120. @property(nonatomic, copy) NSString* childId;
  121. @property(nonatomic, copy) NSString* internationalAreaCode;
  122. @property(nonatomic, copy) NSString* phoneNumber;
  123. @property(nonatomic, copy) NSString* name;
  124. @property(nonatomic, copy) NSString* remarkName;
  125. @property(nonatomic, copy) NSString* birthday;
  126. @property(nonatomic, assign) NSInteger sex;
  127. @property(nonatomic, assign) NSInteger weight;
  128. @property(nonatomic, assign) NSInteger height;
  129. @property(nonatomic, assign) NSInteger stepCount; //计步
  130. @property(nonatomic, assign) NSInteger identity;
  131. @property(nonatomic, copy) DeviceModel* device;
  132. - (BOOL)isChildSelected:(NSString*)childId;
  133. @end
  134. //成员
  135. @interface ContactModel : BaseAvatarModel
  136. #define IDENTITY_ADMIN 3
  137. #define CONTACT_ORIGIN_APP @"APP"
  138. #define CONTACT_ORIGIN_WATCH @"WATCH"
  139. #define CONTACT_AVATAR_LOCAL @"ids://local_"
  140. @property(nonatomic, copy) NSString* _id;
  141. @property(nonatomic, copy) NSString* sessionId;
  142. @property(nonatomic, copy) NSString* remarkName;
  143. @property(nonatomic, copy) NSString* internationalAreaCode;
  144. @property(nonatomic, copy) NSString* phoneNumber;
  145. @property(nonatomic, assign) NSInteger identity; //0 默认 1 好友 2 家人 3 管理员 4 超级管理员
  146. @property(nonatomic, copy) NSString* origin; //CONTACT_ORIGIN_APP, CONTACT_ORIGIN_WATCH
  147. @end
  148. @interface ContactListModel : BaseModel
  149. @property(nonatomic, strong) NSMutableArray<ContactModel*>* data;
  150. - (NSMutableArray<ContactModel*>*)getFamilys;
  151. - (NSMutableArray<ContactModel*>*)getFriends;
  152. @end
  153. @interface FenceModel : BaseModel
  154. #define FENCE_CATEGORY_SCHOOL @"school"
  155. #define FENCE_CATEGORY_FAMILY @"family"
  156. #define FENCE_CATEGORY_CUSTOM @"custom"
  157. @property(nonatomic, copy) NSString* fenceId;
  158. @property(nonatomic, copy) NSString* name; //围栏名称
  159. @property(nonatomic, copy) NSString* category; //围栏类别,1学校,2家 3自定义
  160. @property(nonatomic, assign) NSInteger fenceType; //围栏类型 1:安全 2:危险
  161. @property(nonatomic, assign) NSInteger range; //圆半径
  162. @property(nonatomic, assign) NSInteger status; //开关
  163. @property(nonatomic, copy) BaseCoordinatesModel* location;
  164. @end
  165. @interface FenceListModel : BaseModel
  166. @property(nonatomic, assign) NSInteger toggle; //开关
  167. @property(nonatomic, strong) NSMutableArray<FenceModel*>* fences;
  168. @end
  169. /** 历史轨迹 */
  170. @interface HistoryPathModel : BaseCoordinatesModel
  171. @end
  172. @interface StrangerInterceptModel : BaseModel
  173. @property(nonatomic, assign) NSInteger toggle;
  174. @end
  175. @interface SchoolTimeModel : BaseRepeatsModel
  176. @property(nonatomic, assign) NSInteger _id;
  177. @property(nonatomic, copy) NSString* startTime;
  178. @property(nonatomic, copy) NSString* endTime;
  179. @property(nonatomic, assign) NSInteger status;
  180. @property(nonatomic, assign) NSInteger holidaysFlag;
  181. @end
  182. @interface AlarmClockModel : BaseRepeatsModel
  183. @property(nonatomic, assign) NSInteger _id;
  184. @property(nonatomic, copy) NSString* label;
  185. @property(nonatomic, copy) NSString* time; //HH:mm
  186. @property(nonatomic, assign) NSInteger status;
  187. @property(nonatomic, assign) NSInteger holidaysFlag;
  188. @end
  189. @interface ApnModel : BaseModel
  190. @property(nonatomic, copy) NSString* apn;
  191. @property(nonatomic, copy) NSString* username;
  192. @property(nonatomic, copy) NSString* password;
  193. @property(nonatomic, assign) NSInteger mcc;
  194. @property(nonatomic, assign) NSInteger mnc;
  195. @property(nonatomic, assign) NSInteger iptype;
  196. @property(nonatomic, assign) NSInteger authtype;
  197. @end
  198. @interface PushMessageParamsModel : BaseModel
  199. @property(nonatomic, copy) NSString* name;
  200. @property(nonatomic, copy) NSString* friendName;
  201. @end
  202. @interface PushMessageModel : BaseModel
  203. @property(nonatomic, copy) NSString* cid;
  204. @property(nonatomic, copy) NSString* childName;
  205. @property(nonatomic, assign) NSInteger type; //10:低电 20:电子围栏 30:通讯录 40:开关机 50:系统升级 60:手表高温 70:天气预警
  206. @property(nonatomic, assign) NSInteger create_time;
  207. @property(nonatomic, strong) PushMessageParamsModel* params;
  208. - (NSString*)getMessage;
  209. @end
  210. @interface RealPositionModel : BaseModel
  211. @property(nonatomic, copy) NSString* childId;
  212. @property(nonatomic, assign) NSInteger deviceId;
  213. @property(nonatomic, assign) NSInteger toggle; //0:定位一次 1:定位5分钟
  214. @property(nonatomic, assign) NSInteger startTime;
  215. @property(nonatomic, assign) NSInteger costTime;
  216. @property(nonatomic, assign) NSInteger timeout;
  217. @property(nonatomic, assign) NSInteger status;
  218. @end
  219. //会话中的成员
  220. @interface SessionMemberModel : BaseAvatarModel
  221. @property(nonatomic, copy) NSString* accountId;
  222. @property(nonatomic, copy) NSString* sessionId;
  223. @property(nonatomic, copy) NSString* nickName;
  224. @property(nonatomic, copy) NSString* identity;
  225. @end
  226. @interface SessionMessagePayloadModel : BaseModel
  227. @property(nonatomic, copy) NSString* _id;
  228. @property(nonatomic, copy) NSString* raw;
  229. @property(nonatomic, copy) NSString* eid;
  230. @property(nonatomic, copy) NSString* url;
  231. @property(nonatomic, copy) NSString* fileType;
  232. @property(nonatomic, assign) NSInteger duration; //语言时长
  233. @end
  234. @interface SessionMessageModel : BaseModel
  235. @property(nonatomic, copy) NSString* mid; //消息id
  236. @property(nonatomic, copy) NSString* sender;
  237. @property(nonatomic, copy) NSString* receiver;
  238. @property(nonatomic, copy) NSString* receiverType;
  239. @property(nonatomic, assign) NSInteger payloadType; //消息类型
  240. @property(nonatomic, assign) double sendTime;
  241. @property(nonatomic, assign) NSInteger read; //是否已读 N: 未读 Y: 已读
  242. @property(nonatomic, assign) NSInteger received; //是否收到
  243. @property(nonatomic, copy) NSString* requestId; //custom
  244. @property(nonatomic, copy) SessionMessagePayloadModel* payload;
  245. @end
  246. //某个会话
  247. @interface SessionModel : BaseAvatarModel
  248. @property(nonatomic, copy) NSString* sessionId;
  249. @property(nonatomic, copy) NSString* name;
  250. @property(nonatomic, copy) NSString* type; //"GROUP" "ONT_TO_ONE"
  251. @property(nonatomic, assign) NSInteger unreadCount;
  252. @property(nonatomic, copy) NSString* createBy;
  253. @property(nonatomic, strong) NSMutableArray<SessionMemberModel*>* members;
  254. - (NSInteger)getSessionType;
  255. - (NSString*)getChildId;
  256. - (SessionMemberModel*)getChildMember;
  257. @end
  258. @interface SocketChatModel : BaseModel
  259. @property(nonatomic, copy) NSString* messageId;
  260. @property(nonatomic, copy) NSString* sessionId;
  261. @end
  262. @interface SocketModel : BaseModel
  263. @property(nonatomic, assign) NSInteger type;
  264. @property(nonatomic, assign) double time;
  265. @property(nonatomic, copy) NSString* requestId;
  266. @property(nonatomic, copy) id content;
  267. @end
  268. typedef NS_ENUM(NSInteger, EScheduleType) {
  269. EScheduleTypeCustom = 0,
  270. EScheduleTypeGetup = 1,
  271. EScheduleTypeSleep = 2,
  272. EScheduleTypeBirthday = 3,
  273. EScheduleTypeEnd
  274. };
  275. @interface ScheduleEventData : NSObject
  276. - (instancetype) initWithDict:(NSDictionary *) dict;
  277. @property(nonatomic, copy) NSString* mID; //创建Schedule的时间作为key
  278. @property(nonatomic, assign) long mTimeID;
  279. @property(nonatomic, assign) int mOperationType; //1-add,2-modify,3-delete
  280. @property(nonatomic, copy) NSString* mChildId;
  281. @property(nonatomic, strong) NSDate *time;
  282. @property(nonatomic) EScheduleType mType;
  283. @property(nonatomic, copy) NSString* mScheduleName;
  284. @property(nonatomic, assign) int advanceDay;
  285. @property(nonatomic, assign) int colorIndex;
  286. @property(nonatomic, strong) NSMutableDictionary *weekSetDic;
  287. - (BOOL)isRepeatedEvent;
  288. @end