import 'package:PiliPlus/models/dynamics/vote_model.dart'; class ArticleContentModel { int? align; int? paraType; Text? text; Format? format; Line? line; Pic? pic; LinkCard? linkCard; Code? code; L1st? list; ArticleContentModel.fromJson(Map json) { align = json['align']; paraType = json['para_type']; text = json['text'] == null ? null : Text.fromJson(json['text']); format = json['format'] == null ? null : Format.fromJson(json['format']); line = json['line'] == null ? null : Line.fromJson(json['line']); pic = json['pic'] == null ? null : Pic.fromJson(json['pic']); linkCard = json['link_card'] == null ? null : LinkCard.fromJson(json['link_card']); code = json['code'] == null ? null : Code.fromJson(json['code']); list = json['list'] == null ? null : L1st.fromJson(json['list']); } } class Pic { List? pics; int? style; String? url; num? width; num? height; num? size; String? liveUrl; double? calHeight; Pic.fromJson(Map json) { url = json['url']; width = json['width']; height = json['height']; size = json['size']; pics = (json['pics'] as List?)?.map((item) => Pic.fromJson(item)).toList(); style = json['style']; liveUrl = json['live_url']; } void onCalHeight(double maxWidth) { if (calHeight == null && height != null && width != null) { calHeight = maxWidth * height! / width!; } } } class Line { Line({ this.pic, }); Pic? pic; Line.fromJson(Map json) { pic = json['pic'] == null ? null : Pic.fromJson(json['pic']); } } class Format { Format({ this.align, }); int? align; Format.fromJson(Map json) { align = json['align']; } } class Text { Text({ this.nodes, }); List? nodes; Text.fromJson(Map json) { nodes = (json['nodes'] as List?)?.map((item) => Nodes.fromJson(item)).toList(); } } class Nodes { int? nodeType; Word? word; Rich? rich; Formula? formula; Nodes.fromJson(Map json) { nodeType = json['node_type']; word = json['word'] == null ? null : Word.fromJson(json['word']); rich = json['rich'] == null ? null : Rich.fromJson(json['rich']); formula = json['formula'] == null ? null : Formula.fromJson(json['formula']); } } class Formula { String? latexContent; Formula.fromJson(Map json) { latexContent = json['latex_content']; } } class Word { String? words; double? fontSize; Style? style; int? color; String? fontLevel; Word.fromJson(Map json) { words = json['words']; fontSize = (json['font_size'] as num?)?.toDouble(); style = json['style'] == null ? null : Style.fromJson(json['style']); color = json['color'] == null ? null : int.tryParse('FF${(json['color'] as String).substring(1)}', radix: 16); fontLevel = json['font_level']; } } class Style { Style({ this.bold, this.italic, this.strikethrough, }); bool? bold; bool? italic; bool? strikethrough; Style.fromJson(Map json) { bold = json['bold']; italic = json['italic']; strikethrough = json['strikethrough']; } } class Rich { Style? style; String? jumpUrl; String? origText; String? text; Rich.fromJson(Map json) { style = json['style'] == null ? null : Style.fromJson(json['style']); jumpUrl = json['jump_url']; origText = json['orig_text']; text = json['text']; } } class Ugc { String? cover; String? descSecond; String? duration; String? headText; String? idStr; String? jumpUrl; bool? multiLine; String? title; Ugc.fromJson(Map json) { cover = json['cover']; descSecond = json['desc_second']; duration = json['duration']; headText = json['head_text']; idStr = json['id_str']; jumpUrl = json['jump_url']; multiLine = json['multi_line']; title = json['title']; } } class Card { String? oid; String? type; Ugc? ugc; ItemNull? itemNull; Common? common; Live? live; Opus? opus; SimpleVoteInfo? vote; Music? music; Goods? goods; Card.fromJson(Map json) { oid = json['oid']; type = json['type']; ugc = json['ugc'] == null ? null : Ugc.fromJson(json['ugc']); itemNull = json['item_null'] == null ? null : ItemNull.fromJson(json['item_null']); common = json['common'] == null ? null : Common.fromJson(json['common']); live = json['live'] == null ? null : Live.fromJson(json['live']); opus = json['opus'] == null ? null : Opus.fromJson(json['opus']); vote = json['vote'] == null ? null : SimpleVoteInfo.fromJson(json['vote']); music = json['music'] == null ? null : Music.fromJson(json['music']); goods = json['goods'] == null ? null : Goods.fromJson(json['goods']); } } class Goods { String? headIcon; String? headText; String? jumpUrl; List? items; Goods.fromJson(Map json) { headIcon = json['head_icon']; headText = json['head_text']; jumpUrl = json['jump_url']; items = (json['items'] as List?) ?.map((item) => GoodsItem.fromJson(item)) .toList(); } } class GoodsItem { String? brief; String? cover; int? id; String? jumpDesc; String? jumpUrl; String? name; String? price; GoodsItem.fromJson(Map json) { brief = json['brief']; cover = json['cover']; id = json['id']; jumpDesc = json['jump_desc']; jumpUrl = json['jump_url']; name = json['name']; price = json['price']; } } class Music { String? cover; int? id; String? jumpUrl; String? label; String? title; Music.fromJson(Map json) { cover = json['cover']; id = json['id']; jumpUrl = json['jump_url']; label = json['label']; title = json['title']; } } class Opus { int? authorMid; String? authorName; String? cover; String? jumpUrl; String? title; int? statView; Opus.fromJson(Map json) { authorMid = json['author']?['mid']; authorName = json['author']?['name']; cover = json['cover']; jumpUrl = json['jump_url']; title = json['title']; statView = json['stat']?['view']; } } class Live { String? cover; String? descFirst; String? descSecond; String? title; String? jumpUrl; int? id; int? liveState; int? reserveType; String? badgeText; Live.fromJson(Map json) { cover = json['cover']; descFirst = json['desc_first']; descSecond = json['desc_second']; title = json['title']; jumpUrl = json['jump_url']; id = json['id']; liveState = json['live_state']; reserveType = json['reserve_type']; badgeText = json['badge']?['text']; } } class Common { Common({ this.cover, this.desc1, this.desc2, this.headText, this.idStr, this.jumpUrl, this.style, this.subType, this.title, }); String? cover; String? desc1; String? desc2; String? headText; String? idStr; String? jumpUrl; int? style; String? subType; String? title; Common.fromJson(Map json) { cover = json['cover']; desc1 = json['desc1']; desc2 = json['desc2']; headText = json['head_text']; idStr = json['id_str']; jumpUrl = json['jump_url']; style = json['style']; subType = json['sub_type']; title = json['title']; } } class ItemNull { ItemNull({ this.icon, this.text, }); String? icon; String? text; ItemNull.fromJson(Map json) { icon = json['icon']; text = json['text']; } } class LinkCard { LinkCard({ this.card, }); Card? card; LinkCard.fromJson(Map json) { card = json['card'] == null ? null : Card.fromJson(json['card']); } } class L1st { List? items; int? style; L1st.fromJson(Map json) { items = (json['items'] as List?)?.map((e) => Item.fromJson(e)).toList(); style = json['style']; } } class Item { int? level; int? order; List? nodes; Item.fromJson(Map json) { level = json['level']; order = json['order']; nodes = (json['nodes'] as List?)?.map((e) => Nodes.fromJson(e)).toList(); } } class Code { String? content; String? lang; Code.fromJson(Map json) { content = json['content']; lang = json['lang']; } } // class ArticleContentModel { // ArticleContentModel({ // this.attributes, // this.insert, // }); // Attributes? attributes; // dynamic insert; // ArticleContentModel.fromJson(Map json) { // attributes = json['attributes'] == null // ? null // : Attributes.fromJson(json['attributes']); // insert = json['insert'] == null // ? null // : json['attributes']?['class'] == 'normal-img' // ? Insert.fromJson(json['insert']) // : json['insert']; // } // } // class Insert { // Insert({ // this.nativeImage, // }); // NativeImage? nativeImage; // Insert.fromJson(Map json) { // nativeImage = json['native-image'] == null // ? null // : NativeImage.fromJson(json['native-image']); // } // } // class NativeImage { // NativeImage({ // this.alt, // this.url, // this.width, // this.height, // this.size, // this.status, // }); // dynamic alt; // dynamic url; // dynamic width; // dynamic height; // dynamic size; // dynamic status; // NativeImage.fromJson(Map json) { // alt = json['alt']; // url = json['url']; // width = json['width']; // height = json['height']; // size = json['size']; // status = json['status']; // } // } // class Attributes { // Attributes({ // this.clazz, // this.bold, // this.color, // this.italic, // this.strike, // }); // String? clazz; // bool? bold; // String? color; // bool? italic; // bool? strike; // Attributes.fromJson(Map json) { // clazz = json['class']; // bold = json['bold']; // color = json['color']; // italic = json['italic']; // strike = json['strike']; // } // }