import Foundation

struct UserData : Codable {
    
	var user_id : String?
    let access_token : String?
	let username : String?
	let email : String?
	let first_name : String?
	let last_name : String?
	var avatar : String?
	let cover : String?
	let background_image : String?
	let relationship_id : String?
	let address : String?
	let working : String?
	let working_link : String?
	var about : String?
	let school : String?
	let gender : String?
	let birthday : String?
	let country_id : String?
	let website : String?
	let facebook : String?
	let google : String?
	let twitter : String?
	let linkedin : String?
	let youtube : String?
	let vk : String?
	let instagram : String?
	let qq : String?
	let wechat : String?
	let discord : String?
	let mailru : String?
	let okru : String?
	let language : String?
	let ip_address : String?
	let follow_privacy : String?
	let friend_privacy : String?
	let post_privacy : String?
	let message_privacy : String?
	let confirm_followers : String?
	let show_activities_privacy : String?
	let birth_privacy : String?
	let visit_privacy : String?
	let verified : String?
	let lastseen : String?
	let emailNotification : String?
	let e_liked : String?
	let e_wondered : String?
	let e_shared : String?
	let e_followed : String?
	let e_commented : String?
	let e_visited : String?
	let e_liked_page : String?
	let e_mentioned : String?
	let e_joined_group : String?
	let e_accepted : String?
	let e_profile_wall_post : String?
	let e_sentme_msg : String?
	let e_last_notif : String?
	let notification_settings : String?
	let status : String?
	let active : String?
	let admin : String?
	let registered : String?
	let phone_number : String?
	let is_pro : String?
	let pro_type : String?
	let pro_remainder : String?
	let timezone : String?
	let referrer : String?
	let ref_user_id : String?
	let balance : String?
	let paypal_email : String?
	let notifications_sound : String?
	let order_posts_by : String?
	let android_m_device_id : String?
	let ios_m_device_id : String?
	let android_n_device_id : String?
	let ios_n_device_id : String?
	let web_device_id : String?
	let wallet : String?
	let lat : String?
	let lng : String?
	let last_location_update : String?
	let share_my_location : String?
	let last_data_update : String?
	let details : Details?
	let last_avatar_mod : String?
	let last_cover_mod : String?
	let points : String?
	let daily_points : String?
	let converted_points : String?
	let point_day_expire : String?
	let last_follow_id : String?
	let share_my_data : String?
	let last_login_data : String?
	let two_factor : String?
	let two_factor_hash : String?
	let new_email : String?
	let two_factor_verified : String?
	let new_phone : String?
	let info_file : String?
	let city : String?
	let state : String?
	let zip : String?
	let school_completed : String?
	let weather_unit : String?
	let paystack_ref : String?
	let code_sent : String?
	let time_code_sent : String?
	let permission : String?
	let skills : String?
	let languages : String?
	let currently_working : String?
	let banned : String?
	let banned_reason : String?
	let credits : String?
	let authy_id : String?
	let google_secret : String?
	let two_factor_method : String?
	let avatar_post_id : IntString?
	let cover_post_id : IntString?
	let avatar_full : String?
	let is_verified : Int?
	let user_platform : BoolString?
	let url : String?
	var name : String?
	let aPI_notification_settings : API_notification_settings?
	let mutual_friends_data : FriendsData?
	let lastseen_unix_time : String?
	let lastseen_status : String?
	let is_reported : Bool?
    let am_i_blocked : Bool?
	let is_story_muted : Bool?
	let is_reported_user : Int?
	let is_open_to_work : Int?
	let is_providing_service : Int?
	let providing_service : Int?
	let open_to_work_data : String?
	let formated_langs : [String]?
    let is_following_me: Int?
    let mute: MuteModel?
    let last_message: MessageModel?
    let stories: [UserDataStory]?
    let is_notify_stopped : Int?
    var is_following : Int?
    let can_follow : Int?
    let gender_text : String?
    let lastseen_time_text : String?
    let is_blocked : Bool?
    let password : String?
    let background_image_status : String?
    let email_code : String?
    let src : String?
    let showlastseen : String?
    let type : String?
    let start_up : String?
    let start_up_info : String?
    let startup_follow : String?
    let startup_image : String?
    let last_email_sent : String?
    let sms_code : String?
    let pro_time : String?
    let joined : String?
    let css_file : String?
    let social_login : String?
    let sidebar_data : String?
    let avatar_org : String?
    let cover_org : String?
    let cover_full : String?
    let id : String?
    let following_data : FriendsData?
    let followers_data : FriendsData?
    let likes_data : FriendsData?
    let groups_data : FriendsData?
    let album_data : FriendsData?
    let family_member : String?
    let chat_time : IntString?
    let chat_id : IntString?
    let chat_type : String?
    let message_count : String?
    let phone_privacy : String?
    let have_monetization : String?

