feat(meta): Implement manga tracking
This commit is contained in:
1 parent
cd1291a192
commit
7af2277bb2
15 files changed
+883
-126
No files matched your search
@@ -1,7 +1,9 @@
|
||||
import 'package:anitrack/src/data/anime.dart';
|
||||
import 'package:anitrack/src/data/manga.dart';
|
||||
import 'package:sqflite/sqflite.dart';
|
||||
|
||||
const animeTable = 'Anime';
|
||||
const mangaTable = 'Manga';
|
||||
|
||||
Future<void> _createDatabase(Database db, int version) async {
|
||||
await db.execute(
|
||||
@@ -15,6 +17,18 @@ Future<void> _createDatabase(Database db, int version) async {
|
||||
title TEXT NOT NULL
|
||||
)''',
|
||||
);
|
||||
await db.execute(
|
||||
'''
|
||||
CREATE TABLE $mangaTable(
|
||||
id TEXT NOT NULL PRIMARY KEY,
|
||||
state INTEGER NOT NULL,
|
||||
chaptersTotal INTEGER,
|
||||
chaptersRead INTEGER NOT NULL,
|
||||
volumesOwned INTEGER NOT NULL,
|
||||
thumbnailUrl TEXT NOT NULL,
|
||||
title TEXT NOT NULL
|
||||
)''',
|
||||
);
|
||||
}
|
||||
|
||||
class DatabaseService {
|
||||
@@ -36,6 +50,15 @@ class DatabaseService {
|
||||
.map((Map<String, dynamic> anime) => AnimeTrackingData.fromJson(anime))
|
||||
.toList();
|
||||
}
|
||||
|
||||
Future<List<MangaTrackingData>> loadMangas() async {
|
||||
final mangas = await _db.query(mangaTable);
|
||||
|
||||
return mangas
|
||||
.cast<Map<String, dynamic>>()
|
||||
.map((Map<String, dynamic> manga) => MangaTrackingData.fromJson(manga))
|
||||
.toList();
|
||||
}
|
||||
|
||||
Future<void> addAnime(AnimeTrackingData data) async {
|
||||
await _db.insert(
|
||||
@@ -52,4 +75,20 @@ class DatabaseService {
|
||||
whereArgs: [data.id],
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> addManga(MangaTrackingData data) async {
|
||||
await _db.insert(
|
||||
mangaTable,
|
||||
data.toJson(),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> updateManga(MangaTrackingData data) async {
|
||||
await _db.update(
|
||||
mangaTable,
|
||||
data.toJson(),
|
||||
where: 'id = ?',
|
||||
whereArgs: [data.id],
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user