namespace CMSMicroservice.Application.CommissionCQ.Queries.GetWithdrawalRequests;

public class GetWithdrawalRequestsResponseDto
{
    public MetaData? MetaData { get; set; }
    public List<WithdrawalRequestModel> Models { get; set; } = new();
}

public class WithdrawalRequestModel
{
    public long Id { get; set; }
    public long UserId { get; set; }
    public string UserName { get; set; } = string.Empty;
    public long WeekDefinitionId { get; set; } 
    public string WeekDisplayName { get; set; } = string.Empty;
    public long Amount { get; set; }
    public int Status { get; set; } // CommissionPayoutStatus enum
    public int? WithdrawalMethod { get; set; }
    public string? IbanNumber { get; set; }
    public DateTime? RequestedAt { get; set; }
    public DateTime? ProcessedAt { get; set; }
    public string? ProcessedBy { get; set; }
    public string? Reason { get; set; }
    public string? BankReferenceId { get; set; }
    public string? BankTrackingCode { get; set; }
    public string? PaymentFailureReason { get; set; }
    public DateTime Created { get; set; }
    public string? PackageName { get; set; }
}
