NotiferMessageModel.m 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. //
  2. // NotiferMessageModel.m
  3. //
  4. // Created by Steven on 2022/5/7
  5. // Copyright (c) 2022 __MyCompanyName__. All rights reserved.
  6. //
  7. #import "NotiferMessageModel.h"
  8. NSString *const kNotiferMessageModelId = @"id";
  9. NSString *const kNotiferMessageModelModifyOn = @"modifyOn";
  10. NSString *const kNotiferMessageModelClientId = @"clientId";
  11. NSString *const kNotiferMessageModelSendTime = @"sendTime";
  12. NSString *const kNotiferMessageModelReceiver = @"receiver";
  13. NSString *const kNotiferMessageModelErrorMsg = @"errorMsg";
  14. NSString *const kNotiferMessageModelCreateOn = @"createOn";
  15. NSString *const kNotiferMessageModelMemo = @"memo";
  16. NSString *const kNotiferMessageModelContent = @"content";
  17. NSString *const kNotiferMessageModelType = @"type";
  18. NSString *const kNotiferMessageModelTitle = @"title";
  19. NSString *const kNotiferMessageModelUserId = @"userId";
  20. NSString *const kNotiferMessageModelGroup = @"group";
  21. NSString *const kNotiferMessageModelReadStatus = @"readStatus";
  22. NSString *const kNotiferMessageModelStatus = @"status";
  23. @interface NotiferMessageModel ()
  24. - (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict;
  25. @end
  26. @implementation NotiferMessageModel
  27. @synthesize internalBaseClassIdentifier = _internalBaseClassIdentifier;
  28. @synthesize modifyOn = _modifyOn;
  29. @synthesize clientId = _clientId;
  30. @synthesize sendTime = _sendTime;
  31. @synthesize receiver = _receiver;
  32. @synthesize errorMsg = _errorMsg;
  33. @synthesize createOn = _createOn;
  34. @synthesize memo = _memo;
  35. @synthesize content = _content;
  36. @synthesize type = _type;
  37. @synthesize title = _title;
  38. @synthesize userId = _userId;
  39. @synthesize group = _group;
  40. @synthesize readStatus = _readStatus;
  41. @synthesize status = _status;
  42. + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
  43. {
  44. return [[self alloc] initWithDictionary:dict];
  45. }
  46. - (instancetype)initWithDictionary:(NSDictionary *)dict
  47. {
  48. self = [super init];
  49. // This check serves to make sure that a non-NSDictionary object
  50. // passed into the model class doesn't break the parsing.
  51. if(self && [dict isKindOfClass:[NSDictionary class]]) {
  52. self.internalBaseClassIdentifier = [self objectOrNilForKey:kNotiferMessageModelId fromDictionary:dict];
  53. self.modifyOn = [self objectOrNilForKey:kNotiferMessageModelModifyOn fromDictionary:dict];
  54. self.clientId = [self objectOrNilForKey:kNotiferMessageModelClientId fromDictionary:dict];
  55. self.sendTime = [self objectOrNilForKey:kNotiferMessageModelSendTime fromDictionary:dict];
  56. self.receiver = [self objectOrNilForKey:kNotiferMessageModelReceiver fromDictionary:dict];
  57. self.errorMsg = [self objectOrNilForKey:kNotiferMessageModelErrorMsg fromDictionary:dict];
  58. self.createOn = [self objectOrNilForKey:kNotiferMessageModelCreateOn fromDictionary:dict];
  59. self.memo = [self objectOrNilForKey:kNotiferMessageModelMemo fromDictionary:dict];
  60. self.content = [self objectOrNilForKey:kNotiferMessageModelContent fromDictionary:dict];
  61. self.type = [self objectOrNilForKey:kNotiferMessageModelType fromDictionary:dict];
  62. self.title = [self objectOrNilForKey:kNotiferMessageModelTitle fromDictionary:dict];
  63. self.userId = [self objectOrNilForKey:kNotiferMessageModelUserId fromDictionary:dict];
  64. self.group = [self objectOrNilForKey:kNotiferMessageModelGroup fromDictionary:dict];
  65. self.readStatus = [[self objectOrNilForKey:kNotiferMessageModelReadStatus fromDictionary:dict] doubleValue];
  66. self.status = [self objectOrNilForKey:kNotiferMessageModelStatus fromDictionary:dict];
  67. }
  68. return self;
  69. }
  70. - (NSDictionary *)dictionaryRepresentation
  71. {
  72. NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
  73. [mutableDict setValue:self.internalBaseClassIdentifier forKey:kNotiferMessageModelId];
  74. [mutableDict setValue:self.modifyOn forKey:kNotiferMessageModelModifyOn];
  75. [mutableDict setValue:self.clientId forKey:kNotiferMessageModelClientId];
  76. [mutableDict setValue:self.sendTime forKey:kNotiferMessageModelSendTime];
  77. [mutableDict setValue:self.receiver forKey:kNotiferMessageModelReceiver];
  78. [mutableDict setValue:self.errorMsg forKey:kNotiferMessageModelErrorMsg];
  79. [mutableDict setValue:self.createOn forKey:kNotiferMessageModelCreateOn];
  80. [mutableDict setValue:self.memo forKey:kNotiferMessageModelMemo];
  81. [mutableDict setValue:self.content forKey:kNotiferMessageModelContent];
  82. [mutableDict setValue:self.type forKey:kNotiferMessageModelType];
  83. [mutableDict setValue:self.title forKey:kNotiferMessageModelTitle];
  84. [mutableDict setValue:self.userId forKey:kNotiferMessageModelUserId];
  85. [mutableDict setValue:self.group forKey:kNotiferMessageModelGroup];
  86. [mutableDict setValue:[NSNumber numberWithDouble:self.readStatus] forKey:kNotiferMessageModelReadStatus];
  87. [mutableDict setValue:self.status forKey:kNotiferMessageModelStatus];
  88. return [NSDictionary dictionaryWithDictionary:mutableDict];
  89. }
  90. - (NSString *)description
  91. {
  92. return [NSString stringWithFormat:@"%@", [self dictionaryRepresentation]];
  93. }
  94. #pragma mark - Helper Method
  95. - (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict
  96. {
  97. id object = [dict objectForKey:aKey];
  98. if ([object isKindOfClass:[NSNumber class]]) {
  99. NSNumber *number = object;
  100. object = [number stringValue];
  101. }
  102. return [object isEqual:[NSNull null]] ? nil : object;
  103. }
  104. #pragma mark - NSCoding Methods
  105. - (id)initWithCoder:(NSCoder *)aDecoder
  106. {
  107. self = [super init];
  108. self.internalBaseClassIdentifier = [aDecoder decodeObjectForKey:kNotiferMessageModelId];
  109. self.modifyOn = [aDecoder decodeObjectForKey:kNotiferMessageModelModifyOn];
  110. self.clientId = [aDecoder decodeObjectForKey:kNotiferMessageModelClientId];
  111. self.sendTime = [aDecoder decodeObjectForKey:kNotiferMessageModelSendTime];
  112. self.receiver = [aDecoder decodeObjectForKey:kNotiferMessageModelReceiver];
  113. self.errorMsg = [aDecoder decodeObjectForKey:kNotiferMessageModelErrorMsg];
  114. self.createOn = [aDecoder decodeObjectForKey:kNotiferMessageModelCreateOn];
  115. self.memo = [aDecoder decodeObjectForKey:kNotiferMessageModelMemo];
  116. self.content = [aDecoder decodeObjectForKey:kNotiferMessageModelContent];
  117. self.type = [aDecoder decodeObjectForKey:kNotiferMessageModelType];
  118. self.title = [aDecoder decodeObjectForKey:kNotiferMessageModelTitle];
  119. self.userId = [aDecoder decodeObjectForKey:kNotiferMessageModelUserId];
  120. self.group = [aDecoder decodeObjectForKey:kNotiferMessageModelGroup];
  121. self.readStatus = [aDecoder decodeDoubleForKey:kNotiferMessageModelReadStatus];
  122. self.status = [aDecoder decodeObjectForKey:kNotiferMessageModelStatus];
  123. return self;
  124. }
  125. - (void)encodeWithCoder:(NSCoder *)aCoder
  126. {
  127. [aCoder encodeObject:_internalBaseClassIdentifier forKey:kNotiferMessageModelId];
  128. [aCoder encodeObject:_modifyOn forKey:kNotiferMessageModelModifyOn];
  129. [aCoder encodeObject:_clientId forKey:kNotiferMessageModelClientId];
  130. [aCoder encodeObject:_sendTime forKey:kNotiferMessageModelSendTime];
  131. [aCoder encodeObject:_receiver forKey:kNotiferMessageModelReceiver];
  132. [aCoder encodeObject:_errorMsg forKey:kNotiferMessageModelErrorMsg];
  133. [aCoder encodeObject:_createOn forKey:kNotiferMessageModelCreateOn];
  134. [aCoder encodeObject:_memo forKey:kNotiferMessageModelMemo];
  135. [aCoder encodeObject:_content forKey:kNotiferMessageModelContent];
  136. [aCoder encodeObject:_type forKey:kNotiferMessageModelType];
  137. [aCoder encodeObject:_title forKey:kNotiferMessageModelTitle];
  138. [aCoder encodeObject:_userId forKey:kNotiferMessageModelUserId];
  139. [aCoder encodeObject:_group forKey:kNotiferMessageModelGroup];
  140. [aCoder encodeDouble:_readStatus forKey:kNotiferMessageModelReadStatus];
  141. [aCoder encodeObject:_status forKey:kNotiferMessageModelStatus];
  142. }
  143. - (id)copyWithZone:(NSZone *)zone
  144. {
  145. NotiferMessageModel *copy = [[NotiferMessageModel alloc] init];
  146. if (copy) {
  147. copy.internalBaseClassIdentifier = [self.internalBaseClassIdentifier copyWithZone:zone];
  148. copy.modifyOn = [self.modifyOn copyWithZone:zone];
  149. copy.clientId = [self.clientId copyWithZone:zone];
  150. copy.sendTime = [self.sendTime copyWithZone:zone];
  151. copy.receiver = [self.receiver copyWithZone:zone];
  152. copy.errorMsg = [self.errorMsg copyWithZone:zone];
  153. copy.createOn = [self.createOn copyWithZone:zone];
  154. copy.memo = [self.memo copyWithZone:zone];
  155. copy.content = [self.content copyWithZone:zone];
  156. copy.type = [self.type copyWithZone:zone];
  157. copy.title = [self.title copyWithZone:zone];
  158. copy.userId = [self.userId copyWithZone:zone];
  159. copy.group = [self.group copyWithZone:zone];
  160. copy.readStatus = self.readStatus;
  161. copy.status = [self.status copyWithZone:zone];
  162. }
  163. return copy;
  164. }
  165. @end