diff --git a/lib/messages.dart b/lib/messages.dart index 37d80d0..f4a69fb 100644 --- a/lib/messages.dart +++ b/lib/messages.dart @@ -1,6 +1,7 @@ import 'package:json_annotation/json_annotation.dart'; import 'package:stripe/src/messages/converters.dart'; import 'package:stripe/src/messages/enums.dart'; +import 'package:stripe/src/messages/enums/pause_collection_behavior.dart'; export 'package:stripe/src/messages/enums.dart'; @@ -19,6 +20,7 @@ part 'src/messages/discount.dart'; part 'src/messages/event.dart'; part 'src/messages/invoice.dart'; part 'src/messages/payment_intent.dart'; +part 'src/messages/pause_collection.dart'; part 'src/messages/payment_method.dart'; part 'src/messages/portal_session.dart'; part 'src/messages/price.dart'; diff --git a/lib/messages.g.dart b/lib/messages.g.dart index 26950c6..3847827 100644 --- a/lib/messages.g.dart +++ b/lib/messages.g.dart @@ -37,12 +37,12 @@ BalanceTransaction _$BalanceTransactionFromJson(Map json) => BalanceTransaction( object: $enumDecode(_$_BalanceTransactionObjectEnumMap, json['object']), id: json['id'] as String, - amount: (json['amount'] as num).toInt(), - fee: (json['fee'] as num).toInt(), + amount: json['amount'] as int, + fee: json['fee'] as int, feeDetails: (json['fee_details'] as List) .map((e) => FeeDetails.fromJson(e as Map)) .toList(), - net: (json['net'] as num).toInt(), + net: json['net'] as int, currency: json['currency'] as String, ); @@ -62,7 +62,7 @@ const _$_BalanceTransactionObjectEnumMap = { }; FeeDetails _$FeeDetailsFromJson(Map json) => FeeDetails( - amount: (json['amount'] as num).toInt(), + amount: json['amount'] as int, application: json['application'] as String?, currency: json['currency'] as String, description: json['description'] as String, @@ -90,11 +90,11 @@ Map _$FeeDetailsToJson(FeeDetails instance) { BillingCycleAnchorConfig _$BillingCycleAnchorConfigFromJson( Map json) => BillingCycleAnchorConfig( - month: (json['month'] as num?)?.toInt(), - dayOfMonth: (json['day_of_month'] as num?)?.toInt(), - hour: (json['hour'] as num?)?.toInt(), - minute: (json['minute'] as num?)?.toInt(), - second: (json['second'] as num?)?.toInt(), + month: json['month'] as int?, + dayOfMonth: json['day_of_month'] as int?, + hour: json['hour'] as int?, + minute: json['minute'] as int?, + second: json['second'] as int?, ); Map _$BillingCycleAnchorConfigToJson( @@ -289,13 +289,13 @@ Coupon _$CouponFromJson(Map json) => Coupon( object: $enumDecode(_$_CouponObjectEnumMap, json['object']), id: json['id'] as String, duration: $enumDecode(_$CouponDurationEnumMap, json['duration']), - created: (json['created'] as num).toInt(), + created: json['created'] as int, livemode: json['livemode'] as bool, - timesRedeemed: (json['times_redeemed'] as num).toInt(), + timesRedeemed: json['times_redeemed'] as int, valid: json['valid'] as bool, - amountOff: (json['amount_off'] as num?)?.toInt(), + amountOff: json['amount_off'] as int?, currency: json['currency'] as String?, - durationInMonths: (json['duration_in_months'] as num?)?.toInt(), + durationInMonths: json['duration_in_months'] as int?, metadata: json['metadata'] as Map?, name: json['name'] as String?, percentOff: (json['percent_off'] as num?)?.toDouble(), @@ -304,8 +304,8 @@ Coupon _$CouponFromJson(Map json) => Coupon( : CouponAppliesTo.fromJson( json['applies_to'] as Map), currencyOptions: json['currency_options'] as Map?, - maxRedemptions: (json['max_redemptions'] as num?)?.toInt(), - redeemBy: (json['redeem_by'] as num?)?.toInt(), + maxRedemptions: json['max_redemptions'] as int?, + redeemBy: json['redeem_by'] as int?, ); Map _$CouponToJson(Coupon instance) { @@ -432,9 +432,9 @@ Discount _$DiscountFromJson(Map json) => Discount( object: $enumDecode(_$_DiscountObjectEnumMap, json['object']), id: json['id'] as String, coupon: Coupon.fromJson(json['coupon'] as Map), - start: (json['start'] as num).toInt(), + start: json['start'] as int, customer: json['customer'] as String?, - end: (json['end'] as num?)?.toInt(), + end: json['end'] as int?, subscription: json['subscription'] as String?, checkoutSession: json['checkout_session'] as String?, invoice: json['invoice'] as String?, @@ -503,7 +503,7 @@ SubscriptionEvent _$SubscriptionEventFromJson(Map json) => SubscriptionEvent( object: $enumDecode(_$_EventObjectEnumMap, json['object']), id: json['id'] as String, - created: (json['created'] as num).toInt(), + created: json['created'] as int, type: json['type'] as String, data: EventData.fromJson( json['data'] as Map, @@ -531,7 +531,7 @@ CustomerEvent _$CustomerEventFromJson(Map json) => CustomerEvent( object: $enumDecode(_$_EventObjectEnumMap, json['object']), id: json['id'] as String, - created: (json['created'] as num).toInt(), + created: json['created'] as int, type: json['type'] as String, data: EventData.fromJson(json['data'] as Map, (value) => Customer.fromJson(value as Map)), @@ -553,7 +553,7 @@ Map _$CustomerEventToJson(CustomerEvent instance) => ChargeEvent _$ChargeEventFromJson(Map json) => ChargeEvent( object: $enumDecode(_$_EventObjectEnumMap, json['object']), id: json['id'] as String, - created: (json['created'] as num).toInt(), + created: json['created'] as int, type: json['type'] as String, data: EventData.fromJson(json['data'] as Map, (value) => Charge.fromJson(value as Map)), @@ -576,7 +576,7 @@ PaymentIntentEvent _$PaymentIntentEventFromJson(Map json) => PaymentIntentEvent( object: $enumDecode(_$_EventObjectEnumMap, json['object']), id: json['id'] as String, - created: (json['created'] as num).toInt(), + created: json['created'] as int, type: json['type'] as String, data: EventData.fromJson( json['data'] as Map, @@ -599,7 +599,7 @@ Map _$PaymentIntentEventToJson(PaymentIntentEvent instance) => RefundEvent _$RefundEventFromJson(Map json) => RefundEvent( object: $enumDecode(_$_EventObjectEnumMap, json['object']), id: json['id'] as String, - created: (json['created'] as num).toInt(), + created: json['created'] as int, type: json['type'] as String, data: EventData.fromJson(json['data'] as Map, (value) => Refund.fromJson(value as Map)), @@ -623,7 +623,7 @@ CheckoutSessionEvent _$CheckoutSessionEventFromJson( CheckoutSessionEvent( object: $enumDecode(_$_EventObjectEnumMap, json['object']), id: json['id'] as String, - created: (json['created'] as num).toInt(), + created: json['created'] as int, type: json['type'] as String, data: EventData.fromJson( json['data'] as Map, @@ -648,7 +648,7 @@ PaymentMethodEvent _$PaymentMethodEventFromJson(Map json) => PaymentMethodEvent( object: $enumDecode(_$_EventObjectEnumMap, json['object']), id: json['id'] as String, - created: (json['created'] as num).toInt(), + created: json['created'] as int, type: json['type'] as String, data: EventData.fromJson( json['data'] as Map, @@ -671,7 +671,7 @@ Map _$PaymentMethodEventToJson(PaymentMethodEvent instance) => InvoiceEvent _$InvoiceEventFromJson(Map json) => InvoiceEvent( object: $enumDecode(_$_EventObjectEnumMap, json['object']), id: json['id'] as String, - created: (json['created'] as num).toInt(), + created: json['created'] as int, type: json['type'] as String, data: EventData.fromJson(json['data'] as Map, (value) => Invoice.fromJson(value as Map)), @@ -693,7 +693,7 @@ Map _$InvoiceEventToJson(InvoiceEvent instance) => CouponEvent _$CouponEventFromJson(Map json) => CouponEvent( object: $enumDecode(_$_EventObjectEnumMap, json['object']), id: json['id'] as String, - created: (json['created'] as num).toInt(), + created: json['created'] as int, type: json['type'] as String, data: EventData.fromJson(json['data'] as Map, (value) => Coupon.fromJson(value as Map)), @@ -716,10 +716,10 @@ Invoice _$InvoiceFromJson(Map json) => Invoice( id: json['id'] as String, currency: json['currency'] as String, customer: json['customer'] as String, - total: (json['total'] as num).toInt(), - totalExcludingTax: (json['total_excluding_tax'] as num).toInt(), - subtotal: (json['subtotal'] as num).toInt(), - subtotalExcludingTax: (json['subtotal_excluding_tax'] as num).toInt(), + total: json['total'] as int, + totalExcludingTax: json['total_excluding_tax'] as int, + subtotal: json['subtotal'] as int, + subtotalExcludingTax: json['subtotal_excluding_tax'] as int, totalDiscountAmounts: (json['total_discount_amounts'] as List) .map((e) => TotalDiscountAmount.fromJson(e as Map)) .toList(), @@ -763,7 +763,7 @@ Map _$InvoiceToJson(Invoice instance) { TotalDiscountAmount _$TotalDiscountAmountFromJson(Map json) => TotalDiscountAmount( - amount: (json['amount'] as num).toInt(), + amount: json['amount'] as int, discount: json['discount'] as String, ); @@ -778,8 +778,8 @@ PaymentIntent _$PaymentIntentFromJson(Map json) => PaymentIntent( object: $enumDecode(_$_PaymentIntentObjectEnumMap, json['object']), id: json['id'] as String, - amount: (json['amount'] as num).toInt(), - amountReceived: (json['amount_received'] as num).toInt(), + amount: json['amount'] as int, + amountReceived: json['amount_received'] as int, clientSecret: json['client_secret'] as String, currency: json['currency'] as String, status: json['status'] as String, @@ -891,6 +891,35 @@ Map _$AutomaticPaymentMethodsToJson( 'enabled': instance.enabled, }; +PauseCollection _$PauseCollectionFromJson(Map json) => + PauseCollection( + behavior: $enumDecode(_$PauseCollectionBehaviorEnumMap, json['behavior']), + resumesAt: json['resumes_at'] == null + ? null + : DateTime.parse(json['resumes_at'] as String), + ); + +Map _$PauseCollectionToJson(PauseCollection instance) { + final val = { + 'behavior': _$PauseCollectionBehaviorEnumMap[instance.behavior]!, + }; + + void writeNotNull(String key, dynamic value) { + if (value != null) { + val[key] = value; + } + } + + writeNotNull('resumes_at', instance.resumesAt?.toIso8601String()); + return val; +} + +const _$PauseCollectionBehaviorEnumMap = { + PauseCollectionBehavior.keepAsDraft: 'keep_as_draft', + PauseCollectionBehavior.markUncollectible: 'mark_uncollectible', + PauseCollectionBehavior.void_: 'void', +}; + PaymentMethod _$PaymentMethodFromJson(Map json) => PaymentMethod( id: json['id'] as String, @@ -932,8 +961,8 @@ PaymentMethodCard _$PaymentMethodCardFromJson(Map json) => PaymentMethodCard( brand: json['brand'] as String, last4: json['last4'] as String, - expMonth: (json['exp_month'] as num).toInt(), - expYear: (json['exp_year'] as num).toInt(), + expMonth: json['exp_month'] as int, + expYear: json['exp_year'] as int, wallet: json['wallet'] == null ? null : Wallet.fromJson(json['wallet'] as Map), @@ -1035,7 +1064,7 @@ Price _$PriceFromJson(Map json) => Price( recurring: json['recurring'] == null ? null : Recurring.fromJson(json['recurring'] as Map), - unitAmount: (json['unit_amount'] as num).toInt(), + unitAmount: json['unit_amount'] as int, ); Map _$PriceToJson(Price instance) { @@ -1109,15 +1138,15 @@ PromotionCode _$PromotionCodeFromJson(Map json) => code: json['code'] as String, coupon: Coupon.fromJson(json['coupon'] as Map), active: json['active'] as bool, - created: (json['created'] as num).toInt(), + created: json['created'] as int, livemode: json['livemode'] as bool, restrictions: PromotionCodeRestrictions.fromJson( json['restrictions'] as Map), - timesRedeemed: (json['times_redeemed'] as num).toInt(), + timesRedeemed: json['times_redeemed'] as int, metadata: json['metadata'] as Map?, customer: json['customer'] as String?, - expiresAt: (json['expires_at'] as num?)?.toInt(), - maxRedemptions: (json['max_redemptions'] as num?)?.toInt(), + expiresAt: json['expires_at'] as int?, + maxRedemptions: json['max_redemptions'] as int?, ); Map _$PromotionCodeToJson(PromotionCode instance) { @@ -1155,7 +1184,7 @@ PromotionCodeRestrictions _$PromotionCodeRestrictionsFromJson( PromotionCodeRestrictions( firstTimeTransaction: json['first_time_transaction'] as bool, currencyOptions: json['currency_options'] as Map?, - minimumAmount: (json['minimum_amount'] as num?)?.toInt(), + minimumAmount: json['minimum_amount'] as int?, minimumAmountCurrency: json['minimum_amount_currency'] as String?, ); @@ -1272,7 +1301,7 @@ const _$BillingAddressCollectionEnumMap = { LineItem _$LineItemFromJson(Map json) => LineItem( images: (json['images'] as List?)?.map((e) => e as String).toList(), - quantity: (json['quantity'] as num?)?.toInt(), + quantity: json['quantity'] as int?, description: json['description'] as String?, price: json['price'] as String?, priceData: json['price_data'] == null @@ -1300,7 +1329,7 @@ Map _$LineItemToJson(LineItem instance) { PriceData _$PriceDataFromJson(Map json) => PriceData( currency: json['currency'] as String, product: json['product'] as String?, - unitAmount: (json['unit_amount'] as num?)?.toInt(), + unitAmount: json['unit_amount'] as int?, productData: json['product_data'] == null ? null : ProductData.fromJson(json['product_data'] as Map), @@ -1389,8 +1418,8 @@ Map _$PaymentIntentDataToJson(PaymentIntentData instance) { SubscriptionData _$SubscriptionDataFromJson(Map json) => SubscriptionData( - trialEnd: (json['trial_end'] as num?)?.toInt(), - trialPeriodDays: (json['trial_period_days'] as num?)?.toInt(), + trialEnd: json['trial_end'] as int?, + trialPeriodDays: json['trial_period_days'] as int?, metadata: json['metadata'] as Map?, ); @@ -1592,7 +1621,7 @@ CreatePreviewInvoiceSubscriptionItemDetailsRequest (k, e) => MapEntry(k, e as String), ), price: json['price'] as String?, - quantity: (json['quantity'] as num?)?.toInt(), + quantity: json['quantity'] as int?, taxRates: (json['tax_rates'] as List?) ?.map((e) => e as String) .toList(), @@ -1623,7 +1652,7 @@ Map _$CreatePreviewInvoiceSubscriptionItemDetailsRequestToJson( CreatePaymentIntentRequest _$CreatePaymentIntentRequestFromJson( Map json) => CreatePaymentIntentRequest( - amount: (json['amount'] as num).toInt(), + amount: json['amount'] as int, currency: json['currency'] as String, automaticPaymentMethods: json['automatic_payment_methods'] == null ? null @@ -1714,7 +1743,7 @@ CreatePriceRequest _$CreatePriceRequestFromJson(Map json) => CreatePriceRequest( currency: json['currency'] as String, product: json['product'] as String?, - unitAmount: (json['unit_amount'] as num?)?.toInt(), + unitAmount: json['unit_amount'] as int?, active: json['active'] as bool?, metadata: json['metadata'] as Map?, nickname: json['nickname'] as String?, @@ -1752,7 +1781,7 @@ Recurring _$RecurringFromJson(Map json) => Recurring( interval: $enumDecode(_$RecurringIntervalEnumMap, json['interval']), aggregateUsage: $enumDecodeNullable(_$AggregateUsageEnumMap, json['aggregate_usage']), - intervalCount: (json['interval_count'] as num?)?.toInt(), + intervalCount: json['interval_count'] as int?, usageType: json['usage_type'] as String?, ); @@ -1790,7 +1819,7 @@ const _$AggregateUsageEnumMap = { PriceParameters _$PriceParametersFromJson(Map json) => PriceParameters( - customUnitAmount: (json['custom_unit_amount'] as num?)?.toInt(), + customUnitAmount: json['custom_unit_amount'] as int?, productData: json['product_data'] == null ? null : ProductData.fromJson(json['product_data'] as Map), @@ -1882,7 +1911,7 @@ Map _$CreateProductRequestToJson( CreateRefundRequest _$CreateRefundRequestFromJson(Map json) => CreateRefundRequest( charge: json['charge'] as String?, - amount: (json['amount'] as num?)?.toInt(), + amount: json['amount'] as int?, paymentIntent: json['payment_intent'] as String?, reason: json['reason'] as String?, ); @@ -1947,7 +1976,7 @@ CreateSubscriptionRequest _$CreateSubscriptionRequestFromJson( trialEnd: _$JsonConverterFromJson( json['trial_end'], const TimestampConverter().fromJson), trialFromPlan: json['trial_from_plan'] as bool?, - trialPeriodDays: (json['trial_period_days'] as num?)?.toInt(), + trialPeriodDays: json['trial_period_days'] as int?, ); Map _$CreateSubscriptionRequestToJson( @@ -2018,7 +2047,7 @@ CreateSubscriptionItemRequest _$CreateSubscriptionItemRequestFromJson( metadata: (json['metadata'] as Map?)?.map( (k, e) => MapEntry(k, e as String), ), - quantity: (json['quantity'] as num?)?.toInt(), + quantity: json['quantity'] as int?, taxRates: (json['tax_rates'] as List?) ?.map((e) => e as String) .toList(), @@ -2065,10 +2094,10 @@ Map _$CreateSubscriptionScheduleRequestToJson( CreatedRequest _$CreatedRequestFromJson(Map json) => CreatedRequest( - gt: (json['gt'] as num?)?.toInt(), - gte: (json['gte'] as num?)?.toInt(), - lt: (json['lt'] as num?)?.toInt(), - lte: (json['lte'] as num?)?.toInt(), + gt: json['gt'] as int?, + gte: json['gte'] as int?, + lt: json['lt'] as int?, + lte: json['lte'] as int?, ); Map _$CreatedRequestToJson(CreatedRequest instance) { @@ -2093,7 +2122,7 @@ ListCouponsRequest _$ListCouponsRequestFromJson(Map json) => ? null : CreatedRequest.fromJson(json['created'] as Map), endingBefore: json['ending_before'] as String?, - limit: (json['limit'] as num?)?.toInt(), + limit: json['limit'] as int?, startingAfter: json['starting_after'] as String?, ); @@ -2164,7 +2193,7 @@ ListPromotionCodesRequest _$ListPromotionCodesRequestFromJson( : CreatedRequest.fromJson(json['created'] as Map), customer: json['customer'] as String?, endingBefore: json['ending_before'] as String?, - limit: (json['limit'] as num?)?.toInt(), + limit: json['limit'] as int?, startingAfter: json['starting_after'] as String?, ); @@ -2194,7 +2223,7 @@ ListSubscriptionItemsRequest _$ListSubscriptionItemsRequestFromJson( ListSubscriptionItemsRequest( subscription: json['subscription'] as String?, endingBefore: json['ending_before'] as String?, - limit: (json['limit'] as num?)?.toInt(), + limit: json['limit'] as int?, startingAfter: json['starting_after'] as String?, ); @@ -2219,7 +2248,7 @@ ListSubscriptionSchedulesRequest _$ListSubscriptionSchedulesRequestFromJson( Map json) => ListSubscriptionSchedulesRequest( customer: json['customer'] as String?, - limit: (json['limit'] as num?)?.toInt(), + limit: json['limit'] as int?, ); Map _$ListSubscriptionSchedulesRequestToJson( @@ -2244,7 +2273,7 @@ ListSubscriptionsRequest _$ListSubscriptionsRequestFromJson( price: json['price'] as String?, status: $enumDecodeNullable(_$SubscriptionStatusEnumMap, json['status']), endingBefore: json['ending_before'] as String?, - limit: (json['limit'] as num?)?.toInt(), + limit: json['limit'] as int?, startingAfter: json['starting_after'] as String?, ); @@ -2364,7 +2393,7 @@ SubscriptionItemUpdate _$SubscriptionItemUpdateFromJson( price: json['price'] as String?, prorationBehavior: $enumDecodeNullable( _$ProrationBehaviorEnumMap, json['proration_behavior']), - quantity: (json['quantity'] as num?)?.toInt(), + quantity: json['quantity'] as int?, billingThresholds: json['billing_thresholds'] as Map?, offSession: json['off_session'] as bool?, priceData: json['price_data'] as Map?, @@ -2473,7 +2502,7 @@ UpdateSubscriptionSchedulePhaseItem _$UpdateSubscriptionSchedulePhaseItemFromJson(Map json) => UpdateSubscriptionSchedulePhaseItem( price: json['price'] as String, - quantity: (json['quantity'] as num).toInt(), + quantity: json['quantity'] as int, ); Map _$UpdateSubscriptionSchedulePhaseItemToJson( @@ -2554,20 +2583,19 @@ const _$StripeApiErrorTypeEnumMap = { Subscription _$SubscriptionFromJson(Map json) => Subscription( object: $enumDecode(_$_SubscriptionObjectEnumMap, json['object']), id: json['id'] as String, - created: (json['created'] as num).toInt(), + created: json['created'] as int, customer: json['customer'] as String, status: $enumDecode(_$SubscriptionStatusEnumMap, json['status']), items: DataList.fromJson( json['items'] as Map, (value) => SubscriptionItem.fromJson(value as Map)), currentPeriodStart: const TimestampConverter() - .fromJson((json['current_period_start'] as num).toInt()), + .fromJson(json['current_period_start'] as int), currentPeriodEnd: const TimestampConverter() - .fromJson((json['current_period_end'] as num).toInt()), - startDate: const TimestampConverter() - .fromJson((json['start_date'] as num).toInt()), + .fromJson(json['current_period_end'] as int), + startDate: const TimestampConverter().fromJson(json['start_date'] as int), billingCycleAnchor: const TimestampConverter() - .fromJson((json['billing_cycle_anchor'] as num).toInt()), + .fromJson(json['billing_cycle_anchor'] as int), cancelAt: _$JsonConverterFromJson( json['cancel_at'], const TimestampConverter().fromJson), cancelAtPeriodEnd: json['cancel_at_period_end'] as bool? ?? false, @@ -2578,6 +2606,10 @@ Subscription _$SubscriptionFromJson(Map json) => Subscription( discounts: (json['discounts'] as List?) ?.map((e) => e as String) .toList(), + pauseCollection: json['pause_collection'] == null + ? null + : PauseCollection.fromJson( + json['pause_collection'] as Map), ); Map _$SubscriptionToJson(Subscription instance) { @@ -2617,6 +2649,7 @@ Map _$SubscriptionToJson(Subscription instance) { writeNotNull('metadata', instance.metadata); writeNotNull('latest_invoice', instance.latestInvoice); writeNotNull('discounts', instance.discounts); + writeNotNull('pause_collection', instance.pauseCollection?.toJson()); return val; } @@ -2630,7 +2663,7 @@ SubscriptionItem _$SubscriptionItemFromJson(Map json) => id: json['id'] as String, price: Price.fromJson(json['price'] as Map), subscription: json['subscription'] as String, - quantity: (json['quantity'] as num).toInt(), + quantity: json['quantity'] as int, ); Map _$SubscriptionItemToJson(SubscriptionItem instance) => @@ -2733,7 +2766,7 @@ SubscriptionSchedulePhaseItem _$SubscriptionSchedulePhaseItemFromJson( Map json) => SubscriptionSchedulePhaseItem( price: json['price'] as String, - quantity: (json['quantity'] as num).toInt(), + quantity: json['quantity'] as int, ); Map _$SubscriptionSchedulePhaseItemToJson( diff --git a/lib/src/messages/enums/pause_collection_behavior.dart b/lib/src/messages/enums/pause_collection_behavior.dart new file mode 100644 index 0000000..25c9a2c --- /dev/null +++ b/lib/src/messages/enums/pause_collection_behavior.dart @@ -0,0 +1,10 @@ +import 'package:json_annotation/json_annotation.dart'; + +enum PauseCollectionBehavior { + @JsonValue('keep_as_draft') + keepAsDraft, + @JsonValue('mark_uncollectible') + markUncollectible, + @JsonValue('void') + void_, +} diff --git a/lib/src/messages/pause_collection.dart b/lib/src/messages/pause_collection.dart new file mode 100644 index 0000000..7b49bad --- /dev/null +++ b/lib/src/messages/pause_collection.dart @@ -0,0 +1,19 @@ +part of '../../messages.dart'; + +@JsonSerializable() +class PauseCollection extends Message { + final PauseCollectionBehavior behavior; + @TimestampConverter() + final DateTime? resumesAt; + + PauseCollection({ + required this.behavior, + required this.resumesAt, + }); + + factory PauseCollection.fromJson(Map json) => + _$PauseCollectionFromJson(json); + + @override + Map toJson() => _$PauseCollectionToJson(this); +} diff --git a/lib/src/messages/subscription.dart b/lib/src/messages/subscription.dart index 77dca61..6fb71b4 100644 --- a/lib/src/messages/subscription.dart +++ b/lib/src/messages/subscription.dart @@ -112,6 +112,11 @@ class Subscription extends Message { /// applied before subscription discounts. Can be expanded. final List? discounts; + /// If specified, payment collection for this subscription will be paused. + /// Note that the subscription status will be unchanged and will not be + /// updated to `paused`. + final PauseCollection? pauseCollection; + Subscription({ required this.object, required this.id, @@ -129,6 +134,7 @@ class Subscription extends Message { this.metadata, this.latestInvoice, this.discounts, + this.pauseCollection, }); factory Subscription.fromJson(Map json) =>