using Bit.Core.Entities; namespace Bit.Core.Models.Data; /// /// Represents a user with an additional property indicating if the user has premium access. /// public class UserWithCalculatedPremium : User { public UserWithCalculatedPremium() { } public UserWithCalculatedPremium(User user) { Id = user.Id; Name = user.Name; Email = user.Email; EmailVerified = user.EmailVerified; MasterPassword = user.MasterPassword; MasterPasswordHint = user.MasterPasswordHint; Culture = user.Culture; SecurityStamp = user.SecurityStamp; TwoFactorProviders = user.TwoFactorProviders; TwoFactorRecoveryCode = user.TwoFactorRecoveryCode; EquivalentDomains = user.EquivalentDomains; ExcludedGlobalEquivalentDomains = user.ExcludedGlobalEquivalentDomains; AccountRevisionDate = user.AccountRevisionDate; Key = user.Key; PublicKey = user.PublicKey; PrivateKey = user.PrivateKey; Premium = user.Premium; PremiumExpirationDate = user.PremiumExpirationDate; RenewalReminderDate = user.RenewalReminderDate; Storage = user.Storage; MaxStorageGb = user.MaxStorageGb; Gateway = user.Gateway; GatewayCustomerId = user.GatewayCustomerId; GatewaySubscriptionId = user.GatewaySubscriptionId; ReferenceData = user.ReferenceData; LicenseKey = user.LicenseKey; ApiKey = user.ApiKey; Kdf = user.Kdf; KdfIterations = user.KdfIterations; KdfMemory = user.KdfMemory; KdfParallelism = user.KdfParallelism; CreationDate = user.CreationDate; RevisionDate = user.RevisionDate; ForcePasswordReset = user.ForcePasswordReset; UsesKeyConnector = user.UsesKeyConnector; FailedLoginCount = user.FailedLoginCount; LastFailedLoginDate = user.LastFailedLoginDate; AvatarColor = user.AvatarColor; LastPasswordChangeDate = user.LastPasswordChangeDate; LastKdfChangeDate = user.LastKdfChangeDate; LastKeyRotationDate = user.LastKeyRotationDate; LastEmailChangeDate = user.LastEmailChangeDate; } /// /// Indicates if the user has premium access, either individually or through an organization. /// public bool HasPremiumAccess { get; set; } }