import 'package:flutter/foundation.dart'; import 'package:cake_wallet/ionia/ionia_gift_card_instruction.dart'; import 'package:cake_wallet/generated/i18n.dart'; class IoniaMerchant { IoniaMerchant({ @required this.id, @required this.legalName, @required this.systemName, @required this.description, @required this.website, @required this.termsAndConditions, @required this.logoUrl, @required this.cardImageUrl, @required this.cardholderAgreement, @required this.purchaseFee, @required this.revenueShare, @required this.marketingFee, @required this.minimumDiscount, @required this.level1, @required this.level2, @required this.level3, @required this.level4, @required this.level5, @required this.level6, @required this.level7, @required this.isActive, @required this.isDeleted, @required this.isOnline, @required this.isPhysical, @required this.isVariablePurchase, @required this.minimumCardPurchase, @required this.maximumCardPurchase, @required this.acceptsTips, @required this.createdDateFormatted, @required this.createdBy, @required this.isRegional, @required this.modifiedDateFormatted, @required this.modifiedBy, @required this.usageInstructions, @required this.usageInstructionsBak, @required this.paymentGatewayId, @required this.giftCardGatewayId, @required this.isHtmlDescription, @required this.purchaseInstructions, @required this.balanceInstructions, @required this.amountPerCard, @required this.processingMessage, @required this.hasBarcode, @required this.hasInventory, @required this.isVoidable, @required this.receiptMessage, @required this.cssBorderCode, @required this.instructions, @required this.alderSku, @required this.ngcSku, @required this.acceptedCurrency, @required this.deepLink, @required this.isPayLater, @required this.savingsPercentage}); factory IoniaMerchant.fromJsonMap(Map element) { return IoniaMerchant( id: element["Id"] as int, legalName: element["LegalName"] as String, systemName: element["SystemName"] as String, description: element["Description"] as String, website: element["Website"] as String, termsAndConditions: element["TermsAndConditions"] as String, logoUrl: element["LogoUrl"] as String, cardImageUrl: element["CardImageUrl"] as String, cardholderAgreement: element["CardholderAgreement"] as String, purchaseFee: element["PurchaseFee"] as double, revenueShare: element["RevenueShare"] as double, marketingFee: element["MarketingFee"] as double, minimumDiscount: element["MinimumDiscount"] as double, level1: element["Level1"] as double, level2: element["Level2"] as double, level3: element["Level3"] as double, level4: element["Level4"] as double, level5: element["Level5"] as double, level6: element["Level6"] as double, level7: element["Level7"] as double, isActive: element["IsActive"] as bool, isDeleted: element["IsDeleted"] as bool, isOnline: element["IsOnline"] as bool, isPhysical: element["IsPhysical"] as bool, isVariablePurchase: element["IsVariablePurchase"] as bool, minimumCardPurchase: element["MinimumCardPurchase"] as double, maximumCardPurchase: element["MaximumCardPurchase"] as double, acceptsTips: element["AcceptsTips"] as bool, createdDateFormatted: element["CreatedDate"] as String, createdBy: element["CreatedBy"] as int, isRegional: element["IsRegional"] as bool, modifiedDateFormatted: element["ModifiedDate"] as String, modifiedBy: element["ModifiedBy"] as int, usageInstructions: element["UsageInstructions"] as String, usageInstructionsBak: element["UsageInstructionsBak"] as String, paymentGatewayId: element["PaymentGatewayId"] as int, giftCardGatewayId: element["GiftCardGatewayId"] as int , isHtmlDescription: element["IsHtmlDescription"] as bool, purchaseInstructions: element["PurchaseInstructions"] as String, balanceInstructions: element["BalanceInstructions"] as String, amountPerCard: element["AmountPerCard"] as double, processingMessage: element["ProcessingMessage"] as String, hasBarcode: element["HasBarcode"] as bool, hasInventory: element["HasInventory"] as bool, isVoidable: element["IsVoidable"] as bool, receiptMessage: element["ReceiptMessage"] as String, cssBorderCode: element["CssBorderCode"] as String, instructions: IoniaGiftCardInstruction.parseListOfInstructions(element['PaymentInstructions'] as String), alderSku: element["AlderSku"] as String, ngcSku: element["NgcSku"] as String, acceptedCurrency: element["AcceptedCurrency"] as String, deepLink: element["DeepLink"] as String, isPayLater: element["IsPayLater"] as bool, savingsPercentage: element["SavingsPercentage"] as double); } final int id; final String legalName; final String systemName; final String description; final String website; final String termsAndConditions; final String logoUrl; final String cardImageUrl; final String cardholderAgreement; final double purchaseFee; final double revenueShare; final double marketingFee; final double minimumDiscount; final double level1; final double level2; final double level3; final double level4; final double level5; final double level6; final double level7; final bool isActive; final bool isDeleted; final bool isOnline; final bool isPhysical; final bool isVariablePurchase; final double minimumCardPurchase; final double maximumCardPurchase; final bool acceptsTips; final String createdDateFormatted; final int createdBy; final bool isRegional; final String modifiedDateFormatted; final int modifiedBy; final String usageInstructions; final String usageInstructionsBak; final int paymentGatewayId; final int giftCardGatewayId; final bool isHtmlDescription; final String purchaseInstructions; final String balanceInstructions; final double amountPerCard; final String processingMessage; final bool hasBarcode; final bool hasInventory; final bool isVoidable; final String receiptMessage; final String cssBorderCode; final List instructions; final String alderSku; final String ngcSku; final String acceptedCurrency; final String deepLink; final bool isPayLater; final double savingsPercentage; double get discount => savingsPercentage; String get avaibilityStatus { var status = ''; if (isOnline) { status += S.current.online; } if (isPhysical) { if (status.isNotEmpty) { status = '$status & '; } status = '${status}${S.current.in_store}'; } return status; } }