class PhraseScrapeSentence { String english; String japanese; List pieces; PhraseScrapeSentence ({String english, String japanese, List pieces}){ this.english = english; this.japanese = japanese; this.pieces = pieces; } } class PhraseScrapeMeaning { List seeAlsoTerms; List sentences; String definition; List supplemental; String definitionAbstract; List tags; PhraseScrapeMeaning({ List seeAlsoTerms, List sentences, String definition, List supplemental, String definitionAbstract, List tags, }){ this.seeAlsoTerms = seeAlsoTerms; this.sentences = sentences; this.definition = definition; this.supplemental = supplemental; this.definitionAbstract = definitionAbstract; this.tags = tags; } } class KanjiKanaPair { String kanji; String kana; KanjiKanaPair({ String kanji, String kana }){ this.kanji = kanji; this.kana = kana; } } class PhrasePageScrapeResult { bool found; String query; String uri; List otherForms; List meanings; List tags; List notes; PhrasePageScrapeResult({ bool found, String query, String uri, List otherForms, List meanings, List tags, List notes, }){ this.found = found; this.query = query; this.uri = uri; this.otherForms = otherForms; this.meanings = meanings; this.tags = tags; this.notes = notes; } } class YomiExample { String example; String reading; String meaning; YomiExample({String example, String reading, String meaning}) { this.example = example; this.reading = reading; this.meaning = meaning; } Map toJson() => { 'example': example, 'reading': reading, 'meaning': meaning }; } class Radical { String symbol; List forms; String meaning; Radical({String symbol, List forms, String meaning}){ this.symbol = symbol; this.forms = forms; this.meaning = meaning; } Map toJson() => { 'symbol': symbol, 'forms': forms, 'meaning': meaning }; } class KanjiResult { String query; bool found; String taughtIn; String jlptLevel; int newspaperFrequencyRank; int strokeCount; String meaning; List kunyomi; List onyomi; List kunyomiExamples; List onyomiExamples; Radical radical; List parts; String strokeOrderDiagramUri; String strokeOrderSvgUri; String strokeOrderGifUri; String uri; Map toJson() { if (found == false) { return { 'query': query, 'found': found }; } var returnObject = { 'query': query, 'found': found, 'taughtIn': taughtIn, 'jlptLevel': jlptLevel, 'newspaperFrequencyRank': newspaperFrequencyRank, 'strokeCount': strokeCount, 'meaning': meaning, 'kunyomi': kunyomi, 'onyomi': onyomi, 'onyomiExamples': onyomiExamples, 'kunyomiExamples': kunyomiExamples, 'radical': radical.toJson(), 'parts': parts, 'strokeOrderDiagramUri': strokeOrderDiagramUri, 'strokeOrderSvgUri': strokeOrderSvgUri, 'strokeOrderGifUri': strokeOrderGifUri, 'uri': uri }; return returnObject; } } class ExampleSentencePiece { String lifted; String unlifted; ExampleSentencePiece({String lifted, String unlifted}){ this.lifted = lifted; this.unlifted = unlifted; } Map toJson() { return { 'lifted': lifted, 'unlifted': unlifted }; } } class ExampleResultData { String kanji; String kana; String english; List pieces; ExampleResultData({String english, String kanji, String kana, List pieces}){ this.english = english; this.kanji = kanji; this.kana = kana; this.pieces = pieces; } Map toJson() { return { 'english': english, 'kanji': kanji, 'kana': kana, 'pieces': pieces }; } } class ExampleResults { String query; bool found; String uri; List results; String phrase; ExampleResults({String query, bool found, List results, String uri, String phrase}){ this.query = query; this.found = found; this.results = results; this.uri = uri; this.phrase = phrase; } Map toJson() { return { 'query': query, 'found': found, 'results': results, 'uri': uri, 'phrase': phrase }; } }