123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- import 'dart:convert';
- const freeProductID = "free";
- const stripe = "stripe";
- const appStore = "appstore";
- const playStore = "playstore";
- class Subscription {
- final String productID;
- final int storage;
- final String originalTransactionID;
- final String paymentProvider;
- final int expiryTime;
- final String price;
- final String period;
- final Attributes? attributes;
- Subscription({
- required this.productID,
- required this.storage,
- required this.originalTransactionID,
- required this.paymentProvider,
- required this.expiryTime,
- required this.price,
- required this.period,
- this.attributes,
- });
- bool isValid() {
- return expiryTime > DateTime.now().microsecondsSinceEpoch;
- }
- bool isYearlyPlan() {
- return 'year' == period;
- }
- static fromMap(Map<String, dynamic>? map) {
- if (map == null) return null;
- return Subscription(
- productID: map['productID'],
- storage: map['storage'],
- originalTransactionID: map['originalTransactionID'],
- paymentProvider: map['paymentProvider'],
- expiryTime: map['expiryTime'],
- price: map['price'],
- period: map['period'],
- attributes: map["attributes"] != null
- ? Attributes.fromMap(map["attributes"])
- : null,
- );
- }
- Map<String, dynamic> toMap() {
- return {
- 'productID': productID,
- 'storage': storage,
- 'originalTransactionID': originalTransactionID,
- 'paymentProvider': paymentProvider,
- 'expiryTime': expiryTime,
- 'price': price,
- 'period': period,
- 'attributes': attributes?.toMap(),
- };
- }
- String toJson() => json.encode(toMap());
- factory Subscription.fromJson(String source) =>
- Subscription.fromMap(json.decode(source));
- }
- class Attributes {
- bool? isCancelled;
- String? customerID;
- Attributes({
- this.isCancelled,
- this.customerID,
- });
- Map<String, dynamic> toMap() {
- return {
- 'isCancelled': isCancelled,
- 'customerID': customerID,
- };
- }
- factory Attributes.fromMap(Map<String, dynamic> map) {
- return Attributes(
- isCancelled: map['isCancelled'],
- customerID: map['customerID'],
- );
- }
- String toJson() => json.encode(toMap());
- factory Attributes.fromJson(String source) =>
- Attributes.fromMap(json.decode(source));
- }
|