using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Koogle.Domain.Enums; namespace Koogle.Domain.Entities; /// /// Represents an expense in the system. /// public class Expense : BaseEntity { /// /// ID of the club associated with the expense. /// public Guid ClubId { get; set; } /// /// The name of the expense. /// public string Name { get; set; } = string.Empty; /// /// The description of the expense. /// public string Description { get; set; } = string.Empty; /// /// The price of the expense. /// public decimal Price { get; set; } /// /// Indicates whether the expense can be paid with one click and should be shown in the favorite menu. /// public bool IsOneClick { get; set; } /// /// Indicates whether the expense is an inverse expense and will be charged to all other players. /// public bool IsInverse { get; set; } /// /// Indicates whether the expense amount can vary each time it is recorded. /// public bool IsVariable { get; set; } /// /// The type of the expense (Monetary or Material). /// public ExpenseType ExpenseType { get; set; } // Navigation Properties /// /// associated Club. /// public Club Club { get; set; } = null!; }