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 get database async { _database = await _createDatabase(); return _database; } Future _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>> getAllLists() async { Database db = await database; return db.query("List", where: "is_template = ?", whereArgs: ['0']); } Future>> getAllTemplates() async { Database db = await database; return db.query("List", where: "is_template = ?", whereArgs: ['1']); } }