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,51 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from abc import ABC
|
|
3
|
+
from dataclasses import dataclass
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
from importlib import import_module
|
|
6
|
+
|
|
7
|
+
from paddle_billing.ConditionallyRemoveImportMeta import conditionally_remove_import_meta
|
|
8
|
+
|
|
9
|
+
from paddle_billing.Entities.Entity import Entity
|
|
10
|
+
from paddle_billing.Entities.Events import EventTypeName
|
|
11
|
+
|
|
12
|
+
from paddle_billing.Notifications.Entities.Entity import Entity as NotificationEntity
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@dataclass
|
|
16
|
+
class Event(Entity, ABC):
|
|
17
|
+
event_id: str
|
|
18
|
+
event_type: EventTypeName
|
|
19
|
+
occurred_at: datetime
|
|
20
|
+
data: NotificationEntity
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@classmethod
|
|
24
|
+
def from_dict(cls, data: dict) -> Event:
|
|
25
|
+
_type = data['event_type'].split('.')[0] or ''
|
|
26
|
+
|
|
27
|
+
entity_class_name = data['event_type'].split('.')[0].lower().title()
|
|
28
|
+
entity_class = None
|
|
29
|
+
instantiated_class = None
|
|
30
|
+
entity_module_path = 'paddle_billing.Notifications.Entities'
|
|
31
|
+
|
|
32
|
+
try:
|
|
33
|
+
imported_module = import_module(f"{entity_module_path}.{entity_class_name}")
|
|
34
|
+
entity_class = getattr(imported_module, entity_class_name)
|
|
35
|
+
|
|
36
|
+
conditionally_remove_import_meta(entity_class, data)
|
|
37
|
+
instantiated_class = entity_class # (**data['data'])
|
|
38
|
+
except Exception as error:
|
|
39
|
+
print(f"Error dynamically instantiating a '{entity_module_path}.{entity_class_name}' object: {error}")
|
|
40
|
+
|
|
41
|
+
if not entity_class:
|
|
42
|
+
raise ValueError(f"Event type '{entity_class_name}' cannot be mapped to an object")
|
|
43
|
+
if not issubclass(entity_class, NotificationEntity):
|
|
44
|
+
raise ValueError(f"Event type '{_type}' is not of NotificationEntity")
|
|
45
|
+
|
|
46
|
+
return Event(
|
|
47
|
+
data['event_id'],
|
|
48
|
+
EventTypeName(data['event_type']),
|
|
49
|
+
datetime.fromisoformat(data['occurred_at']),
|
|
50
|
+
instantiated_class.from_dict(data['data']),
|
|
51
|
+
)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Entity import Entity
|
|
5
|
+
from paddle_billing.Entities.Events import EventTypeName
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@dataclass
|
|
9
|
+
class EventType(Entity):
|
|
10
|
+
name: EventTypeName
|
|
11
|
+
description: str
|
|
12
|
+
group: str
|
|
13
|
+
available_versions: list
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@classmethod
|
|
17
|
+
def from_dict(cls, data: dict) -> EventType:
|
|
18
|
+
return EventType(
|
|
19
|
+
name = EventTypeName(data['name']),
|
|
20
|
+
description = data['description'],
|
|
21
|
+
group = data['group'],
|
|
22
|
+
available_versions = data['available_versions'],
|
|
23
|
+
)
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
from paddle_billing.PaddleStrEnum import PaddleStrEnum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class EventTypeName(PaddleStrEnum):
|
|
5
|
+
AddressCreated = 'address.created'
|
|
6
|
+
AddressImported = 'address.imported'
|
|
7
|
+
AddressUpdated = 'address.updated'
|
|
8
|
+
AdjustmentCreated = 'adjustment.created'
|
|
9
|
+
AdjustmentUpdated = 'adjustment.updated'
|
|
10
|
+
BusinessCreated = 'business.created'
|
|
11
|
+
BusinessImported = 'business.imported'
|
|
12
|
+
BusinessUpdated = 'business.updated'
|
|
13
|
+
CustomerCreated = 'customer.created'
|
|
14
|
+
CustomerImported = 'customer.imported'
|
|
15
|
+
CustomerUpdated = 'customer.updated'
|
|
16
|
+
DiscountCreated = 'discount.created'
|
|
17
|
+
DiscountImported = 'discount.imported'
|
|
18
|
+
DiscountUpdated = 'discount.updated'
|
|
19
|
+
InvoiceCanceled = 'invoice.canceled'
|
|
20
|
+
InvoiceCreated = 'invoice.created'
|
|
21
|
+
InvoiceIssued = 'invoice.issued'
|
|
22
|
+
InvoiceOverdue = 'invoice.overdue'
|
|
23
|
+
InvoicePaid = 'invoice.paid'
|
|
24
|
+
InvoiceScheduled = 'invoice.scheduled'
|
|
25
|
+
PayoutCreated = 'payout.created'
|
|
26
|
+
PayoutPaid = 'payout.paid'
|
|
27
|
+
PriceCreated = 'price.created'
|
|
28
|
+
PriceUpdated = 'price.updated'
|
|
29
|
+
PriceImported = 'price.imported'
|
|
30
|
+
ProductCreated = 'product.created'
|
|
31
|
+
ProductUpdated = 'product.updated'
|
|
32
|
+
ProductImported = 'product.imported'
|
|
33
|
+
SubscriptionActivated = 'subscription.activated'
|
|
34
|
+
SubscriptionCanceled = 'subscription.canceled'
|
|
35
|
+
SubscriptionCreated = 'subscription.created'
|
|
36
|
+
SubscriptionImported = 'subscription.imported'
|
|
37
|
+
SubscriptionPastDue = 'subscription.past_due'
|
|
38
|
+
SubscriptionPaused = 'subscription.paused'
|
|
39
|
+
SubscriptionResumed = 'subscription.resumed'
|
|
40
|
+
SubscriptionTrialing = 'subscription.trialing'
|
|
41
|
+
SubscriptionUpdated = 'subscription.updated'
|
|
42
|
+
TransactionBilled = 'transaction.billed'
|
|
43
|
+
TransactionCanceled = 'transaction.canceled'
|
|
44
|
+
TransactionCompleted = 'transaction.completed'
|
|
45
|
+
TransactionCreated = 'transaction.created'
|
|
46
|
+
TransactionPaid = 'transaction.paid'
|
|
47
|
+
TransactionPastDue = 'transaction.past_due'
|
|
48
|
+
TransactionPaymentFailed = 'transaction.payment_failed'
|
|
49
|
+
TransactionReady = 'transaction.ready'
|
|
50
|
+
TransactionUpdated = 'transaction.updated'
|
|
51
|
+
ReportCreated = 'report.created'
|
|
52
|
+
ReportUpdated = 'report.updated'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from paddle_billing.Entities.Events.EventTypeName import EventTypeName
|
|
@@ -0,0 +1,42 @@
|
|
|
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.Event import Event
|
|
7
|
+
from paddle_billing.Entities.Events import EventTypeName
|
|
8
|
+
from paddle_billing.Entities.Notifications import NotificationOrigin, NotificationStatus
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@dataclass
|
|
12
|
+
class Notification(Entity):
|
|
13
|
+
id: str
|
|
14
|
+
type: EventTypeName
|
|
15
|
+
status: NotificationStatus
|
|
16
|
+
payload: Event
|
|
17
|
+
occurred_at: datetime
|
|
18
|
+
delivered_at: datetime | None
|
|
19
|
+
replayed_at: datetime | None
|
|
20
|
+
origin: NotificationOrigin
|
|
21
|
+
last_attempt_at: datetime | None
|
|
22
|
+
retry_at: datetime | None
|
|
23
|
+
times_attempted: int
|
|
24
|
+
notification_setting_id: str
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@classmethod
|
|
28
|
+
def from_dict(cls, data: dict) -> Notification:
|
|
29
|
+
return Notification(
|
|
30
|
+
id = data['id'],
|
|
31
|
+
type = EventTypeName(data['type']),
|
|
32
|
+
status = NotificationStatus(data['status']),
|
|
33
|
+
payload = Event.from_dict(data['payload']),
|
|
34
|
+
occurred_at = datetime.fromisoformat(data['occurred_at']),
|
|
35
|
+
origin = NotificationOrigin(data['origin']),
|
|
36
|
+
times_attempted = data['times_attempted'],
|
|
37
|
+
notification_setting_id = data['notification_setting_id'],
|
|
38
|
+
delivered_at = datetime.fromisoformat(data['delivered_at']) if data.get('delivered_at') else None,
|
|
39
|
+
replayed_at = datetime.fromisoformat(data['replayed_at']) if data.get('replayed_at') else None,
|
|
40
|
+
last_attempt_at = datetime.fromisoformat(data['last_attempt_at']) if data.get('last_attempt_at') else None,
|
|
41
|
+
retry_at = datetime.fromisoformat(data['retry_at']) if data.get('retry_at') else None,
|
|
42
|
+
)
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
|
|
8
|
+
@dataclass
|
|
9
|
+
class NotificationLog(Entity):
|
|
10
|
+
id: str
|
|
11
|
+
response_code: int
|
|
12
|
+
response_content_type: str | None
|
|
13
|
+
response_body: str
|
|
14
|
+
attempted_at: datetime
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@classmethod
|
|
18
|
+
def from_dict(cls, data: dict) -> NotificationLog:
|
|
19
|
+
return NotificationLog(
|
|
20
|
+
id = data['id'],
|
|
21
|
+
response_code = data['response_code'],
|
|
22
|
+
response_content_type = data.get('response_content_type'),
|
|
23
|
+
response_body = data['response_body'],
|
|
24
|
+
attempted_at = datetime.fromisoformat(data['attempted_at']),
|
|
25
|
+
)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Entity import Entity
|
|
5
|
+
from paddle_billing.Entities.EventType import EventType
|
|
6
|
+
from paddle_billing.Entities.NotificationSettings import NotificationSettingType
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dataclass
|
|
10
|
+
class NotificationSetting(Entity):
|
|
11
|
+
id: str
|
|
12
|
+
description: str
|
|
13
|
+
type: NotificationSettingType
|
|
14
|
+
destination: str
|
|
15
|
+
active: bool
|
|
16
|
+
api_version: int
|
|
17
|
+
include_sensitive_fields: bool
|
|
18
|
+
subscribed_events: list[EventType]
|
|
19
|
+
endpoint_secret_key: str
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@classmethod
|
|
23
|
+
def from_dict(cls, data: dict) -> NotificationSetting:
|
|
24
|
+
return NotificationSetting(
|
|
25
|
+
id = data['id'],
|
|
26
|
+
description = data['description'],
|
|
27
|
+
type = NotificationSettingType(data['type']),
|
|
28
|
+
destination = data['destination'],
|
|
29
|
+
active = data['active'],
|
|
30
|
+
api_version = data['api_version'],
|
|
31
|
+
include_sensitive_fields = data['include_sensitive_fields'],
|
|
32
|
+
subscribed_events = [EventType.from_dict(event) for event in data.get('subscribed_events', [])],
|
|
33
|
+
endpoint_secret_key = data['endpoint_secret_key'],
|
|
34
|
+
)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from paddle_billing.Entities.NotificationSettings.NotificationSettingType import NotificationSettingType
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Entity import Entity
|
|
5
|
+
from paddle_billing.Entities.Notifications import NotificationPayoutStatus
|
|
6
|
+
from paddle_billing.Entities.Shared import CurrencyCodePayouts
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dataclass
|
|
10
|
+
class NotificationPayout(Entity):
|
|
11
|
+
id: str
|
|
12
|
+
status: NotificationPayoutStatus
|
|
13
|
+
amount: str
|
|
14
|
+
currency_code: CurrencyCodePayouts
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@classmethod
|
|
18
|
+
def from_dict(cls, data: dict) -> NotificationPayout:
|
|
19
|
+
return NotificationPayout(
|
|
20
|
+
id = data['id'],
|
|
21
|
+
status = NotificationPayoutStatus(data['status']),
|
|
22
|
+
amount = data['amount'],
|
|
23
|
+
currency_code = CurrencyCodePayouts(data['currency_code']),
|
|
24
|
+
)
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
from paddle_billing.Entities.Notifications.NotificationOrigin import NotificationOrigin
|
|
2
|
+
from paddle_billing.Entities.Notifications.NotificationPayout import NotificationPayout
|
|
3
|
+
from paddle_billing.Entities.Notifications.NotificationPayoutStatus import NotificationPayoutStatus
|
|
4
|
+
from paddle_billing.Entities.Notifications.NotificationStatus import NotificationStatus
|
|
@@ -0,0 +1,68 @@
|
|
|
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 (
|
|
7
|
+
CatalogType,
|
|
8
|
+
CustomData,
|
|
9
|
+
ImportMeta,
|
|
10
|
+
Money,
|
|
11
|
+
PriceQuantity,
|
|
12
|
+
Status,
|
|
13
|
+
TaxMode,
|
|
14
|
+
TimePeriod,
|
|
15
|
+
UnitPriceOverride,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
from paddle_billing.Logger import get_logger
|
|
19
|
+
log = get_logger()
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@dataclass
|
|
23
|
+
class Price(Entity):
|
|
24
|
+
id: str
|
|
25
|
+
product_id: str
|
|
26
|
+
name: str | None
|
|
27
|
+
description: str
|
|
28
|
+
type: CatalogType | None
|
|
29
|
+
billing_cycle: TimePeriod | None
|
|
30
|
+
trial_period: TimePeriod | None
|
|
31
|
+
tax_mode: TaxMode
|
|
32
|
+
unit_price: Money
|
|
33
|
+
unit_price_overrides: list[UnitPriceOverride]
|
|
34
|
+
quantity: PriceQuantity
|
|
35
|
+
status: Status
|
|
36
|
+
custom_data: CustomData | None
|
|
37
|
+
import_meta: ImportMeta | None
|
|
38
|
+
product: Product | None
|
|
39
|
+
created_at: datetime
|
|
40
|
+
updated_at: datetime
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
@classmethod
|
|
44
|
+
def from_dict(cls, data: dict) -> Price:
|
|
45
|
+
return Price(
|
|
46
|
+
id = data['id'],
|
|
47
|
+
product_id = data['product_id'],
|
|
48
|
+
name = data.get('name'),
|
|
49
|
+
description = data['description'],
|
|
50
|
+
unit_price = Money.from_dict(data['unit_price']),
|
|
51
|
+
quantity = PriceQuantity.from_dict(data['quantity']),
|
|
52
|
+
status = Status(data['status']),
|
|
53
|
+
tax_mode = TaxMode(data.get('tax_mode')),
|
|
54
|
+
created_at = datetime.fromisoformat(data['created_at']),
|
|
55
|
+
updated_at = datetime.fromisoformat(data['updated_at']),
|
|
56
|
+
unit_price_overrides = [UnitPriceOverride.from_dict(override) for override in data.get('unit_price_overrides', [])],
|
|
57
|
+
type = CatalogType(data.get('type')) if data.get('type') else None,
|
|
58
|
+
billing_cycle = TimePeriod.from_dict(data['billing_cycle']) if data.get('billing_cycle') else None,
|
|
59
|
+
trial_period = TimePeriod.from_dict(data['trial_period']) if data.get('trial_period') else None,
|
|
60
|
+
custom_data = CustomData(data['custom_data']) if data.get('custom_data') else None,
|
|
61
|
+
import_meta = ImportMeta.from_dict(data['import_meta']) if data.get('import_meta') else None,
|
|
62
|
+
product = Product.from_dict(data['product']) if data.get('product') else None,
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
# Prevents circular import
|
|
68
|
+
from paddle_billing.Entities.Product import Product # noqa E402
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Entity import Entity
|
|
5
|
+
from paddle_billing.Entities.Shared import AddressPreview, AvailablePaymentMethods, CurrencyCode
|
|
6
|
+
from paddle_billing.Entities.PricingPreviews import PricePreviewDetails
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dataclass
|
|
10
|
+
class PricePreview(Entity):
|
|
11
|
+
customer_id: str | None
|
|
12
|
+
address_id: str | None
|
|
13
|
+
business_id: str | None
|
|
14
|
+
currency_code: CurrencyCode
|
|
15
|
+
discount_id: str | None
|
|
16
|
+
address: AddressPreview | None
|
|
17
|
+
customer_ip_address: str | None
|
|
18
|
+
details: PricePreviewDetails
|
|
19
|
+
available_payment_methods: list[AvailablePaymentMethods]
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@classmethod
|
|
23
|
+
def from_dict(cls, data: dict) -> PricePreview:
|
|
24
|
+
return PricePreview(
|
|
25
|
+
customer_id = data.get('customer_id'),
|
|
26
|
+
address_id = data.get('address_id'),
|
|
27
|
+
business_id = data.get('business_id'),
|
|
28
|
+
currency_code = CurrencyCode(data['currency_code']),
|
|
29
|
+
discount_id = data.get('discount_id'),
|
|
30
|
+
address = AddressPreview.from_dict(data['address']) if data.get('address') else None,
|
|
31
|
+
customer_ip_address = data.get('customer_ip_address'),
|
|
32
|
+
details = PricePreviewDetails.from_dict(data['details']),
|
|
33
|
+
available_payment_methods = [AvailablePaymentMethods(item) for item in data['available_payment_methods']],
|
|
34
|
+
)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Entity import Entity
|
|
5
|
+
from paddle_billing.Entities.PricingPreviews.PricePreviewLineItem import PricePreviewLineItem
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@dataclass
|
|
9
|
+
class PricePreviewDetails(Entity):
|
|
10
|
+
line_items: list[PricePreviewLineItem]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@classmethod
|
|
14
|
+
def from_dict(cls, data: dict) -> PricePreviewDetails:
|
|
15
|
+
return PricePreviewDetails(line_items=[PricePreviewLineItem.from_dict(item) for item in data['line_items']])
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Discount import Discount
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@dataclass
|
|
8
|
+
class PricePreviewDiscounts:
|
|
9
|
+
discount: Discount
|
|
10
|
+
total: str
|
|
11
|
+
formatted_total: str
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@classmethod
|
|
15
|
+
def from_dict(cls, data: dict) -> PricePreviewDiscounts:
|
|
16
|
+
return PricePreviewDiscounts(
|
|
17
|
+
discount = Discount.from_dict(data['discount']),
|
|
18
|
+
total = data['total'],
|
|
19
|
+
formatted_total = data['formatted_total'],
|
|
20
|
+
)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
@dataclass
|
|
6
|
+
class PricePreviewItem:
|
|
7
|
+
price_id: str
|
|
8
|
+
quantity: int
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@classmethod
|
|
12
|
+
def from_dict(cls, data: dict) -> PricePreviewItem:
|
|
13
|
+
return PricePreviewItem(
|
|
14
|
+
price_id = data['price_id'],
|
|
15
|
+
quantity = data['quantity'],
|
|
16
|
+
)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.Price import Price
|
|
5
|
+
from paddle_billing.Entities.Product import Product
|
|
6
|
+
from paddle_billing.Entities.Shared import Totals, UnitTotals
|
|
7
|
+
|
|
8
|
+
from paddle_billing.Entities.PricingPreviews.PricePreviewDiscounts import PricePreviewDiscounts
|
|
9
|
+
from paddle_billing.Entities.PricingPreviews.PricePreviewTotalsFormatted import PricePreviewTotalsFormatted
|
|
10
|
+
from paddle_billing.Entities.PricingPreviews.PricePreviewUnitTotalsFormatted import PricePreviewUnitTotalsFormatted
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@dataclass
|
|
14
|
+
class PricePreviewLineItem:
|
|
15
|
+
price: Price
|
|
16
|
+
quantity: int
|
|
17
|
+
tax_rate: str
|
|
18
|
+
unit_totals: UnitTotals
|
|
19
|
+
formatted_unit_totals: PricePreviewUnitTotalsFormatted
|
|
20
|
+
totals: Totals
|
|
21
|
+
formatted_totals: PricePreviewTotalsFormatted
|
|
22
|
+
product: Product
|
|
23
|
+
discounts: list[PricePreviewDiscounts]
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@classmethod
|
|
27
|
+
def from_dict(cls, data: dict) -> PricePreviewLineItem:
|
|
28
|
+
return PricePreviewLineItem(
|
|
29
|
+
price = Price.from_dict(data['price']),
|
|
30
|
+
quantity = data['quantity'],
|
|
31
|
+
tax_rate = data['tax_rate'],
|
|
32
|
+
unit_totals = UnitTotals.from_dict(data['unit_totals']),
|
|
33
|
+
formatted_unit_totals = PricePreviewUnitTotalsFormatted.from_dict(data['formatted_unit_totals']),
|
|
34
|
+
totals = Totals.from_dict(data['totals']),
|
|
35
|
+
formatted_totals = PricePreviewTotalsFormatted.from_dict(data['formatted_totals']),
|
|
36
|
+
product = Product.from_dict(data['product']),
|
|
37
|
+
discounts = [PricePreviewDiscounts.from_dict(item) for item in data['discounts']],
|
|
38
|
+
)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
@dataclass
|
|
6
|
+
class PricePreviewTotalsFormatted:
|
|
7
|
+
subtotal: str
|
|
8
|
+
discount: str
|
|
9
|
+
tax: str
|
|
10
|
+
total: str
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@classmethod
|
|
14
|
+
def from_dict(cls, data: dict) -> PricePreviewTotalsFormatted:
|
|
15
|
+
return PricePreviewTotalsFormatted(
|
|
16
|
+
subtotal = data['subtotal'],
|
|
17
|
+
discount = data['discount'],
|
|
18
|
+
tax = data['tax'],
|
|
19
|
+
total = data['total'],
|
|
20
|
+
)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
@dataclass
|
|
6
|
+
class PricePreviewUnitTotalsFormatted:
|
|
7
|
+
subtotal: str
|
|
8
|
+
discount: str
|
|
9
|
+
tax: str
|
|
10
|
+
total: str
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@classmethod
|
|
14
|
+
def from_dict(cls, data: dict) -> PricePreviewUnitTotalsFormatted:
|
|
15
|
+
return PricePreviewUnitTotalsFormatted(
|
|
16
|
+
subtotal = data['subtotal'],
|
|
17
|
+
discount = data['discount'],
|
|
18
|
+
tax = data['tax'],
|
|
19
|
+
total = data['total'],
|
|
20
|
+
)
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
from paddle_billing.Entities.PricingPreviews.PricePreviewDetails import PricePreviewDetails
|
|
2
|
+
from paddle_billing.Entities.PricingPreviews.PricePreviewDiscounts import PricePreviewDiscounts
|
|
3
|
+
from paddle_billing.Entities.PricingPreviews.PricePreviewItem import PricePreviewItem
|
|
4
|
+
from paddle_billing.Entities.PricingPreviews.PricePreviewLineItem import PricePreviewLineItem
|
|
5
|
+
from paddle_billing.Entities.PricingPreviews.PricePreviewTotalsFormatted import PricePreviewTotalsFormatted
|
|
6
|
+
from paddle_billing.Entities.PricingPreviews.PricePreviewUnitTotalsFormatted import PricePreviewUnitTotalsFormatted
|
|
@@ -0,0 +1,45 @@
|
|
|
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 CatalogType, CustomData, ImportMeta, Status, TaxCategory
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dataclass
|
|
10
|
+
class Product(Entity):
|
|
11
|
+
id: str
|
|
12
|
+
name: str
|
|
13
|
+
status: Status
|
|
14
|
+
tax_category: TaxCategory
|
|
15
|
+
created_at: datetime
|
|
16
|
+
updated_at: datetime
|
|
17
|
+
description: str | None
|
|
18
|
+
image_url: str | None
|
|
19
|
+
custom_data: CustomData | None = None
|
|
20
|
+
import_meta: ImportMeta | None = None
|
|
21
|
+
prices: list[Price] | None = None
|
|
22
|
+
type: CatalogType | None = None
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@classmethod
|
|
26
|
+
def from_dict(cls, data: dict) -> Product:
|
|
27
|
+
return Product(
|
|
28
|
+
description = data.get('description'),
|
|
29
|
+
id = data['id'],
|
|
30
|
+
image_url = data.get('image_url'),
|
|
31
|
+
name = data['name'],
|
|
32
|
+
status = Status(data['status']),
|
|
33
|
+
tax_category = TaxCategory(data['tax_category']),
|
|
34
|
+
created_at = datetime.fromisoformat(data['created_at']),
|
|
35
|
+
updated_at = datetime.fromisoformat(data['updated_at']),
|
|
36
|
+
prices = [Price.from_dict(price) for price in data.get('prices', [])],
|
|
37
|
+
type = CatalogType(data['type']) if data.get('type') else None,
|
|
38
|
+
custom_data = CustomData(data['custom_data']) if data.get('custom_data') else None,
|
|
39
|
+
import_meta = ImportMeta.from_dict(data['import_meta']) if data.get('import_meta') else None,
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
# Prevents circular import
|
|
45
|
+
from paddle_billing.Entities.Price import Price # noqa E402
|