Init commit
This commit is contained in:
8
lib/models/router_args.dart
Normal file
8
lib/models/router_args.dart
Normal file
@@ -0,0 +1,8 @@
|
||||
import 'package:tangocard_reader/models/yokutango_entry.dart';
|
||||
|
||||
class BenkyouArgs {
|
||||
final List<YokutangoEntry> cards;
|
||||
final int? index;
|
||||
|
||||
const BenkyouArgs({required this.cards, this.index});
|
||||
}
|
||||
72
lib/models/yokutango_entry.dart
Normal file
72
lib/models/yokutango_entry.dart
Normal file
@@ -0,0 +1,72 @@
|
||||
class YokutangoEntry {
|
||||
final List<JapaneseWord> japanese;
|
||||
final List<NorwegianWord> norwegian;
|
||||
|
||||
const YokutangoEntry({required this.japanese, required this.norwegian});
|
||||
|
||||
YokutangoEntry.fromJson(Map<String, dynamic> json)
|
||||
: japanese = (json['japanese'] as List)
|
||||
.map((e) => JapaneseWord.fromJson(e))
|
||||
.toList(),
|
||||
norwegian = (json['norwegian'] as List)
|
||||
.map((e) => NorwegianWord.fromJson(e))
|
||||
.toList();
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return "${japanese.join(" ### ")} - ${norwegian.join(" ### ")}";
|
||||
}
|
||||
|
||||
YokutangoEntry.empty()
|
||||
: japanese = [JapaneseWord.empty()],
|
||||
norwegian = [NorwegianWord.empty()];
|
||||
}
|
||||
|
||||
class JapaneseWord {
|
||||
final String word;
|
||||
final String? romaji;
|
||||
final List<String>? hints;
|
||||
|
||||
const JapaneseWord({
|
||||
required this.word,
|
||||
this.romaji,
|
||||
this.hints,
|
||||
});
|
||||
|
||||
JapaneseWord.fromJson(Map<String, dynamic> json)
|
||||
: word = json['word'],
|
||||
romaji = json['romaji'],
|
||||
hints = (json['hints'] as List?)?.map((e) => e as String).toList();
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return word +
|
||||
((romaji != null) ? "/$romaji" : "") +
|
||||
((hints != null) ? " (${hints!.join(", ")})" : "");
|
||||
}
|
||||
|
||||
JapaneseWord.empty()
|
||||
: word = "",
|
||||
romaji = "",
|
||||
hints = [];
|
||||
}
|
||||
|
||||
class NorwegianWord {
|
||||
final String word;
|
||||
final List<String>? hints;
|
||||
|
||||
const NorwegianWord({required this.word, this.hints});
|
||||
|
||||
NorwegianWord.fromJson(Map<String, dynamic> json)
|
||||
: word = json['word'],
|
||||
hints = (json['hints'] as List?)?.map((e) => e as String).toList();
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return word + ((hints != null) ? " (${hints!.join(", ")})" : "");
|
||||
}
|
||||
|
||||
NorwegianWord.empty()
|
||||
: word = "",
|
||||
hints = [];
|
||||
}
|
||||
Reference in New Issue
Block a user