class FeedPostModel { FeedPostModel({ required this.status, required this.statusCode, required this.message, required this.data, }); final String? status; final int? statusCode; final String? message; final Data? data; factory FeedPostModel.fromJson(Map json) { return FeedPostModel( status: json["status"], statusCode: json["status_code"], message: json["message"], data: json["data"] == null ? null : Data.fromJson(json["data"]), ); } } class Data { Data({ required this.pinnedCommunityPost, required this.pinnedUserPost, required this.pinnedTagsPost, }); final List pinnedCommunityPost; final List pinnedUserPost; final List pinnedTagsPost; factory Data.fromJson(Map json) { return Data( pinnedCommunityPost: json["pinned_community_post"] == null ? [] : List.from(json["pinned_community_post"]! .map((x) => PinnedPost.fromJson(x))), pinnedUserPost: json["pinned_user_post"] == null ? [] : List.from( json["pinned_user_post"]!.map((x) => PinnedPost.fromJson(x))), // pinnedTagsPost: json["pinned_tags_post"] == null ? [] : List.from(json["pinned_tags_post"]!.map((x) => PinnedPost.fromJson(x))), pinnedTagsPost: json["pinned_tags_post"] == null ? [] : List.from( json["pinned_tags_post"]!.map((x) => PinnedPost.fromJson(x))), // List.from(json["pinned_tags_post"]! // .expand((x) => x as List) // .map((x) => PinnedPost.fromJson(x))), ); } } class PinnedPost { PinnedPost({ required this.id, required this.likecount, required this.isISaved, required this.tagsXid, required this.isILiked, required this.totalComment, required this.totalSave, required this.iamPrincipalXid, required this.postIn, required this.caption, required this.image, required this.manageTagsXids, required this.postAs, required this.ctaTitle, required this.ctaLink, required this.createdAt, required this.likeIcon, required this.totalViewCount, required this.totalReactionCount, required this.totalCommentCount, required this.totalImpressionCount, required this.totalPopularScore, required this.totalHoursAgo, required this.iamPrincipal, required this.community, required this.attachTags, }); final int? id; final int? likecount; final bool? isISaved; final List tagsXid; final bool? isILiked; final int? totalComment; final int? totalSave; final int? iamPrincipalXid; final int? postIn; final String? caption; final String? image; final String? manageTagsXids; final String? postAs; final String? ctaTitle; final String? ctaLink; final DateTime? createdAt; final LikeIcon? likeIcon; final int? totalViewCount; final int? totalReactionCount; final int? totalCommentCount; final int? totalImpressionCount; final int? totalPopularScore; final int? totalHoursAgo; final IamPrincipal? iamPrincipal; final Community? community; final List attachTags; factory PinnedPost.fromJson(Map json){ return PinnedPost( id: json["id"], likecount: json["likecount"], isISaved: json["is_i_saved"], tagsXid: json["tags_xid"] == null ? [] : List.from(json["tags_xid"]!.map((x) => x)), isILiked: json["is_i_liked"], totalComment: json["total_comment"], totalSave: json["total_save"], iamPrincipalXid: json["iam_principal_xid"], postIn: json["post_in"], caption: json["caption"], image: json["image"], manageTagsXids: json["manage_tags_xids"], postAs: json["post_as"], ctaTitle: json["cta_title"], ctaLink: json["cta_link"], createdAt: DateTime.tryParse(json["created_at"] ?? ""), likeIcon: json["likeIcon"] == null ? null : LikeIcon.fromJson(json["likeIcon"]), totalViewCount: json["totalViewCount"], totalReactionCount: json["totalReactionCount"], totalCommentCount: json["totalCommentCount"], totalImpressionCount: json["totalImpressionCount"], totalPopularScore: json["totalPopularScore"], totalHoursAgo: json["totalHoursAgo"], iamPrincipal: json["iam_principal"] == null ? null : IamPrincipal.fromJson(json["iam_principal"]), community: json["community"] == null ? null : Community.fromJson(json["community"]), attachTags: json["attach_tags"] == null ? [] : List.from(json["attach_tags"]!.map((x) => AttachTag.fromJson(x))), ); } } class AttachTag { AttachTag({ required this.managePostXid, required this.manageTagXid, required this.manageTag, }); final int? managePostXid; final int? manageTagXid; final ManageTag? manageTag; factory AttachTag.fromJson(Map json){ return AttachTag( managePostXid: json["manage_post_xid"], manageTagXid: json["manage_tag_xid"], manageTag: json["manage_tag"] == null ? null : ManageTag.fromJson(json["manage_tag"]), ); } } class ManageTag { ManageTag({ required this.id, required this.isPinned, required this.name, }); final int? id; final bool? isPinned; final String? name; factory ManageTag.fromJson(Map json){ return ManageTag( id: json["id"], isPinned: json["is_pinned"], name: json["name"], ); } } class Community { Community({ required this.id, required this.communityProfilePhoto, required this.communityName, }); final int? id; final String? communityProfilePhoto; final String? communityName; factory Community.fromJson(Map json){ return Community( id: json["id"], communityProfilePhoto: json["community_profile_photo"], communityName: json["community_name"], ); } } class IamPrincipal { IamPrincipal({ required this.id, required this.isUserPinned, required this.principalTypeXid, required this.userName, required this.fullName, required this.profilePhoto, }); final int? id; final bool? isUserPinned; final int? principalTypeXid; final String? userName; final String? fullName; final String? profilePhoto; factory IamPrincipal.fromJson(Map json){ return IamPrincipal( id: json["id"], isUserPinned: json["is_user_pinned"], principalTypeXid: json["principal_type_xid"], userName: json["user_name"], fullName: json["full_name"], profilePhoto: json["profile_photo"], ); } } class LikeIcon { LikeIcon({ required this.likeIconsXid, required this.likeIcon, }); final int? likeIconsXid; final LikeIconClass? likeIcon; factory LikeIcon.fromJson(Map json){ return LikeIcon( likeIconsXid: json["like_icons_xid"], likeIcon: json["like_icon"] == null ? null : LikeIconClass.fromJson(json["like_icon"]), ); } } class LikeIconClass { LikeIconClass({ required this.id, required this.image, }); final int? id; final String? image; factory LikeIconClass.fromJson(Map json){ return LikeIconClass( id: json["id"], image: json["image"], ); } }