HomeVideoGroupModel.m 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. //
  2. // HomeVideoGroupModel.m
  3. //
  4. // Created by Steven on 2022/4/24
  5. // Copyright (c) 2022 __MyCompanyName__. All rights reserved.
  6. //
  7. #import "HomeVideoGroupModel.h"
  8. NSString *const kHomeVideoGroupModelAvatar = @"avatar";
  9. NSString *const kHomeVideoGroupModelLessonCoverUrl = @"lessonCoverUrl";
  10. NSString *const kHomeVideoGroupModelVideoGroupId = @"videoGroupId";
  11. NSString *const kHomeVideoGroupModelLessonPrice = @"lessonPrice";
  12. NSString *const kHomeVideoGroupModelTeacherName = @"teacherName";
  13. NSString *const kHomeVideoGroupModelSubjectId = @"subjectId";
  14. NSString *const kHomeVideoGroupModelSubjectName = @"subjectName";
  15. NSString *const kHomeVideoGroupModelLessonCount = @"lessonCount";
  16. NSString *const kHomeVideoGroupModelTeacherId = @"teacherId";
  17. NSString *const kHomeVideoGroupModelVideoGroupName = @"videoGroupName";
  18. NSString *const kHomeVideoGroupModelCreateTime = @"createTime";
  19. NSString *const kHomeVideoGroupModelBuyCount = @"buyCount";
  20. @interface HomeVideoGroupModel ()
  21. - (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict;
  22. @end
  23. @implementation HomeVideoGroupModel
  24. @synthesize avatar = _avatar;
  25. @synthesize lessonCoverUrl = _lessonCoverUrl;
  26. @synthesize videoGroupId = _videoGroupId;
  27. @synthesize lessonPrice = _lessonPrice;
  28. @synthesize teacherName = _teacherName;
  29. @synthesize subjectId = _subjectId;
  30. @synthesize subjectName = _subjectName;
  31. @synthesize lessonCount = _lessonCount;
  32. @synthesize teacherId = _teacherId;
  33. @synthesize videoGroupName = _videoGroupName;
  34. @synthesize createTime = _createTime;
  35. @synthesize buyCount = _buyCount;
  36. + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
  37. {
  38. return [[self alloc] initWithDictionary:dict];
  39. }
  40. - (instancetype)initWithDictionary:(NSDictionary *)dict
  41. {
  42. self = [super init];
  43. // This check serves to make sure that a non-NSDictionary object
  44. // passed into the model class doesn't break the parsing.
  45. if(self && [dict isKindOfClass:[NSDictionary class]]) {
  46. self.avatar = [self objectOrNilForKey:kHomeVideoGroupModelAvatar fromDictionary:dict];
  47. self.lessonCoverUrl = [self objectOrNilForKey:kHomeVideoGroupModelLessonCoverUrl fromDictionary:dict];
  48. self.videoGroupId = [self objectOrNilForKey:kHomeVideoGroupModelVideoGroupId fromDictionary:dict];
  49. self.lessonPrice = [[self objectOrNilForKey:kHomeVideoGroupModelLessonPrice fromDictionary:dict] doubleValue];
  50. self.teacherName = [self objectOrNilForKey:kHomeVideoGroupModelTeacherName fromDictionary:dict];
  51. self.subjectId = [self objectOrNilForKey:kHomeVideoGroupModelSubjectId fromDictionary:dict];
  52. self.subjectName = [self objectOrNilForKey:kHomeVideoGroupModelSubjectName fromDictionary:dict];
  53. self.lessonCount = [[self objectOrNilForKey:kHomeVideoGroupModelLessonCount fromDictionary:dict] integerValue];
  54. self.teacherId = [self objectOrNilForKey:kHomeVideoGroupModelTeacherId fromDictionary:dict];
  55. self.videoGroupName = [self objectOrNilForKey:kHomeVideoGroupModelVideoGroupName fromDictionary:dict];
  56. self.createTime = [self objectOrNilForKey:kHomeVideoGroupModelCreateTime fromDictionary:dict];
  57. self.buyCount = [[self objectOrNilForKey:kHomeVideoGroupModelBuyCount fromDictionary:dict] integerValue];
  58. }
  59. return self;
  60. }
  61. - (NSDictionary *)dictionaryRepresentation
  62. {
  63. NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
  64. [mutableDict setValue:self.avatar forKey:kHomeVideoGroupModelAvatar];
  65. [mutableDict setValue:self.lessonCoverUrl forKey:kHomeVideoGroupModelLessonCoverUrl];
  66. [mutableDict setValue:self.videoGroupId forKey:kHomeVideoGroupModelVideoGroupId];
  67. [mutableDict setValue:[NSNumber numberWithDouble:self.lessonPrice] forKey:kHomeVideoGroupModelLessonPrice];
  68. [mutableDict setValue:self.teacherName forKey:kHomeVideoGroupModelTeacherName];
  69. [mutableDict setValue:self.subjectId forKey:kHomeVideoGroupModelSubjectId];
  70. [mutableDict setValue:self.subjectName forKey:kHomeVideoGroupModelSubjectName];
  71. [mutableDict setValue:[NSNumber numberWithInteger:self.lessonCount] forKey:kHomeVideoGroupModelLessonCount];
  72. [mutableDict setValue:self.teacherId forKey:kHomeVideoGroupModelTeacherId];
  73. [mutableDict setValue:self.videoGroupName forKey:kHomeVideoGroupModelVideoGroupName];
  74. [mutableDict setValue:self.createTime forKey:kHomeVideoGroupModelCreateTime];
  75. [mutableDict setValue:[NSNumber numberWithInteger:self.buyCount] forKey:kHomeVideoGroupModelBuyCount];
  76. return [NSDictionary dictionaryWithDictionary:mutableDict];
  77. }
  78. - (NSString *)description
  79. {
  80. return [NSString stringWithFormat:@"%@", [self dictionaryRepresentation]];
  81. }
  82. #pragma mark - Helper Method
  83. - (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict
  84. {
  85. id object = [dict objectForKey:aKey];
  86. if ([object isKindOfClass:[NSNumber class]]) {
  87. NSNumber *number = object;
  88. object = [number stringValue];
  89. }
  90. return [object isEqual:[NSNull null]] ? nil : object;
  91. }
  92. #pragma mark - NSCoding Methods
  93. - (id)initWithCoder:(NSCoder *)aDecoder
  94. {
  95. self = [super init];
  96. self.avatar = [aDecoder decodeObjectForKey:kHomeVideoGroupModelAvatar];
  97. self.lessonCoverUrl = [aDecoder decodeObjectForKey:kHomeVideoGroupModelLessonCoverUrl];
  98. self.videoGroupId = [aDecoder decodeObjectForKey:kHomeVideoGroupModelVideoGroupId];
  99. self.lessonPrice = [aDecoder decodeDoubleForKey:kHomeVideoGroupModelLessonPrice];
  100. self.teacherName = [aDecoder decodeObjectForKey:kHomeVideoGroupModelTeacherName];
  101. self.subjectId = [aDecoder decodeObjectForKey:kHomeVideoGroupModelSubjectId];
  102. self.subjectName = [aDecoder decodeObjectForKey:kHomeVideoGroupModelSubjectName];
  103. self.lessonCount = [aDecoder decodeDoubleForKey:kHomeVideoGroupModelLessonCount];
  104. self.teacherId = [aDecoder decodeObjectForKey:kHomeVideoGroupModelTeacherId];
  105. self.videoGroupName = [aDecoder decodeObjectForKey:kHomeVideoGroupModelVideoGroupName];
  106. self.createTime = [aDecoder decodeObjectForKey:kHomeVideoGroupModelCreateTime];
  107. self.buyCount = [aDecoder decodeIntegerForKey:kHomeVideoGroupModelBuyCount];
  108. return self;
  109. }
  110. - (void)encodeWithCoder:(NSCoder *)aCoder
  111. {
  112. [aCoder encodeObject:_avatar forKey:kHomeVideoGroupModelAvatar];
  113. [aCoder encodeObject:_lessonCoverUrl forKey:kHomeVideoGroupModelLessonCoverUrl];
  114. [aCoder encodeObject:_videoGroupId forKey:kHomeVideoGroupModelVideoGroupId];
  115. [aCoder encodeDouble:_lessonPrice forKey:kHomeVideoGroupModelLessonPrice];
  116. [aCoder encodeObject:_teacherName forKey:kHomeVideoGroupModelTeacherName];
  117. [aCoder encodeObject:_subjectId forKey:kHomeVideoGroupModelSubjectId];
  118. [aCoder encodeObject:_subjectName forKey:kHomeVideoGroupModelSubjectName];
  119. [aCoder encodeDouble:_lessonCount forKey:kHomeVideoGroupModelLessonCount];
  120. [aCoder encodeObject:_teacherId forKey:kHomeVideoGroupModelTeacherId];
  121. [aCoder encodeObject:_videoGroupName forKey:kHomeVideoGroupModelVideoGroupName];
  122. [aCoder encodeObject:_createTime forKey:kHomeVideoGroupModelCreateTime];
  123. [aCoder encodeInteger:_buyCount forKey:kHomeVideoGroupModelBuyCount];
  124. }
  125. - (id)copyWithZone:(NSZone *)zone
  126. {
  127. HomeVideoGroupModel *copy = [[HomeVideoGroupModel alloc] init];
  128. if (copy) {
  129. copy.avatar = [self.avatar copyWithZone:zone];
  130. copy.lessonCoverUrl = [self.lessonCoverUrl copyWithZone:zone];
  131. copy.videoGroupId = [self.videoGroupId copyWithZone:zone];
  132. copy.lessonPrice = self.lessonPrice;
  133. copy.teacherName = [self.teacherName copyWithZone:zone];
  134. copy.subjectId = [self.subjectId copyWithZone:zone];
  135. copy.subjectName = [self.subjectName copyWithZone:zone];
  136. copy.lessonCount = self.lessonCount;
  137. copy.teacherId = [self.teacherId copyWithZone:zone];
  138. copy.videoGroupName = [self.videoGroupName copyWithZone:zone];
  139. copy.createTime = [self.createTime copyWithZone:zone];
  140. copy.buyCount = self.buyCount;
  141. }
  142. return copy;
  143. }
  144. @end