namespace MyOffice.Data.Models.Users;

using Accounts;
using Currencies;
using Items;

public class User
{
	public User()
	{
		CurrencyId = "USD";
	}

	public Guid Id { get; set; }
	public string UserName { get; set; } = null!;
	public string Email { get; set; } = null!;
	public string PasswordHash { get; set; } = null!;
	public string? FirstName { get; set; }
	public string? LastName { get; set; }
	public string? FullName { get; set; }
	public string? Phone { get; set; }
	public bool IsEmailConfirmed { get; set; }
	public IEnumerable<UserExternal>? UserClaims { get; set; }

	public string CurrencyId { get; set; }
	public CurrencyGlobal? Currency { get; set; }
	public IEnumerable<Currency>? Currencies { get; set; }
	public IEnumerable<AccountAccess>? AccountAccess { get; set; }
	public IEnumerable<Motion>? AccountMotions { get; set; }
	public IEnumerable<AccountCategory>? AccountCategories { get; set; }
	public IEnumerable<ItemCategory>? ItemCategories { get; set; }
	public IEnumerable<Account>? Accounts { get; set; }
}