41 lines
1.4 KiB
C#
41 lines
1.4 KiB
C#
namespace Fitness_core_BE.DTOs.Ledger
|
|
{
|
|
public class LedgerEntryDto
|
|
{
|
|
public Guid? Id { get; set; } // null for derived (non-manual) entries
|
|
public string EntryType { get; set; } = "Expense"; // "Income" | "Expense"
|
|
public string Category { get; set; } = string.Empty;
|
|
public string? Description { get; set; }
|
|
public decimal Amount { get; set; }
|
|
public DateTime EntryDate { get; set; }
|
|
public bool IsManual { get; set; }
|
|
}
|
|
|
|
public class AddLedgerEntryRequest
|
|
{
|
|
public string EntryType { get; set; } = "Expense"; // "Income" | "Expense"
|
|
public string Category { get; set; } = "Other";
|
|
public string? Description { get; set; }
|
|
public decimal Amount { get; set; }
|
|
public DateTime? EntryDate { get; set; }
|
|
}
|
|
|
|
public class CategoryTotalDto
|
|
{
|
|
public string Category { get; set; } = string.Empty;
|
|
public decimal Amount { get; set; }
|
|
}
|
|
|
|
public class ProfitLossDto
|
|
{
|
|
public DateTime From { get; set; }
|
|
public DateTime To { get; set; }
|
|
public decimal TotalIncome { get; set; }
|
|
public decimal TotalExpense { get; set; }
|
|
public decimal NetProfit { get; set; }
|
|
public List<CategoryTotalDto> IncomeByCategory { get; set; } = new();
|
|
public List<CategoryTotalDto> ExpenseByCategory { get; set; } = new();
|
|
public List<LedgerEntryDto> Entries { get; set; } = new();
|
|
}
|
|
}
|