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!;
}