Class Subscription
- Namespace
- VpnHood.AppLib.Abstractions.Accounts
- Assembly
- VpnHood.AppLib.Abstractions.dll
The store subscription serving an account. Its very presence is the answer to "is this account subscribed" — the facts below are only meaningful together, so they live or go as one object rather than as eight independently-nullable fields on the account.
public class Subscription
- Inheritance
-
Subscription
- Inherited Members
Properties
BillingPeriod
The period PriceAmount buys, as an ISO-8601 duration ("P1M", "P1Y", …) — the same vocabulary the store uses for plan periods. Without it the UI cannot say what the price is per, and a yearly subscription reads as a monthly one.
public string? BillingPeriod { get; set; }
Property Value
CreatedTime
When the subscription began.
public DateTime? CreatedTime { get; set; }
Property Value
ExpirationTime
Gets or sets when the current period ends, or null.
public DateTime? ExpirationTime { get; set; }
Property Value
IsAutoRenew
Gets or sets a value indicating whether the subscription renews at the period's end, or null where that is not known.
public bool? IsAutoRenew { get; set; }
Property Value
- bool?
Management
Where this subscription can be managed from here, and when it cannot, why. A URL never crosses to the UI: the store provider performs it, so no UI holds a store address. Composed by the account provider, which is the only place that knows both who billed the subscription and what this device can show — the portal never sends it.
public SubscriptionManagement Management { get; set; }
Property Value
PriceAmount
What the STORE charged for the current period — not a catalogue price.
public decimal? PriceAmount { get; set; }
Property Value
PriceCurrency
Gets or sets the currency of PriceAmount, or null.
public string? PriceCurrency { get; set; }
Property Value
StoreId
The store that billed it ("googleplay", "appstore", "microsoft"). This is the BILLING store, which legitimately differs from the store this build ships to (bought on Android, now signed in on an iPhone), so it never answers "which app is this". An id, as the name says: the app decides on it, the UI never shows it.
public required string StoreId { get; set; }