using NadekoBot.Db.Models; namespace NadekoBot.Modules.Utility.Patronage; /// /// Represents information about why the user has triggered a quota limit /// public readonly struct QuotaLimit { /// /// Amount of usages reached, which is the limit /// public uint Quota { get; init; } /// /// Which period is this quota limit for (hourly, daily, monthly, etc...) /// public QuotaPer QuotaPeriod { get; init; } /// /// When does this quota limit reset /// public DateTime ResetsAt { get; init; } /// /// Type of the feature this quota limit is for /// public FeatureType FeatureType { get; init; } /// /// Name of the feature this quota limit is for /// public string Feature { get; init; } /// /// Whether it is the user's own quota (true), or server owners (false) /// public bool IsOwnQuota { get; init; } } /// /// Respresent information about the feature limit /// public readonly struct FeatureLimit { /// /// Whether this limit comes from the patronage system /// public bool IsPatronLimit { get; init; } = false; /// /// Maximum limit allowed /// public int? Quota { get; init; } = null; /// /// Name of the limit /// public string Name { get; init; } = string.Empty; public FeatureLimit() { } }