	enum CodingKeys: String, CodingKey {
		case user_id = "user_id"
        case access_token = "access_token"
		case username = "username"
		case email = "email"
		case first_name = "first_name"
		case last_name = "last_name"
		case avatar = "avatar"
		case cover = "cover"
		case background_image = "background_image"
		case relationship_id = "relationship_id"
		case address = "address"
		case working = "working"
		case working_link = "working_link"
		case about = "about"
		case school = "school"
		case gender = "gender"
		case birthday = "birthday"
		case country_id = "country_id"
		case website = "website"
		case facebook = "facebook"
		case google = "google"
		case twitter = "twitter"
		case linkedin = "linkedin"
		case youtube = "youtube"
		case vk = "vk"
		case instagram = "instagram"
		case qq = "qq"
		case wechat = "wechat"
		case discord = "discord"
		case mailru = "mailru"
		case okru = "okru"
		case language = "language"
		case ip_address = "ip_address"
		case follow_privacy = "follow_privacy"
		case friend_privacy = "friend_privacy"
		case post_privacy = "post_privacy"
		case message_privacy = "message_privacy"
		case confirm_followers = "confirm_followers"
		case show_activities_privacy = "show_activities_privacy"
		case birth_privacy = "birth_privacy"
		case visit_privacy = "visit_privacy"
		case verified = "verified"
		case lastseen = "lastseen"
		case emailNotification = "emailNotification"
		case e_liked = "e_liked"
		case e_wondered = "e_wondered"
		case e_shared = "e_shared"
		case e_followed = "e_followed"
		case e_commented = "e_commented"
		case e_visited = "e_visited"
		case e_liked_page = "e_liked_page"
		case e_mentioned = "e_mentioned"
		case e_joined_group = "e_joined_group"
		case e_accepted = "e_accepted"
		case e_profile_wall_post = "e_profile_wall_post"
		case e_sentme_msg = "e_sentme_msg"
		case e_last_notif = "e_last_notif"
		case notification_settings = "notification_settings"
		case status = "status"
		case active = "active"
		case admin = "admin"
		case registered = "registered"
		case phone_number = "phone_number"
		case is_pro = "is_pro"
		case pro_type = "pro_type"
		case pro_remainder = "pro_remainder"
		case timezone = "timezone"
		case referrer = "referrer"
		case ref_user_id = "ref_user_id"
		case balance = "balance"
		case paypal_email = "paypal_email"
		case notifications_sound = "notifications_sound"
		case order_posts_by = "order_posts_by"
		case android_m_device_id = "android_m_device_id"
		case ios_m_device_id = "ios_m_device_id"
		case android_n_device_id = "android_n_device_id"
		case ios_n_device_id = "ios_n_device_id"
		case web_device_id = "web_device_id"
		case wallet = "wallet"
		case lat = "lat"
		case lng = "lng"
		case last_location_update = "last_location_update"
		case share_my_location = "share_my_location"
		case last_data_update = "last_data_update"
		case details = "details"
		case last_avatar_mod = "last_avatar_mod"
		case last_cover_mod = "last_cover_mod"
		case points = "points"
		case daily_points = "daily_points"
		case converted_points = "converted_points"
		case point_day_expire = "point_day_expire"
		case last_follow_id = "last_follow_id"
		case share_my_data = "share_my_data"
		case last_login_data = "last_login_data"
		case two_factor = "two_factor"
		case two_factor_hash = "two_factor_hash"
		case new_email = "new_email"
		case two_factor_verified = "two_factor_verified"
		case new_phone = "new_phone"
		case info_file = "info_file"
		case city = "city"
		case state = "state"
		case zip = "zip"
		case school_completed = "school_completed"
		case weather_unit = "weather_unit"
		case paystack_ref = "paystack_ref"
		case code_sent = "code_sent"
		case time_code_sent = "time_code_sent"
		case permission = "permission"
		case skills = "skills"
		case languages = "languages"
		case currently_working = "currently_working"
		case banned = "banned"
		case banned_reason = "banned_reason"
		case credits = "credits"
		case authy_id = "authy_id"
		case google_secret = "google_secret"
		case two_factor_method = "two_factor_method"
		case avatar_post_id = "avatar_post_id"
		case cover_post_id = "cover_post_id"
		case avatar_full = "avatar_full"
		case is_verified = "is_verified"
		case user_platform = "user_platform"
		case url = "url"
		case name = "name"
		case aPI_notification_settings = "API_notification_settings"
		case mutual_friends_data = "mutual_friends_data"
		case lastseen_unix_time = "lastseen_unix_time"
		case lastseen_status = "lastseen_status"
		case is_reported = "is_reported"
        case am_i_blocked = "am_i_blocked"
		case is_story_muted = "is_story_muted"
		case is_reported_user = "is_reported_user"
		case is_open_to_work = "is_open_to_work"
		case is_providing_service = "is_providing_service"
		case providing_service = "providing_service"
		case open_to_work_data = "open_to_work_data"
		case formated_langs = "formated_langs"
        case is_following_me = "is_following_me"
        case last_message = "last_message"
        case mute = "mute"
        case stories = "stories"
        case is_notify_stopped = "is_notify_stopped"
        case is_following = "is_following"
        case can_follow = "can_follow"
        case gender_text = "gender_text"
        case lastseen_time_text = "lastseen_time_text"
        case is_blocked = "is_blocked"
        case password = "password"
        case background_image_status = "background_image_status"
        case email_code = "email_code"
        case src = "src"
        case showlastseen = "showlastseen"
        case type = "type"
        case start_up = "start_up"
        case start_up_info = "start_up_info"
        case startup_follow = "startup_follow"
        case startup_image = "startup_image"
        case last_email_sent = "last_email_sent"
        case sms_code = "sms_code"
        case pro_time = "pro_time"
        case joined = "joined"
        case css_file = "css_file"
        case social_login = "social_login"
        case sidebar_data = "sidebar_data"
        case avatar_org = "avatar_org"
        case cover_org = "cover_org"
        case cover_full = "cover_full"
        case id = "id"
        case following_data = "following_data"
        case followers_data = "followers_data"
        case likes_data = "likes_data"
        case groups_data = "groups_data"
        case album_data = "album_data"
        case family_member = "family_member"
        case chat_time = "chat_time"
        case chat_id = "chat_id"
        case chat_type = "chat_type"
        case message_count = "message_count"
        case phone_privacy = "phone_privacy"
        case have_monetization = "have_monetization"
	}

