feat: initial release of Oracle 999 divination app

This commit is contained in:
Alma Alexyz
2026-08-31 12:35:13 +05:00
commit 28b85061b9
143 changed files with 16073 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
class HistoryEntry {
final String id;
final DateTime timestamp;
final String word;
final int sessionNumber;
final String partOfSpeech;
final String symbolicMeaning;
final String readingType;
final String? positionTitle;
const HistoryEntry({
required this.id,
required this.timestamp,
required this.word,
required this.sessionNumber,
required this.partOfSpeech,
required this.symbolicMeaning,
this.readingType = 'Жребий',
this.positionTitle,
});
String get formattedSessionNumber => sessionNumber.toString().padLeft(3, '0');
String get formattedDate {
final day = timestamp.day.toString().padLeft(2, '0');
final month = timestamp.month.toString().padLeft(2, '0');
final year = timestamp.year.toString();
final hour = timestamp.hour.toString().padLeft(2, '0');
final minute = timestamp.minute.toString().padLeft(2, '0');
final second = timestamp.second.toString().padLeft(2, '0');
return '$day.$month.$year $hour:$minute:$second';
}
Map<String, dynamic> toMap() {
return {
'id': id,
'timestamp': timestamp.toIso8601String(),
'word': word,
'sessionNumber': sessionNumber,
'partOfSpeech': partOfSpeech,
'symbolicMeaning': symbolicMeaning,
'readingType': readingType,
'positionTitle': positionTitle,
};
}
factory HistoryEntry.fromMap(Map<String, dynamic> map) {
return HistoryEntry(
id: map['id'] as String? ?? DateTime.now().millisecondsSinceEpoch.toString(),
timestamp: DateTime.tryParse(map['timestamp'] as String? ?? '') ?? DateTime.now(),
word: map['word'] as String? ?? '',
sessionNumber: map['sessionNumber'] as int? ?? 0,
partOfSpeech: map['partOfSpeech'] as String? ?? '',
symbolicMeaning: map['symbolicMeaning'] as String? ?? '',
readingType: map['readingType'] as String? ?? 'Жребий',
positionTitle: map['positionTitle'] as String?,
);
}
}