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 IncomeByCategory { get; set; } = new(); public List ExpenseByCategory { get; set; } = new(); public List Entries { get; set; } = new(); } }