	init(from decoder: Decoder) throws {
		let values = try decoder.container(keyedBy: CodingKeys.self)
		user_id = try values.decodeIfPresent(String.self, forKey: .user_id)
        access_token = try values.decodeIfPresent(String.self, forKey: .access_token)
		username = try values.decodeIfPresent(String.self, forKey: .username)
		email = try values.decodeIfPresent(String.self, forKey: .email)
		first_name = try values.decodeIfPresent(String.self, forKey: .first_name)
		last_name = try values.decodeIfPresent(String.self, forKey: .last_name)
		avatar = try values.decodeIfPresent(String.self, forKey: .avatar)
		cover = try values.decodeIfPresent(String.self, forKey: .cover)
		background_image = try values.decodeIfPresent(String.self, forKey: .background_image)
		relationship_id = try values.decodeIfPresent(String.self, forKey: .relationship_id)
		address = try values.decodeIfPresent(String.self, forKey: .address)
		working = try values.decodeIfPresent(String.self, forKey: .working)
		working_link = try values.decodeIfPresent(String.self, forKey: .working_link)
		about = try values.decodeIfPresent(String.self, forKey: .about)
		school = try values.decodeIfPresent(String.self, forKey: .school)
		gender = try values.decodeIfPresent(String.self, forKey: .gender)
		birthday = try values.decodeIfPresent(String.self, forKey: .birthday)
		country_id = try values.decodeIfPresent(String.self, forKey: .country_id)
		website = try values.decodeIfPresent(String.self, forKey: .website)
		facebook = try values.decodeIfPresent(String.self, forKey: .facebook)
		google = try values.decodeIfPresent(String.self, forKey: .google)
		twitter = try values.decodeIfPresent(String.self, forKey: .twitter)
		linkedin = try values.decodeIfPresent(String.self, forKey: .linkedin)
		youtube = try values.decodeIfPresent(String.self, forKey: .youtube)
		vk = try values.decodeIfPresent(String.self, forKey: .vk)
		instagram = try values.decodeIfPresent(String.self, forKey: .instagram)
		qq = try values.decodeIfPresent(String.self, forKey: .qq)
		wechat = try values.decodeIfPresent(String.self, forKey: .wechat)
		discord = try values.decodeIfPresent(String.self, forKey: .discord)
		mailru = try values.decodeIfPresent(String.self, forKey: .mailru)
		okru = try values.decodeIfPresent(String.self, forKey: .okru)
		language = try values.decodeIfPresent(String.self, forKey: .language)
		ip_address = try values.decodeIfPresent(String.self, forKey: .ip_address)
		follow_privacy = try values.decodeIfPresent(String.self, forKey: .follow_privacy)
		friend_privacy = try values.decodeIfPresent(String.self, forKey: .friend_privacy)
		post_privacy = try values.decodeIfPresent(String.self, forKey: .post_privacy)
		message_privacy = try values.decodeIfPresent(String.self, forKey: .message_privacy)
		confirm_followers = try values.decodeIfPresent(String.self, forKey: .confirm_followers)
		show_activities_privacy = try values.decodeIfPresent(String.self, forKey: .show_activities_privacy)
		birth_privacy = try values.decodeIfPresent(String.self, forKey: .birth_privacy)
		visit_privacy = try values.decodeIfPresent(String.self, forKey: .visit_privacy)
		verified = try values.decodeIfPresent(String.self, forKey: .verified)
		lastseen = try values.decodeIfPresent(String.self, forKey: .lastseen)
		emailNotification = try values.decodeIfPresent(String.self, forKey: .emailNotification)
		e_liked = try values.decodeIfPresent(String.self, forKey: .e_liked)
		e_wondered = try values.decodeIfPresent(String.self, forKey: .e_wondered)
		e_shared = try values.decodeIfPresent(String.self, forKey: .e_shared)
		e_followed = try values.decodeIfPresent(String.self, forKey: .e_followed)
		e_commented = try values.decodeIfPresent(String.self, forKey: .e_commented)
		e_visited = try values.decodeIfPresent(String.self, forKey: .e_visited)
		e_liked_page = try values.decodeIfPresent(String.self, forKey: .e_liked_page)
		e_mentioned = try values.decodeIfPresent(String.self, forKey: .e_mentioned)
		e_joined_group = try values.decodeIfPresent(String.self, forKey: .e_joined_group)
		e_accepted = try values.decodeIfPresent(String.self, forKey: .e_accepted)
		e_profile_wall_post = try values.decodeIfPresent(String.self, forKey: .e_profile_wall_post)
		e_sentme_msg = try values.decodeIfPresent(String.self, forKey: .e_sentme_msg)
		e_last_notif = try values.decodeIfPresent(String.self, forKey: .e_last_notif)
		notification_settings = try values.decodeIfPresent(String.self, forKey: .notification_settings)
		status = try values.decodeIfPresent(String.self, forKey: .status)
		active = try values.decodeIfPresent(String.self, forKey: .active)
		admin = try values.decodeIfPresent(String.self, forKey: .admin)
		registered = try values.decodeIfPresent(String.self, forKey: .registered)
		phone_number = try values.decodeIfPresent(String.self, forKey: .phone_number)
		is_pro = try values.decodeIfPresent(String.self, forKey: .is_pro)
		pro_type = try values.decodeIfPresent(String.self, forKey: .pro_type)
		pro_remainder = try values.decodeIfPresent(String.self, forKey: .pro_remainder)
		timezone = try values.decodeIfPresent(String.self, forKey: .timezone)
		referrer = try values.decodeIfPresent(String.self, forKey: .referrer)
		ref_user_id = try values.decodeIfPresent(String.self, forKey: .ref_user_id)
		balance = try values.decodeIfPresent(String.self, forKey: .balance)
		paypal_email = try values.decodeIfPresent(String.self, forKey: .paypal_email)
		notifications_sound = try values.decodeIfPresent(String.self, forKey: .notifications_sound)
		order_posts_by = try values.decodeIfPresent(String.self, forKey: .order_posts_by)
		android_m_device_id = try values.decodeIfPresent(String.self, forKey: .android_m_device_id)
		ios_m_device_id = try values.decodeIfPresent(String.self, forKey: .ios_m_device_id)
		android_n_device_id = try values.decodeIfPresent(String.self, forKey: .android_n_device_id)
		ios_n_device_id = try values.decodeIfPresent(String.self, forKey: .ios_n_device_id)
		web_device_id = try values.decodeIfPresent(String.self, forKey: .web_device_id)
		wallet = try values.decodeIfPresent(String.self, forKey: .wallet)
		lat = try values.decodeIfPresent(String.self, forKey: .lat)
		lng = try values.decodeIfPresent(String.self, forKey: .lng)
		last_location_update = try values.decodeIfPresent(String.self, forKey: .last_location_update)
		share_my_location = try values.decodeIfPresent(String.self, forKey: .share_my_location)
		last_data_update = try values.decodeIfPresent(String.self, forKey: .last_data_update)
		details = try values.decodeIfPresent(Details.self, forKey: .details)
		last_avatar_mod = try values.decodeIfPresent(String.self, forKey: .last_avatar_mod)
		last_cover_mod = try values.decodeIfPresent(String.self, forKey: .last_cover_mod)
		points = try values.decodeIfPresent(String.self, forKey: .points)
		daily_points = try values.decodeIfPresent(String.self, forKey: .daily_points)
		converted_points = try values.decodeIfPresent(String.self, forKey: .converted_points)
		point_day_expire = try values.decodeIfPresent(String.self, forKey: .point_day_expire)
		last_follow_id = try values.decodeIfPresent(String.self, forKey: .last_follow_id)
		share_my_data = try values.decodeIfPresent(String.self, forKey: .share_my_data)
		last_login_data = try values.decodeIfPresent(String.self, forKey: .last_login_data)
		two_factor = try values.decodeIfPresent(String.self, forKey: .two_factor)
		two_factor_hash = try values.decodeIfPresent(String.self, forKey: .two_factor_hash)
		new_email = try values.decodeIfPresent(String.self, forKey: .new_email)
		two_factor_verified = try values.decodeIfPresent(String.self, forKey: .two_factor_verified)
		new_phone = try values.decodeIfPresent(String.self, forKey: .new_phone)
		info_file = try values.decodeIfPresent(String.self, forKey: .info_file)
		city = try values.decodeIfPresent(String.self, forKey: .city)
		state = try values.decodeIfPresent(String.self, forKey: .state)
		zip = try values.decodeIfPresent(String.self, forKey: .zip)
		school_completed = try values.decodeIfPresent(String.self, forKey: .school_completed)
		weather_unit = try values.decodeIfPresent(String.self, forKey: .weather_unit)
		paystack_ref = try values.decodeIfPresent(String.self, forKey: .paystack_ref)
		code_sent = try values.decodeIfPresent(String.self, forKey: .code_sent)
		time_code_sent = try values.decodeIfPresent(String.self, forKey: .time_code_sent)
		permission = try values.decodeIfPresent(String.self, forKey: .permission)
		skills = try values.decodeIfPresent(String.self, forKey: .skills)
		languages = try values.decodeIfPresent(String.self, forKey: .languages)
		currently_working = try values.decodeIfPresent(String.self, forKey: .currently_working)
		banned = try values.decodeIfPresent(String.self, forKey: .banned)
		banned_reason = try values.decodeIfPresent(String.self, forKey: .banned_reason)
		credits = try values.decodeIfPresent(String.self, forKey: .credits)
		authy_id = try values.decodeIfPresent(String.self, forKey: .authy_id)
		google_secret = try values.decodeIfPresent(String.self, forKey: .google_secret)
		two_factor_method = try values.decodeIfPresent(String.self, forKey: .two_factor_method)
		avatar_post_id = try values.decodeIfPresent(IntString.self, forKey: .avatar_post_id)
		cover_post_id = try values.decodeIfPresent(IntString.self, forKey: .cover_post_id)
		avatar_full = try values.decodeIfPresent(String.self, forKey: .avatar_full)
		is_verified = try values.decodeIfPresent(Int.self, forKey: .is_verified)
		user_platform = try values.decodeIfPresent(BoolString.self, forKey: .user_platform)
		url = try values.decodeIfPresent(String.self, forKey: .url)
		name = try values.decodeIfPresent(String.self, forKey: .name)
		aPI_notification_settings = try values.decodeIfPresent(API_notification_settings.self, forKey: .aPI_notification_settings)
		mutual_friends_data = try values.decodeIfPresent(FriendsData.self, forKey: .mutual_friends_data)
		lastseen_unix_time = try values.decodeIfPresent(String.self, forKey: .lastseen_unix_time)
		lastseen_status = try values.decodeIfPresent(String.self, forKey: .lastseen_status)
		is_reported = try values.decodeIfPresent(Bool.self, forKey: .is_reported)
        am_i_blocked = try values.decodeIfPresent(Bool.self, forKey: .am_i_blocked)
		is_story_muted = try values.decodeIfPresent(Bool.self, forKey: .is_story_muted)
		is_reported_user = try values.decodeIfPresent(Int.self, forKey: .is_reported_user)
		is_open_to_work = try values.decodeIfPresent(Int.self, forKey: .is_open_to_work)
		is_providing_service = try values.decodeIfPresent(Int.self, forKey: .is_providing_service)
		providing_service = try values.decodeIfPresent(Int.self, forKey: .providing_service)
		open_to_work_data = try values.decodeIfPresent(String.self, forKey: .open_to_work_data)
		formated_langs = try values.decodeIfPresent([String].self, forKey: .formated_langs)
        is_following_me = try values.decodeIfPresent(Int.self, forKey: .is_following_me)
        last_message = try values.decodeIfPresent(MessageModel.self, forKey: .last_message)
        mute = try values.decodeIfPresent(MuteModel.self, forKey: .mute)
        stories = try values.decodeIfPresent([UserDataStory].self, forKey: .stories)
        is_notify_stopped = try values.decodeIfPresent(Int.self, forKey: .is_notify_stopped)
        is_following = try values.decodeIfPresent(Int.self, forKey: .is_following)
        can_follow = try values.decodeIfPresent(Int.self, forKey: .can_follow)
        gender_text = try values.decodeIfPresent(String.self, forKey: .gender_text)
        lastseen_time_text = try values.decodeIfPresent(String.self, forKey: .lastseen_time_text)
        is_blocked = try values.decodeIfPresent(Bool.self, forKey: .is_blocked)
        password = try values.decodeIfPresent(String.self, forKey: .password)
        background_image_status = try values.decodeIfPresent(String.self, forKey: .background_image_status)
        email_code = try values.decodeIfPresent(String.self, forKey: .email_code)
        src = try values.decodeIfPresent(String.self, forKey: .src)
        showlastseen = try values.decodeIfPresent(String.self, forKey: .showlastseen)
        type = try values.decodeIfPresent(String.self, forKey: .type)
        start_up = try values.decodeIfPresent(String.self, forKey: .start_up)
        start_up_info = try values.decodeIfPresent(String.self, forKey: .start_up_info)
        startup_follow = try values.decodeIfPresent(String.self, forKey: .startup_follow)
        startup_image = try values.decodeIfPresent(String.self, forKey: .startup_image)
        last_email_sent = try values.decodeIfPresent(String.self, forKey: .last_email_sent)
        sms_code = try values.decodeIfPresent(String.self, forKey: .sms_code)
        pro_time = try values.decodeIfPresent(String.self, forKey: .pro_time)
        joined = try values.decodeIfPresent(String.self, forKey: .joined)
        css_file = try values.decodeIfPresent(String.self, forKey: .css_file)
        social_login = try values.decodeIfPresent(String.self, forKey: .social_login)
        sidebar_data = try values.decodeIfPresent(String.self, forKey: .sidebar_data)
        avatar_org = try values.decodeIfPresent(String.self, forKey: .avatar_org)
        cover_org = try values.decodeIfPresent(String.self, forKey: .cover_org)
        cover_full = try values.decodeIfPresent(String.self, forKey: .cover_full)
        id = try values.decodeIfPresent(String.self, forKey: .id)
        following_data = try values.decodeIfPresent(FriendsData.self, forKey: .following_data)
        followers_data = try values.decodeIfPresent(FriendsData.self, forKey: .followers_data)
        likes_data = try values.decodeIfPresent(FriendsData.self, forKey: .likes_data)
        groups_data = try values.decodeIfPresent(FriendsData.self, forKey: .groups_data)
        album_data = try values.decodeIfPresent(FriendsData.self, forKey: .album_data)
        family_member = try values.decodeIfPresent(String.self, forKey: .family_member)
        chat_time = try values.decodeIfPresent(IntString.self, forKey: .chat_time)
        chat_id = try values.decodeIfPresent(IntString.self, forKey: .chat_id)
        chat_type = try values.decodeIfPresent(String.self, forKey: .chat_type)
        message_count = try values.decodeIfPresent(String.self, forKey: .message_count)
        phone_privacy = try values.decodeIfPresent(String.self, forKey: .phone_privacy)
        have_monetization = try values.decodeIfPresent(String.self, forKey: .have_monetization)
	}
    
