using LibraryManagement.Shared.Models; namespace Backend.Features.Wallet { public interface IWalletService { Task GetBalanceAsync(Guid userId); Task> GetHistoryAsync(Guid userId); Task TopUpAsync(Guid userId, decimal amount, Guid librarianId, string? description = null); Task DeductAsync(Guid userId, decimal amount, string description, Guid? referenceId = null); } public class WalletTransactionDto { public Guid Id { get; set; } public decimal Amount { get; set; } public string Type { get; set; } = null!; public string? Description { get; set; } public DateTime CreatedAt { get; set; } } }