import 'dart:convert'; import 'kt_goods_bean.dart'; /// sort : ["list_coins","list_sub_vip"] /// list_vip : [{"id":93,"status":"enable","price":"59.99","coins":6000,"send_coins":6000,"buy_type":"coins","sort":12,"description":"","vip_type":"","title":"59.99 for coins","brief":"","created_at":"2025-04-15 07:01:47","origin_price":"0.00","backhaul_price":"59.99","ios_template_id":"coins_59.99","android_template_id":"coins_59.99","currency":"US$","updated_at":"2025-07-02 06:48:47","translate_key":"","platform":"all","lang_id":0,"corner_marker":"Popularity","first_promotion_price":"0.00","version":2,"user_level":"high","vip_days":0,"user_promise_level":"","use_once":0,"send_coin_ttl":1,"backhaul_percent":100,"pay_template_id":2,"deleted_at":"","pay_product_id":14,"ext_info":"{\"size\": \"big\", \"backhaul_percent_conf\": []}","factor":"1.00","short_type":"","vip_type_key":"","auto_sub":"Automatic renewal, cancel at any time","size":"big"}] /// list_coins : [{"id":93,"status":"enable","price":"59.99","coins":6000,"send_coins":6000,"buy_type":"coins","sort":12,"description":"","vip_type":"","title":"59.99 for coins","brief":"","created_at":"2025-04-15 07:01:47","origin_price":"0.00","backhaul_price":"59.99","ios_template_id":"coins_59.99","android_template_id":"coins_59.99","currency":"US$","updated_at":"2025-07-02 06:48:47","translate_key":"","platform":"all","lang_id":0,"corner_marker":"Popularity","first_promotion_price":"0.00","version":2,"user_level":"high","vip_days":0,"user_promise_level":"","use_once":0,"send_coin_ttl":1,"backhaul_percent":100,"pay_template_id":2,"deleted_at":"","pay_product_id":14,"ext_info":"{\"size\": \"big\", \"backhaul_percent_conf\": []}","factor":"1.00","short_type":"","vip_type_key":"","auto_sub":"Automatic renewal, cancel at any time","size":"big"}] /// list_sub_vip : [{"id":104,"status":"enable","price":"49.99","coins":0,"send_coins":4500,"buy_type":"sub_vip","sort":5,"description":"Unlimited access to all series for 1 month (Ad-free)","vip_type":"month","title":"Monthly membership","brief":"Monthly membership","created_at":"2025-04-15 07:30:47","origin_price":"0.00","backhaul_price":"24.99","ios_template_id":"sub.m_49.99","android_template_id":"sub.m_49.99","currency":"US$","updated_at":"2025-06-20 07:27:23","translate_key":"","platform":"all","lang_id":0,"corner_marker":"Popularity","first_promotion_price":"0.00","version":2,"user_level":"high","vip_days":0,"user_promise_level":"null","use_once":0,"send_coin_ttl":35,"backhaul_percent":100,"pay_template_id":2,"deleted_at":"null","pay_product_id":25,"ext_info":"{\"size\": \"\", \"backhaul_percent_conf\": []}","factor":"1.00","short_type":"Monthly","vip_type_key":"month","auto_sub":"Automatic renewal, cancel at any time","size":"small"}] /// list_retrieve : [{"id":93,"status":"enable","price":"59.99","coins":6000,"send_coins":6000,"buy_type":"coins","sort":12,"description":"","vip_type":"","title":"59.99 for coins","brief":"","created_at":"2025-04-15 07:01:47","origin_price":"0.00","backhaul_price":"59.99","ios_template_id":"coins_59.99","android_template_id":"coins_59.99","currency":"US$","updated_at":"2025-07-02 06:48:47","translate_key":"","platform":"all","lang_id":0,"corner_marker":"Popularity","first_promotion_price":"0.00","version":2,"user_level":"high","vip_days":0,"user_promise_level":"","use_once":0,"send_coin_ttl":1,"backhaul_percent":100,"pay_template_id":2,"deleted_at":"","pay_product_id":14,"ext_info":"{\"size\": \"big\", \"backhaul_percent_conf\": []}","factor":"1.00","short_type":"","vip_type_key":"","auto_sub":"Automatic renewal, cancel at any time","size":"big"}] KtStoreBean ktStoreBeanFromJson(String str) => KtStoreBean.fromJson(json.decode(str)); String ktStoreBeanToJson(KtStoreBean data) => json.encode(data.toJson()); class KtStoreBean { KtStoreBean({ int? showType, int? payMode, List? sort, List? listVip, List? listCoins, List? listSubCoins, List? listSubVip, List? listRetrieve, }) { _sort = sort; _payMode = payMode; _showType = showType; _listVip = listVip; _listCoins = listCoins; _listSubCoins = listSubCoins; _listSubVip = listSubVip; _listRetrieve = listRetrieve; } KtStoreBean.fromJson(dynamic json) { _showType = json['show_type']; _payMode = json['pay_mode']; _sort = json['sort'] != null ? json['sort'].cast() : []; if (json['list_vip'] != null) { _listVip = []; json['list_vip'].forEach((v) { _listVip?.add(KtGoodsBean.fromJson(v)); }); } if (json['list_coins'] != null) { _listCoins = []; json['list_coins'].forEach((v) { _listCoins?.add(KtGoodsBean.fromJson(v)); }); } if (json['list_sub_coins'] != null) { _listSubCoins = []; json['list_sub_coins'].forEach((v) { _listSubCoins?.add(KtGoodsBean.fromJson(v)); }); } if (json['list_sub_vip'] != null) { _listSubVip = []; json['list_sub_vip'].forEach((v) { _listSubVip?.add(KtGoodsBean.fromJson(v)); }); } if (json['list_retrieve'] != null) { _listRetrieve = []; json['list_retrieve'].forEach((v) { _listRetrieve?.add(KtGoodsBean.fromJson(v)); }); } } int? _payMode; int? _showType; List? _sort; List? _listVip; List? _listCoins; List? _listSubCoins; List? _listSubVip; List? _listRetrieve; KtStoreBean copyWith({ int? payMode, int? showType, List? sort, List? listVip, List? listCoins, List? listSubCoins, List? listSubVip, List? listRetrieve, }) => KtStoreBean( payMode: payMode ?? _payMode, showType: showType ?? _showType, sort: sort ?? _sort, listVip: listVip ?? _listVip, listCoins: listCoins ?? _listCoins, listSubVip: listSubVip ?? _listSubVip, listSubCoins: listSubCoins ?? _listSubCoins, listRetrieve: listRetrieve ?? _listRetrieve, ); int? get payMode => _payMode; int? get showType => _showType; List? get sort => _sort; List? get listVip => _listVip; List? get listCoins => _listCoins; List? get listSubCoins => _listSubCoins; List? get listSubVip => _listSubVip; List? get listRetrieve => _listRetrieve; Map toJson() { final map = {}; map['show_type'] = _showType; map['pay_mode'] = _payMode; map['sort'] = _sort; if (_listVip != null) { map['list_vip'] = _listVip?.map((v) => v.toJson()).toList(); } if (_listCoins != null) { map['list_coins'] = _listCoins?.map((v) => v.toJson()).toList(); } if (_listSubVip != null) { map['list_sub_vip'] = _listSubVip?.map((v) => v.toJson()).toList(); } if (_listSubCoins != null) { map['list_sub_coins'] = _listSubCoins?.map((v) => v.toJson()).toList(); } if (_listRetrieve != null) { map['list_retrieve'] = _listRetrieve?.map((v) => v.toJson()).toList(); } return map; } } KtGoodsBean listRetrieveFromJson(String str) => KtGoodsBean.fromJson(json.decode(str)); String listRetrieveToJson(KtGoodsBean data) => json.encode(data.toJson()); KtGoodsBean listSubVipFromJson(String str) => KtGoodsBean.fromJson(json.decode(str)); String listSubVipToJson(KtGoodsBean data) => json.encode(data.toJson()); KtGoodsBean listSubCoinsFromJson(String str) => KtGoodsBean.fromJson(json.decode(str)); String listSubCoinsToJson(KtGoodsBean data) => json.encode(data.toJson()); KtGoodsBean listCoinsFromJson(String str) => KtGoodsBean.fromJson(json.decode(str)); String listCoinsToJson(KtGoodsBean data) => json.encode(data.toJson()); KtGoodsBean listVipFromJson(String str) => KtGoodsBean.fromJson(json.decode(str)); String listVipToJson(KtGoodsBean data) => json.encode(data.toJson());