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()
{
}
}