/* Flutter3.x完全开发手册 https://www.flutterschool.cn/ */ import 'package:news_app/extension/base.dart'; class ActivityModelRecord { String? contentId; String? title; String? content; String? summary; String? videoUrl; String? image; String? registerStartTime; String? registerEndTime; String? activityStartTime; String? activityEndTime; int? registerLimit; String? activityLocation; String? activityOrg; String? status; String? contentType; //0.未报名 1.已报名 2.审核通过 3.审核不通过 String? registerStatus; //可否报名 bool? canRegister; int? likeCount; int? commentCount; int? favoriteCount; int? viewCount; int? shareCount; bool? isLiked; bool? isFavorite; String? shareUrl; String? shareDesc; ActivityModelRecord({ this.contentId, this.title, this.content, this.summary, this.videoUrl, this.image, this.registerStartTime, this.registerEndTime, this.activityStartTime, this.activityEndTime, this.registerLimit, this.activityLocation, this.activityOrg, this.status, this.contentType, this.registerStatus, this.canRegister, this.likeCount, this.commentCount, this.favoriteCount, this.viewCount, this.shareCount, this.isLiked, this.isFavorite, this.shareUrl, this.shareDesc, }); ActivityModelRecord.fromJson(Map json) { contentId = json['contentId']?.toString(); title = json['title']?.toString(); content = json['content']?.toString(); summary = json['summary']?.toString(); videoUrl = json['videoUrl']?.toString(); image = json['image']?.toString(); registerStartTime = json['registerStartTime']?.toString(); registerEndTime = json['registerEndTime']?.toString(); activityStartTime = json['activityStartTime']?.toString(); activityEndTime = json['activityEndTime']?.toString(); registerLimit = json['registerLimit']?.toInt(); activityLocation = json['activityLocation']?.toString(); activityOrg = json['activityOrg']?.toString(); status = json['status']?.toString(); contentType = json['contentType']?.toString(); registerStatus = json['registerStatus']?.toString(); canRegister = json['canRegister'] == true; likeCount = json['likeCount']?.toInt(); commentCount = json['commentCount']?.toInt(); favoriteCount = json['favoriteCount']?.toInt(); viewCount = json['viewCount']?.toInt(); shareCount = json['shareCount']?.toInt(); isLiked = json['isLiked'] == true; isFavorite = json['isFavorite'] == true; shareUrl = json['shareUrl']?.toString(); shareDesc = json['shareDesc']?.toString(); } Map toJson() { final data = {}; data['contentId'] = contentId; data['title'] = title; data['content'] = content; data['summary'] = summary; data['videoUrl'] = videoUrl; data['image'] = image; data['registerStartTime'] = registerStartTime; data['registerEndTime'] = registerEndTime; data['activityStartTime'] = activityStartTime; data['activityEndTime'] = activityEndTime; data['registerLimit'] = registerLimit; data['activityLocation'] = activityLocation; data['activityOrg'] = activityOrg; data['status'] = status; data['contentType'] = contentType; data['registerStatus'] = registerStatus; data['canRegister'] = canRegister; data['likeCount'] = likeCount; data['commentCount'] = commentCount; data['favoriteCount'] = favoriteCount; data['viewCount'] = viewCount; data['shareCount'] = shareCount; data['isLiked'] = isLiked; data['isFavorite'] = isFavorite; data['shareUrl'] = shareUrl; data['shareDesc'] = shareDesc; return data; } //生成copyWith方法 ActivityModelRecord copyWith({ String? contentId, String? title, String? content, String? summary, String? videoUrl, String? image, String? registerStartTime, String? registerEndTime, String? activityStartTime, String? activityEndTime, int? registerLimit, String? activityLocation, String? activityOrg, String? status, String? contentType, String? registerStatus, bool? canRegister, int? likeCount, int? commentCount, int? favoriteCount, int? viewCount, int? shareCount, bool? isLiked, bool? isFavorite, String? shareUrl, String? shareDesc, }) { return ActivityModelRecord( contentId: contentId ?? this.contentId, title: title ?? this.title, content: content ?? this.content, summary: summary ?? this.summary, videoUrl: videoUrl ?? this.videoUrl, image: image ?? this.image, registerStartTime: registerStartTime ?? this.registerStartTime, registerEndTime: registerEndTime ?? this.registerEndTime, activityStartTime: activityStartTime ?? this.activityStartTime, activityEndTime: activityEndTime ?? this.activityEndTime, registerLimit: registerLimit ?? this.registerLimit, activityLocation: activityLocation ?? this.activityLocation, activityOrg: activityOrg ?? this.activityOrg, status: status ?? this.status, contentType: contentType ?? this.contentType, registerStatus: registerStatus ?? this.registerStatus, canRegister: canRegister ?? this.canRegister, likeCount: likeCount ?? this.likeCount, commentCount: commentCount ?? this.commentCount, favoriteCount: favoriteCount ?? this.favoriteCount, viewCount: viewCount ?? this.viewCount, shareCount: shareCount ?? this.shareCount, isLiked: isLiked ?? this.isLiked, isFavorite: isFavorite ?? this.isFavorite, shareUrl:shareUrl ?? this.shareUrl, shareDesc:shareDesc ?? this.shareDesc, ); } } class ActivityModel { List? records; int? total; int? size; int? current; int? pages; ActivityModel({ this.records, this.total, this.size, this.current, this.pages, }); ActivityModel.fromJson(Map json) { if (json['records'] != null) { final v = json['records']; final arr0 = []; v.forEach((v) { arr0.add(ActivityModelRecord.fromJson(v)); }); records = arr0; } total = json['total']?.toString().convertInt; size = json['size']?.toString().convertInt; current = json['current']?.toString().convertInt; pages = json['pages']?.toString().convertInt; } Map toJson() { final data = {}; if (records != null) { final v = records; final arr0 = []; for (var v in v!) { arr0.add(v!.toJson()); } data['records'] = arr0; } data['total'] = total; data['size'] = size; data['current'] = current; data['pages'] = pages; return data; } //生成copyWith方法 ActivityModel copyWith({ List? records, int? total, int? size, int? current, int? pages, }) { return ActivityModel( records: records ?? this.records, total: total ?? this.total, size: size ?? this.size, current: current ?? this.current, pages: pages ?? this.pages, ); } }