From 8e6b574023d53faa3c93dbbf376ddd3c48cd5f57 Mon Sep 17 00:00:00 2001 From: Hyperling Date: Tue, 11 Feb 2025 14:49:50 -0700 Subject: [PATCH] Create the income and asset tables. --- lib/db.dart | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/lib/db.dart b/lib/db.dart index 9623584..89a3237 100644 --- a/lib/db.dart +++ b/lib/db.dart @@ -24,21 +24,45 @@ class DatabaseHelper { String path = join(documentsDirectory.path, "com_hyperling_expense.db"); return await openDatabase( path, - version: 1, + version: 2, onCreate: _onCreate, + onUpgrade: _onUpgrade, ); } Future _onCreate(Database db, int version) async { await db.execute(""" - CREATE TABLE expense + CREATE TABLE expense + ( id INTEGER PRIMARY KEY + , name TEXT NOT NULL UNIQUE + , cost DOUBLE NOT NULL + , frequency TEXT NOT NULL + , description TEXT + ) + """); + } + + Future _onUpgrade(Database db, int previousVersion, int newVersion) async { + // Added in DB version 2. + if (previousVersion < 2 && newVersion >= 2) { + await db.execute(""" + CREATE TABLE income ( id INTEGER PRIMARY KEY , name TEXT NOT NULL UNIQUE - , cost DOUBLE NOT NULL + , revenue DOUBLE NOT NULL , frequency TEXT NOT NULL , description TEXT ) """); + await db.execute(""" + CREATE TABLE asset + ( id INTEGER PRIMARY KEY + , name TEXT NOT NULL UNIQUE + , amount DOUBLE NOT NULL + , description TEXT + ) + """); + } } /// Expense Section @@ -81,8 +105,11 @@ class DatabaseHelper { Future checkExpenseNameExists(String name) async { Database db = await instance.db; - var expenses = await db.query("expense", - where: "name = ?", whereArgs: [name],); + var expenses = await db.query( + "expense", + where: "name = ?", + whereArgs: [name], + ); return expenses.isNotEmpty; }