summaryrefslogtreecommitdiff
path: root/lib/database/helper.dart
diff options
context:
space:
mode:
Diffstat (limited to 'lib/database/helper.dart')
-rw-r--r--lib/database/helper.dart38
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/database/helper.dart b/lib/database/helper.dart
index da2d199..54e415c 100644
--- a/lib/database/helper.dart
+++ b/lib/database/helper.dart
@@ -4,6 +4,7 @@ import 'dart:io';
import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart';
import 'package:pmsna1/models/event.dart';
+import 'package:pmsna1/models/popular.dart';
import 'package:pmsna1/models/post.dart';
import 'package:sqflite/sqflite.dart';
@@ -47,6 +48,14 @@ class DatabaseHelper {
date DATE NOT NULL,
completed INT DEFAULT 0
);""");
+
+ await db.execute("""CREATE TABLE IF NOT EXISTS favorites (
+ id INT PRIMARY KEY,
+ title VARCHAR(128),
+ posterPath VARCHAR(128),
+ backdropPath VARCHAR(128),
+ overview TEXT
+);""");
}
Future<int> insert(String table, Map<String, dynamic> data) async {
@@ -92,4 +101,33 @@ class DatabaseHelper {
List<Map<String, Object?>> result = await conn.query("events");
return result.map((event) => Event.fromMap(event)).toList();
}
+
+ /*
+ * Favorite specific functions
+ */
+
+ Future<List<Popular>> getAllFavorites() async {
+ Database conn = await database;
+ List<Map<String, Object?>> result = await conn.query("favorites");
+ return result.map((p) {
+ Popular popular = Popular.fromDb(p);
+ popular.hasFavorite = true;
+ return popular;
+ }).toList();
+ }
+
+ Future<bool> hasFavorite(int id) async {
+ Database conn = await database;
+ List result =
+ await conn.query("favorites", where: "id = ?", whereArgs: [id]);
+ return result.isNotEmpty;
+ }
+
+ Future<int> favoritePopular(Popular popular) async {
+ return insert('favorites', popular.toDb());
+ }
+
+ Future<int> unfavoritePopular(Popular popular) async {
+ return delete('favorites', 'id', popular.id);
+ }
}