boxchecker/lib/db_helper.dart

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