    func getStringAnyData() -> [String: Any] {
        do {
            let encoder = JSONEncoder()
            let data = try encoder.encode(self)
            
            // Decode the Data into a [String: Any] dictionary using JSONSerialization
            if let dictionary = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] {
                // Now, 'dictionary' contains the model data as a dictionary
                print(dictionary)
                return dictionary
            }
        } catch {
            print("Error encoding/decoding the model: \(error)")
        }
        return ["": ""]
    }

}

enum BoolString: Codable {
    case bool(Bool)
    case string(String)
    
    var stringValue: String {
        switch self {
        case let .bool(value):
            return value == false ? "false" : "true"
        case let .string(value):
            return value
        }
    }
    
    init(from decoder: Decoder) throws {
        let container = try decoder.singleValueContainer()
        if let x = try? container.decode(Bool.self) {
            self = .bool(x)
            return
        }
        if let x = try? container.decode(String.self) {
            self = .string(x)
            return
        }
        throw DecodingError.typeMismatch(IntString.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for IntString"))
    }
    
    func encode(to encoder: Encoder) throws {
        var container = encoder.singleValueContainer()
        switch self {
        case .bool(let x):
            try container.encode(x)
        case .string(let x):
            try container.encode(x)
        }
    }
}

enum IntString: Codable {
    case integer(Int)
    case string(String)
    
