namespace MyOffice.Data.Models.Accounts;

using Currencies;
using MyOffice.Data.Models.Users;

public class Account
{
	public Guid Id { get; set; }
	public string CurrencyGlobalId { get; set; } = null!;
	public CurrencyGlobal? CurrencyGlobal { get; set; }
	public Guid? OwnerId { get; set; }
	public User? Owner { get; set; }
	public string Name { get; set; } = null!;
	public IEnumerable<AccountAccess>? AccessRights { get; set; }
	public IEnumerable<Motion>? Motions { get; set; }
	public IEnumerable<AccountAccountCategory>? Categories { get; set; }
}

public class AccountDetailed
{
	public Account Account { get; set; } = null!;
	public decimal TotalPlus { get; set; }
	public decimal TotalMinus { get; set; }
	public decimal Rest => TotalPlus - TotalMinus;
}

public struct AccountSimple
{
	public Guid Id { get; set; }
	public string Name { get; set; }
	public AccountAccessTypeEnum Type { get; set; }
	public string CurrencyName { get; set; }
	public string CurrencyShortName { get; set; }
	public decimal? CurrencyRate { get; set; }
	public int? CurrencyQuantity { get; set; }
	public decimal? TotalPlus { get; set; }
	public decimal? TotalMinus { get; set; }
	public decimal? Balance { get; set; }
}
