mnemo_cards/mnemo_cards_backend/lib/api/subscription/extension.dart
Dmitry 0f49280805
Some checks are pending
Backend CI / test (push) Waiting to run
Backend CI / build (push) Blocked by required conditions
Mobile App CI / test (push) Waiting to run
Mobile App CI / build-android (push) Blocked by required conditions
Mobile App CI / build-ios (push) Blocked by required conditions
Web App CI / test (push) Waiting to run
Web App CI / build (push) Blocked by required conditions
Deploy Mnemo Cards / Deploy Backend (push) Waiting to run
Deploy Mnemo Cards / Deploy Web App (push) Blocked by required conditions
Deploy Mnemo Cards / Final Verification (push) Blocked by required conditions
Deploy Telegram Bot / Deploy Telegram Bot (push) Waiting to run
fixes and format
2025-12-20 21:26:15 +03:00

65 lines
2.1 KiB
Dart

import 'package:mnemo_cards_common_backend/mnemo_cards_common_backend.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
extension SubscriptionPlanModelExt on SubscriptionPlanModel {
Future<SubscriptionPlanDto> toDto() async {
return SubscriptionPlanDto(
id: id?.toString() ?? '',
titleLead: ui?.titleLead?.notEmptyOrNull,
title: ui?.title?.notEmptyOrNull,
subtitle: ui?.subtitle?.notEmptyOrNull,
subtitleCrossed: ui?.subtitleCrossed?.notEmptyOrNull,
price: price,
pricePerMonth: ui?.pricePerMonth?.notEmptyOrNull,
currency: currency,
tip: ui?.tip?.notEmptyOrNull,
tipColor: ui?.tipColor?.notEmptyOrNull,
features: features,
deeplink: PurchaseInitDeeplink(
id: id.toString(),
productType: MnemoCardsProductType.subscription,
paymentId: paymentId?.notEmptyOrNull ?? '',
paymentSystem: paymentSystem,
).uri.toString(),
);
}
Future<SubscriptionPlanAdminDto> toAdminDto() async {
return SubscriptionPlanAdminDto(
id: id?.toString(),
price: price,
ui: ui?.toDto() ?? SubscriptionPlanUIDto(),
currency: currency,
durationDays: durationDays,
features: features,
paymentId: paymentId?.notEmptyOrNull,
paymentSystem: paymentSystem,
);
}
}
extension SubscriptionPlanUIExt on SubscriptionPlanUI {
SubscriptionPlanUIDto toDto() => SubscriptionPlanUIDto(
titleLead: titleLead?.notEmptyOrNull,
title: title?.notEmptyOrNull,
subtitle: subtitle?.notEmptyOrNull,
subtitleCrossed: subtitleCrossed?.notEmptyOrNull,
pricePerMonth: pricePerMonth?.notEmptyOrNull,
currency: currency?.notEmptyOrNull,
tip: tip?.notEmptyOrNull,
tipColor: tipColor?.notEmptyOrNull,
);
}
extension SubscriptionPlanUIDtoExt on SubscriptionPlanUIDto {
SubscriptionPlanUI toModel() => SubscriptionPlanUI(
titleLead: titleLead,
title: title,
subtitle: subtitle,
subtitleCrossed: subtitleCrossed,
pricePerMonth: pricePerMonth,
currency: currency,
tip: tip,
tipColor: tipColor,
);
}