From e331030bb0039b39478fa188edf59b478161883e Mon Sep 17 00:00:00 2001 From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com> Date: Sat, 14 Feb 2026 05:53:41 -0600 Subject: [PATCH] feat(core): add balance model --- src/FiscalOS.Core/Accounts/Account.cs | 10 ++++++++++ src/FiscalOS.Core/Accounts/Balance.cs | 21 +++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 src/FiscalOS.Core/Accounts/Balance.cs diff --git a/src/FiscalOS.Core/Accounts/Account.cs b/src/FiscalOS.Core/Accounts/Account.cs index 3434ba6..4193a45 100644 --- a/src/FiscalOS.Core/Accounts/Account.cs +++ b/src/FiscalOS.Core/Accounts/Account.cs @@ -8,6 +8,9 @@ public sealed class Account : Entity public string Name { get; init; } = string.Empty; public AccountMetadata? Metadata { get; init; } + private readonly List _balances = []; + public IEnumerable Balances => _balances; + public static Account From(Guid institutionId, string name, AccountMetadata accountMetadata) { return new() @@ -17,4 +20,11 @@ public sealed class Account : Entity Metadata = accountMetadata, }; } + + public void AddBalance(Balance balance) + { + ArgumentNullException.ThrowIfNull(balance); + + _balances.Add(balance); + } } \ No newline at end of file diff --git a/src/FiscalOS.Core/Accounts/Balance.cs b/src/FiscalOS.Core/Accounts/Balance.cs new file mode 100644 index 0000000..b2a36b4 --- /dev/null +++ b/src/FiscalOS.Core/Accounts/Balance.cs @@ -0,0 +1,21 @@ +namespace FiscalOS.Core.Accounts; + +public sealed class Balance : Entity +{ + public Guid AccountId { get; init; } + public decimal Current { get; init; } + public decimal Available { get; init; } + + private Balance() + { + } + + public static Balance From(decimal current, decimal available) + { + return new() + { + Current = current, + Available = available, + }; + } +} \ No newline at end of file