mapFlutterSubscriptionInfoToSubscriptionInfo function
SubscriptionInfo?
mapFlutterSubscriptionInfoToSubscriptionInfo(
- FlutterSubscriptionInfo? flutterSubscriptionInfo
Функция для маппинга FlutterSubscriptionInfo в SubscriptionInfo.
Implementation
SubscriptionInfo? mapFlutterSubscriptionInfoToSubscriptionInfo(
FlutterSubscriptionInfo? flutterSubscriptionInfo) {
if (flutterSubscriptionInfo == null) return null;
return SubscriptionInfo._(
periods: flutterSubscriptionInfo.periods.map((period) {
if (period.trialPeriod != null) {
final trial = period.trialPeriod!;
return TrialPeriod._(
duration: trial.duration,
currency: trial.currency,
price: trial.price,
);
} else if (period.promoPeriod != null) {
final promo = period.promoPeriod!;
return PromoPeriod._(
duration: promo.duration,
currency: promo.currency,
price: promo.price,
);
} else if (period.mainPeriod != null) {
final main = period.mainPeriod!;
return MainPeriod._(
duration: main.duration,
currency: main.currency,
price: main.price,
);
} else if (period.gracePeriod != null) {
final grace = period.gracePeriod!;
return GracePeriod._(
duration: grace.duration,
);
} else if (period.holdPeriod != null) {
final hold = period.holdPeriod!;
return HoldPeriod._(
duration: hold.duration,
);
} else {
throw UnsupportedError('Unknown subscription period type');
}
}).toList(),
);
}