paddle-python-sdk 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- examples/__init__.py +0 -0
- examples/catalog_management.py +166 -0
- examples/event_polling.py +56 -0
- examples/get_products.py +46 -0
- examples/logger.py +31 -0
- paddle_billing/Client.py +201 -0
- paddle_billing/ConditionallyRemoveImportMeta.py +14 -0
- paddle_billing/Entities/Address.py +44 -0
- paddle_billing/Entities/Adjustment.py +45 -0
- paddle_billing/Entities/Adjustments/AdjustmentCustomerBalance.py +18 -0
- paddle_billing/Entities/Adjustments/AdjustmentItem.py +26 -0
- paddle_billing/Entities/Adjustments/__init__.py +2 -0
- paddle_billing/Entities/Business.py +38 -0
- paddle_billing/Entities/Collections/AddressCollection.py +18 -0
- paddle_billing/Entities/Collections/AdjustmentCollection.py +18 -0
- paddle_billing/Entities/Collections/BusinessCollection.py +18 -0
- paddle_billing/Entities/Collections/Collection.py +47 -0
- paddle_billing/Entities/Collections/CreditBalanceCollection.py +18 -0
- paddle_billing/Entities/Collections/CustomerCollection.py +18 -0
- paddle_billing/Entities/Collections/DiscountCollection.py +18 -0
- paddle_billing/Entities/Collections/EventCollection.py +18 -0
- paddle_billing/Entities/Collections/EventTypeCollection.py +18 -0
- paddle_billing/Entities/Collections/NotificationCollection.py +18 -0
- paddle_billing/Entities/Collections/NotificationLogCollection.py +18 -0
- paddle_billing/Entities/Collections/NotificationSettingCollection.py +18 -0
- paddle_billing/Entities/Collections/Paginator.py +29 -0
- paddle_billing/Entities/Collections/PriceCollection.py +18 -0
- paddle_billing/Entities/Collections/ProductCollection.py +18 -0
- paddle_billing/Entities/Collections/ReportCollection.py +18 -0
- paddle_billing/Entities/Collections/SubscriptionCollection.py +18 -0
- paddle_billing/Entities/Collections/SubscriptionPreviewCollection.py +18 -0
- paddle_billing/Entities/Collections/TransactionCollection.py +18 -0
- paddle_billing/Entities/Collections/TransactionPreviewCollection.py +18 -0
- paddle_billing/Entities/Collections/TransactionsDataCollection.py +18 -0
- paddle_billing/Entities/Collections/__init__.py +21 -0
- paddle_billing/Entities/CreditBalance.py +22 -0
- paddle_billing/Entities/Customer.py +36 -0
- paddle_billing/Entities/DateTime.py +43 -0
- paddle_billing/Entities/Discount.py +51 -0
- paddle_billing/Entities/Discounts/DiscountStatus.py +8 -0
- paddle_billing/Entities/Discounts/DiscountType.py +7 -0
- paddle_billing/Entities/Discounts/__init__.py +2 -0
- paddle_billing/Entities/Entity.py +12 -0
- paddle_billing/Entities/Event.py +51 -0
- paddle_billing/Entities/EventType.py +23 -0
- paddle_billing/Entities/Events/EventTypeName.py +52 -0
- paddle_billing/Entities/Events/__init__.py +1 -0
- paddle_billing/Entities/Notification.py +42 -0
- paddle_billing/Entities/NotificationLog.py +25 -0
- paddle_billing/Entities/NotificationSetting.py +34 -0
- paddle_billing/Entities/NotificationSettings/NotificationSettingType.py +6 -0
- paddle_billing/Entities/NotificationSettings/__init__.py +1 -0
- paddle_billing/Entities/Notifications/NotificationOrigin.py +6 -0
- paddle_billing/Entities/Notifications/NotificationPayout.py +24 -0
- paddle_billing/Entities/Notifications/NotificationPayoutStatus.py +6 -0
- paddle_billing/Entities/Notifications/NotificationStatus.py +8 -0
- paddle_billing/Entities/Notifications/__init__.py +4 -0
- paddle_billing/Entities/Price.py +68 -0
- paddle_billing/Entities/PricePreview.py +34 -0
- paddle_billing/Entities/PricingPreviews/PricePreviewDetails.py +15 -0
- paddle_billing/Entities/PricingPreviews/PricePreviewDiscounts.py +20 -0
- paddle_billing/Entities/PricingPreviews/PricePreviewItem.py +16 -0
- paddle_billing/Entities/PricingPreviews/PricePreviewLineItem.py +38 -0
- paddle_billing/Entities/PricingPreviews/PricePreviewTotalsFormatted.py +20 -0
- paddle_billing/Entities/PricingPreviews/PricePreviewUnitTotalsFormatted.py +20 -0
- paddle_billing/Entities/PricingPreviews/__init__.py +6 -0
- paddle_billing/Entities/Product.py +45 -0
- paddle_billing/Entities/Report.py +32 -0
- paddle_billing/Entities/ReportCSV.py +13 -0
- paddle_billing/Entities/Reports/ReportFilter.py +20 -0
- paddle_billing/Entities/Reports/ReportFilterName.py +17 -0
- paddle_billing/Entities/Reports/ReportFilterOperator.py +6 -0
- paddle_billing/Entities/Reports/ReportStatus.py +8 -0
- paddle_billing/Entities/Reports/ReportType.py +10 -0
- paddle_billing/Entities/Reports/__init__.py +5 -0
- paddle_billing/Entities/Shared/Action.py +10 -0
- paddle_billing/Entities/Shared/AddressPreview.py +18 -0
- paddle_billing/Entities/Shared/AdjustmentItemTotals.py +18 -0
- paddle_billing/Entities/Shared/AdjustmentProration.py +18 -0
- paddle_billing/Entities/Shared/AdjustmentStatus.py +8 -0
- paddle_billing/Entities/Shared/AdjustmentTimePeriod.py +17 -0
- paddle_billing/Entities/Shared/AdjustmentTotals.py +26 -0
- paddle_billing/Entities/Shared/AdjustmentType.py +8 -0
- paddle_billing/Entities/Shared/AvailablePaymentMethods.py +11 -0
- paddle_billing/Entities/Shared/BillingDetails.py +22 -0
- paddle_billing/Entities/Shared/BillingDetailsUpdate.py +22 -0
- paddle_billing/Entities/Shared/Card.py +24 -0
- paddle_billing/Entities/Shared/CatalogType.py +6 -0
- paddle_billing/Entities/Shared/ChargebackFee.py +18 -0
- paddle_billing/Entities/Shared/Checkout.py +12 -0
- paddle_billing/Entities/Shared/CollectionMode.py +6 -0
- paddle_billing/Entities/Shared/Contacts.py +16 -0
- paddle_billing/Entities/Shared/CountryCode.py +233 -0
- paddle_billing/Entities/Shared/CurrencyCode.py +34 -0
- paddle_billing/Entities/Shared/CurrencyCodeAdjustments.py +7 -0
- paddle_billing/Entities/Shared/CurrencyCodePayouts.py +17 -0
- paddle_billing/Entities/Shared/CustomData.py +10 -0
- paddle_billing/Entities/Shared/Data.py +9 -0
- paddle_billing/Entities/Shared/ErrorCode.py +21 -0
- paddle_billing/Entities/Shared/ImportMeta.py +16 -0
- paddle_billing/Entities/Shared/Interval.py +8 -0
- paddle_billing/Entities/Shared/Meta.py +7 -0
- paddle_billing/Entities/Shared/MetaPaginated.py +18 -0
- paddle_billing/Entities/Shared/MethodDetails.py +19 -0
- paddle_billing/Entities/Shared/Money.py +28 -0
- paddle_billing/Entities/Shared/Original.py +18 -0
- paddle_billing/Entities/Shared/Pagination.py +20 -0
- paddle_billing/Entities/Shared/PaymentAttemptStatus.py +13 -0
- paddle_billing/Entities/Shared/PaymentMethodType.py +14 -0
- paddle_billing/Entities/Shared/PayoutTotalsAdjustment.py +29 -0
- paddle_billing/Entities/Shared/PriceQuantity.py +16 -0
- paddle_billing/Entities/Shared/Status.py +6 -0
- paddle_billing/Entities/Shared/TaxCategory.py +13 -0
- paddle_billing/Entities/Shared/TaxMode.py +7 -0
- paddle_billing/Entities/Shared/TaxRatesUsed.py +18 -0
- paddle_billing/Entities/Shared/TimePeriod.py +18 -0
- paddle_billing/Entities/Shared/Totals.py +20 -0
- paddle_billing/Entities/Shared/TransactionDetailsPreview.py +22 -0
- paddle_billing/Entities/Shared/TransactionLineItemPreview.py +28 -0
- paddle_billing/Entities/Shared/TransactionOrigin.py +10 -0
- paddle_billing/Entities/Shared/TransactionPaymentAttempt.py +35 -0
- paddle_billing/Entities/Shared/TransactionPayoutTotals.py +36 -0
- paddle_billing/Entities/Shared/TransactionPayoutTotalsAdjusted.py +29 -0
- paddle_billing/Entities/Shared/TransactionStatus.py +11 -0
- paddle_billing/Entities/Shared/TransactionTotals.py +36 -0
- paddle_billing/Entities/Shared/TransactionTotalsAdjusted.py +28 -0
- paddle_billing/Entities/Shared/UnitPriceOverride.py +19 -0
- paddle_billing/Entities/Shared/UnitTotals.py +20 -0
- paddle_billing/Entities/Shared/__init__.py +56 -0
- paddle_billing/Entities/Subscription.py +86 -0
- paddle_billing/Entities/SubscriptionPreview.py +79 -0
- paddle_billing/Entities/Subscriptions/SubscriptionAdjustmentItem.py +24 -0
- paddle_billing/Entities/Subscriptions/SubscriptionAdjustmentPreview.py +22 -0
- paddle_billing/Entities/Subscriptions/SubscriptionCharge.py +18 -0
- paddle_billing/Entities/Subscriptions/SubscriptionCredit.py +18 -0
- paddle_billing/Entities/Subscriptions/SubscriptionDetails.py +34 -0
- paddle_billing/Entities/Subscriptions/SubscriptionDiscount.py +19 -0
- paddle_billing/Entities/Subscriptions/SubscriptionEffectiveFrom.py +6 -0
- paddle_billing/Entities/Subscriptions/SubscriptionItem.py +35 -0
- paddle_billing/Entities/Subscriptions/SubscriptionItemStatus.py +7 -0
- paddle_billing/Entities/Subscriptions/SubscriptionItems.py +20 -0
- paddle_billing/Entities/Subscriptions/SubscriptionItemsWithPrice.py +19 -0
- paddle_billing/Entities/Subscriptions/SubscriptionManagementUrls.py +16 -0
- paddle_billing/Entities/Subscriptions/SubscriptionNextTransaction.py +23 -0
- paddle_billing/Entities/Subscriptions/SubscriptionNonCatalogPrice.py +30 -0
- paddle_billing/Entities/Subscriptions/SubscriptionNonCatalogPriceWithProduct.py +32 -0
- paddle_billing/Entities/Subscriptions/SubscriptionNonCatalogProduct.py +26 -0
- paddle_billing/Entities/Subscriptions/SubscriptionOnPaymentFailure.py +6 -0
- paddle_billing/Entities/Subscriptions/SubscriptionPreviewSubscriptionUpdateSummary.py +22 -0
- paddle_billing/Entities/Subscriptions/SubscriptionPrice.py +28 -0
- paddle_billing/Entities/Subscriptions/SubscriptionProration.py +18 -0
- paddle_billing/Entities/Subscriptions/SubscriptionProrationBillingMode.py +9 -0
- paddle_billing/Entities/Subscriptions/SubscriptionResult.py +22 -0
- paddle_billing/Entities/Subscriptions/SubscriptionResultAction.py +6 -0
- paddle_billing/Entities/Subscriptions/SubscriptionResumeEffectiveFrom.py +5 -0
- paddle_billing/Entities/Subscriptions/SubscriptionScheduledChange.py +21 -0
- paddle_billing/Entities/Subscriptions/SubscriptionScheduledChangeAction.py +7 -0
- paddle_billing/Entities/Subscriptions/SubscriptionStatus.py +10 -0
- paddle_billing/Entities/Subscriptions/SubscriptionTimePeriod.py +17 -0
- paddle_billing/Entities/Subscriptions/SubscriptionTransactionItem.py +23 -0
- paddle_billing/Entities/Subscriptions/SubscriptionTransactionLineItem.py +33 -0
- paddle_billing/Entities/Subscriptions/SubscriptionUpdateItem.py +16 -0
- paddle_billing/Entities/Subscriptions/__init__.py +31 -0
- paddle_billing/Entities/Transaction.py +98 -0
- paddle_billing/Entities/TransactionData.py +15 -0
- paddle_billing/Entities/TransactionPreview.py +40 -0
- paddle_billing/Entities/Transactions/TransactionAdjustmentsTotals.py +30 -0
- paddle_billing/Entities/Transactions/TransactionBreakdown.py +18 -0
- paddle_billing/Entities/Transactions/TransactionCardType.py +14 -0
- paddle_billing/Entities/Transactions/TransactionCreateItem.py +16 -0
- paddle_billing/Entities/Transactions/TransactionCreateItemWithPrice.py +11 -0
- paddle_billing/Entities/Transactions/TransactionDetails.py +32 -0
- paddle_billing/Entities/Transactions/TransactionItem.py +24 -0
- paddle_billing/Entities/Transactions/TransactionItemPreviewWithNonCatalogPrice.py +21 -0
- paddle_billing/Entities/Transactions/TransactionItemPreviewWithPrice.py +24 -0
- paddle_billing/Entities/Transactions/TransactionItemPreviewWithPriceId.py +18 -0
- paddle_billing/Entities/Transactions/TransactionLineItem.py +35 -0
- paddle_billing/Entities/Transactions/TransactionNonCatalogPrice.py +39 -0
- paddle_billing/Entities/Transactions/TransactionNonCatalogPriceWithProduct.py +41 -0
- paddle_billing/Entities/Transactions/TransactionNonCatalogProduct.py +25 -0
- paddle_billing/Entities/Transactions/TransactionProration.py +18 -0
- paddle_billing/Entities/Transactions/TransactionTimePeriod.py +17 -0
- paddle_billing/Entities/Transactions/TransactionUpdateTransactionItem.py +8 -0
- paddle_billing/Entities/Transactions/__init__.py +20 -0
- paddle_billing/Entities/__init__.py +0 -0
- paddle_billing/EnumStringify.py +2 -0
- paddle_billing/Environment.py +14 -0
- paddle_billing/Exceptions/ApiError.py +28 -0
- paddle_billing/Exceptions/ApiErrors/AddressApiError.py +5 -0
- paddle_billing/Exceptions/ApiErrors/AdjustmentApiError.py +5 -0
- paddle_billing/Exceptions/ApiErrors/BusinessApiError.py +5 -0
- paddle_billing/Exceptions/ApiErrors/CustomerApiError.py +5 -0
- paddle_billing/Exceptions/ApiErrors/DiscountApiError.py +5 -0
- paddle_billing/Exceptions/ApiErrors/PriceApiError.py +5 -0
- paddle_billing/Exceptions/ApiErrors/ProductApiError.py +5 -0
- paddle_billing/Exceptions/ApiErrors/SubscriptionApiError.py +5 -0
- paddle_billing/Exceptions/ApiErrors/TransactionApiError.py +5 -0
- paddle_billing/Exceptions/ApiErrors/__init__.py +0 -0
- paddle_billing/Exceptions/FieldError.py +8 -0
- paddle_billing/Exceptions/SdkException.py +2 -0
- paddle_billing/Exceptions/SdkExceptions/InvalidArgumentException.py +8 -0
- paddle_billing/Exceptions/SdkExceptions/MalformedResponse.py +7 -0
- paddle_billing/Exceptions/SdkExceptions/__init__.py +0 -0
- paddle_billing/Exceptions/__init__.py +0 -0
- paddle_billing/FiltersNone.py +8 -0
- paddle_billing/FiltersUndefined.py +11 -0
- paddle_billing/HasParameters.py +11 -0
- paddle_billing/Logger/Formatter.py +18 -0
- paddle_billing/Logger/NullHandler.py +6 -0
- paddle_billing/Logger/__init__.py +30 -0
- paddle_billing/Notifications/Entities/Address.py +44 -0
- paddle_billing/Notifications/Entities/Adjustment.py +45 -0
- paddle_billing/Notifications/Entities/Adjustments/AdjustmentItem.py +26 -0
- paddle_billing/Notifications/Entities/Adjustments/__init__.py +1 -0
- paddle_billing/Notifications/Entities/Business.py +39 -0
- paddle_billing/Notifications/Entities/Businesses/BusinessesContacts.py +16 -0
- paddle_billing/Notifications/Entities/Businesses/__init__.py +1 -0
- paddle_billing/Notifications/Entities/Customer.py +36 -0
- paddle_billing/Notifications/Entities/DateTime.py +43 -0
- paddle_billing/Notifications/Entities/Discount.py +51 -0
- paddle_billing/Notifications/Entities/Discounts/DiscountStatus.py +8 -0
- paddle_billing/Notifications/Entities/Discounts/DiscountType.py +7 -0
- paddle_billing/Notifications/Entities/Discounts/__init__.py +2 -0
- paddle_billing/Notifications/Entities/Entity.py +12 -0
- paddle_billing/Notifications/Entities/Payout.py +24 -0
- paddle_billing/Notifications/Entities/Payouts/PayoutStatus.py +6 -0
- paddle_billing/Notifications/Entities/Payouts/__init__.py +1 -0
- paddle_billing/Notifications/Entities/Price.py +66 -0
- paddle_billing/Notifications/Entities/Product.py +45 -0
- paddle_billing/Notifications/Entities/Report.py +32 -0
- paddle_billing/Notifications/Entities/Reports/ReportFilter.py +20 -0
- paddle_billing/Notifications/Entities/Reports/ReportFilterName.py +17 -0
- paddle_billing/Notifications/Entities/Reports/ReportFilterOperator.py +6 -0
- paddle_billing/Notifications/Entities/Reports/ReportStatus.py +8 -0
- paddle_billing/Notifications/Entities/Reports/ReportType.py +10 -0
- paddle_billing/Notifications/Entities/Reports/__init__.py +5 -0
- paddle_billing/Notifications/Entities/Shared/Action.py +10 -0
- paddle_billing/Notifications/Entities/Shared/AddressPreview.py +18 -0
- paddle_billing/Notifications/Entities/Shared/AdjustmentItemTotals.py +18 -0
- paddle_billing/Notifications/Entities/Shared/AdjustmentProration.py +18 -0
- paddle_billing/Notifications/Entities/Shared/AdjustmentStatus.py +8 -0
- paddle_billing/Notifications/Entities/Shared/AdjustmentTimePeriod.py +17 -0
- paddle_billing/Notifications/Entities/Shared/AdjustmentTotals.py +26 -0
- paddle_billing/Notifications/Entities/Shared/AdjustmentType.py +8 -0
- paddle_billing/Notifications/Entities/Shared/AvailablePaymentMethods.py +11 -0
- paddle_billing/Notifications/Entities/Shared/BillingDetails.py +22 -0
- paddle_billing/Notifications/Entities/Shared/Card.py +24 -0
- paddle_billing/Notifications/Entities/Shared/CatalogType.py +6 -0
- paddle_billing/Notifications/Entities/Shared/ChargebackFee.py +18 -0
- paddle_billing/Notifications/Entities/Shared/Checkout.py +12 -0
- paddle_billing/Notifications/Entities/Shared/CollectionMode.py +6 -0
- paddle_billing/Notifications/Entities/Shared/CountryCode.py +233 -0
- paddle_billing/Notifications/Entities/Shared/CurrencyCode.py +34 -0
- paddle_billing/Notifications/Entities/Shared/CurrencyCodeAdjustments.py +7 -0
- paddle_billing/Notifications/Entities/Shared/CurrencyCodePayouts.py +17 -0
- paddle_billing/Notifications/Entities/Shared/CustomData.py +10 -0
- paddle_billing/Notifications/Entities/Shared/Data.py +9 -0
- paddle_billing/Notifications/Entities/Shared/ErrorCode.py +21 -0
- paddle_billing/Notifications/Entities/Shared/ImportMeta.py +16 -0
- paddle_billing/Notifications/Entities/Shared/Interval.py +8 -0
- paddle_billing/Notifications/Entities/Shared/MethodDetails.py +19 -0
- paddle_billing/Notifications/Entities/Shared/Money.py +28 -0
- paddle_billing/Notifications/Entities/Shared/Original.py +18 -0
- paddle_billing/Notifications/Entities/Shared/PaymentAttemptStatus.py +13 -0
- paddle_billing/Notifications/Entities/Shared/PaymentMethodType.py +15 -0
- paddle_billing/Notifications/Entities/Shared/PayoutTotalsAdjustment.py +29 -0
- paddle_billing/Notifications/Entities/Shared/PriceQuantity.py +16 -0
- paddle_billing/Notifications/Entities/Shared/Status.py +6 -0
- paddle_billing/Notifications/Entities/Shared/TaxCategory.py +13 -0
- paddle_billing/Notifications/Entities/Shared/TaxMode.py +7 -0
- paddle_billing/Notifications/Entities/Shared/TaxRatesUsed.py +18 -0
- paddle_billing/Notifications/Entities/Shared/TimePeriod.py +18 -0
- paddle_billing/Notifications/Entities/Shared/Totals.py +20 -0
- paddle_billing/Notifications/Entities/Shared/TransactionOrigin.py +10 -0
- paddle_billing/Notifications/Entities/Shared/TransactionPaymentAttempt.py +35 -0
- paddle_billing/Notifications/Entities/Shared/TransactionPayoutTotals.py +36 -0
- paddle_billing/Notifications/Entities/Shared/TransactionPayoutTotalsAdjusted.py +29 -0
- paddle_billing/Notifications/Entities/Shared/TransactionStatus.py +11 -0
- paddle_billing/Notifications/Entities/Shared/TransactionTotals.py +36 -0
- paddle_billing/Notifications/Entities/Shared/TransactionTotalsAdjusted.py +28 -0
- paddle_billing/Notifications/Entities/Shared/UnitPriceOverride.py +19 -0
- paddle_billing/Notifications/Entities/Shared/UnitTotals.py +20 -0
- paddle_billing/Notifications/Entities/Shared/__init__.py +46 -0
- paddle_billing/Notifications/Entities/Subscription.py +76 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionAdjustmentItem.py +24 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionCharge.py +18 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionCredit.py +18 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionDiscount.py +19 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionEffectiveFrom.py +6 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionItem.py +35 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionItemStatus.py +7 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionOnPaymentFailure.py +6 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionPrice.py +28 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionScheduledChange.py +21 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionScheduledChangeAction.py +7 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionStatus.py +10 -0
- paddle_billing/Notifications/Entities/Subscriptions/SubscriptionTimePeriod.py +17 -0
- paddle_billing/Notifications/Entities/Subscriptions/__init__.py +13 -0
- paddle_billing/Notifications/Entities/Transaction.py +75 -0
- paddle_billing/Notifications/Entities/Transactions/TransactionAdjustmentsTotals.py +30 -0
- paddle_billing/Notifications/Entities/Transactions/TransactionBreakdown.py +18 -0
- paddle_billing/Notifications/Entities/Transactions/TransactionCardType.py +14 -0
- paddle_billing/Notifications/Entities/Transactions/TransactionDetails.py +32 -0
- paddle_billing/Notifications/Entities/Transactions/TransactionItem.py +24 -0
- paddle_billing/Notifications/Entities/Transactions/TransactionLineItem.py +35 -0
- paddle_billing/Notifications/Entities/Transactions/TransactionProration.py +18 -0
- paddle_billing/Notifications/Entities/Transactions/TransactionTimePeriod.py +17 -0
- paddle_billing/Notifications/Entities/Transactions/__init__.py +11 -0
- paddle_billing/Notifications/Entities/__init__.py +0 -0
- paddle_billing/Notifications/Events/AddressCreated.py +17 -0
- paddle_billing/Notifications/Events/AddressUpdated.py +17 -0
- paddle_billing/Notifications/Events/AdjustmentCreated.py +17 -0
- paddle_billing/Notifications/Events/AdjustmentUpdated.py +17 -0
- paddle_billing/Notifications/Events/BusinessCreated.py +17 -0
- paddle_billing/Notifications/Events/BusinessUpdated.py +17 -0
- paddle_billing/Notifications/Events/CustomerCreated.py +17 -0
- paddle_billing/Notifications/Events/CustomerUpdated.py +17 -0
- paddle_billing/Notifications/Events/DiscountCreated.py +17 -0
- paddle_billing/Notifications/Events/DiscountImported.py +17 -0
- paddle_billing/Notifications/Events/DiscountUpdated.py +17 -0
- paddle_billing/Notifications/Events/PayoutCreated.py +17 -0
- paddle_billing/Notifications/Events/PayoutPaid.py +17 -0
- paddle_billing/Notifications/Events/PriceCreated.py +17 -0
- paddle_billing/Notifications/Events/PriceUpdated.py +17 -0
- paddle_billing/Notifications/Events/ProductCreated.py +17 -0
- paddle_billing/Notifications/Events/ProductUpdated.py +17 -0
- paddle_billing/Notifications/Events/ReportCreated.py +17 -0
- paddle_billing/Notifications/Events/ReportUpdated.py +17 -0
- paddle_billing/Notifications/Events/SubscriptionActivated.py +17 -0
- paddle_billing/Notifications/Events/SubscriptionCanceled.py +17 -0
- paddle_billing/Notifications/Events/SubscriptionCreated.py +17 -0
- paddle_billing/Notifications/Events/SubscriptionImported.py +17 -0
- paddle_billing/Notifications/Events/SubscriptionPastDue.py +17 -0
- paddle_billing/Notifications/Events/SubscriptionPaused.py +17 -0
- paddle_billing/Notifications/Events/SubscriptionResumed.py +17 -0
- paddle_billing/Notifications/Events/SubscriptionTrialing.py +17 -0
- paddle_billing/Notifications/Events/SubscriptionUpdated.py +17 -0
- paddle_billing/Notifications/Events/TransactionBilled.py +17 -0
- paddle_billing/Notifications/Events/TransactionCanceled.py +17 -0
- paddle_billing/Notifications/Events/TransactionCompleted.py +16 -0
- paddle_billing/Notifications/Events/TransactionCreated.py +17 -0
- paddle_billing/Notifications/Events/TransactionPaid.py +17 -0
- paddle_billing/Notifications/Events/TransactionPastDue.py +17 -0
- paddle_billing/Notifications/Events/TransactionPaymentFailed.py +17 -0
- paddle_billing/Notifications/Events/TransactionReady.py +17 -0
- paddle_billing/Notifications/Events/TransactionUpdated.py +17 -0
- paddle_billing/Notifications/Events/__init__.py +0 -0
- paddle_billing/Notifications/PaddleSignature.py +128 -0
- paddle_billing/Notifications/Secret.py +8 -0
- paddle_billing/Notifications/Verifier.py +55 -0
- paddle_billing/Notifications/__init__.py +3 -0
- paddle_billing/Options.py +10 -0
- paddle_billing/PaddleStrEnum.py +44 -0
- paddle_billing/RecursivelyRemoveKey.py +14 -0
- paddle_billing/Resources/Addresses/AddressesClient.py +58 -0
- paddle_billing/Resources/Addresses/Operations/CreateAddress.py +20 -0
- paddle_billing/Resources/Addresses/Operations/ListAddresses.py +42 -0
- paddle_billing/Resources/Addresses/Operations/UpdateAddress.py +21 -0
- paddle_billing/Resources/Addresses/Operations/__init__.py +3 -0
- paddle_billing/Resources/Addresses/__init__.py +0 -0
- paddle_billing/Resources/Adjustments/AdjustmentsClient.py +36 -0
- paddle_billing/Resources/Adjustments/Operations/Create/AdjustmentItem.py +11 -0
- paddle_billing/Resources/Adjustments/Operations/Create/__init__.py +0 -0
- paddle_billing/Resources/Adjustments/Operations/CreateAdjustment.py +28 -0
- paddle_billing/Resources/Adjustments/Operations/ListAdjustments.py +60 -0
- paddle_billing/Resources/Adjustments/Operations/__init__.py +3 -0
- paddle_billing/Resources/Adjustments/__init__.py +0 -0
- paddle_billing/Resources/Businesses/BusinessesClient.py +58 -0
- paddle_billing/Resources/Businesses/Operations/CreateBusiness.py +17 -0
- paddle_billing/Resources/Businesses/Operations/ListBusinesses.py +45 -0
- paddle_billing/Resources/Businesses/Operations/UpdateBusiness.py +18 -0
- paddle_billing/Resources/Businesses/Operations/__init__.py +3 -0
- paddle_billing/Resources/Businesses/__init__.py +0 -0
- paddle_billing/Resources/Customers/CustomersClient.py +65 -0
- paddle_billing/Resources/Customers/Operations/CreateCustomer.py +16 -0
- paddle_billing/Resources/Customers/Operations/ListCreditBalances.py +28 -0
- paddle_billing/Resources/Customers/Operations/ListCustomers.py +50 -0
- paddle_billing/Resources/Customers/Operations/UpdateCustomer.py +17 -0
- paddle_billing/Resources/Customers/Operations/__init__.py +4 -0
- paddle_billing/Resources/Customers/__init__.py +0 -0
- paddle_billing/Resources/Discounts/DiscountsClient.py +55 -0
- paddle_billing/Resources/Discounts/Operations/CreateDiscount.py +24 -0
- paddle_billing/Resources/Discounts/Operations/ListDiscounts.py +46 -0
- paddle_billing/Resources/Discounts/Operations/UpdateDiscount.py +25 -0
- paddle_billing/Resources/Discounts/Operations/__init__.py +3 -0
- paddle_billing/Resources/Discounts/__init__.py +0 -0
- paddle_billing/Resources/EventTypes/EventTypesClient.py +22 -0
- paddle_billing/Resources/EventTypes/__init__.py +0 -0
- paddle_billing/Resources/Events/EventsClient.py +26 -0
- paddle_billing/Resources/Events/Operations/ListEvents.py +12 -0
- paddle_billing/Resources/Events/Operations/__init__.py +1 -0
- paddle_billing/Resources/Events/__init__.py +0 -0
- paddle_billing/Resources/NotificationLogs/NotificationLogsClient.py +26 -0
- paddle_billing/Resources/NotificationLogs/Operations/ListNotificationLogs.py +11 -0
- paddle_billing/Resources/NotificationLogs/Operations/__init__.py +1 -0
- paddle_billing/Resources/NotificationLogs/__init__.py +0 -0
- paddle_billing/Resources/NotificationSettings/NotificationSettingsClient.py +54 -0
- paddle_billing/Resources/NotificationSettings/Operations/CreateNotificationSetting.py +21 -0
- paddle_billing/Resources/NotificationSettings/Operations/UpdateNotificationSetting.py +20 -0
- paddle_billing/Resources/NotificationSettings/Operations/__init__.py +2 -0
- paddle_billing/Resources/NotificationSettings/__init__.py +0 -0
- paddle_billing/Resources/Notifications/NotificationsClient.py +44 -0
- paddle_billing/Resources/Notifications/Operations/ListNotifications.py +58 -0
- paddle_billing/Resources/Notifications/Operations/__init__.py +1 -0
- paddle_billing/Resources/Notifications/__init__.py +0 -0
- paddle_billing/Resources/Prices/Operations/CreatePrice.py +23 -0
- paddle_billing/Resources/Prices/Operations/List/Includes.py +5 -0
- paddle_billing/Resources/Prices/Operations/List/__init__.py +0 -0
- paddle_billing/Resources/Prices/Operations/ListPrices.py +62 -0
- paddle_billing/Resources/Prices/Operations/UpdatePrice.py +23 -0
- paddle_billing/Resources/Prices/Operations/__init__.py +4 -0
- paddle_billing/Resources/Prices/PricesClient.py +65 -0
- paddle_billing/Resources/Prices/__init__.py +0 -0
- paddle_billing/Resources/PricingPreviews/Operations/PreviewPrice.py +20 -0
- paddle_billing/Resources/PricingPreviews/Operations/__init__.py +1 -0
- paddle_billing/Resources/PricingPreviews/PricingPreviewsClient.py +20 -0
- paddle_billing/Resources/PricingPreviews/__init__.py +0 -0
- paddle_billing/Resources/Products/Operations/CreateProduct.py +18 -0
- paddle_billing/Resources/Products/Operations/List/Includes.py +5 -0
- paddle_billing/Resources/Products/Operations/List/__init__.py +0 -0
- paddle_billing/Resources/Products/Operations/ListProducts.py +59 -0
- paddle_billing/Resources/Products/Operations/UpdateProduct.py +19 -0
- paddle_billing/Resources/Products/Operations/__init__.py +4 -0
- paddle_billing/Resources/Products/ProductsClient.py +70 -0
- paddle_billing/Resources/Products/__init__.py +0 -0
- paddle_billing/Resources/Reports/Operations/CreateReport.py +27 -0
- paddle_billing/Resources/Reports/Operations/ListReports.py +35 -0
- paddle_billing/Resources/Reports/Operations/__init__.py +2 -0
- paddle_billing/Resources/Reports/ReportsClient.py +51 -0
- paddle_billing/Resources/Reports/__init__.py +0 -0
- paddle_billing/Resources/Shared/Operations/List/Comparator.py +8 -0
- paddle_billing/Resources/Shared/Operations/List/DateComparison.py +31 -0
- paddle_billing/Resources/Shared/Operations/List/OrderBy.py +21 -0
- paddle_billing/Resources/Shared/Operations/List/Pager.py +24 -0
- paddle_billing/Resources/Shared/Operations/List/__init__.py +0 -0
- paddle_billing/Resources/Shared/Operations/__init__.py +4 -0
- paddle_billing/Resources/Shared/__init__.py +0 -0
- paddle_billing/Resources/Subscriptions/Operations/CancelSubscription.py +12 -0
- paddle_billing/Resources/Subscriptions/Operations/CreateOneTimeCharge.py +22 -0
- paddle_billing/Resources/Subscriptions/Operations/Get/Includes.py +6 -0
- paddle_billing/Resources/Subscriptions/Operations/Get/__init__.py +0 -0
- paddle_billing/Resources/Subscriptions/Operations/ListSubscriptions.py +59 -0
- paddle_billing/Resources/Subscriptions/Operations/PauseSubscription.py +19 -0
- paddle_billing/Resources/Subscriptions/Operations/PreviewOneTimeCharge.py +22 -0
- paddle_billing/Resources/Subscriptions/Operations/PreviewUpdateSubscription.py +37 -0
- paddle_billing/Resources/Subscriptions/Operations/ResumeSubscription.py +17 -0
- paddle_billing/Resources/Subscriptions/Operations/Update/SubscriptionDiscount.py +9 -0
- paddle_billing/Resources/Subscriptions/Operations/Update/__init__.py +0 -0
- paddle_billing/Resources/Subscriptions/Operations/UpdateSubscription.py +37 -0
- paddle_billing/Resources/Subscriptions/Operations/__init__.py +10 -0
- paddle_billing/Resources/Subscriptions/SubscriptionsClient.py +121 -0
- paddle_billing/Resources/Subscriptions/__init__.py +0 -0
- paddle_billing/Resources/Transactions/Operations/CreateTransaction.py +25 -0
- paddle_billing/Resources/Transactions/Operations/List/Includes.py +11 -0
- paddle_billing/Resources/Transactions/Operations/List/Origin.py +10 -0
- paddle_billing/Resources/Transactions/Operations/List/__init__.py +0 -0
- paddle_billing/Resources/Transactions/Operations/ListTransactions.py +86 -0
- paddle_billing/Resources/Transactions/Operations/PreviewTransaction.py +24 -0
- paddle_billing/Resources/Transactions/Operations/UpdateTransaction.py +25 -0
- paddle_billing/Resources/Transactions/Operations/__init__.py +6 -0
- paddle_billing/Resources/Transactions/TransactionsClient.py +90 -0
- paddle_billing/Resources/Transactions/__init__.py +0 -0
- paddle_billing/Resources/__init__.py +0 -0
- paddle_billing/ResponseParser.py +65 -0
- paddle_billing/Undefined.py +2 -0
- paddle_billing/__init__.py +4 -0
- paddle_python_sdk-0.1.0.dist-info/LICENSE +190 -0
- paddle_python_sdk-0.1.0.dist-info/METADATA +184 -0
- paddle_python_sdk-0.1.0.dist-info/RECORD +517 -0
- paddle_python_sdk-0.1.0.dist-info/WHEEL +5 -0
- paddle_python_sdk-0.1.0.dist-info/top_level.txt +3 -0
- tests/Functional/Resources/Addresses/__init__.py +0 -0
- tests/Functional/Resources/Addresses/test_AddressesClient.py +274 -0
- tests/Functional/Resources/Adjustments/__init__.py +0 -0
- tests/Functional/Resources/Adjustments/test_AdjustmentsClient.py +188 -0
- tests/Functional/Resources/Businesses/__init__.py +0 -0
- tests/Functional/Resources/Businesses/test_BusinessesClient.py +279 -0
- tests/Functional/Resources/Customers/__init__.py +0 -0
- tests/Functional/Resources/Customers/test_CustomersClient.py +291 -0
- tests/Functional/Resources/Discounts/__init__.py +0 -0
- tests/Functional/Resources/Discounts/test_DiscountsClient.py +280 -0
- tests/Functional/Resources/EventTypes/__init__.py +0 -0
- tests/Functional/Resources/EventTypes/test_EventTypesClient.py +43 -0
- tests/Functional/Resources/Events/__init__.py +0 -0
- tests/Functional/Resources/Events/test_EventsClient.py +64 -0
- tests/Functional/Resources/NotificationLogs/__init__.py +0 -0
- tests/Functional/Resources/NotificationLogs/test_NotificationLogsClient.py +68 -0
- tests/Functional/Resources/NotificationSettings/__init__.py +0 -0
- tests/Functional/Resources/NotificationSettings/test_NotificationSettingsClient.py +287 -0
- tests/Functional/Resources/Notifications/__init__.py +0 -0
- tests/Functional/Resources/Notifications/test_NotificationsClient.py +202 -0
- tests/Functional/Resources/Prices/__init__.py +0 -0
- tests/Functional/Resources/Prices/test_PricesClient.py +307 -0
- tests/Functional/Resources/PricingPreviews/__init__.py +0 -0
- tests/Functional/Resources/PricingPreviews/test_PricingPreviewsClient.py +92 -0
- tests/Functional/Resources/Products/__init__.py +0 -0
- tests/Functional/Resources/Products/test_ProductsClient.py +271 -0
- tests/Functional/Resources/Reports/__init__.py +0 -0
- tests/Functional/Resources/Reports/test_ReportsClient.py +197 -0
- tests/Functional/Resources/Subscriptions/__init__.py +0 -0
- tests/Functional/Resources/Subscriptions/test_SubscriptionsClient.py +758 -0
- tests/Functional/Resources/Transactions/__init__.py +0 -0
- tests/Functional/Resources/Transactions/test_TransactionsClient.py +585 -0
- tests/Functional/Resources/__init__.py +0 -0
- tests/Functional/__init__.py +0 -0
- tests/Unit/Logger/__init__.py +0 -0
- tests/Unit/Logger/test_Logger.py +10 -0
- tests/Unit/Notification/__init__.py +0 -0
- tests/Unit/Notification/test_Verifier.py +63 -0
- tests/Unit/PaddleStrEnum/__init__.py +0 -0
- tests/Unit/PaddleStrEnum/test_PaddleStrEnum.py +52 -0
- tests/Unit/__init__.py +0 -0
- tests/Utils/FakeResponse.py +6 -0
- tests/Utils/ReadsFixture.py +33 -0
- tests/Utils/TestClient.py +48 -0
- tests/Utils/__init__.py +1 -0
- tests/__init__.py +0 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
from paddle_billing.Entities.Shared.Action import Action
|
|
2
|
+
from paddle_billing.Entities.Shared.AddressPreview import AddressPreview
|
|
3
|
+
from paddle_billing.Entities.Shared.AdjustmentItemTotals import AdjustmentItemTotals
|
|
4
|
+
from paddle_billing.Entities.Shared.AdjustmentProration import AdjustmentProration
|
|
5
|
+
from paddle_billing.Entities.Shared.AdjustmentStatus import AdjustmentStatus
|
|
6
|
+
from paddle_billing.Entities.Shared.AdjustmentTimePeriod import AdjustmentTimePeriod
|
|
7
|
+
from paddle_billing.Entities.Shared.AdjustmentTotals import AdjustmentTotals
|
|
8
|
+
from paddle_billing.Entities.Shared.AdjustmentType import AdjustmentType
|
|
9
|
+
from paddle_billing.Entities.Shared.AvailablePaymentMethods import AvailablePaymentMethods
|
|
10
|
+
from paddle_billing.Entities.Shared.BillingDetails import BillingDetails
|
|
11
|
+
from paddle_billing.Entities.Shared.BillingDetailsUpdate import BillingDetailsUpdate
|
|
12
|
+
from paddle_billing.Entities.Shared.Card import Card
|
|
13
|
+
from paddle_billing.Entities.Shared.CatalogType import CatalogType
|
|
14
|
+
from paddle_billing.Entities.Shared.ChargebackFee import ChargebackFee
|
|
15
|
+
from paddle_billing.Entities.Shared.Checkout import Checkout
|
|
16
|
+
from paddle_billing.Entities.Shared.CollectionMode import CollectionMode
|
|
17
|
+
from paddle_billing.Entities.Shared.Contacts import Contacts
|
|
18
|
+
from paddle_billing.Entities.Shared.CountryCode import CountryCode
|
|
19
|
+
from paddle_billing.Entities.Shared.CurrencyCode import CurrencyCode
|
|
20
|
+
from paddle_billing.Entities.Shared.CurrencyCodeAdjustments import CurrencyCodeAdjustments
|
|
21
|
+
from paddle_billing.Entities.Shared.CurrencyCodePayouts import CurrencyCodePayouts
|
|
22
|
+
from paddle_billing.Entities.Shared.CustomData import CustomData
|
|
23
|
+
from paddle_billing.Entities.Shared.Data import Data
|
|
24
|
+
from paddle_billing.Entities.Shared.ErrorCode import ErrorCode
|
|
25
|
+
from paddle_billing.Entities.Shared.ImportMeta import ImportMeta
|
|
26
|
+
from paddle_billing.Entities.Shared.Interval import Interval
|
|
27
|
+
from paddle_billing.Entities.Shared.Meta import Meta
|
|
28
|
+
from paddle_billing.Entities.Shared.MetaPaginated import MetaPaginated
|
|
29
|
+
from paddle_billing.Entities.Shared.MethodDetails import MethodDetails
|
|
30
|
+
from paddle_billing.Entities.Shared.Money import Money
|
|
31
|
+
from paddle_billing.Entities.Shared.Original import Original
|
|
32
|
+
from paddle_billing.Entities.Shared.Pagination import Pagination
|
|
33
|
+
from paddle_billing.Entities.Shared.PaymentAttemptStatus import PaymentAttemptStatus
|
|
34
|
+
from paddle_billing.Entities.Shared.PaymentMethodType import PaymentMethodType
|
|
35
|
+
from paddle_billing.Entities.Shared.PayoutTotalsAdjustment import PayoutTotalsAdjustment
|
|
36
|
+
from paddle_billing.Entities.Shared.PriceQuantity import PriceQuantity
|
|
37
|
+
from paddle_billing.Entities.Shared.Status import Status
|
|
38
|
+
from paddle_billing.Entities.Shared.TransactionStatus import TransactionStatus
|
|
39
|
+
from paddle_billing.Entities.Shared.TaxCategory import TaxCategory
|
|
40
|
+
from paddle_billing.Entities.Shared.TaxMode import TaxMode
|
|
41
|
+
from paddle_billing.Entities.Shared.TaxRatesUsed import TaxRatesUsed
|
|
42
|
+
from paddle_billing.Entities.Shared.TimePeriod import TimePeriod
|
|
43
|
+
from paddle_billing.Entities.Shared.Totals import Totals
|
|
44
|
+
from paddle_billing.Entities.Shared.TransactionOrigin import TransactionOrigin
|
|
45
|
+
from paddle_billing.Entities.Shared.TransactionPaymentAttempt import TransactionPaymentAttempt
|
|
46
|
+
from paddle_billing.Entities.Shared.TransactionPayoutTotals import TransactionPayoutTotals
|
|
47
|
+
from paddle_billing.Entities.Shared.TransactionPayoutTotalsAdjusted import TransactionPayoutTotalsAdjusted
|
|
48
|
+
from paddle_billing.Entities.Shared.TransactionTotals import TransactionTotals
|
|
49
|
+
from paddle_billing.Entities.Shared.TransactionTotalsAdjusted import TransactionTotalsAdjusted
|
|
50
|
+
from paddle_billing.Entities.Shared.UnitPriceOverride import UnitPriceOverride
|
|
51
|
+
from paddle_billing.Entities.Shared.UnitTotals import UnitTotals
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
# These two cause circular imports
|
|
55
|
+
# from paddle_billing.Entities.Shared.TransactionDetailsPreview import TransactionDetailsPreview
|
|
56
|
+
# from paddle_billing.Entities.Shared.TransactionLineItemPreview import TransactionLineItemPreview
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
from datetime import datetime
|
|
4
|
+
|
|
5
|
+
from paddle_billing.Entities.Entity import Entity
|
|
6
|
+
|
|
7
|
+
from paddle_billing.Entities.Shared.TransactionDetailsPreview import TransactionDetailsPreview
|
|
8
|
+
from paddle_billing.Entities.Shared import (
|
|
9
|
+
BillingDetails,
|
|
10
|
+
CollectionMode,
|
|
11
|
+
CurrencyCode,
|
|
12
|
+
CustomData,
|
|
13
|
+
ImportMeta,
|
|
14
|
+
TimePeriod,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
from paddle_billing.Entities.Subscriptions import (
|
|
18
|
+
SubscriptionDiscount,
|
|
19
|
+
SubscriptionItem,
|
|
20
|
+
SubscriptionManagementUrls,
|
|
21
|
+
SubscriptionNextTransaction,
|
|
22
|
+
SubscriptionScheduledChange,
|
|
23
|
+
SubscriptionStatus,
|
|
24
|
+
SubscriptionTimePeriod,
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@dataclass
|
|
29
|
+
class Subscription(Entity):
|
|
30
|
+
id: str
|
|
31
|
+
status: SubscriptionStatus
|
|
32
|
+
customer_id: str
|
|
33
|
+
address_id: str
|
|
34
|
+
business_id: str | None
|
|
35
|
+
currency_code: CurrencyCode
|
|
36
|
+
created_at: datetime
|
|
37
|
+
updated_at: datetime
|
|
38
|
+
started_at: datetime | None
|
|
39
|
+
first_billed_at: datetime | None
|
|
40
|
+
next_billed_at: datetime | None
|
|
41
|
+
paused_at: datetime | None
|
|
42
|
+
canceled_at: datetime | None
|
|
43
|
+
discount: SubscriptionDiscount | None
|
|
44
|
+
collection_mode: CollectionMode
|
|
45
|
+
billing_details: BillingDetails | None
|
|
46
|
+
current_billing_period: SubscriptionTimePeriod | None
|
|
47
|
+
billing_cycle: TimePeriod
|
|
48
|
+
scheduled_change: SubscriptionScheduledChange | None
|
|
49
|
+
management_urls: SubscriptionManagementUrls | None
|
|
50
|
+
items: list[SubscriptionItem]
|
|
51
|
+
next_transaction: SubscriptionNextTransaction | None
|
|
52
|
+
recurring_transaction_details: TransactionDetailsPreview | None
|
|
53
|
+
import_meta: ImportMeta | None = None
|
|
54
|
+
custom_data: CustomData | None = None
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
@classmethod
|
|
58
|
+
def from_dict(cls, data: dict) -> Subscription:
|
|
59
|
+
return Subscription(
|
|
60
|
+
id = data['id'],
|
|
61
|
+
status = SubscriptionStatus(data['status']),
|
|
62
|
+
customer_id = data['customer_id'],
|
|
63
|
+
address_id = data['address_id'],
|
|
64
|
+
business_id = data.get('business_id'),
|
|
65
|
+
currency_code = CurrencyCode(data['currency_code']),
|
|
66
|
+
created_at = datetime.fromisoformat(data['created_at']),
|
|
67
|
+
updated_at = datetime.fromisoformat(data['updated_at']),
|
|
68
|
+
collection_mode = CollectionMode(data['collection_mode']),
|
|
69
|
+
billing_cycle = TimePeriod.from_dict(data['billing_cycle']),
|
|
70
|
+
items = [SubscriptionItem.from_dict(item) for item in data['items']],
|
|
71
|
+
current_billing_period = SubscriptionTimePeriod.from_dict(data['current_billing_period']) if data.get('current_billing_period') else None,
|
|
72
|
+
management_urls = SubscriptionManagementUrls.from_dict(data['management_urls']) if data.get('management_urls') else None,
|
|
73
|
+
started_at = datetime.fromisoformat(data['started_at']) if data.get('started_at') else None,
|
|
74
|
+
first_billed_at = datetime.fromisoformat(data['first_billed_at']) if data.get('first_billed_at') else None,
|
|
75
|
+
next_billed_at = datetime.fromisoformat(data['next_billed_at']) if data.get('next_billed_at') else None,
|
|
76
|
+
paused_at = datetime.fromisoformat(data['paused_at']) if data.get('paused_at') else None,
|
|
77
|
+
canceled_at = datetime.fromisoformat(data['canceled_at']) if data.get('canceled_at') else None,
|
|
78
|
+
discount = SubscriptionDiscount.from_dict(data['discount']) if data.get('discount') else None,
|
|
79
|
+
billing_details = BillingDetails.from_dict(data['billing_details']) if data.get('billing_details') else None,
|
|
80
|
+
scheduled_change = SubscriptionScheduledChange.from_dict(data['scheduled_change']) if data.get('scheduled_change') else None,
|
|
81
|
+
custom_data = CustomData(data['custom_data']) if data.get('custom_data') else None,
|
|
82
|
+
import_meta = ImportMeta.from_dict(data['import_meta']) if data.get('import_meta') else None,
|
|
83
|
+
next_transaction = SubscriptionNextTransaction.from_dict(data['next_transaction']) if data.get('next_transaction') else None,
|
|
84
|
+
|
|
85
|
+
recurring_transaction_details = TransactionDetailsPreview.from_dict(data['recurring_transaction_details']) if data.get('recurring_transaction_details') else None,
|
|
86
|
+
)
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
from datetime import datetime
|
|
4
|
+
|
|
5
|
+
from paddle_billing.Entities.Entity import Entity
|
|
6
|
+
from paddle_billing.Entities.Shared import BillingDetails, CollectionMode, CurrencyCode, CustomData, TimePeriod
|
|
7
|
+
|
|
8
|
+
from paddle_billing.Entities.Shared.TransactionDetailsPreview import TransactionDetailsPreview
|
|
9
|
+
|
|
10
|
+
from paddle_billing.Entities.Subscriptions import (
|
|
11
|
+
SubscriptionDiscount,
|
|
12
|
+
SubscriptionItem,
|
|
13
|
+
SubscriptionManagementUrls,
|
|
14
|
+
SubscriptionNextTransaction,
|
|
15
|
+
SubscriptionPreviewSubscriptionUpdateSummary,
|
|
16
|
+
SubscriptionScheduledChange,
|
|
17
|
+
SubscriptionStatus,
|
|
18
|
+
SubscriptionTimePeriod,
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@dataclass
|
|
23
|
+
class SubscriptionPreview(Entity):
|
|
24
|
+
status: SubscriptionStatus
|
|
25
|
+
customer_id: str
|
|
26
|
+
address_id: str
|
|
27
|
+
business_id: str | None
|
|
28
|
+
currency_code: CurrencyCode
|
|
29
|
+
created_at: datetime
|
|
30
|
+
updated_at: datetime
|
|
31
|
+
started_at: datetime | None
|
|
32
|
+
first_billed_at: datetime | None
|
|
33
|
+
next_billed_at: datetime | None
|
|
34
|
+
paused_at: datetime | None
|
|
35
|
+
canceled_at: datetime | None
|
|
36
|
+
discount: SubscriptionDiscount | None
|
|
37
|
+
collection_mode: CollectionMode
|
|
38
|
+
billing_details: BillingDetails | None
|
|
39
|
+
current_billing_period: SubscriptionTimePeriod | None
|
|
40
|
+
billing_cycle: TimePeriod
|
|
41
|
+
scheduled_change: SubscriptionScheduledChange | None
|
|
42
|
+
management_urls: SubscriptionManagementUrls
|
|
43
|
+
items: list[SubscriptionItem]
|
|
44
|
+
custom_data: CustomData | None
|
|
45
|
+
immediate_transaction: SubscriptionNextTransaction | None
|
|
46
|
+
next_transaction: SubscriptionNextTransaction | None
|
|
47
|
+
recurring_transaction_details: TransactionDetailsPreview | None
|
|
48
|
+
update_summary: SubscriptionPreviewSubscriptionUpdateSummary | None
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
@classmethod
|
|
52
|
+
def from_dict(cls, data: dict) -> SubscriptionPreview:
|
|
53
|
+
return SubscriptionPreview(
|
|
54
|
+
status = SubscriptionStatus(data['status']),
|
|
55
|
+
customer_id = data['customer_id'],
|
|
56
|
+
address_id = data['address_id'],
|
|
57
|
+
business_id = data.get('business_id'),
|
|
58
|
+
currency_code = CurrencyCode(data['currency_code']),
|
|
59
|
+
created_at = datetime.fromisoformat(data['created_at']),
|
|
60
|
+
updated_at = datetime.fromisoformat(data['updated_at']),
|
|
61
|
+
collection_mode = CollectionMode(data['collection_mode']),
|
|
62
|
+
billing_cycle = TimePeriod.from_dict(data['billing_cycle']),
|
|
63
|
+
items = [SubscriptionItem.from_dict(item) for item in data['items']],
|
|
64
|
+
started_at = datetime.fromisoformat(data['started_at']) if data.get('started_at') else None,
|
|
65
|
+
first_billed_at = datetime.fromisoformat(data['first_billed_at']) if data.get('first_billed_at') else None,
|
|
66
|
+
next_billed_at = datetime.fromisoformat(data['next_billed_at']) if data.get('next_billed_at') else None,
|
|
67
|
+
paused_at = datetime.fromisoformat(data['paused_at']) if data.get('paused_at') else None,
|
|
68
|
+
canceled_at = datetime.fromisoformat(data['canceled_at']) if data.get('canceled_at') else None,
|
|
69
|
+
discount = SubscriptionDiscount.from_dict(data['discount']) if data.get('discount') else None,
|
|
70
|
+
billing_details = BillingDetails.from_dict(data['billing_details']) if data.get('billing_details') else None,
|
|
71
|
+
current_billing_period = SubscriptionTimePeriod.from_dict(data['current_billing_period']) if data.get('current_billing_period') else None,
|
|
72
|
+
scheduled_change = SubscriptionScheduledChange.from_dict(data['scheduled_change']) if data.get('scheduled_change') else None,
|
|
73
|
+
management_urls = SubscriptionManagementUrls.from_dict(data['management_urls']) if data.get('management_urls') else None,
|
|
74
|
+
custom_data = CustomData(data['custom_data']) if data.get('custom_data') else None,
|
|
75
|
+
immediate_transaction = SubscriptionNextTransaction.from_dict(data['immediate_transaction']) if data.get('immediate_transaction') else None,
|
|
76
|
+
next_transaction = SubscriptionNextTransaction.from_dict(data['next_transaction']) if data.get('next_transaction') else None,
|
|
77
|
+
recurring_transaction_details = TransactionDetailsPreview.from_dict(data['recurring_transaction_details']) if data.get('recurring_transaction_details') else None,
|
|
78
|
+
update_summary = SubscriptionPreviewSubscriptionUpdateSummary.from_dict(data['update_summary']) if data.get('update_summary') else None,
|
|
79
|
+
)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Shared import AdjustmentItemTotals, AdjustmentProration, AdjustmentType
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@dataclass
|
|
8
|
+
class SubscriptionAdjustmentItem:
|
|
9
|
+
item_id: str
|
|
10
|
+
type: AdjustmentType
|
|
11
|
+
amount: str | None
|
|
12
|
+
proration: AdjustmentProration
|
|
13
|
+
totals: AdjustmentItemTotals
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@staticmethod
|
|
17
|
+
def from_dict(data: dict) -> SubscriptionAdjustmentItem:
|
|
18
|
+
return SubscriptionAdjustmentItem(
|
|
19
|
+
item_id = data['item_id'],
|
|
20
|
+
type = AdjustmentType(data['type']),
|
|
21
|
+
amount = data.get('amount'),
|
|
22
|
+
proration = AdjustmentProration.from_dict(data['proration']),
|
|
23
|
+
totals = AdjustmentItemTotals.from_dict(data['totals']),
|
|
24
|
+
)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Shared import AdjustmentTotals
|
|
5
|
+
|
|
6
|
+
from paddle_billing.Entities.Subscriptions.SubscriptionAdjustmentItem import SubscriptionAdjustmentItem
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dataclass
|
|
10
|
+
class SubscriptionAdjustmentPreview:
|
|
11
|
+
transaction_id: str
|
|
12
|
+
items: list[SubscriptionAdjustmentItem]
|
|
13
|
+
totals: AdjustmentTotals
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@staticmethod
|
|
17
|
+
def from_dict(data: dict) -> SubscriptionAdjustmentPreview:
|
|
18
|
+
return SubscriptionAdjustmentPreview(
|
|
19
|
+
transaction_id = data['transaction_id'],
|
|
20
|
+
items = [SubscriptionAdjustmentItem.from_dict(item) for item in data['items']],
|
|
21
|
+
totals = AdjustmentTotals.from_dict(data['totals']),
|
|
22
|
+
)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Shared import CurrencyCode
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@dataclass
|
|
8
|
+
class SubscriptionCharge:
|
|
9
|
+
amount: str
|
|
10
|
+
currency_code: CurrencyCode
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@staticmethod
|
|
14
|
+
def from_dict(data: dict) -> SubscriptionCharge:
|
|
15
|
+
return SubscriptionCharge(
|
|
16
|
+
amount = data['amount'],
|
|
17
|
+
currency_code = CurrencyCode(data['currency_code']),
|
|
18
|
+
)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Shared import CurrencyCode
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@dataclass
|
|
8
|
+
class SubscriptionCredit:
|
|
9
|
+
amount: str
|
|
10
|
+
currency_code: CurrencyCode
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@staticmethod
|
|
14
|
+
def from_dict(data: dict) -> SubscriptionCredit:
|
|
15
|
+
return SubscriptionCredit(
|
|
16
|
+
amount = data['amount'],
|
|
17
|
+
currency_code = CurrencyCode(data['currency_code']),
|
|
18
|
+
)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Shared import (
|
|
5
|
+
TaxRatesUsed,
|
|
6
|
+
TransactionPayoutTotals,
|
|
7
|
+
TransactionPayoutTotalsAdjusted,
|
|
8
|
+
TransactionTotals,
|
|
9
|
+
TransactionTotalsAdjusted
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
from paddle_billing.Entities.Subscriptions import SubscriptionTransactionLineItem
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@dataclass
|
|
16
|
+
class SubscriptionDetails:
|
|
17
|
+
tax_rates_used: list[TaxRatesUsed]
|
|
18
|
+
totals: TransactionTotals
|
|
19
|
+
adjusted_totals: TransactionTotalsAdjusted
|
|
20
|
+
payout_totals: TransactionPayoutTotals
|
|
21
|
+
adjusted_payout_totals: TransactionPayoutTotalsAdjusted
|
|
22
|
+
line_items: list[SubscriptionTransactionLineItem]
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@staticmethod
|
|
26
|
+
def from_dict(data: dict) -> SubscriptionDetails:
|
|
27
|
+
return SubscriptionDetails(
|
|
28
|
+
totals = TransactionTotals.from_dict(data['totals']),
|
|
29
|
+
adjusted_totals = TransactionTotalsAdjusted.from_dict(data['adjusted_totals']),
|
|
30
|
+
payout_totals = TransactionPayoutTotals.from_dict(data['payout_totals']),
|
|
31
|
+
adjusted_payout_totals = TransactionPayoutTotalsAdjusted.from_dict(data['adjusted_payout_totals']),
|
|
32
|
+
tax_rates_used = [TaxRatesUsed.from_dict(tax_rate) for tax_rate in data.get('tax_rates_used', [])],
|
|
33
|
+
line_items = [SubscriptionTransactionLineItem.from_dict(item) for item in data.get('line_items', [])],
|
|
34
|
+
)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
from datetime import datetime
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@dataclass
|
|
7
|
+
class SubscriptionDiscount:
|
|
8
|
+
id: str
|
|
9
|
+
starts_at: datetime
|
|
10
|
+
ends_at: datetime
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@staticmethod
|
|
14
|
+
def from_dict(data: dict) -> SubscriptionDiscount:
|
|
15
|
+
return SubscriptionDiscount(
|
|
16
|
+
id = data['id'],
|
|
17
|
+
starts_at = datetime.fromisoformat(data['starts_at']),
|
|
18
|
+
ends_at = datetime.fromisoformat(data['ends_at']) if data.get('ends_at') else None,
|
|
19
|
+
)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
from datetime import datetime
|
|
4
|
+
|
|
5
|
+
from paddle_billing.Entities.Subscriptions.SubscriptionItemStatus import SubscriptionItemStatus
|
|
6
|
+
from paddle_billing.Entities.Subscriptions.SubscriptionPrice import SubscriptionPrice
|
|
7
|
+
from paddle_billing.Entities.Subscriptions.SubscriptionTimePeriod import SubscriptionTimePeriod
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@dataclass
|
|
11
|
+
class SubscriptionItem:
|
|
12
|
+
status: SubscriptionItemStatus
|
|
13
|
+
quantity: int
|
|
14
|
+
recurring: bool
|
|
15
|
+
created_at: datetime
|
|
16
|
+
updated_at: datetime
|
|
17
|
+
previously_billed_at: datetime | None
|
|
18
|
+
next_billed_at: datetime | None
|
|
19
|
+
trial_dates: SubscriptionTimePeriod | None
|
|
20
|
+
price: SubscriptionPrice
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@staticmethod
|
|
24
|
+
def from_dict(data: dict) -> SubscriptionItem:
|
|
25
|
+
return SubscriptionItem(
|
|
26
|
+
status = SubscriptionItemStatus(data['status']),
|
|
27
|
+
quantity = data['quantity'],
|
|
28
|
+
recurring = data['recurring'],
|
|
29
|
+
created_at = datetime.fromisoformat(data['created_at']),
|
|
30
|
+
updated_at = datetime.fromisoformat(data['updated_at']),
|
|
31
|
+
price = SubscriptionPrice.from_dict(data['price']),
|
|
32
|
+
previously_billed_at = datetime.fromisoformat(data['previously_billed_at']) if data.get('previously_billed_at') else None,
|
|
33
|
+
next_billed_at = datetime.fromisoformat(data['next_billed_at']) if data.get('next_billed_at') else None,
|
|
34
|
+
trial_dates = SubscriptionTimePeriod.from_dict(data['trial_dates']) if data.get('trial_dates') else None,
|
|
35
|
+
)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import asdict, dataclass
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
@dataclass
|
|
6
|
+
class SubscriptionItems:
|
|
7
|
+
price_id: str
|
|
8
|
+
quantity: int
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@staticmethod
|
|
12
|
+
def from_dict(data: dict) -> SubscriptionItems:
|
|
13
|
+
return SubscriptionItems(
|
|
14
|
+
price_id = data['price_id'],
|
|
15
|
+
quantity = data['quantity'],
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def get_parameters(self) -> dict:
|
|
20
|
+
return asdict(self)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Subscriptions.SubscriptionNonCatalogPrice import SubscriptionNonCatalogPrice
|
|
5
|
+
from paddle_billing.Entities.Subscriptions.SubscriptionNonCatalogPriceWithProduct import SubscriptionNonCatalogPriceWithProduct
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@dataclass
|
|
9
|
+
class SubscriptionItemsWithPrice:
|
|
10
|
+
price: SubscriptionNonCatalogPrice | SubscriptionNonCatalogPriceWithProduct
|
|
11
|
+
quantity: int
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@staticmethod
|
|
15
|
+
def from_dict(data: dict) -> SubscriptionItemsWithPrice:
|
|
16
|
+
return SubscriptionItemsWithPrice(
|
|
17
|
+
price = data['price'],
|
|
18
|
+
quantity = data['quantity'],
|
|
19
|
+
)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
@dataclass
|
|
6
|
+
class SubscriptionManagementUrls:
|
|
7
|
+
update_payment_method: str | None
|
|
8
|
+
cancel: str
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@staticmethod
|
|
12
|
+
def from_dict(data: dict) -> SubscriptionManagementUrls:
|
|
13
|
+
return SubscriptionManagementUrls(
|
|
14
|
+
update_payment_method = data.get('update_payment_method'),
|
|
15
|
+
cancel = data['cancel'],
|
|
16
|
+
)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Shared.TransactionDetailsPreview import TransactionDetailsPreview
|
|
5
|
+
|
|
6
|
+
from paddle_billing.Entities.Subscriptions.SubscriptionTimePeriod import SubscriptionTimePeriod
|
|
7
|
+
from paddle_billing.Entities.Subscriptions.SubscriptionAdjustmentPreview import SubscriptionAdjustmentPreview
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@dataclass
|
|
11
|
+
class SubscriptionNextTransaction:
|
|
12
|
+
billing_period: SubscriptionTimePeriod
|
|
13
|
+
details: TransactionDetailsPreview
|
|
14
|
+
adjustments: list[SubscriptionAdjustmentPreview]
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@staticmethod
|
|
18
|
+
def from_dict(data: dict) -> SubscriptionNextTransaction:
|
|
19
|
+
return SubscriptionNextTransaction(
|
|
20
|
+
billing_period = SubscriptionTimePeriod.from_dict(data['billing_period']),
|
|
21
|
+
details = TransactionDetailsPreview.from_dict(data['details']),
|
|
22
|
+
adjustments = [SubscriptionAdjustmentPreview.from_dict(adj) for adj in data.get('adjustments', [])],
|
|
23
|
+
)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Shared import CustomData, Money, PriceQuantity, TaxMode, UnitPriceOverride
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@dataclass
|
|
8
|
+
class SubscriptionNonCatalogPrice:
|
|
9
|
+
description: str
|
|
10
|
+
name: str | None
|
|
11
|
+
product_id: str
|
|
12
|
+
tax_mode: TaxMode
|
|
13
|
+
unit_price: Money
|
|
14
|
+
unit_price_overrides: list[UnitPriceOverride]
|
|
15
|
+
quantity: PriceQuantity
|
|
16
|
+
custom_data: CustomData | None
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@staticmethod
|
|
20
|
+
def from_dict(data: dict) -> SubscriptionNonCatalogPrice:
|
|
21
|
+
return SubscriptionNonCatalogPrice(
|
|
22
|
+
description = data['description'],
|
|
23
|
+
name = data.get('name'),
|
|
24
|
+
product_id = data['product_id'],
|
|
25
|
+
tax_mode = TaxMode(data['tax_mode']),
|
|
26
|
+
unit_price = Money.from_dict(data['unit_price']),
|
|
27
|
+
unit_price_overrides = [UnitPriceOverride.from_dict(override) for override in data['unit_price_overrides']],
|
|
28
|
+
quantity = PriceQuantity.from_dict(data['quantity']),
|
|
29
|
+
custom_data = CustomData(data['custom_data']) if data.get('custom_data') else None,
|
|
30
|
+
)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Shared import CustomData, Money, PriceQuantity, TaxMode, UnitPriceOverride
|
|
5
|
+
|
|
6
|
+
from paddle_billing.Entities.Subscriptions.SubscriptionNonCatalogProduct import SubscriptionNonCatalogProduct
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dataclass
|
|
10
|
+
class SubscriptionNonCatalogPriceWithProduct:
|
|
11
|
+
description: str
|
|
12
|
+
name: str | None
|
|
13
|
+
product: SubscriptionNonCatalogProduct
|
|
14
|
+
tax_mode: TaxMode
|
|
15
|
+
unit_price: Money
|
|
16
|
+
unit_price_overrides: list[UnitPriceOverride]
|
|
17
|
+
quantity: PriceQuantity
|
|
18
|
+
custom_data: CustomData | None
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
@staticmethod
|
|
22
|
+
def from_dict(data: dict) -> SubscriptionNonCatalogPriceWithProduct:
|
|
23
|
+
return SubscriptionNonCatalogPriceWithProduct(
|
|
24
|
+
description = data['description'],
|
|
25
|
+
name = data.get('name'),
|
|
26
|
+
product = SubscriptionNonCatalogProduct.from_dict(data['product']),
|
|
27
|
+
tax_mode = TaxMode(data['tax_mode']),
|
|
28
|
+
unit_price = Money.from_dict(data['unit_price']),
|
|
29
|
+
unit_price_overrides = [UnitPriceOverride.from_dict(override) for override in data['unit_price_overrides']],
|
|
30
|
+
quantity = PriceQuantity.from_dict(data['quantity']),
|
|
31
|
+
custom_data = CustomData(data['custom_data']) if data.get('custom_data') else None,
|
|
32
|
+
)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Shared import CatalogType, CustomData, TaxCategory
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@dataclass
|
|
8
|
+
class SubscriptionNonCatalogProduct:
|
|
9
|
+
name: str
|
|
10
|
+
description: str | None
|
|
11
|
+
type: CatalogType | None
|
|
12
|
+
tax_category: TaxCategory
|
|
13
|
+
image_url: str | None
|
|
14
|
+
custom_data: CustomData | None
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@staticmethod
|
|
18
|
+
def from_dict(data: dict) -> SubscriptionNonCatalogProduct:
|
|
19
|
+
return SubscriptionNonCatalogProduct(
|
|
20
|
+
name = data['name'],
|
|
21
|
+
description = data.get('description'),
|
|
22
|
+
tax_category = TaxCategory(data['tax_category']),
|
|
23
|
+
image_url = data.get('image_url'),
|
|
24
|
+
type = CatalogType(data['type']) if data.get('type') else None,
|
|
25
|
+
custom_data = CustomData(data['custom_data']) if data.get('custom_data') else None,
|
|
26
|
+
)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Subscriptions.SubscriptionCharge import SubscriptionCharge
|
|
5
|
+
from paddle_billing.Entities.Subscriptions.SubscriptionCredit import SubscriptionCredit
|
|
6
|
+
from paddle_billing.Entities.Subscriptions.SubscriptionResult import SubscriptionResult
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dataclass
|
|
10
|
+
class SubscriptionPreviewSubscriptionUpdateSummary:
|
|
11
|
+
credit: SubscriptionCredit
|
|
12
|
+
charge: SubscriptionCharge
|
|
13
|
+
result: SubscriptionResult
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@staticmethod
|
|
17
|
+
def from_dict(data: dict) -> SubscriptionPreviewSubscriptionUpdateSummary:
|
|
18
|
+
return SubscriptionPreviewSubscriptionUpdateSummary(
|
|
19
|
+
credit = SubscriptionCredit.from_dict(data['credit']),
|
|
20
|
+
charge = SubscriptionCharge.from_dict(data['charge']),
|
|
21
|
+
result = SubscriptionResult.from_dict(data['result']),
|
|
22
|
+
)
|