//----------------------------------------------------------------------- // // Copyright (c) aliasvault. All rights reserved. // Licensed under the AGPLv3 license. See LICENSE.md file in the project root for full license information. // //----------------------------------------------------------------------- namespace AliasVault.Admin.Main.Models; /// /// Model representing user-specific usage statistics for both all-time and recent periods. /// public class UserUsageStatistics { /// /// Gets or sets the total number of credentials (all-time). /// public int TotalCredentials { get; set; } /// /// Gets or sets the total number of active email claims (all-time). /// public int TotalActiveEmailClaims { get; set; } /// /// Gets or sets the total number of disabled email claims (all-time). /// public int TotalDisabledEmailClaims { get; set; } /// /// Gets or sets the total number of received emails (all-time). /// public int TotalReceivedEmails { get; set; } /// /// Gets or sets the total number of emails received across all time (persistent counter). /// This counter is never decremented, even when emails are deleted. Used for abuse detection. /// public int TotalEmailsReceivedPersistent { get; set; } /// /// Gets or sets the number of credentials created in the last 72 hours. /// public int RecentCredentials72h { get; set; } /// /// Gets or sets the number of email claims created in the last 72 hours. /// public int RecentEmailClaims72h { get; set; } /// /// Gets or sets the number of emails received in the last 72 hours. /// public int RecentReceivedEmails72h { get; set; } /// /// Gets or sets the total number of email attachments (all-time). /// public int TotalEmailAttachments { get; set; } /// /// Gets or sets the total storage size of email attachments in bytes (all-time). /// public long TotalEmailAttachmentStorage { get; set; } /// /// Gets the total storage size of email attachments in MB for display purposes. /// public double TotalEmailAttachmentStorageMB => TotalEmailAttachmentStorage / (1024.0 * 1024.0); }