namespace SIGCM.Application.DTOs;

// DTO para iniciar el cierre de caja (arqueo ciego)
public class CashClosingDto
{
    public decimal DeclaredCash { get; set; }
    public decimal DeclaredDebit { get; set; }
    public decimal DeclaredCredit { get; set; }
    public decimal DeclaredTransfer { get; set; }
    public string? Notes { get; set; }
}

public class CashOpeningDto
{
    public decimal OpeningBalance { get; set; }
}

// DTO de respuesta con el resultado del cierre
public class CashClosingResultDto
{
    public int ClosingId { get; set; }
    
    // Valores declarados por el cajero
    public decimal DeclaredCash { get; set; }
    public decimal DeclaredDebit { get; set; }
    public decimal DeclaredCredit { get; set; }
    public decimal DeclaredTransfer { get; set; }
    public decimal TotalDeclared { get; set; }
    
    // Valores reales del sistema
    public decimal SystemCash { get; set; }
    public decimal SystemDebit { get; set; }
    public decimal SystemCredit { get; set; }
    public decimal SystemTransfer { get; set; }
    public decimal TotalSystem { get; set; }
    
    // Diferencias detectadas
    public decimal CashDifference { get; set; }
    public decimal DebitDifference { get; set; }
    public decimal CreditDifference { get; set; }
    public decimal TransferDifference { get; set; }
    public decimal TotalDifference { get; set; }
    
    // Banderas de estado
    public bool HasDiscrepancies { get; set; }
    public string? Message { get; set; }
}
