67 lines
1.8 KiB
Dart
67 lines
1.8 KiB
Dart
import "package:sqflite/sqflite.dart";
|
|
import "package:sqflite/sqlite_api.dart";
|
|
import "package:path/path.dart";
|
|
|
|
class DBHelper {
|
|
DBHelper._();
|
|
|
|
static DBHelper dbHelper = DBHelper._();
|
|
|
|
late Database _database;
|
|
|
|
Future<Database> get database async {
|
|
_database = await _createDatabase();
|
|
|
|
return _database;
|
|
}
|
|
|
|
Future<Database> _createDatabase() async {
|
|
Database database =
|
|
await openDatabase(join(await getDatabasesPath(), 'lists.db'),
|
|
onCreate: (Database db, int version) {
|
|
db.execute("""
|
|
CREATE TABLE List(
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
list_name TEXT
|
|
is_template int2
|
|
)
|
|
""");
|
|
db.execute("""
|
|
CREATE TABLE Check(
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
check_text TEXT,
|
|
value int2,
|
|
list_id INTEGER
|
|
)
|
|
""");
|
|
db.execute("""
|
|
INSERT INTO List(id, list_name, is_template)
|
|
VALUES
|
|
(0, 'test list', 0),
|
|
(1, 'test template', 1)
|
|
""");
|
|
db.execute("""
|
|
INSERT INTO CHECK(check_text, value, list_id)
|
|
VALUES
|
|
('test check', 1, 0),
|
|
('test uncheck', 0, 0),
|
|
('test check', 1, 1),
|
|
('test uncheck', 0, 1)
|
|
""");
|
|
}, version: 1);
|
|
return database;
|
|
}
|
|
|
|
Future<List<Map<String, dynamic>>> getAllLists() async {
|
|
Database db = await database;
|
|
|
|
return db.query("List", where: "is_template = ?", whereArgs: ['0']);
|
|
}
|
|
|
|
Future<List<Map<String, dynamic>>> getAllTemplates() async {
|
|
Database db = await database;
|
|
|
|
return db.query("List", where: "is_template = ?", whereArgs: ['1']);
|
|
}
|
|
}
|