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