diff --git a/lib/db.dart b/lib/db.dart index b9c4905..3743012 100644 --- a/lib/db.dart +++ b/lib/db.dart @@ -9,6 +9,8 @@ import 'package:sqflite/sqflite.dart'; // Local import '/models/expense.dart'; +import '/models/income.dart'; +import '/models/asset.dart'; import '/models/tracked_item.dart'; // Leaned on this example: @@ -118,9 +120,98 @@ class DatabaseHelper { /// Income Section /// + Future> getIncomes() async { + Database db = await instance.db; + var incomes = await db.query("income", orderBy: "name"); + List incomeList = incomes.isNotEmpty + ? incomes.map((c) => Income.fromMap(c)).toList() + : []; + return incomeList; + } + + Future addIncome(TrackedItem income) async { + Database db = await instance.db; + return await db.insert( + "income", + income.toMap(), + ); + } + + Future removeIncome(int id) async { + Database db = await instance.db; + return await db.delete( + "income", + where: "id = ?", + whereArgs: [id], + ); + } + + Future updateIncome(TrackedItem income) async { + Database db = await instance.db; + return await db.update( + "income", + income.toMap(), + where: "id = ?", + whereArgs: [income.id], + ); + } + + Future checkIncomeNameExists(String name) async { + Database db = await instance.db; + var incomes = await db.query( + "income", + where: "name = ?", + whereArgs: [name], + ); + return incomes.isNotEmpty; + } /// /// Liquid Asset Section + Future> getAssets() async { + Database db = await instance.db; + var assets = await db.query("asset", orderBy: "name"); + List assetList = + assets.isNotEmpty ? assets.map((c) => Asset.fromMap(c)).toList() : []; + return assetList; + } + + Future addAsset(TrackedItem asset) async { + Database db = await instance.db; + return await db.insert( + "asset", + asset.toMap(), + ); + } + + Future removeAsset(int id) async { + Database db = await instance.db; + return await db.delete( + "asset", + where: "id = ?", + whereArgs: [id], + ); + } + + Future updateAsset(TrackedItem asset) async { + Database db = await instance.db; + return await db.update( + "asset", + asset.toMap(), + where: "id = ?", + whereArgs: [asset.id], + ); + } + + Future checkAssetNameExists(String name) async { + Database db = await instance.db; + var assets = await db.query( + "asset", + where: "name = ?", + whereArgs: [name], + ); + return assets.isNotEmpty; + } /// }