using System; using System.Collections.Generic; using API.Data.Misc; using API.Entities.Enums.Device; namespace API.DTOs.Stats.V3; public class UserStatV3 { public AgeRestriction AgeRestriction { get; set; } /// /// The last reading progress on the server (in UTC) /// public DateTime LastReadTime { get; set; } /// /// The last login on the server (in UTC) /// public DateTime LastLogin { get; set; } /// /// Has the user gone through email confirmation /// public bool IsEmailConfirmed { get; set; } /// /// Is the Email a valid address /// public bool HasValidEmail { get; set; } /// /// Float between 0-1 to showcase how much of the libraries a user has access to /// public float PercentageOfLibrariesHasAccess { get; set; } /// /// Number of reading lists this user created /// public int ReadingListsCreatedCount { get; set; } /// /// Number of collections this user created /// public int CollectionsCreatedCount { get; set; } /// /// Number of series in want to read for this user /// public int WantToReadSeriesCount { get; set; } /// /// Active locale for the user /// public string Locale { get; set; } /// /// Active Theme (name) /// public string ActiveTheme { get; set; } /// /// Number of series with Bookmarks created /// public int SeriesBookmarksCreatedCount { get; set; } /// /// Kavita+ only - Has an AniList Token set /// public bool HasAniListToken { get; set; } /// /// Kavita+ only - Has a MAL Token set /// public bool HasMALToken { get; set; } /// /// Number of Smart Filters a user has created /// public int SmartFilterCreatedCount { get; set; } /// /// Is the user sharing reviews /// public bool IsSharingReviews { get; set; } /// /// The number of devices setup and their platforms /// public ICollection DevicePlatforms { get; set; } /// /// Roles for this user /// public ICollection Roles { get; set; } }