using General_Ledger_Service.Enums; namespace General_Ledger_Service.Models { public class FixedAsset { public long AssetId { get; set; } public string AssetCode { get; set; } = string.Empty; public string AssetName { get; set; } = string.Empty; public long AssetAccountId { get; set; } public long AccumDeprAccountId { get; set; } public long DeprExpenseAccountId { get; set; } public long GainLossAccountId { get; set; } public DateOnly AcquisitionDate { get; set; } public decimal AcquisitionCost { get; set; } public decimal ResidualValue { get; set; } public int UsefulLifeMonths { get; set; } public DepreciationMethod DepreciationMethod { get; set; } public decimal? DepreciationRatePercent { get; set; } public FixedAssetStatus Status { get; set; } public DateTime CreatedAt { get; set; } public Account AssetAccount { get; set; } = null!; public Account AccumDeprAccount { get; set; } = null!; public Account DeprExpenseAccount { get; set; } = null!; public Account GainLossAccount { get; set; } = null!; } public class DepreciationSchedule { public long ScheduleId { get; set; } public long AssetId { get; set; } public int PeriodId { get; set; } public decimal DepreciationAmount { get; set; } public decimal AccumulatedDepreciation { get; set; } public decimal NetBookValue { get; set; } public long? JournalId { get; set; } public DateTime CreatedAt { get; set; } public FixedAsset Asset { get; set; } = null!; public AccountingPeriod Period { get; set; } = null!; public JournalEntry? Journal { get; set; } } public class AssetDisposal { public long DisposalId { get; set; } public long AssetId { get; set; } public DateOnly DisposalDate { get; set; } public decimal? Proceeds { get; set; } public decimal? NetBookValueAtDisposal { get; set; } public decimal? GainLoss { get; set; } public long? JournalId { get; set; } public DateTime CreatedAt { get; set; } public FixedAsset Asset { get; set; } = null!; public JournalEntry? Journal { get; set; } } }