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;
|
|
|
|
|
|
2026-02-13 11:04:50 -06:00
|
|
|
public static Account From(Guid institutionId, string name, AccountMetadata accountMetadata)
|
|
|
|
|
{
|
|
|
|
|
return new()
|
|
|
|
|
{
|
2026-02-13 12:03:07 -06:00
|
|
|
InstitutionId = institutionId,
|
2026-02-13 11:04:50 -06:00
|
|
|
Name = name,
|
|
|
|
|
Metadata = accountMetadata,
|
|
|
|
|
};
|
|
|
|
|
}
|
2026-02-14 05:53:41 -06:00
|
|
|
|
|
|
|
|
public void AddBalance(Balance balance)
|
|
|
|
|
{
|
|
|
|
|
ArgumentNullException.ThrowIfNull(balance);
|
|
|
|
|
|
|
|
|
|
_balances.Add(balance);
|
|
|
|
|
}
|
2026-02-13 11:04:50 -06:00
|
|
|
}
|