    var stringValue: String {
        switch self {
        case let .integer(value):
            return String(value)
        case let .string(value):
            return value
        }
    }
    
    init(from decoder: Decoder) throws {
        let container = try decoder.singleValueContainer()
        if let x = try? container.decode(Int.self) {
            self = .integer(x)
            return
        }
        if let x = try? container.decode(String.self) {
            self = .string(x)
            return
        }
        throw DecodingError.typeMismatch(IntString.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for IntString"))
    }
    
    func encode(to encoder: Encoder) throws {
        var container = encoder.singleValueContainer()
        switch self {
        case .integer(let x):
            try container.encode(x)
        case .string(let x):
            try container.encode(x)
        }
    }
}

enum FriendsData: Codable {
    
    case stringArray([String])
    case string(String)
    
    var stringArrayValue: [String] {
        switch self {
        case let .stringArray(value):
            return value
        case let .string(value):
            return [value]
        }
    }
    
    init(from decoder: Decoder) throws {
        let container = try decoder.singleValueContainer()
        if let x = try? container.decode([String].self) {
            self = .stringArray(x)
            return
        }
        if let x = try? container.decode(String.self) {
            self = .string(x)
            return
        }
        throw DecodingError.typeMismatch(FriendsData.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for ChannelsUnion"))
    }
    
    func encode(to encoder: Encoder) throws {
        var container = encoder.singleValueContainer()
        switch self {
        case .stringArray(let x):
            try container.encode(x)
        case .string(let x):
            try container.encode(x)
        }
    }
}
