namespace SIGCM.Domain.Entities;

public class CashClosing
{
    public int Id { get; set; }
    public int UserId { get; set; }
    public DateTime ClosingDate { get; set; } = DateTime.UtcNow;
    
    // Declaración del cajero (arqueo ciego)
    public decimal DeclaredCash { get; set; }
    public decimal DeclaredDebit { get; set; }
    public decimal DeclaredCredit { get; set; }
    public decimal DeclaredTransfer { get; set; }
    
    // Valores del sistema (calculados)
    public decimal SystemCash { get; set; }
    public decimal SystemDebit { get; set; }
    public decimal SystemCredit { get; set; }
    public decimal SystemTransfer { get; set; }
    
    // Diferencias
    public decimal CashDifference { get; set; }
    public decimal DebitDifference { get; set; }
    public decimal CreditDifference { get; set; }
    public decimal TransferDifference { get; set; }
    
    // Totales
    public decimal TotalDeclared { get; set; }
    public decimal TotalSystem { get; set; }
    public decimal TotalDifference { get; set; }
    
    // Notas del cajero
    public string? Notes { get; set; }
    
    // Estado
    public bool HasDiscrepancies { get; set; }
    public bool IsApproved { get; set; }
}
