namespace AccountsDAL.DTO.Reports { public class TrialBalanceReportDTO { public int AccountId { get; set; } public string AccountCode { get; set; } public string AccountName { get; set; } public int AccountGroupId { get; set; } public string AccountGroupCode { get; set; } public string AccountGroupName { get; set; } public int AccountScheduleId { get; set; } public string AccountScheduleCode { get; set; } public string AccountScheduleName { get; set; } // MACCOUNTSCHEDULE.ACCOUNTSCHEDULENATURE (0=Liability,1=Asset,2=DirectIncome,3=DirectExpense, // 4=IndirectIncome,5=IndirectExpense). public byte AccountScheduleNature { get; set; } // Server-computed 4-value bucket ({2,4}->Income, {3,5}->Expense) over AccountScheduleNature — // same convention as TrialBalanceDetailReportDTO's field of the same name (see that DTO's // comment for why this must be a real column, not a client-side transform). public string AccountScheduleTypeName { get; set; } public decimal Debit { get; set; } public decimal Credit { get; set; } // Null for a normal account row. Set only for the two synthetic rows the DAL appends in C# // (never from SQL): "Retained Earnings (Prior Year P&L)" and "Difference in Opening Balance". public string? RowLabel { get; set; } } }