Files
fiscalos/src/FiscalOS.Core/Accounts/Account.cs
T

46 lines
1.0 KiB
C#
Raw Normal View History

2026-02-13 11:04:50 -06:00
namespace FiscalOS.Core.Accounts;
public sealed class Account : Entity
{
public Guid UserId { get; init; }
2026-02-13 12:03:07 -06:00
public Guid InstitutionId { get; init; }
2026-02-13 12:10:59 -06:00
public Institution? Institution { get; init; }
2026-02-13 11:04:50 -06:00
public string Name { get; init; } = string.Empty;
2026-02-13 12:10:59 -06:00
public AccountMetadata? Metadata { get; init; }
2026-02-13 11:04:50 -06:00
2026-02-14 05:53:41 -06:00
private readonly List<Balance> _balances = [];
public IEnumerable<Balance> Balances => _balances;
private readonly List<Transaction> _transactions = [];
public IEnumerable<Transaction> Transactions => _transactions;
private Account()
{
}
public static Account From(
string name,
AccountMetadata accountMetadata
)
2026-02-13 11:04:50 -06:00
{
return new()
{
Name = name,
Metadata = accountMetadata,
};
}
2026-02-14 05:53:41 -06:00
public void AddBalance(Balance balance)
{
ArgumentNullException.ThrowIfNull(balance, nameof(balance));
2026-02-14 05:53:41 -06:00
_balances.Add(balance);
}
public void AddTransaction(Transaction transaction)
{
ArgumentNullException.ThrowIfNull(transaction, nameof(transaction));
_transactions.Add(transaction);
}
2026-02-13 11:04:50 -06:00
}