Add methods for accessing Incomes and Assets in the database.

This commit is contained in:
Hyperling 2025-03-07 12:20:38 -07:00
parent 02f08093c9
commit 778b4e2f39

View File

@ -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<List<Income>> getIncomes() async {
Database db = await instance.db;
var incomes = await db.query("income", orderBy: "name");
List<Income> incomeList = incomes.isNotEmpty
? incomes.map((c) => Income.fromMap(c)).toList()
: [];
return incomeList;
}
Future<int> addIncome(TrackedItem income) async {
Database db = await instance.db;
return await db.insert(
"income",
income.toMap(),
);
}
Future<int> removeIncome(int id) async {
Database db = await instance.db;
return await db.delete(
"income",
where: "id = ?",
whereArgs: [id],
);
}
Future<int> updateIncome(TrackedItem income) async {
Database db = await instance.db;
return await db.update(
"income",
income.toMap(),
where: "id = ?",
whereArgs: [income.id],
);
}
Future<bool> 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<List<Asset>> getAssets() async {
Database db = await instance.db;
var assets = await db.query("asset", orderBy: "name");
List<Asset> assetList =
assets.isNotEmpty ? assets.map((c) => Asset.fromMap(c)).toList() : [];
return assetList;
}
Future<int> addAsset(TrackedItem asset) async {
Database db = await instance.db;
return await db.insert(
"asset",
asset.toMap(),
);
}
Future<int> removeAsset(int id) async {
Database db = await instance.db;
return await db.delete(
"asset",
where: "id = ?",
whereArgs: [id],
);
}
Future<int> updateAsset(TrackedItem asset) async {
Database db = await instance.db;
return await db.update(
"asset",
asset.toMap(),
where: "id = ?",
whereArgs: [asset.id],
);
}
Future<bool> checkAssetNameExists(String name) async {
Database db = await instance.db;
var assets = await db.query(
"asset",
where: "name = ?",
whereArgs: [name],
);
return assets.isNotEmpty;
}
///
}