paddle-python-sdk 0.3.2__py3-none-any.whl → 1.2.1__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.
- paddle_billing/Client.py +11 -13
- paddle_billing/Entities/Collections/PaymentMethodCollection.py +13 -0
- paddle_billing/Entities/Collections/__init__.py +1 -0
- paddle_billing/Entities/CustomerAuthToken.py +18 -0
- paddle_billing/Entities/CustomerPortalSession.py +23 -0
- paddle_billing/Entities/CustomerPortalSessions/CustomerPortalSessionGeneralUrl.py +13 -0
- paddle_billing/Entities/CustomerPortalSessions/CustomerPortalSessionSubscriptionUrl.py +17 -0
- paddle_billing/Entities/CustomerPortalSessions/CustomerPortalSessionUrls.py +24 -0
- paddle_billing/Entities/CustomerPortalSessions/__init__.py +7 -0
- paddle_billing/Entities/NotificationSetting.py +3 -1
- paddle_billing/Entities/NotificationSettings/NotificationSettingTrafficSource.py +7 -0
- paddle_billing/Entities/NotificationSettings/__init__.py +3 -0
- paddle_billing/Entities/PaymentMethod.py +38 -0
- paddle_billing/Entities/Price.py +0 -4
- paddle_billing/Entities/Reports/ReportFilter.py +1 -4
- paddle_billing/Entities/Shared/CustomData.py +0 -3
- paddle_billing/Entities/Shared/Paypal.py +15 -0
- paddle_billing/Entities/Shared/SavedPaymentMethodOrigin.py +6 -0
- paddle_billing/Entities/Shared/SavedPaymentMethodType.py +9 -0
- paddle_billing/Entities/Shared/TransactionLineItemPreview.py +5 -5
- paddle_billing/Entities/Shared/TransactionPreviewProduct.py +37 -0
- paddle_billing/Entities/Shared/__init__.py +3 -0
- paddle_billing/Entities/Subscriptions/SubscriptionAdjustmentItem.py +2 -2
- paddle_billing/Entities/Subscriptions/__init__.py +0 -8
- paddle_billing/Entities/Transactions/TransactionItem.py +0 -2
- paddle_billing/Entities/Transactions/TransactionItemPreviewWithPrice.py +3 -3
- paddle_billing/Entities/Transactions/TransactionPreviewPrice.py +59 -0
- paddle_billing/Entities/Transactions/__init__.py +0 -12
- paddle_billing/Notifications/Entities/Entity.py +3 -1
- paddle_billing/Notifications/Entities/PaymentMethod.py +32 -0
- paddle_billing/Notifications/Entities/PaymentMethodDeleted.py +35 -0
- paddle_billing/Notifications/Entities/Price.py +0 -4
- paddle_billing/Notifications/Entities/Reports/ReportFilter.py +1 -4
- paddle_billing/Notifications/Entities/Shared/CustomData.py +1 -1
- paddle_billing/Notifications/Entities/Shared/Paypal.py +15 -0
- paddle_billing/Notifications/Entities/Shared/SavedPaymentMethodDeletionReason.py +6 -0
- paddle_billing/Notifications/Entities/Shared/SavedPaymentMethodOrigin.py +6 -0
- paddle_billing/Notifications/Entities/Shared/SavedPaymentMethodType.py +9 -0
- paddle_billing/Notifications/Entities/Shared/__init__.py +6 -0
- paddle_billing/Notifications/Entities/Subscription.py +1 -1
- paddle_billing/Notifications/Entities/SubscriptionCreated.py +1 -1
- paddle_billing/Notifications/Events/PaymentMethodDeleted.py +17 -0
- paddle_billing/Notifications/Events/PaymentMethodSaved.py +17 -0
- paddle_billing/Resources/Addresses/AddressesClient.py +2 -4
- paddle_billing/Resources/Addresses/Operations/CreateAddress.py +3 -5
- paddle_billing/Resources/Addresses/Operations/UpdateAddress.py +3 -5
- paddle_billing/Resources/Adjustments/AdjustmentsClient.py +1 -1
- paddle_billing/Resources/Adjustments/Operations/CreateAdjustment.py +3 -18
- paddle_billing/Resources/Businesses/BusinessesClient.py +2 -4
- paddle_billing/Resources/Businesses/Operations/CreateBusiness.py +3 -5
- paddle_billing/Resources/Businesses/Operations/UpdateBusiness.py +3 -5
- paddle_billing/Resources/CustomerPortalSessions/CustomerPortalSessionsClient.py +24 -0
- paddle_billing/Resources/CustomerPortalSessions/Operations/CreateCustomerPortalSession.py +9 -0
- paddle_billing/Resources/CustomerPortalSessions/Operations/__init__.py +3 -0
- paddle_billing/Resources/CustomerPortalSessions/__init__.py +0 -0
- paddle_billing/Resources/Customers/CustomersClient.py +14 -3
- paddle_billing/Resources/Customers/Operations/CreateCustomer.py +3 -5
- paddle_billing/Resources/Customers/Operations/UpdateCustomer.py +3 -5
- paddle_billing/Resources/Discounts/DiscountsClient.py +2 -2
- paddle_billing/Resources/Discounts/Operations/CreateDiscount.py +5 -6
- paddle_billing/Resources/Discounts/Operations/UpdateDiscount.py +5 -6
- paddle_billing/Resources/NotificationSettings/NotificationSettingsClient.py +2 -4
- paddle_billing/Resources/NotificationSettings/Operations/CreateNotificationSetting.py +5 -6
- paddle_billing/Resources/NotificationSettings/Operations/ListNotificationSettings.py +6 -0
- paddle_billing/Resources/NotificationSettings/Operations/UpdateNotificationSetting.py +5 -5
- paddle_billing/Resources/Notifications/NotificationsClient.py +1 -1
- paddle_billing/Resources/PaymentMethods/Operations/ListPaymentMethods.py +32 -0
- paddle_billing/Resources/PaymentMethods/Operations/__init__.py +1 -0
- paddle_billing/Resources/PaymentMethods/PaymentMethodsClient.py +45 -0
- paddle_billing/Resources/PaymentMethods/__init__.py +0 -0
- paddle_billing/Resources/Prices/Operations/CreatePrice.py +3 -5
- paddle_billing/Resources/Prices/Operations/UpdatePrice.py +3 -5
- paddle_billing/Resources/Prices/PricesClient.py +2 -2
- paddle_billing/Resources/PricingPreviews/Operations/PreviewPrice.py +3 -5
- paddle_billing/Resources/PricingPreviews/PricingPreviewsClient.py +1 -1
- paddle_billing/Resources/Products/Operations/CreateProduct.py +3 -5
- paddle_billing/Resources/Products/Operations/UpdateProduct.py +3 -5
- paddle_billing/Resources/Products/ProductsClient.py +2 -2
- paddle_billing/Resources/Reports/Operations/CreateReport.py +5 -3
- paddle_billing/Resources/Reports/Operations/Filters/Filter.py +1 -1
- paddle_billing/Resources/Reports/ReportsClient.py +1 -1
- paddle_billing/Resources/Subscriptions/Operations/CancelSubscription.py +3 -5
- paddle_billing/{Entities/Transactions/TransactionUpdateTransactionItem.py → Resources/Subscriptions/Operations/Charge/SubscriptionChargeItem.py} +1 -1
- paddle_billing/Resources/Subscriptions/Operations/Charge/SubscriptionChargeItemWithPrice.py +13 -0
- paddle_billing/Resources/Subscriptions/Operations/Charge/__init__.py +4 -0
- paddle_billing/Resources/Subscriptions/Operations/CreateOneTimeCharge.py +9 -8
- paddle_billing/Resources/Subscriptions/Operations/PauseSubscription.py +3 -8
- paddle_billing/Resources/Subscriptions/Operations/PreviewOneTimeCharge.py +9 -8
- paddle_billing/Resources/Subscriptions/Operations/PreviewUpdateSubscription.py +3 -3
- paddle_billing/Resources/Subscriptions/Operations/Price/SubscriptionNonCatalogPrice.py +24 -0
- paddle_billing/Resources/Subscriptions/Operations/Price/SubscriptionNonCatalogPriceWithProduct.py +28 -0
- paddle_billing/Resources/Subscriptions/Operations/Price/SubscriptionNonCatalogProduct.py +15 -0
- paddle_billing/Resources/Subscriptions/Operations/Price/__init__.py +9 -0
- paddle_billing/Resources/Subscriptions/Operations/ResumeSubscription.py +2 -8
- paddle_billing/Resources/Subscriptions/Operations/Update/SubscriptionUpdateItem.py +9 -0
- paddle_billing/Resources/Subscriptions/Operations/Update/SubscriptionUpdateItemWithPrice.py +13 -0
- paddle_billing/Resources/Subscriptions/Operations/Update/__init__.py +4 -0
- paddle_billing/Resources/Subscriptions/Operations/UpdateSubscription.py +3 -3
- paddle_billing/Resources/Subscriptions/SubscriptionsClient.py +5 -7
- paddle_billing/Resources/Transactions/Operations/Create/TransactionCreateItem.py +8 -0
- paddle_billing/{Entities/Transactions → Resources/Transactions/Operations/Create}/TransactionCreateItemWithPrice.py +2 -2
- paddle_billing/Resources/Transactions/Operations/Create/__init__.py +4 -0
- paddle_billing/Resources/Transactions/Operations/CreateTransaction.py +5 -2
- paddle_billing/Resources/Transactions/Operations/Preview/TransactionItemPreviewWithNonCatalogPrice.py +15 -0
- paddle_billing/Resources/Transactions/Operations/Preview/TransactionItemPreviewWithPriceId.py +10 -0
- paddle_billing/Resources/Transactions/Operations/Preview/__init__.py +6 -0
- paddle_billing/Resources/Transactions/Operations/PreviewTransactionByAddress.py +4 -6
- paddle_billing/Resources/Transactions/Operations/PreviewTransactionByCustomer.py +4 -6
- paddle_billing/Resources/Transactions/Operations/PreviewTransactionByIP.py +4 -6
- paddle_billing/Resources/Transactions/Operations/Price/TransactionNonCatalogPrice.py +24 -0
- paddle_billing/Resources/Transactions/Operations/Price/TransactionNonCatalogPriceWithProduct.py +28 -0
- paddle_billing/Resources/Transactions/Operations/Price/TransactionNonCatalogProduct.py +15 -0
- paddle_billing/Resources/Transactions/Operations/Price/__init__.py +7 -0
- paddle_billing/Resources/Transactions/Operations/Update/TransactionUpdateItem.py +8 -0
- paddle_billing/Resources/Transactions/Operations/Update/TransactionUpdateItemWithPrice.py +13 -0
- paddle_billing/Resources/Transactions/Operations/Update/__init__.py +4 -0
- paddle_billing/Resources/Transactions/Operations/UpdateTransaction.py +6 -3
- paddle_billing/Resources/Transactions/TransactionsClient.py +1 -1
- {paddle_python_sdk-0.3.2.dist-info → paddle_python_sdk-1.2.1.dist-info}/METADATA +10 -10
- {paddle_python_sdk-0.3.2.dist-info → paddle_python_sdk-1.2.1.dist-info}/RECORD +133 -93
- {paddle_python_sdk-0.3.2.dist-info → paddle_python_sdk-1.2.1.dist-info}/WHEEL +1 -1
- tests/Functional/Resources/CustomerPortalSessions/__init__.py +0 -0
- tests/Functional/Resources/CustomerPortalSessions/test_CustomerPortalSessionsClient.py +143 -0
- tests/Functional/Resources/Customers/test_CustomersClient.py +34 -0
- tests/Functional/Resources/Discounts/test_DiscountsClient.py +3 -2
- tests/Functional/Resources/NotificationSettings/test_NotificationSettingsClient.py +127 -1
- tests/Functional/Resources/Notifications/test_NotificationsClient.py +2 -2
- tests/Functional/Resources/PaymentMethods/__init__.py +0 -0
- tests/Functional/Resources/PaymentMethods/test_PaymentMethodsClient.py +289 -0
- tests/Functional/Resources/Subscriptions/test_SubscriptionsClient.py +273 -75
- tests/Functional/Resources/Transactions/test_TransactionsClient.py +233 -13
- paddle_billing/Entities/Subscriptions/SubscriptionItems.py +0 -18
- paddle_billing/Entities/Subscriptions/SubscriptionItemsWithPrice.py +0 -23
- paddle_billing/Entities/Subscriptions/SubscriptionNonCatalogPrice.py +0 -33
- paddle_billing/Entities/Subscriptions/SubscriptionNonCatalogPriceWithProduct.py +0 -35
- paddle_billing/Entities/Subscriptions/SubscriptionNonCatalogProduct.py +0 -25
- paddle_billing/Entities/Subscriptions/SubscriptionUpdateItem.py +0 -15
- paddle_billing/Entities/Transactions/TransactionCreateItem.py +0 -15
- paddle_billing/Entities/Transactions/TransactionItemPreviewWithNonCatalogPrice.py +0 -29
- paddle_billing/Entities/Transactions/TransactionItemPreviewWithPriceId.py +0 -17
- paddle_billing/Entities/Transactions/TransactionNonCatalogPrice.py +0 -38
- paddle_billing/Entities/Transactions/TransactionNonCatalogPriceWithProduct.py +0 -40
- paddle_billing/Entities/Transactions/TransactionNonCatalogProduct.py +0 -24
- {paddle_python_sdk-0.3.2.dist-info → paddle_python_sdk-1.2.1.dist-info}/LICENSE +0 -0
- {paddle_python_sdk-0.3.2.dist-info → paddle_python_sdk-1.2.1.dist-info}/top_level.txt +0 -0
paddle_billing/Client.py
CHANGED
|
@@ -20,6 +20,7 @@ from paddle_billing.Resources.Addresses.AddressesClient import AddressesClient
|
|
|
20
20
|
from paddle_billing.Resources.Adjustments.AdjustmentsClient import AdjustmentsClient
|
|
21
21
|
from paddle_billing.Resources.Businesses.BusinessesClient import BusinessesClient
|
|
22
22
|
from paddle_billing.Resources.Customers.CustomersClient import CustomersClient
|
|
23
|
+
from paddle_billing.Resources.CustomerPortalSessions.CustomerPortalSessionsClient import CustomerPortalSessionsClient
|
|
23
24
|
from paddle_billing.Resources.Discounts.DiscountsClient import DiscountsClient
|
|
24
25
|
from paddle_billing.Resources.Events.EventsClient import EventsClient
|
|
25
26
|
from paddle_billing.Resources.EventTypes.EventTypesClient import EventTypesClient
|
|
@@ -27,6 +28,7 @@ from paddle_billing.Resources.IPAddresses.IPAddressesClient import IPAddressesCl
|
|
|
27
28
|
from paddle_billing.Resources.Notifications.NotificationsClient import NotificationsClient
|
|
28
29
|
from paddle_billing.Resources.NotificationLogs.NotificationLogsClient import NotificationLogsClient
|
|
29
30
|
from paddle_billing.Resources.NotificationSettings.NotificationSettingsClient import NotificationSettingsClient
|
|
31
|
+
from paddle_billing.Resources.PaymentMethods.PaymentMethodsClient import PaymentMethodsClient
|
|
30
32
|
from paddle_billing.Resources.Prices.PricesClient import PricesClient
|
|
31
33
|
from paddle_billing.Resources.PricingPreviews.PricingPreviewsClient import PricingPreviewsClient
|
|
32
34
|
from paddle_billing.Resources.Products.ProductsClient import ProductsClient
|
|
@@ -37,6 +39,12 @@ from paddle_billing.Resources.Transactions.TransactionsClient import Transaction
|
|
|
37
39
|
|
|
38
40
|
class PayloadEncoder(JSONEncoder):
|
|
39
41
|
def default(self, z):
|
|
42
|
+
if isinstance(z, Undefined):
|
|
43
|
+
return None
|
|
44
|
+
|
|
45
|
+
if hasattr(z, "to_json") and callable(z.to_json):
|
|
46
|
+
return z.to_json()
|
|
47
|
+
|
|
40
48
|
if is_dataclass(z):
|
|
41
49
|
data = {}
|
|
42
50
|
for field in fields(z):
|
|
@@ -44,12 +52,6 @@ class PayloadEncoder(JSONEncoder):
|
|
|
44
52
|
|
|
45
53
|
return FiltersUndefined.filter_undefined_values(data)
|
|
46
54
|
|
|
47
|
-
if isinstance(z, Undefined):
|
|
48
|
-
return None
|
|
49
|
-
|
|
50
|
-
if hasattr(z, "to_json") and callable(z.to_json):
|
|
51
|
-
return z.to_json()
|
|
52
|
-
|
|
53
55
|
return super().default(z)
|
|
54
56
|
|
|
55
57
|
|
|
@@ -84,12 +86,14 @@ class Client:
|
|
|
84
86
|
self.adjustments = AdjustmentsClient(self)
|
|
85
87
|
self.businesses = BusinessesClient(self)
|
|
86
88
|
self.customers = CustomersClient(self)
|
|
89
|
+
self.customer_portal_sessions = CustomerPortalSessionsClient(self)
|
|
87
90
|
self.discounts = DiscountsClient(self)
|
|
88
91
|
self.events = EventsClient(self)
|
|
89
92
|
self.event_types = EventTypesClient(self)
|
|
90
93
|
self.notifications = NotificationsClient(self)
|
|
91
94
|
self.notification_logs = NotificationLogsClient(self)
|
|
92
95
|
self.notification_settings = NotificationSettingsClient(self)
|
|
96
|
+
self.payment_methods = PaymentMethodsClient(self)
|
|
93
97
|
self.prices = PricesClient(self)
|
|
94
98
|
self.pricing_previews = PricingPreviewsClient(self)
|
|
95
99
|
self.products = ProductsClient(self)
|
|
@@ -183,17 +187,11 @@ class Client:
|
|
|
183
187
|
def post_raw(
|
|
184
188
|
self, url: str, payload: dict | Operation | None = None, parameters: HasParameters | dict | None = None
|
|
185
189
|
) -> Response:
|
|
186
|
-
if isinstance(payload, dict):
|
|
187
|
-
payload = FiltersUndefined.filter_undefined_values(payload) # Strip Undefined items from the dict
|
|
188
|
-
|
|
189
190
|
url = Client.format_uri_parameters(url, parameters) if parameters else url
|
|
190
191
|
|
|
191
192
|
return self._make_request("POST", url, payload)
|
|
192
193
|
|
|
193
194
|
def patch_raw(self, url: str, payload: dict | Operation | None) -> Response:
|
|
194
|
-
if isinstance(payload, dict):
|
|
195
|
-
payload = FiltersUndefined.filter_undefined_values(payload) # Strip Undefined items from the dict
|
|
196
|
-
|
|
197
195
|
return self._make_request("PATCH", url, payload)
|
|
198
196
|
|
|
199
197
|
def delete_raw(self, url: str) -> Response:
|
|
@@ -206,7 +204,7 @@ class Client:
|
|
|
206
204
|
"Authorization": f"Bearer {self.__api_key}",
|
|
207
205
|
"Content-Type": "application/json",
|
|
208
206
|
"Paddle-Version": str(self.use_api_version),
|
|
209
|
-
"User-Agent": "PaddleSDK/python
|
|
207
|
+
"User-Agent": "PaddleSDK/python 1.2.1",
|
|
210
208
|
}
|
|
211
209
|
)
|
|
212
210
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from paddle_billing.Entities.Collections.Collection import Collection
|
|
4
|
+
from paddle_billing.Entities.Collections.Paginator import Paginator
|
|
5
|
+
from paddle_billing.Entities.PaymentMethod import PaymentMethod
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class PaymentMethodCollection(Collection[PaymentMethod]):
|
|
9
|
+
@classmethod
|
|
10
|
+
def from_list(cls, items_data: list, paginator: Paginator | None = None) -> PaymentMethodCollection:
|
|
11
|
+
items: list[PaymentMethod] = [PaymentMethod.from_dict(item) for item in items_data]
|
|
12
|
+
|
|
13
|
+
return PaymentMethodCollection(items, paginator)
|
|
@@ -11,6 +11,7 @@ from paddle_billing.Entities.Collections.NotificationCollection import Notificat
|
|
|
11
11
|
from paddle_billing.Entities.Collections.NotificationLogCollection import NotificationLogCollection
|
|
12
12
|
from paddle_billing.Entities.Collections.NotificationSettingCollection import NotificationSettingCollection
|
|
13
13
|
from paddle_billing.Entities.Collections.Paginator import Paginator
|
|
14
|
+
from paddle_billing.Entities.Collections.PaymentMethodCollection import PaymentMethodCollection
|
|
14
15
|
from paddle_billing.Entities.Collections.PriceCollection import PriceCollection
|
|
15
16
|
from paddle_billing.Entities.Collections.ProductCollection import ProductCollection
|
|
16
17
|
from paddle_billing.Entities.Collections.ReportCollection import ReportCollection
|
|
@@ -0,0 +1,18 @@
|
|
|
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 CustomerAuthToken(Entity):
|
|
10
|
+
customer_auth_token: str
|
|
11
|
+
expires_at: datetime
|
|
12
|
+
|
|
13
|
+
@staticmethod
|
|
14
|
+
def from_dict(data: dict) -> CustomerAuthToken:
|
|
15
|
+
return CustomerAuthToken(
|
|
16
|
+
customer_auth_token=data["customer_auth_token"],
|
|
17
|
+
expires_at=datetime.fromisoformat(data["expires_at"]),
|
|
18
|
+
)
|
|
@@ -0,0 +1,23 @@
|
|
|
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.CustomerPortalSessions import CustomerPortalSessionUrls
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dataclass
|
|
10
|
+
class CustomerPortalSession(Entity):
|
|
11
|
+
id: str
|
|
12
|
+
customer_id: str
|
|
13
|
+
urls: CustomerPortalSessionUrls
|
|
14
|
+
created_at: datetime
|
|
15
|
+
|
|
16
|
+
@staticmethod
|
|
17
|
+
def from_dict(data: dict) -> CustomerPortalSession:
|
|
18
|
+
return CustomerPortalSession(
|
|
19
|
+
id=data["id"],
|
|
20
|
+
customer_id=data["customer_id"],
|
|
21
|
+
urls=CustomerPortalSessionUrls.from_dict(data["urls"]),
|
|
22
|
+
created_at=datetime.fromisoformat(data["created_at"]),
|
|
23
|
+
)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
@dataclass
|
|
6
|
+
class CustomerPortalSessionGeneralUrl:
|
|
7
|
+
overview: str
|
|
8
|
+
|
|
9
|
+
@staticmethod
|
|
10
|
+
def from_dict(data: dict) -> CustomerPortalSessionGeneralUrl:
|
|
11
|
+
return CustomerPortalSessionGeneralUrl(
|
|
12
|
+
overview=data["overview"],
|
|
13
|
+
)
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
@dataclass
|
|
6
|
+
class CustomerPortalSessionSubscriptionUrl:
|
|
7
|
+
id: str
|
|
8
|
+
cancel_subscription: str
|
|
9
|
+
update_subscription_payment_method: str
|
|
10
|
+
|
|
11
|
+
@staticmethod
|
|
12
|
+
def from_dict(data: dict) -> CustomerPortalSessionSubscriptionUrl:
|
|
13
|
+
return CustomerPortalSessionSubscriptionUrl(
|
|
14
|
+
id=data["id"],
|
|
15
|
+
cancel_subscription=data["cancel_subscription"],
|
|
16
|
+
update_subscription_payment_method=data["update_subscription_payment_method"],
|
|
17
|
+
)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from paddle_billing.Entities.CustomerPortalSessions.CustomerPortalSessionGeneralUrl import (
|
|
5
|
+
CustomerPortalSessionGeneralUrl,
|
|
6
|
+
)
|
|
7
|
+
from paddle_billing.Entities.CustomerPortalSessions.CustomerPortalSessionSubscriptionUrl import (
|
|
8
|
+
CustomerPortalSessionSubscriptionUrl,
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@dataclass
|
|
13
|
+
class CustomerPortalSessionUrls:
|
|
14
|
+
general: CustomerPortalSessionGeneralUrl
|
|
15
|
+
subscriptions: list[CustomerPortalSessionSubscriptionUrl]
|
|
16
|
+
|
|
17
|
+
@staticmethod
|
|
18
|
+
def from_dict(data: dict) -> CustomerPortalSessionUrls:
|
|
19
|
+
return CustomerPortalSessionUrls(
|
|
20
|
+
general=CustomerPortalSessionGeneralUrl.from_dict(data["general"]),
|
|
21
|
+
subscriptions=[
|
|
22
|
+
CustomerPortalSessionSubscriptionUrl.from_dict(item) for item in data.get("subscriptions", [])
|
|
23
|
+
],
|
|
24
|
+
)
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
from paddle_billing.Entities.CustomerPortalSessions.CustomerPortalSessionUrls import CustomerPortalSessionUrls
|
|
2
|
+
from paddle_billing.Entities.CustomerPortalSessions.CustomerPortalSessionGeneralUrl import (
|
|
3
|
+
CustomerPortalSessionGeneralUrl,
|
|
4
|
+
)
|
|
5
|
+
from paddle_billing.Entities.CustomerPortalSessions.CustomerPortalSessionSubscriptionUrl import (
|
|
6
|
+
CustomerPortalSessionSubscriptionUrl,
|
|
7
|
+
)
|
|
@@ -3,7 +3,7 @@ from dataclasses import dataclass
|
|
|
3
3
|
|
|
4
4
|
from paddle_billing.Entities.Entity import Entity
|
|
5
5
|
from paddle_billing.Entities.EventType import EventType
|
|
6
|
-
from paddle_billing.Entities.NotificationSettings import NotificationSettingType
|
|
6
|
+
from paddle_billing.Entities.NotificationSettings import NotificationSettingType, NotificationSettingTrafficSource
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
@dataclass
|
|
@@ -17,6 +17,7 @@ class NotificationSetting(Entity):
|
|
|
17
17
|
include_sensitive_fields: bool
|
|
18
18
|
subscribed_events: list[EventType]
|
|
19
19
|
endpoint_secret_key: str
|
|
20
|
+
traffic_source: NotificationSettingTrafficSource
|
|
20
21
|
|
|
21
22
|
@staticmethod
|
|
22
23
|
def from_dict(data: dict) -> NotificationSetting:
|
|
@@ -30,4 +31,5 @@ class NotificationSetting(Entity):
|
|
|
30
31
|
include_sensitive_fields=data["include_sensitive_fields"],
|
|
31
32
|
subscribed_events=[EventType.from_dict(event) for event in data.get("subscribed_events", [])],
|
|
32
33
|
endpoint_secret_key=data["endpoint_secret_key"],
|
|
34
|
+
traffic_source=NotificationSettingTrafficSource(data["traffic_source"]),
|
|
33
35
|
)
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
from paddle_billing.PaddleStrEnum import PaddleStrEnum, PaddleStrEnumMeta
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class NotificationSettingTrafficSource(PaddleStrEnum, metaclass=PaddleStrEnumMeta):
|
|
5
|
+
All: "NotificationSettingTrafficSource" = "all"
|
|
6
|
+
Platform: "NotificationSettingTrafficSource" = "platform"
|
|
7
|
+
Simulation: "NotificationSettingTrafficSource" = "simulation"
|
|
@@ -0,0 +1,38 @@
|
|
|
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
|
+
Card,
|
|
8
|
+
Paypal,
|
|
9
|
+
SavedPaymentMethodOrigin,
|
|
10
|
+
SavedPaymentMethodType,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@dataclass
|
|
15
|
+
class PaymentMethod(Entity):
|
|
16
|
+
id: str
|
|
17
|
+
customer_id: str
|
|
18
|
+
address_id: str
|
|
19
|
+
type: SavedPaymentMethodType
|
|
20
|
+
card: Card | None
|
|
21
|
+
paypal: Paypal | None
|
|
22
|
+
origin: SavedPaymentMethodOrigin
|
|
23
|
+
saved_at: datetime
|
|
24
|
+
updated_at: datetime
|
|
25
|
+
|
|
26
|
+
@staticmethod
|
|
27
|
+
def from_dict(data: dict) -> PaymentMethod:
|
|
28
|
+
return PaymentMethod(
|
|
29
|
+
id=data["id"],
|
|
30
|
+
customer_id=data["customer_id"],
|
|
31
|
+
address_id=data["address_id"],
|
|
32
|
+
type=SavedPaymentMethodType(data["type"]),
|
|
33
|
+
card=Card.from_dict(data["card"]) if data.get("card") else None,
|
|
34
|
+
paypal=Paypal.from_dict(data["paypal"]) if data.get("paypal") else None,
|
|
35
|
+
origin=SavedPaymentMethodOrigin(data["origin"]),
|
|
36
|
+
saved_at=datetime.fromisoformat(data["saved_at"]),
|
|
37
|
+
updated_at=datetime.fromisoformat(data["updated_at"]),
|
|
38
|
+
)
|
paddle_billing/Entities/Price.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
from dataclasses import
|
|
2
|
+
from dataclasses import dataclass
|
|
3
3
|
|
|
4
4
|
from paddle_billing.Entities.Reports import ReportFilterName, ReportFilterOperator
|
|
5
5
|
|
|
@@ -13,6 +13,3 @@ class ReportFilter:
|
|
|
13
13
|
@staticmethod
|
|
14
14
|
def from_dict(data: dict) -> ReportFilter:
|
|
15
15
|
return ReportFilter(**data)
|
|
16
|
-
|
|
17
|
-
def get_parameters(self) -> dict:
|
|
18
|
-
return asdict(self)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
@dataclass
|
|
6
|
+
class Paypal:
|
|
7
|
+
email: str
|
|
8
|
+
reference: str
|
|
9
|
+
|
|
10
|
+
@staticmethod
|
|
11
|
+
def from_dict(data: dict) -> Paypal:
|
|
12
|
+
return Paypal(
|
|
13
|
+
email=data["email"],
|
|
14
|
+
reference=data["reference"],
|
|
15
|
+
)
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
from paddle_billing.PaddleStrEnum import PaddleStrEnum, PaddleStrEnumMeta
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class SavedPaymentMethodOrigin(PaddleStrEnum, metaclass=PaddleStrEnumMeta):
|
|
5
|
+
SavedDuringPurchase: "SavedPaymentMethodOrigin" = "saved_during_purchase"
|
|
6
|
+
Subscription: "SavedPaymentMethodOrigin" = "subscription"
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from paddle_billing.PaddleStrEnum import PaddleStrEnum, PaddleStrEnumMeta
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class SavedPaymentMethodType(PaddleStrEnum, metaclass=PaddleStrEnumMeta):
|
|
5
|
+
Alipay: "SavedPaymentMethodType" = "alipay"
|
|
6
|
+
ApplePay: "SavedPaymentMethodType" = "apple_pay"
|
|
7
|
+
Card: "SavedPaymentMethodType" = "card"
|
|
8
|
+
GooglePay: "SavedPaymentMethodType" = "google_pay"
|
|
9
|
+
Paypal: "SavedPaymentMethodType" = "paypal"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
from dataclasses import dataclass
|
|
3
3
|
|
|
4
|
-
from paddle_billing.Entities.
|
|
4
|
+
from paddle_billing.Entities.Shared.TransactionPreviewProduct import TransactionPreviewProduct
|
|
5
5
|
from paddle_billing.Entities.Shared.Totals import Totals
|
|
6
6
|
from paddle_billing.Entities.Shared.UnitTotals import UnitTotals
|
|
7
7
|
from paddle_billing.Entities.Shared.Proration import Proration
|
|
@@ -9,22 +9,22 @@ from paddle_billing.Entities.Shared.Proration import Proration
|
|
|
9
9
|
|
|
10
10
|
@dataclass
|
|
11
11
|
class TransactionLineItemPreview:
|
|
12
|
-
price_id: str
|
|
12
|
+
price_id: str | None
|
|
13
13
|
quantity: int
|
|
14
14
|
tax_rate: str
|
|
15
15
|
unit_totals: UnitTotals
|
|
16
16
|
totals: Totals
|
|
17
|
-
product:
|
|
17
|
+
product: TransactionPreviewProduct
|
|
18
18
|
proration: Proration | None
|
|
19
19
|
|
|
20
20
|
@staticmethod
|
|
21
21
|
def from_dict(data: dict) -> TransactionLineItemPreview:
|
|
22
22
|
return TransactionLineItemPreview(
|
|
23
|
-
price_id=data
|
|
23
|
+
price_id=data.get("price_id"),
|
|
24
24
|
quantity=data["quantity"],
|
|
25
25
|
tax_rate=data["tax_rate"],
|
|
26
26
|
unit_totals=UnitTotals.from_dict(data["unit_totals"]),
|
|
27
27
|
totals=Totals.from_dict(data["totals"]),
|
|
28
|
-
product=
|
|
28
|
+
product=TransactionPreviewProduct.from_dict(data["product"]),
|
|
29
29
|
proration=Proration.from_dict(data["proration"]) if data.get("proration") else None,
|
|
30
30
|
)
|
|
@@ -0,0 +1,37 @@
|
|
|
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 TransactionPreviewProduct(Entity):
|
|
11
|
+
id: str | None
|
|
12
|
+
name: str
|
|
13
|
+
description: str | None
|
|
14
|
+
tax_category: TaxCategory
|
|
15
|
+
image_url: str | None
|
|
16
|
+
status: Status
|
|
17
|
+
created_at: datetime
|
|
18
|
+
updated_at: datetime
|
|
19
|
+
type: CatalogType | None = None
|
|
20
|
+
custom_data: CustomData | None = None
|
|
21
|
+
import_meta: ImportMeta | None = None
|
|
22
|
+
|
|
23
|
+
@staticmethod
|
|
24
|
+
def from_dict(data: dict) -> TransactionPreviewProduct:
|
|
25
|
+
return TransactionPreviewProduct(
|
|
26
|
+
id=data.get("id"),
|
|
27
|
+
name=data["name"],
|
|
28
|
+
description=data.get("description"),
|
|
29
|
+
tax_category=TaxCategory(data["tax_category"]),
|
|
30
|
+
image_url=data.get("image_url"),
|
|
31
|
+
status=Status(data["status"]),
|
|
32
|
+
created_at=datetime.fromisoformat(data["created_at"]),
|
|
33
|
+
updated_at=datetime.fromisoformat(data["updated_at"]),
|
|
34
|
+
type=CatalogType(data["type"]) if data.get("type") else None,
|
|
35
|
+
custom_data=CustomData(data["custom_data"]) if data.get("custom_data") else None,
|
|
36
|
+
import_meta=ImportMeta.from_dict(data["import_meta"]) if data.get("import_meta") else None,
|
|
37
|
+
)
|
|
@@ -31,8 +31,11 @@ from paddle_billing.Entities.Shared.Pagination import Pagination
|
|
|
31
31
|
from paddle_billing.Entities.Shared.PaymentAttemptStatus import PaymentAttemptStatus
|
|
32
32
|
from paddle_billing.Entities.Shared.PaymentMethodType import PaymentMethodType
|
|
33
33
|
from paddle_billing.Entities.Shared.PayoutTotalsAdjustment import PayoutTotalsAdjustment
|
|
34
|
+
from paddle_billing.Entities.Shared.Paypal import Paypal
|
|
34
35
|
from paddle_billing.Entities.Shared.PriceQuantity import PriceQuantity
|
|
35
36
|
from paddle_billing.Entities.Shared.Proration import Proration
|
|
37
|
+
from paddle_billing.Entities.Shared.SavedPaymentMethodOrigin import SavedPaymentMethodOrigin
|
|
38
|
+
from paddle_billing.Entities.Shared.SavedPaymentMethodType import SavedPaymentMethodType
|
|
36
39
|
from paddle_billing.Entities.Shared.Status import Status
|
|
37
40
|
from paddle_billing.Entities.Shared.TransactionStatus import TransactionStatus
|
|
38
41
|
from paddle_billing.Entities.Shared.TaxCategory import TaxCategory
|
|
@@ -9,7 +9,7 @@ class SubscriptionAdjustmentItem:
|
|
|
9
9
|
item_id: str
|
|
10
10
|
type: AdjustmentType
|
|
11
11
|
amount: str | None
|
|
12
|
-
proration: Proration
|
|
12
|
+
proration: Proration | None
|
|
13
13
|
totals: AdjustmentItemTotals
|
|
14
14
|
|
|
15
15
|
@staticmethod
|
|
@@ -18,6 +18,6 @@ class SubscriptionAdjustmentItem:
|
|
|
18
18
|
item_id=data["item_id"],
|
|
19
19
|
type=AdjustmentType(data["type"]),
|
|
20
20
|
amount=data.get("amount"),
|
|
21
|
-
proration=Proration.from_dict(data["proration"]),
|
|
21
|
+
proration=Proration.from_dict(data["proration"]) if data.get("proration") else None,
|
|
22
22
|
totals=AdjustmentItemTotals.from_dict(data["totals"]),
|
|
23
23
|
)
|
|
@@ -6,15 +6,8 @@ from paddle_billing.Entities.Subscriptions.SubscriptionDiscount import Subscript
|
|
|
6
6
|
from paddle_billing.Entities.Subscriptions.SubscriptionEffectiveFrom import SubscriptionEffectiveFrom
|
|
7
7
|
from paddle_billing.Entities.Subscriptions.SubscriptionItem import SubscriptionItem
|
|
8
8
|
from paddle_billing.Entities.Subscriptions.SubscriptionItemStatus import SubscriptionItemStatus
|
|
9
|
-
from paddle_billing.Entities.Subscriptions.SubscriptionItems import SubscriptionItems
|
|
10
|
-
from paddle_billing.Entities.Subscriptions.SubscriptionItemsWithPrice import SubscriptionItemsWithPrice
|
|
11
9
|
from paddle_billing.Entities.Subscriptions.SubscriptionManagementUrls import SubscriptionManagementUrls
|
|
12
10
|
from paddle_billing.Entities.Subscriptions.SubscriptionNextTransaction import SubscriptionNextTransaction
|
|
13
|
-
from paddle_billing.Entities.Subscriptions.SubscriptionNonCatalogPrice import SubscriptionNonCatalogPrice
|
|
14
|
-
from paddle_billing.Entities.Subscriptions.SubscriptionNonCatalogPriceWithProduct import (
|
|
15
|
-
SubscriptionNonCatalogPriceWithProduct,
|
|
16
|
-
)
|
|
17
|
-
from paddle_billing.Entities.Subscriptions.SubscriptionNonCatalogProduct import SubscriptionNonCatalogProduct
|
|
18
11
|
from paddle_billing.Entities.Subscriptions.SubscriptionOnPaymentFailure import SubscriptionOnPaymentFailure
|
|
19
12
|
from paddle_billing.Entities.Subscriptions.SubscriptionPreviewSubscriptionUpdateSummary import (
|
|
20
13
|
SubscriptionPreviewSubscriptionUpdateSummary,
|
|
@@ -26,4 +19,3 @@ from paddle_billing.Entities.Subscriptions.SubscriptionResumeEffectiveFrom impor
|
|
|
26
19
|
from paddle_billing.Entities.Subscriptions.SubscriptionScheduledChange import SubscriptionScheduledChange
|
|
27
20
|
from paddle_billing.Entities.Subscriptions.SubscriptionScheduledChangeAction import SubscriptionScheduledChangeAction
|
|
28
21
|
from paddle_billing.Entities.Subscriptions.SubscriptionStatus import SubscriptionStatus
|
|
29
|
-
from paddle_billing.Entities.Subscriptions.SubscriptionUpdateItem import SubscriptionUpdateItem
|
|
@@ -8,7 +8,6 @@ from paddle_billing.Entities.Shared.Proration import Proration
|
|
|
8
8
|
|
|
9
9
|
@dataclass
|
|
10
10
|
class TransactionItem:
|
|
11
|
-
price_id: str | None
|
|
12
11
|
price: Price
|
|
13
12
|
quantity: int
|
|
14
13
|
proration: Proration | None
|
|
@@ -16,7 +15,6 @@ class TransactionItem:
|
|
|
16
15
|
@staticmethod
|
|
17
16
|
def from_dict(data: dict) -> TransactionItem:
|
|
18
17
|
return TransactionItem(
|
|
19
|
-
price_id=data.get("price_id"),
|
|
20
18
|
price=Price.from_dict(data["price"]),
|
|
21
19
|
quantity=data["quantity"],
|
|
22
20
|
proration=Proration.from_dict(data["proration"]) if data.get("proration") else None,
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
from dataclasses import dataclass
|
|
3
3
|
|
|
4
|
-
from paddle_billing.Entities.
|
|
4
|
+
from paddle_billing.Entities.Transactions.TransactionPreviewPrice import TransactionPreviewPrice
|
|
5
5
|
|
|
6
6
|
from paddle_billing.Entities.Shared.Proration import Proration
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
@dataclass
|
|
10
10
|
class TransactionItemPreviewWithPrice:
|
|
11
|
-
price:
|
|
11
|
+
price: TransactionPreviewPrice
|
|
12
12
|
quantity: int
|
|
13
13
|
include_in_totals: bool
|
|
14
14
|
proration: Proration | None
|
|
@@ -16,7 +16,7 @@ class TransactionItemPreviewWithPrice:
|
|
|
16
16
|
@staticmethod
|
|
17
17
|
def from_dict(data: dict) -> TransactionItemPreviewWithPrice:
|
|
18
18
|
return TransactionItemPreviewWithPrice(
|
|
19
|
-
price=
|
|
19
|
+
price=TransactionPreviewPrice.from_dict(data["price"]),
|
|
20
20
|
quantity=data["quantity"],
|
|
21
21
|
include_in_totals=data["include_in_totals"],
|
|
22
22
|
proration=Proration.from_dict(data["proration"]) if data.get("proration") else None,
|
|
@@ -0,0 +1,59 @@
|
|
|
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
|
+
Duration,
|
|
10
|
+
ImportMeta,
|
|
11
|
+
Money,
|
|
12
|
+
PriceQuantity,
|
|
13
|
+
Status,
|
|
14
|
+
TaxMode,
|
|
15
|
+
UnitPriceOverride,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@dataclass
|
|
20
|
+
class TransactionPreviewPrice(Entity):
|
|
21
|
+
id: str | None
|
|
22
|
+
product_id: str | None
|
|
23
|
+
name: str | None
|
|
24
|
+
description: str
|
|
25
|
+
type: CatalogType
|
|
26
|
+
billing_cycle: Duration | None
|
|
27
|
+
trial_period: Duration | None
|
|
28
|
+
tax_mode: TaxMode
|
|
29
|
+
unit_price: Money
|
|
30
|
+
unit_price_overrides: list[UnitPriceOverride]
|
|
31
|
+
quantity: PriceQuantity
|
|
32
|
+
status: Status
|
|
33
|
+
custom_data: CustomData | None
|
|
34
|
+
import_meta: ImportMeta | None
|
|
35
|
+
created_at: datetime
|
|
36
|
+
updated_at: datetime
|
|
37
|
+
|
|
38
|
+
@staticmethod
|
|
39
|
+
def from_dict(data: dict) -> TransactionPreviewPrice:
|
|
40
|
+
return TransactionPreviewPrice(
|
|
41
|
+
id=data.get("id"),
|
|
42
|
+
product_id=data.get("product_id"),
|
|
43
|
+
name=data.get("name"),
|
|
44
|
+
description=data["description"],
|
|
45
|
+
unit_price=Money.from_dict(data["unit_price"]),
|
|
46
|
+
quantity=PriceQuantity.from_dict(data["quantity"]),
|
|
47
|
+
status=Status(data["status"]),
|
|
48
|
+
tax_mode=TaxMode(data.get("tax_mode")),
|
|
49
|
+
created_at=datetime.fromisoformat(data["created_at"]),
|
|
50
|
+
updated_at=datetime.fromisoformat(data["updated_at"]),
|
|
51
|
+
unit_price_overrides=[
|
|
52
|
+
UnitPriceOverride.from_dict(override) for override in data.get("unit_price_overrides", [])
|
|
53
|
+
],
|
|
54
|
+
type=CatalogType(data.get("type")) if data.get("type") else None,
|
|
55
|
+
billing_cycle=Duration.from_dict(data["billing_cycle"]) if data.get("billing_cycle") else None,
|
|
56
|
+
trial_period=Duration.from_dict(data["trial_period"]) if data.get("trial_period") else None,
|
|
57
|
+
custom_data=CustomData(data["custom_data"]) if data.get("custom_data") else None,
|
|
58
|
+
import_meta=ImportMeta.from_dict(data["import_meta"]) if data.get("import_meta") else None,
|
|
59
|
+
)
|
|
@@ -1,19 +1,7 @@
|
|
|
1
1
|
from paddle_billing.Entities.Transactions.TransactionAdjustmentsTotals import TransactionAdjustmentsTotals
|
|
2
2
|
from paddle_billing.Entities.Transactions.TransactionBreakdown import TransactionBreakdown
|
|
3
3
|
from paddle_billing.Entities.Transactions.TransactionCardType import TransactionCardType
|
|
4
|
-
from paddle_billing.Entities.Transactions.TransactionCreateItem import TransactionCreateItem
|
|
5
|
-
from paddle_billing.Entities.Transactions.TransactionCreateItemWithPrice import TransactionCreateItemWithPrice
|
|
6
|
-
from paddle_billing.Entities.Transactions.TransactionItemPreviewWithNonCatalogPrice import (
|
|
7
|
-
TransactionItemPreviewWithNonCatalogPrice,
|
|
8
|
-
)
|
|
9
|
-
from paddle_billing.Entities.Transactions.TransactionItemPreviewWithPriceId import TransactionItemPreviewWithPriceId
|
|
10
|
-
from paddle_billing.Entities.Transactions.TransactionNonCatalogPrice import TransactionNonCatalogPrice
|
|
11
|
-
from paddle_billing.Entities.Transactions.TransactionNonCatalogPriceWithProduct import (
|
|
12
|
-
TransactionNonCatalogPriceWithProduct,
|
|
13
|
-
)
|
|
14
|
-
from paddle_billing.Entities.Transactions.TransactionNonCatalogProduct import TransactionNonCatalogProduct
|
|
15
4
|
from paddle_billing.Entities.Shared.TimePeriod import TimePeriod
|
|
16
|
-
from paddle_billing.Entities.Transactions.TransactionUpdateTransactionItem import TransactionUpdateTransactionItem
|
|
17
5
|
|
|
18
6
|
|
|
19
7
|
# These cause circular imports
|
|
@@ -44,10 +44,12 @@ class Entity(ABC, EntityDict):
|
|
|
44
44
|
def _resolve_event_class_name(event_type) -> str:
|
|
45
45
|
if event_type == "subscription.created":
|
|
46
46
|
return "SubscriptionCreated"
|
|
47
|
+
if event_type == "payment_method.deleted":
|
|
48
|
+
return "PaymentMethodDeleted"
|
|
47
49
|
|
|
48
50
|
event_entity = event_type.split(".")[0] or ""
|
|
49
51
|
|
|
50
|
-
return event_entity.lower().title()
|
|
52
|
+
return event_entity.lower().title().replace("_", "")
|
|
51
53
|
|
|
52
54
|
def to_dict(self) -> dict:
|
|
53
55
|
return asdict(self)
|