#nullable enable using System.Collections.Generic; using System.Threading.Tasks; using BTCPayServer.Client.Models; using BTCPayServer.Data; using BTCPayServer.Services.Invoices; namespace BTCPayServer.Services.Apps { public abstract class AppBaseType { public AppBaseType() { } public AppBaseType(string typeName) { Type = typeName; } public string Description { get; set; } = string.Empty; public string Type { get; set; } = string.Empty; public abstract Task GetInfo(AppData appData); public abstract Task ConfigureLink(AppData app); public abstract Task ViewLink(AppData app); public abstract Task SetDefaultSettings(AppData appData, string defaultCurrency); } public interface IHasSaleStatsAppType { Task GetSalesStats(AppData app, InvoiceEntity[] paidInvoices, int numberOfDays); } public interface IHasItemStatsAppType { Task> GetItemStats(AppData appData, InvoiceEntity[] invoiceEntities); } }