using PowderCoating.Core.Enums;
namespace PowderCoating.Core.Entities;
public class Payment : BaseEntity
{
public int InvoiceId { get; set; }
public decimal Amount { get; set; }
public DateTime PaymentDate { get; set; } = DateTime.UtcNow;
public PaymentMethod PaymentMethod { get; set; }
public string? Reference { get; set; }
public string? Notes { get; set; }
public string? RecordedById { get; set; }
///
/// Bank/checking account the payment is deposited into.
/// When null, no specific deposit account is tracked.
///
public int? DepositAccountId { get; set; }
/// True once this payment has been matched against a bank statement during reconciliation.
public bool IsCleared { get; set; } = false;
public DateTime? ClearedDate { get; set; }
// Navigation
public virtual Invoice Invoice { get; set; } = null!;
public virtual ApplicationUser? RecordedBy { get; set; }
public virtual Account? DepositAccount { get; set; }
}