import 'package:freezed_annotation/freezed_annotation.dart'; part 'parse.freezed.dart'; part 'parse.g.dart'; @freezed class MWParseCategoryInfo with _$MWParseCategoryInfo { factory MWParseCategoryInfo({ required String category, @Default("") String sortkey, }) = _MWParseCategoryInfo; factory MWParseCategoryInfo.fromJson(Map<String, dynamic> json) => _$MWParseCategoryInfoFromJson(json); } @freezed class MWParseLangLinkInfo with _$MWParseLangLinkInfo { factory MWParseLangLinkInfo({ required String lang, required String title, @Default("") String url, @Default("") String langname, @Default("") autonym, }) = _MWParseLangLinkInfo; factory MWParseLangLinkInfo.fromJson(Map<String, dynamic> json) => _$MWParseLangLinkInfoFromJson(json); } @freezed class MWParsePageLinkInfo with _$MWParsePageLinkInfo { factory MWParsePageLinkInfo({ required int ns, required String title, @Default(false) bool exists, }) = _MWParsePageLinkInfo; factory MWParsePageLinkInfo.fromJson(Map<String, dynamic> json) => _$MWParsePageLinkInfoFromJson(json); } @freezed class MWParseSectionInfo with _$MWParseSectionInfo { factory MWParseSectionInfo({ required int toclevel, required int level, required String line, @Default("") String number, @Default("") String index, @Default("") String fromtitle, @Default(-1) int byteoffset, @Default("") String anchor, }) = _MWParseSectionInfo; factory MWParseSectionInfo.fromJson(Map<String, dynamic> json) => _$MWParseSectionInfoFromJson(json); } @freezed class MWParseInfo with _$MWParseInfo { factory MWParseInfo({ required String title, required int pageid, required int revid, required String text, String? displaytitle, @Default([]) List<MWParseLangLinkInfo> langlink, @Default([]) List<MWParseCategoryInfo> categories, @Default([]) List<MWParsePageLinkInfo> links, @Default([]) List<MWParsePageLinkInfo> templates, @Default([]) List<String> images, @Default([]) List<String> externallinks, @Default([]) List<MWParseSectionInfo> sections, @Default(true) bool showtoc, @Default([]) List<String> modules, @Default([]) List<String> modulescripts, @Default([]) List<String> modulestyles, @Default({}) Map<String, dynamic> jsconfigvars, @Default({}) Map<String, dynamic> iwlinks, @Default({}) Map<String, dynamic> properties, }) = _MWParseInfo; factory MWParseInfo.fromJson(Map<String, dynamic> json) => _$MWParseInfoFromJson(json); } @freezed class MWParseResponse with _$MWParseResponse { factory MWParseResponse({required MWParseInfo parse}) = _MWParseResponse; factory MWParseResponse.fromJson(Map<String, dynamic> json) => _$MWParseResponseFromJson(json); }