|
@@ -0,0 +1,239 @@
|
|
|
+//
|
|
|
+// ArrangeLiveCourseModel.m
|
|
|
+//
|
|
|
+// Created by Steven on 2024/11/19
|
|
|
+// Copyright (c) 2024 __MyCompanyName__. All rights reserved.
|
|
|
+//
|
|
|
+
|
|
|
+#import "ArrangeLiveCourseModel.h"
|
|
|
+
|
|
|
+
|
|
|
+NSString *const kArrangeLiveCourseModelBackgroundPic = @"backgroundPic";
|
|
|
+NSString *const kArrangeLiveCourseModelCourseIntroduce = @"courseIntroduce";
|
|
|
+NSString *const kArrangeLiveCourseModelSalesEndDate = @"salesEndDate";
|
|
|
+NSString *const kArrangeLiveCourseModelStatus = @"status";
|
|
|
+NSString *const kArrangeLiveCourseModelMixStudentNum = @"mixStudentNum";
|
|
|
+NSString *const kArrangeLiveCourseModelCourseGroupName = @"courseGroupName";
|
|
|
+NSString *const kArrangeLiveCourseModelSalesStartDate = @"salesStartDate";
|
|
|
+NSString *const kArrangeLiveCourseModelTeacherName = @"teacherName";
|
|
|
+NSString *const kArrangeLiveCourseModelSubjectName = @"subjectName";
|
|
|
+NSString *const kArrangeLiveCourseModelCourseStartTime = @"courseStartTime";
|
|
|
+NSString *const kArrangeLiveCourseModelSingleCourseMinutes = @"singleCourseMinutes";
|
|
|
+NSString *const kArrangeLiveCourseModelImGroupId = @"imGroupId";
|
|
|
+NSString *const kArrangeLiveCourseModelTeacherId = @"teacherId";
|
|
|
+NSString *const kArrangeLiveCourseModelStudentCount = @"studentCount";
|
|
|
+NSString *const kArrangeLiveCourseModelCourseGroupId = @"courseGroupId";
|
|
|
+NSString *const kArrangeLiveCourseModelAvatar = @"avatar";
|
|
|
+NSString *const kArrangeLiveCourseModelCourseNum = @"courseNum";
|
|
|
+NSString *const kArrangeLiveCourseModelExistBuy = @"existBuy";
|
|
|
+NSString *const kArrangeLiveCourseModelReason = @"reason";
|
|
|
+NSString *const kArrangeLiveCourseModelUserName = @"userName";
|
|
|
+NSString *const kArrangeLiveCourseModelCoursePrice = @"coursePrice";
|
|
|
+
|
|
|
+
|
|
|
+@interface ArrangeLiveCourseModel ()
|
|
|
+
|
|
|
+- (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict;
|
|
|
+
|
|
|
+@end
|
|
|
+
|
|
|
+@implementation ArrangeLiveCourseModel
|
|
|
+
|
|
|
+@synthesize backgroundPic = _backgroundPic;
|
|
|
+@synthesize courseIntroduce = _courseIntroduce;
|
|
|
+@synthesize salesEndDate = _salesEndDate;
|
|
|
+@synthesize status = _status;
|
|
|
+@synthesize mixStudentNum = _mixStudentNum;
|
|
|
+@synthesize courseGroupName = _courseGroupName;
|
|
|
+@synthesize salesStartDate = _salesStartDate;
|
|
|
+@synthesize teacherName = _teacherName;
|
|
|
+@synthesize subjectName = _subjectName;
|
|
|
+@synthesize courseStartTime = _courseStartTime;
|
|
|
+@synthesize singleCourseMinutes = _singleCourseMinutes;
|
|
|
+@synthesize imGroupId = _imGroupId;
|
|
|
+@synthesize teacherId = _teacherId;
|
|
|
+@synthesize studentCount = _studentCount;
|
|
|
+@synthesize courseGroupId = _courseGroupId;
|
|
|
+@synthesize avatar = _avatar;
|
|
|
+@synthesize courseNum = _courseNum;
|
|
|
+@synthesize existBuy = _existBuy;
|
|
|
+@synthesize reason = _reason;
|
|
|
+@synthesize userName = _userName;
|
|
|
+@synthesize coursePrice = _coursePrice;
|
|
|
+
|
|
|
+
|
|
|
++ (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
|
|
|
+{
|
|
|
+ return [[self alloc] initWithDictionary:dict];
|
|
|
+}
|
|
|
+
|
|
|
+- (instancetype)initWithDictionary:(NSDictionary *)dict
|
|
|
+{
|
|
|
+ self = [super init];
|
|
|
+
|
|
|
+ // This check serves to make sure that a non-NSDictionary object
|
|
|
+ // passed into the model class doesn't break the parsing.
|
|
|
+ if(self && [dict isKindOfClass:[NSDictionary class]]) {
|
|
|
+ self.backgroundPic = [self objectOrNilForKey:kArrangeLiveCourseModelBackgroundPic fromDictionary:dict];
|
|
|
+ self.courseIntroduce = [self objectOrNilForKey:kArrangeLiveCourseModelCourseIntroduce fromDictionary:dict];
|
|
|
+ self.salesEndDate = [self objectOrNilForKey:kArrangeLiveCourseModelSalesEndDate fromDictionary:dict];
|
|
|
+ self.status = [self objectOrNilForKey:kArrangeLiveCourseModelStatus fromDictionary:dict];
|
|
|
+ self.mixStudentNum = [[self objectOrNilForKey:kArrangeLiveCourseModelMixStudentNum fromDictionary:dict] doubleValue];
|
|
|
+ self.courseGroupName = [self objectOrNilForKey:kArrangeLiveCourseModelCourseGroupName fromDictionary:dict];
|
|
|
+ self.salesStartDate = [self objectOrNilForKey:kArrangeLiveCourseModelSalesStartDate fromDictionary:dict];
|
|
|
+ self.teacherName = [self objectOrNilForKey:kArrangeLiveCourseModelTeacherName fromDictionary:dict];
|
|
|
+ self.subjectName = [self objectOrNilForKey:kArrangeLiveCourseModelSubjectName fromDictionary:dict];
|
|
|
+ self.courseStartTime = [self objectOrNilForKey:kArrangeLiveCourseModelCourseStartTime fromDictionary:dict];
|
|
|
+ self.singleCourseMinutes = [[self objectOrNilForKey:kArrangeLiveCourseModelSingleCourseMinutes fromDictionary:dict] doubleValue];
|
|
|
+ self.imGroupId = [self objectOrNilForKey:kArrangeLiveCourseModelImGroupId fromDictionary:dict];
|
|
|
+ self.teacherId = [self objectOrNilForKey:kArrangeLiveCourseModelTeacherId fromDictionary:dict];
|
|
|
+ self.studentCount = [[self objectOrNilForKey:kArrangeLiveCourseModelStudentCount fromDictionary:dict] doubleValue];
|
|
|
+ self.courseGroupId = [self objectOrNilForKey:kArrangeLiveCourseModelCourseGroupId fromDictionary:dict];
|
|
|
+ self.avatar = [self objectOrNilForKey:kArrangeLiveCourseModelAvatar fromDictionary:dict];
|
|
|
+ self.courseNum = [[self objectOrNilForKey:kArrangeLiveCourseModelCourseNum fromDictionary:dict] doubleValue];
|
|
|
+ self.existBuy = [[self objectOrNilForKey:kArrangeLiveCourseModelExistBuy fromDictionary:dict] doubleValue];
|
|
|
+ self.reason = [self objectOrNilForKey:kArrangeLiveCourseModelReason fromDictionary:dict];
|
|
|
+ self.userName = [self objectOrNilForKey:kArrangeLiveCourseModelUserName fromDictionary:dict];
|
|
|
+ self.coursePrice = [[self objectOrNilForKey:kArrangeLiveCourseModelCoursePrice fromDictionary:dict] doubleValue];
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return self;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+- (NSDictionary *)dictionaryRepresentation
|
|
|
+{
|
|
|
+ NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
|
|
|
+ [mutableDict setValue:self.backgroundPic forKey:kArrangeLiveCourseModelBackgroundPic];
|
|
|
+ [mutableDict setValue:self.courseIntroduce forKey:kArrangeLiveCourseModelCourseIntroduce];
|
|
|
+ [mutableDict setValue:self.salesEndDate forKey:kArrangeLiveCourseModelSalesEndDate];
|
|
|
+ [mutableDict setValue:self.status forKey:kArrangeLiveCourseModelStatus];
|
|
|
+ [mutableDict setValue:[NSNumber numberWithDouble:self.mixStudentNum] forKey:kArrangeLiveCourseModelMixStudentNum];
|
|
|
+ [mutableDict setValue:self.courseGroupName forKey:kArrangeLiveCourseModelCourseGroupName];
|
|
|
+ [mutableDict setValue:self.salesStartDate forKey:kArrangeLiveCourseModelSalesStartDate];
|
|
|
+ [mutableDict setValue:self.teacherName forKey:kArrangeLiveCourseModelTeacherName];
|
|
|
+ [mutableDict setValue:self.subjectName forKey:kArrangeLiveCourseModelSubjectName];
|
|
|
+ [mutableDict setValue:self.courseStartTime forKey:kArrangeLiveCourseModelCourseStartTime];
|
|
|
+ [mutableDict setValue:[NSNumber numberWithDouble:self.singleCourseMinutes] forKey:kArrangeLiveCourseModelSingleCourseMinutes];
|
|
|
+ [mutableDict setValue:self.imGroupId forKey:kArrangeLiveCourseModelImGroupId];
|
|
|
+ [mutableDict setValue:self.teacherId forKey:kArrangeLiveCourseModelTeacherId];
|
|
|
+ [mutableDict setValue:[NSNumber numberWithDouble:self.studentCount] forKey:kArrangeLiveCourseModelStudentCount];
|
|
|
+ [mutableDict setValue:self.courseGroupId forKey:kArrangeLiveCourseModelCourseGroupId];
|
|
|
+ [mutableDict setValue:self.avatar forKey:kArrangeLiveCourseModelAvatar];
|
|
|
+ [mutableDict setValue:[NSNumber numberWithDouble:self.courseNum] forKey:kArrangeLiveCourseModelCourseNum];
|
|
|
+ [mutableDict setValue:[NSNumber numberWithDouble:self.existBuy] forKey:kArrangeLiveCourseModelExistBuy];
|
|
|
+ [mutableDict setValue:self.reason forKey:kArrangeLiveCourseModelReason];
|
|
|
+ [mutableDict setValue:self.userName forKey:kArrangeLiveCourseModelUserName];
|
|
|
+ [mutableDict setValue:[NSNumber numberWithDouble:self.coursePrice] forKey:kArrangeLiveCourseModelCoursePrice];
|
|
|
+
|
|
|
+ return [NSDictionary dictionaryWithDictionary:mutableDict];
|
|
|
+}
|
|
|
+
|
|
|
+- (NSString *)description
|
|
|
+{
|
|
|
+ return [NSString stringWithFormat:@"%@", [self dictionaryRepresentation]];
|
|
|
+}
|
|
|
+
|
|
|
+#pragma mark - Helper Method
|
|
|
+- (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict
|
|
|
+{
|
|
|
+ id object = [dict objectForKey:aKey];
|
|
|
+ if ([object isKindOfClass:[NSNumber class]]) {
|
|
|
+ NSNumber *number = object;
|
|
|
+ object = [number stringValue];
|
|
|
+ }
|
|
|
+ return [object isEqual:[NSNull null]] ? nil : object;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+#pragma mark - NSCoding Methods
|
|
|
+
|
|
|
+- (id)initWithCoder:(NSCoder *)aDecoder
|
|
|
+{
|
|
|
+ self = [super init];
|
|
|
+
|
|
|
+ self.backgroundPic = [aDecoder decodeObjectForKey:kArrangeLiveCourseModelBackgroundPic];
|
|
|
+ self.courseIntroduce = [aDecoder decodeObjectForKey:kArrangeLiveCourseModelCourseIntroduce];
|
|
|
+ self.salesEndDate = [aDecoder decodeObjectForKey:kArrangeLiveCourseModelSalesEndDate];
|
|
|
+ self.status = [aDecoder decodeObjectForKey:kArrangeLiveCourseModelStatus];
|
|
|
+ self.mixStudentNum = [aDecoder decodeDoubleForKey:kArrangeLiveCourseModelMixStudentNum];
|
|
|
+ self.courseGroupName = [aDecoder decodeObjectForKey:kArrangeLiveCourseModelCourseGroupName];
|
|
|
+ self.salesStartDate = [aDecoder decodeObjectForKey:kArrangeLiveCourseModelSalesStartDate];
|
|
|
+ self.teacherName = [aDecoder decodeObjectForKey:kArrangeLiveCourseModelTeacherName];
|
|
|
+ self.subjectName = [aDecoder decodeObjectForKey:kArrangeLiveCourseModelSubjectName];
|
|
|
+ self.courseStartTime = [aDecoder decodeObjectForKey:kArrangeLiveCourseModelCourseStartTime];
|
|
|
+ self.singleCourseMinutes = [aDecoder decodeDoubleForKey:kArrangeLiveCourseModelSingleCourseMinutes];
|
|
|
+ self.imGroupId = [aDecoder decodeObjectForKey:kArrangeLiveCourseModelImGroupId];
|
|
|
+ self.teacherId = [aDecoder decodeObjectForKey:kArrangeLiveCourseModelTeacherId];
|
|
|
+ self.studentCount = [aDecoder decodeDoubleForKey:kArrangeLiveCourseModelStudentCount];
|
|
|
+ self.courseGroupId = [aDecoder decodeObjectForKey:kArrangeLiveCourseModelCourseGroupId];
|
|
|
+ self.avatar = [aDecoder decodeObjectForKey:kArrangeLiveCourseModelAvatar];
|
|
|
+ self.courseNum = [aDecoder decodeDoubleForKey:kArrangeLiveCourseModelCourseNum];
|
|
|
+ self.existBuy = [aDecoder decodeDoubleForKey:kArrangeLiveCourseModelExistBuy];
|
|
|
+ self.reason = [aDecoder decodeObjectForKey:kArrangeLiveCourseModelReason];
|
|
|
+ self.userName = [aDecoder decodeObjectForKey:kArrangeLiveCourseModelUserName];
|
|
|
+ self.coursePrice = [aDecoder decodeDoubleForKey:kArrangeLiveCourseModelCoursePrice];
|
|
|
+ return self;
|
|
|
+}
|
|
|
+
|
|
|
+- (void)encodeWithCoder:(NSCoder *)aCoder
|
|
|
+{
|
|
|
+
|
|
|
+ [aCoder encodeObject:_backgroundPic forKey:kArrangeLiveCourseModelBackgroundPic];
|
|
|
+ [aCoder encodeObject:_courseIntroduce forKey:kArrangeLiveCourseModelCourseIntroduce];
|
|
|
+ [aCoder encodeObject:_salesEndDate forKey:kArrangeLiveCourseModelSalesEndDate];
|
|
|
+ [aCoder encodeObject:_status forKey:kArrangeLiveCourseModelStatus];
|
|
|
+ [aCoder encodeDouble:_mixStudentNum forKey:kArrangeLiveCourseModelMixStudentNum];
|
|
|
+ [aCoder encodeObject:_courseGroupName forKey:kArrangeLiveCourseModelCourseGroupName];
|
|
|
+ [aCoder encodeObject:_salesStartDate forKey:kArrangeLiveCourseModelSalesStartDate];
|
|
|
+ [aCoder encodeObject:_teacherName forKey:kArrangeLiveCourseModelTeacherName];
|
|
|
+ [aCoder encodeObject:_subjectName forKey:kArrangeLiveCourseModelSubjectName];
|
|
|
+ [aCoder encodeObject:_courseStartTime forKey:kArrangeLiveCourseModelCourseStartTime];
|
|
|
+ [aCoder encodeDouble:_singleCourseMinutes forKey:kArrangeLiveCourseModelSingleCourseMinutes];
|
|
|
+ [aCoder encodeObject:_imGroupId forKey:kArrangeLiveCourseModelImGroupId];
|
|
|
+ [aCoder encodeObject:_teacherId forKey:kArrangeLiveCourseModelTeacherId];
|
|
|
+ [aCoder encodeDouble:_studentCount forKey:kArrangeLiveCourseModelStudentCount];
|
|
|
+ [aCoder encodeObject:_courseGroupId forKey:kArrangeLiveCourseModelCourseGroupId];
|
|
|
+ [aCoder encodeObject:_avatar forKey:kArrangeLiveCourseModelAvatar];
|
|
|
+ [aCoder encodeDouble:_courseNum forKey:kArrangeLiveCourseModelCourseNum];
|
|
|
+ [aCoder encodeDouble:_existBuy forKey:kArrangeLiveCourseModelExistBuy];
|
|
|
+ [aCoder encodeObject:_reason forKey:kArrangeLiveCourseModelReason];
|
|
|
+ [aCoder encodeObject:_userName forKey:kArrangeLiveCourseModelUserName];
|
|
|
+ [aCoder encodeDouble:_coursePrice forKey:kArrangeLiveCourseModelCoursePrice];
|
|
|
+}
|
|
|
+
|
|
|
+- (id)copyWithZone:(NSZone *)zone
|
|
|
+{
|
|
|
+ ArrangeLiveCourseModel *copy = [[ArrangeLiveCourseModel alloc] init];
|
|
|
+
|
|
|
+ if (copy) {
|
|
|
+
|
|
|
+ copy.backgroundPic = [self.backgroundPic copyWithZone:zone];
|
|
|
+ copy.courseIntroduce = [self.courseIntroduce copyWithZone:zone];
|
|
|
+ copy.salesEndDate = [self.salesEndDate copyWithZone:zone];
|
|
|
+ copy.status = [self.status copyWithZone:zone];
|
|
|
+ copy.mixStudentNum = self.mixStudentNum;
|
|
|
+ copy.courseGroupName = [self.courseGroupName copyWithZone:zone];
|
|
|
+ copy.salesStartDate = [self.salesStartDate copyWithZone:zone];
|
|
|
+ copy.teacherName = [self.teacherName copyWithZone:zone];
|
|
|
+ copy.subjectName = [self.subjectName copyWithZone:zone];
|
|
|
+ copy.courseStartTime = [self.courseStartTime copyWithZone:zone];
|
|
|
+ copy.singleCourseMinutes = self.singleCourseMinutes;
|
|
|
+ copy.imGroupId = [self.imGroupId copyWithZone:zone];
|
|
|
+ copy.teacherId = [self.teacherId copyWithZone:zone];
|
|
|
+ copy.studentCount = self.studentCount;
|
|
|
+ copy.courseGroupId = [self.courseGroupId copyWithZone:zone];
|
|
|
+ copy.avatar = [self.avatar copyWithZone:zone];
|
|
|
+ copy.courseNum = self.courseNum;
|
|
|
+ copy.existBuy = self.existBuy;
|
|
|
+ copy.reason = [self.reason copyWithZone:zone];
|
|
|
+ copy.userName = [self.userName copyWithZone:zone];
|
|
|
+ copy.coursePrice = self.coursePrice;
|
|
|
+ }
|
|
|
+
|
|
|
+ return copy;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+@end
|