// namespace EllieBot.Modules.Gambling; // public sealed class Loan // { // public int Id { get; set; } // public ulong LenderId { get; set; } // public string LenderName { get; set; } // public ulong BorrowerId { get; set; } // public string BorrowerName { get; set; } // public long Amount { get; set; } // public decimal Interest { get; set; } // public DateTime DueDate { get; set; } // public bool Repaid { get; set; } // } // // public sealed class LoanService : INService // { // public async Task<IReadOnlyList<Loan>> GetLoans(ulong userId) // { // } // // public async Task<object> RepayAsync(object loandId) // { // } // } // // public partial class Gambling // { // public partial class LoanCommands : EllieModule<LoanService> // { // [Cmd] // public async Task Loan( // IUser lender, // long amount, // decimal interest = 0, // TimeSpan dueIn = default) // { // var eb = _sender.CreateEmbed() // .WithOkColor() // .WithDescription("User 0 Requests a loan from User {1}") // .AddField("Amount", amount, true) // .AddField("Interest", (interest * 0.01m).ToString("P2"), true); // } // // public Task Loans() // => Loans(ctx.User); // // public async Task Loans([Leftover] IUser user) // { // var loans = await _service.GetLoans(user.Id); // // Response() // .Paginated() // .PageItems(loans) // .Page((items, page) => // { // var eb = _sender.CreateEmbed() // .WithOkColor() // .WithDescription("Current Loans"); // // foreach (var item in items) // { // eb.AddField(new kwum(item.id).ToString(), // $""" // To: {item.LenderName} // Amount: {} // """, // true); // } // // return eb; // }); // } // // [Cmd] // public async Task Repay(kwum loanId) // { // var res = await _service.RepayAsync(loandId); // // if (res.TryPickT0(out var _, out var err)) // { // } // else // { // var errStr = err.Match( // _ => "Not enough funds", // _ => "Loan not found"); // // await Response().Error(errStr).SendAsync(); // } // } // } // }