Entity Relationships
backend/src/ Finance.Domain/ Entities/ User.cs public class User { public Guid Id { get; set; } public string ExternalIdentityId { get; set; } = null!; public string Email { get; set; } = null!; public DateTime CreatedAt { get; set; } public ICollection<Expense> Expenses { get; set; } = new List<Expense>(); }
backend/src/ Finance.Domain/ Entities/ Category.cs public class Category { public int Id { get; set; } public string Name { get; set; } = null!; public DateTime CreatedAt { get; set; } }
backend/src/ Finance.Domain/ Entities/ Expense.cs public class Expense { public Guid Id { get; set; } public User User { get; set; } = null!; public Guid UserId { get; set; } public Category Category { get; set; } = null!; public int CategoryId { get; set; } public decimal Amount { get; set; } public string Description { get; set; } = null!; public DateOnly ExpenseDate { get; set; } public DateTime CreatedAt { get; set; } public DateTime UpdatedAt { get; set; } }
backend/src/ Finance.Domain/ Entities/ User.cs // The "one" side public ICollection<Expense> Expenses { get; set; } = new List<Expense>();
backend/src/ Finance.Domain/ Entities/ Expense.cs // The "many" side public Guid UserId { get; set; } public User User { get; set; } = null!;
Category is the "one" side, with no collection to reach its expenses.
backend/src/ Finance.Domain/ Entities/ Expense.cs // The "many" side public int CategoryId { get; set; } public Category Category { get; set; } = null!;