|
@@ -0,0 +1,263 @@
|
|
|
+//
|
|
|
+// HomeworkDetailModel.m
|
|
|
+//
|
|
|
+// Created by Steven on 2022/4/18
|
|
|
+// Copyright (c) 2022 __MyCompanyName__. All rights reserved.
|
|
|
+//
|
|
|
+
|
|
|
+#import "HomeworkDetailModel.h"
|
|
|
+
|
|
|
+
|
|
|
+NSString *const kHomeworkDetailModelCourseStatus = @"courseStatus";
|
|
|
+NSString *const kHomeworkDetailModelContent = @"content";
|
|
|
+NSString *const kHomeworkDetailModelStudentName = @"studentName";
|
|
|
+NSString *const kHomeworkDetailModelCourseScheduleId = @"courseScheduleId";
|
|
|
+NSString *const kHomeworkDetailModelTitle = @"title";
|
|
|
+NSString *const kHomeworkDetailModelSubmitHomework = @"submitHomework";
|
|
|
+NSString *const kHomeworkDetailModelStudentHomeworkId = @"studentHomeworkId";
|
|
|
+NSString *const kHomeworkDetailModelTeacherName = @"teacherName";
|
|
|
+NSString *const kHomeworkDetailModelDecorateTime = @"decorateTime";
|
|
|
+NSString *const kHomeworkDetailModelEndTime = @"endTime";
|
|
|
+NSString *const kHomeworkDetailModelTeacherReplied = @"teacherReplied";
|
|
|
+NSString *const kHomeworkDetailModelSubjectName = @"subjectName";
|
|
|
+NSString *const kHomeworkDetailModelId = @"id";
|
|
|
+NSString *const kHomeworkDetailModelSubmitTime = @"submitTime";
|
|
|
+NSString *const kHomeworkDetailModelStudentAttachments = @"studentAttachments";
|
|
|
+NSString *const kHomeworkDetailModelCourseType = @"courseType";
|
|
|
+NSString *const kHomeworkDetailModelDecorateHomework = @"decorateHomework";
|
|
|
+NSString *const kHomeworkDetailModelAttachments = @"attachments";
|
|
|
+NSString *const kHomeworkDetailModelCourseGroupId = @"courseGroupId";
|
|
|
+NSString *const kHomeworkDetailModelStudentAvatar = @"studentAvatar";
|
|
|
+NSString *const kHomeworkDetailModelStartTime = @"startTime";
|
|
|
+NSString *const kHomeworkDetailModelClassDate = @"classDate";
|
|
|
+NSString *const kHomeworkDetailModelTeacherAvatar = @"teacherAvatar";
|
|
|
+NSString *const kHomeworkDetailModelReviewHomework = @"reviewHomework";
|
|
|
+NSString *const kHomeworkDetailModelStudentId = @"studentId";
|
|
|
+
|
|
|
+@interface HomeworkDetailModel ()
|
|
|
+
|
|
|
+- (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict;
|
|
|
+
|
|
|
+@end
|
|
|
+
|
|
|
+@implementation HomeworkDetailModel
|
|
|
+
|
|
|
+@synthesize courseStatus = _courseStatus;
|
|
|
+@synthesize content = _content;
|
|
|
+@synthesize studentName = _studentName;
|
|
|
+@synthesize courseScheduleId = _courseScheduleId;
|
|
|
+@synthesize title = _title;
|
|
|
+@synthesize submitHomework = _submitHomework;
|
|
|
+@synthesize studentHomeworkId = _studentHomeworkId;
|
|
|
+@synthesize teacherName = _teacherName;
|
|
|
+@synthesize decorateTime = _decorateTime;
|
|
|
+@synthesize endTime = _endTime;
|
|
|
+@synthesize teacherReplied = _teacherReplied;
|
|
|
+@synthesize subjectName = _subjectName;
|
|
|
+@synthesize internalBaseClassIdentifier = _internalBaseClassIdentifier;
|
|
|
+@synthesize submitTime = _submitTime;
|
|
|
+@synthesize studentAttachments = _studentAttachments;
|
|
|
+@synthesize courseType = _courseType;
|
|
|
+@synthesize decorateHomework = _decorateHomework;
|
|
|
+@synthesize attachments = _attachments;
|
|
|
+@synthesize courseGroupId = _courseGroupId;
|
|
|
+@synthesize studentAvatar = _studentAvatar;
|
|
|
+@synthesize startTime = _startTime;
|
|
|
+@synthesize classDate = _classDate;
|
|
|
+@synthesize teacherAvatar = _teacherAvatar;
|
|
|
+@synthesize reviewHomework = _reviewHomework;
|
|
|
+@synthesize studentId = _studentId;
|
|
|
+
|
|
|
++ (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.courseStatus = [self objectOrNilForKey:kHomeworkDetailModelCourseStatus fromDictionary:dict];
|
|
|
+ self.content = [self objectOrNilForKey:kHomeworkDetailModelContent fromDictionary:dict];
|
|
|
+ self.studentName = [self objectOrNilForKey:kHomeworkDetailModelStudentName fromDictionary:dict];
|
|
|
+ self.courseScheduleId = [self objectOrNilForKey:kHomeworkDetailModelCourseScheduleId fromDictionary:dict];
|
|
|
+ self.title = [self objectOrNilForKey:kHomeworkDetailModelTitle fromDictionary:dict];
|
|
|
+ self.submitHomework = [[self objectOrNilForKey:kHomeworkDetailModelSubmitHomework fromDictionary:dict] doubleValue];
|
|
|
+ self.studentHomeworkId = [[self objectOrNilForKey:kHomeworkDetailModelStudentHomeworkId fromDictionary:dict] doubleValue];
|
|
|
+ self.teacherName = [self objectOrNilForKey:kHomeworkDetailModelTeacherName fromDictionary:dict];
|
|
|
+ self.decorateTime = [self objectOrNilForKey:kHomeworkDetailModelDecorateTime fromDictionary:dict];
|
|
|
+ self.endTime = [self objectOrNilForKey:kHomeworkDetailModelEndTime fromDictionary:dict];
|
|
|
+ self.teacherReplied = [self objectOrNilForKey:kHomeworkDetailModelTeacherReplied fromDictionary:dict];
|
|
|
+ self.subjectName = [self objectOrNilForKey:kHomeworkDetailModelSubjectName fromDictionary:dict];
|
|
|
+ self.internalBaseClassIdentifier = [self objectOrNilForKey:kHomeworkDetailModelId fromDictionary:dict];
|
|
|
+ self.submitTime = [self objectOrNilForKey:kHomeworkDetailModelSubmitTime fromDictionary:dict];
|
|
|
+ self.studentAttachments = [self objectOrNilForKey:kHomeworkDetailModelStudentAttachments fromDictionary:dict];
|
|
|
+ self.courseType = [self objectOrNilForKey:kHomeworkDetailModelCourseType fromDictionary:dict];
|
|
|
+ self.decorateHomework = [[self objectOrNilForKey:kHomeworkDetailModelDecorateHomework fromDictionary:dict] doubleValue];
|
|
|
+ self.attachments = [self objectOrNilForKey:kHomeworkDetailModelAttachments fromDictionary:dict];
|
|
|
+ self.courseGroupId = [self objectOrNilForKey:kHomeworkDetailModelCourseGroupId fromDictionary:dict];
|
|
|
+ self.studentAvatar = [self objectOrNilForKey:kHomeworkDetailModelStudentAvatar fromDictionary:dict];
|
|
|
+ self.startTime = [self objectOrNilForKey:kHomeworkDetailModelStartTime fromDictionary:dict];
|
|
|
+ self.classDate = [self objectOrNilForKey:kHomeworkDetailModelClassDate fromDictionary:dict];
|
|
|
+ self.teacherAvatar = [self objectOrNilForKey:kHomeworkDetailModelTeacherAvatar fromDictionary:dict];
|
|
|
+ self.reviewHomework = [[self objectOrNilForKey:kHomeworkDetailModelReviewHomework fromDictionary:dict] doubleValue];
|
|
|
+ self.studentId = [self objectOrNilForKey:kHomeworkDetailModelStudentId fromDictionary:dict];
|
|
|
+ }
|
|
|
+
|
|
|
+ return self;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+- (NSDictionary *)dictionaryRepresentation
|
|
|
+{
|
|
|
+ NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
|
|
|
+ [mutableDict setValue:self.courseStatus forKey:kHomeworkDetailModelCourseStatus];
|
|
|
+ [mutableDict setValue:self.content forKey:kHomeworkDetailModelContent];
|
|
|
+ [mutableDict setValue:self.studentName forKey:kHomeworkDetailModelStudentName];
|
|
|
+ [mutableDict setValue:self.courseScheduleId forKey:kHomeworkDetailModelCourseScheduleId];
|
|
|
+ [mutableDict setValue:self.title forKey:kHomeworkDetailModelTitle];
|
|
|
+ [mutableDict setValue:[NSNumber numberWithDouble:self.submitHomework] forKey:kHomeworkDetailModelSubmitHomework];
|
|
|
+ [mutableDict setValue:[NSNumber numberWithDouble:self.studentHomeworkId] forKey:kHomeworkDetailModelStudentHomeworkId];
|
|
|
+ [mutableDict setValue:self.teacherName forKey:kHomeworkDetailModelTeacherName];
|
|
|
+ [mutableDict setValue:self.decorateTime forKey:kHomeworkDetailModelDecorateTime];
|
|
|
+ [mutableDict setValue:self.endTime forKey:kHomeworkDetailModelEndTime];
|
|
|
+ [mutableDict setValue:self.teacherReplied forKey:kHomeworkDetailModelTeacherReplied];
|
|
|
+ [mutableDict setValue:self.subjectName forKey:kHomeworkDetailModelSubjectName];
|
|
|
+ [mutableDict setValue:self.internalBaseClassIdentifier forKey:kHomeworkDetailModelId];
|
|
|
+ [mutableDict setValue:self.submitTime forKey:kHomeworkDetailModelSubmitTime];
|
|
|
+ [mutableDict setValue:self.studentAttachments forKey:kHomeworkDetailModelStudentAttachments];
|
|
|
+ [mutableDict setValue:self.courseType forKey:kHomeworkDetailModelCourseType];
|
|
|
+ [mutableDict setValue:[NSNumber numberWithDouble:self.decorateHomework] forKey:kHomeworkDetailModelDecorateHomework];
|
|
|
+ [mutableDict setValue:self.attachments forKey:kHomeworkDetailModelAttachments];
|
|
|
+ [mutableDict setValue:self.courseGroupId forKey:kHomeworkDetailModelCourseGroupId];
|
|
|
+ [mutableDict setValue:self.studentAvatar forKey:kHomeworkDetailModelStudentAvatar];
|
|
|
+ [mutableDict setValue:self.startTime forKey:kHomeworkDetailModelStartTime];
|
|
|
+ [mutableDict setValue:self.classDate forKey:kHomeworkDetailModelClassDate];
|
|
|
+ [mutableDict setValue:self.teacherAvatar forKey:kHomeworkDetailModelTeacherAvatar];
|
|
|
+ [mutableDict setValue:[NSNumber numberWithDouble:self.reviewHomework] forKey:kHomeworkDetailModelReviewHomework];
|
|
|
+ [mutableDict setValue:self.studentId forKey:kHomeworkDetailModelStudentId];
|
|
|
+ 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.courseStatus = [aDecoder decodeObjectForKey:kHomeworkDetailModelCourseStatus];
|
|
|
+ self.content = [aDecoder decodeObjectForKey:kHomeworkDetailModelContent];
|
|
|
+ self.studentName = [aDecoder decodeObjectForKey:kHomeworkDetailModelStudentName];
|
|
|
+ self.courseScheduleId = [aDecoder decodeObjectForKey:kHomeworkDetailModelCourseScheduleId];
|
|
|
+ self.title = [aDecoder decodeObjectForKey:kHomeworkDetailModelTitle];
|
|
|
+ self.submitHomework = [aDecoder decodeDoubleForKey:kHomeworkDetailModelSubmitHomework];
|
|
|
+ self.studentHomeworkId = [aDecoder decodeDoubleForKey:kHomeworkDetailModelStudentHomeworkId];
|
|
|
+ self.teacherName = [aDecoder decodeObjectForKey:kHomeworkDetailModelTeacherName];
|
|
|
+ self.decorateTime = [aDecoder decodeObjectForKey:kHomeworkDetailModelDecorateTime];
|
|
|
+ self.endTime = [aDecoder decodeObjectForKey:kHomeworkDetailModelEndTime];
|
|
|
+ self.teacherReplied = [aDecoder decodeObjectForKey:kHomeworkDetailModelTeacherReplied];
|
|
|
+ self.subjectName = [aDecoder decodeObjectForKey:kHomeworkDetailModelSubjectName];
|
|
|
+ self.internalBaseClassIdentifier = [aDecoder decodeObjectForKey:kHomeworkDetailModelId];
|
|
|
+ self.submitTime = [aDecoder decodeObjectForKey:kHomeworkDetailModelSubmitTime];
|
|
|
+ self.studentAttachments = [aDecoder decodeObjectForKey:kHomeworkDetailModelStudentAttachments];
|
|
|
+ self.courseType = [aDecoder decodeObjectForKey:kHomeworkDetailModelCourseType];
|
|
|
+ self.decorateHomework = [aDecoder decodeDoubleForKey:kHomeworkDetailModelDecorateHomework];
|
|
|
+ self.attachments = [aDecoder decodeObjectForKey:kHomeworkDetailModelAttachments];
|
|
|
+ self.courseGroupId = [aDecoder decodeObjectForKey:kHomeworkDetailModelCourseGroupId];
|
|
|
+ self.studentAvatar = [aDecoder decodeObjectForKey:kHomeworkDetailModelStudentAvatar];
|
|
|
+ self.startTime = [aDecoder decodeObjectForKey:kHomeworkDetailModelStartTime];
|
|
|
+ self.classDate = [aDecoder decodeObjectForKey:kHomeworkDetailModelClassDate];
|
|
|
+ self.teacherAvatar = [aDecoder decodeObjectForKey:kHomeworkDetailModelTeacherAvatar];
|
|
|
+ self.reviewHomework = [aDecoder decodeDoubleForKey:kHomeworkDetailModelReviewHomework];
|
|
|
+ self.studentId = [aDecoder decodeObjectForKey:kHomeworkDetailModelStudentId];
|
|
|
+ return self;
|
|
|
+}
|
|
|
+
|
|
|
+- (void)encodeWithCoder:(NSCoder *)aCoder
|
|
|
+{
|
|
|
+
|
|
|
+ [aCoder encodeObject:_courseStatus forKey:kHomeworkDetailModelCourseStatus];
|
|
|
+ [aCoder encodeObject:_content forKey:kHomeworkDetailModelContent];
|
|
|
+ [aCoder encodeObject:_studentName forKey:kHomeworkDetailModelStudentName];
|
|
|
+ [aCoder encodeObject:_courseScheduleId forKey:kHomeworkDetailModelCourseScheduleId];
|
|
|
+ [aCoder encodeObject:_title forKey:kHomeworkDetailModelTitle];
|
|
|
+ [aCoder encodeDouble:_submitHomework forKey:kHomeworkDetailModelSubmitHomework];
|
|
|
+ [aCoder encodeDouble:_studentHomeworkId forKey:kHomeworkDetailModelStudentHomeworkId];
|
|
|
+ [aCoder encodeObject:_teacherName forKey:kHomeworkDetailModelTeacherName];
|
|
|
+ [aCoder encodeObject:_decorateTime forKey:kHomeworkDetailModelDecorateTime];
|
|
|
+ [aCoder encodeObject:_endTime forKey:kHomeworkDetailModelEndTime];
|
|
|
+ [aCoder encodeObject:_teacherReplied forKey:kHomeworkDetailModelTeacherReplied];
|
|
|
+ [aCoder encodeObject:_subjectName forKey:kHomeworkDetailModelSubjectName];
|
|
|
+ [aCoder encodeObject:_internalBaseClassIdentifier forKey:kHomeworkDetailModelId];
|
|
|
+ [aCoder encodeObject:_submitTime forKey:kHomeworkDetailModelSubmitTime];
|
|
|
+ [aCoder encodeObject:_studentAttachments forKey:kHomeworkDetailModelStudentAttachments];
|
|
|
+ [aCoder encodeObject:_courseType forKey:kHomeworkDetailModelCourseType];
|
|
|
+ [aCoder encodeDouble:_decorateHomework forKey:kHomeworkDetailModelDecorateHomework];
|
|
|
+ [aCoder encodeObject:_attachments forKey:kHomeworkDetailModelAttachments];
|
|
|
+ [aCoder encodeObject:_courseGroupId forKey:kHomeworkDetailModelCourseGroupId];
|
|
|
+ [aCoder encodeObject:_studentAvatar forKey:kHomeworkDetailModelStudentAvatar];
|
|
|
+ [aCoder encodeObject:_startTime forKey:kHomeworkDetailModelStartTime];
|
|
|
+ [aCoder encodeObject:_classDate forKey:kHomeworkDetailModelClassDate];
|
|
|
+ [aCoder encodeObject:_teacherAvatar forKey:kHomeworkDetailModelTeacherAvatar];
|
|
|
+ [aCoder encodeDouble:_reviewHomework forKey:kHomeworkDetailModelReviewHomework];
|
|
|
+ [aCoder encodeObject:_studentId forKey:kHomeworkDetailModelStudentId];
|
|
|
+}
|
|
|
+
|
|
|
+- (id)copyWithZone:(NSZone *)zone
|
|
|
+{
|
|
|
+ HomeworkDetailModel *copy = [[HomeworkDetailModel alloc] init];
|
|
|
+
|
|
|
+ if (copy) {
|
|
|
+
|
|
|
+ copy.courseStatus = [self.courseStatus copyWithZone:zone];
|
|
|
+ copy.content = [self.content copyWithZone:zone];
|
|
|
+ copy.studentName = [self.studentName copyWithZone:zone];
|
|
|
+ copy.courseScheduleId = [self.courseScheduleId copyWithZone:zone];
|
|
|
+ copy.title = [self.title copyWithZone:zone];
|
|
|
+ copy.submitHomework = self.submitHomework;
|
|
|
+ copy.studentHomeworkId = self.studentHomeworkId;
|
|
|
+ copy.teacherName = [self.teacherName copyWithZone:zone];
|
|
|
+ copy.decorateTime = [self.decorateTime copyWithZone:zone];
|
|
|
+ copy.endTime = [self.endTime copyWithZone:zone];
|
|
|
+ copy.teacherReplied = [self.teacherReplied copyWithZone:zone];
|
|
|
+ copy.subjectName = [self.subjectName copyWithZone:zone];
|
|
|
+ copy.internalBaseClassIdentifier = [self.internalBaseClassIdentifier copyWithZone:zone];
|
|
|
+ copy.submitTime = [self.submitTime copyWithZone:zone];
|
|
|
+ copy.studentAttachments = [self.studentAttachments copyWithZone:zone];
|
|
|
+ copy.courseType = [self.courseType copyWithZone:zone];
|
|
|
+ copy.decorateHomework = self.decorateHomework;
|
|
|
+ copy.attachments = [self.attachments copyWithZone:zone];
|
|
|
+ copy.courseGroupId = [self.courseGroupId copyWithZone:zone];
|
|
|
+ copy.studentAvatar = [self.studentAvatar copyWithZone:zone];
|
|
|
+ copy.startTime = [self.startTime copyWithZone:zone];
|
|
|
+ copy.classDate = [self.classDate copyWithZone:zone];
|
|
|
+ copy.teacherAvatar = [self.teacherAvatar copyWithZone:zone];
|
|
|
+ copy.reviewHomework = self.reviewHomework;
|
|
|
+ copy.studentId = [self.studentId copyWithZone:zone];
|
|
|
+ }
|
|
|
+
|
|
|
+ return copy;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+@end
|