From ac388c16487db8d2f56e29b7cb7b20356de622e5 Mon Sep 17 00:00:00 2001 From: Jessica Matsuoka Date: Wed, 14 Jan 2026 12:52:31 +0100 Subject: [PATCH 1/2] chore: channelspecific directory structure --- .../flow_channel_specific_message.py | 26 ------------ .../kakaotalk/buttons/__init__.py | 7 ++++ .../kakaotalk_app_link_button.py | 2 +- .../kakaotalk_bot_keyword_button.py | 2 +- .../{ => buttons}/kakaotalk_button.py | 0 .../kakaotalk_web_link_button.py | 2 +- .../kakaotalk/commerce/__init__.py | 42 +++++++++++++++++++ .../{ => commerce}/kakaotalk_carousel.py | 6 +-- ...ousel_commerce_channel_specific_message.py | 6 +-- .../{ => commerce}/kakaotalk_carousel_head.py | 0 .../{ => commerce}/kakaotalk_carousel_tail.py | 0 .../kakaotalk_channel_specific_message.py | 0 ...otalk_commerce_channel_specific_message.py | 6 +-- .../kakaotalk_commerce_image.py | 0 .../kakaotalk_commerce_message.py | 2 +- .../kakaotalk_discount_fixed_commerce.py | 2 +- .../kakaotalk_discount_rate_commerce.py | 2 +- .../kakaotalk_regular_price_commerce.py | 0 .../kakaotalk/coupons/__init__.py | 7 ++++ .../{ => coupons}/kakaotalk_coupon.py | 0 .../kakaotalk_discount_rate_coupon.py | 2 +- .../kakaotalk_fixed_discount_coupon.py | 2 +- .../{ => coupons}/kakaotalk_free_coupon.py | 2 +- .../kakaotalk_shipping_discount_coupon.py | 2 +- .../{ => coupons}/kakaotalk_up_coupon.py | 2 +- .../types/channel_specific_message_content.py | 4 +- .../response/types/kakaotalk_button.py | 6 +-- .../response/types/kakaotalk_commerce.py | 6 +-- .../response/types/kakaotalk_coupon.py | 10 ++--- 29 files changed, 85 insertions(+), 63 deletions(-) delete mode 100644 sinch/domains/conversation/models/v1/messages/categories/channelspecific/flow_channel_specific_message.py create mode 100644 sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/buttons/__init__.py rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => buttons}/kakaotalk_app_link_button.py (91%) rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => buttons}/kakaotalk_bot_keyword_button.py (83%) rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => buttons}/kakaotalk_button.py (100%) rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => buttons}/kakaotalk_web_link_button.py (90%) create mode 100644 sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/__init__.py rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => commerce}/kakaotalk_carousel.py (70%) rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => commerce}/kakaotalk_carousel_commerce_channel_specific_message.py (63%) rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => commerce}/kakaotalk_carousel_head.py (100%) rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => commerce}/kakaotalk_carousel_tail.py (100%) rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => commerce}/kakaotalk_channel_specific_message.py (100%) rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => commerce}/kakaotalk_commerce_channel_specific_message.py (85%) rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => commerce}/kakaotalk_commerce_image.py (100%) rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => commerce}/kakaotalk_commerce_message.py (95%) rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => commerce}/kakaotalk_discount_fixed_commerce.py (89%) rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => commerce}/kakaotalk_discount_rate_commerce.py (89%) rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => commerce}/kakaotalk_regular_price_commerce.py (100%) create mode 100644 sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/__init__.py rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => coupons}/kakaotalk_coupon.py (100%) rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => coupons}/kakaotalk_discount_rate_coupon.py (89%) rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => coupons}/kakaotalk_fixed_discount_coupon.py (89%) rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => coupons}/kakaotalk_free_coupon.py (87%) rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => coupons}/kakaotalk_shipping_discount_coupon.py (87%) rename sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/{ => coupons}/kakaotalk_up_coupon.py (87%) diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/flow_channel_specific_message.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/flow_channel_specific_message.py deleted file mode 100644 index 2a4f7c7a..00000000 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/flow_channel_specific_message.py +++ /dev/null @@ -1,26 +0,0 @@ -from typing import Optional -from pydantic import Field, StrictStr -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.whatsapp_common_props import ( - WhatsAppCommonProps, -) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.flow_action_payload import ( - FlowActionPayload, -) - - -class FlowChannelSpecificMessage(WhatsAppCommonProps): - flow_id: StrictStr = Field(..., description="ID of the Flow.") - flow_cta: StrictStr = Field( - ..., - description="Text which is displayed on the Call To Action button (20 characters maximum, emoji not supported).", - ) - flow_token: Optional[StrictStr] = Field( - default=None, description="Generated token which is an identifier." - ) - flow_mode: Optional[StrictStr] = Field( - default="published", description="The mode in which the flow is." - ) - flow_action: Optional[StrictStr] = Field( - default="navigate", description="The flow action." - ) - flow_action_payload: Optional[FlowActionPayload] = None diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/buttons/__init__.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/buttons/__init__.py new file mode 100644 index 00000000..6fe3454b --- /dev/null +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/buttons/__init__.py @@ -0,0 +1,7 @@ +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.buttons.kakaotalk_button import ( + KakaoTalkButton, +) + +__all__ = [ + "KakaoTalkButton", +] diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_app_link_button.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/buttons/kakaotalk_app_link_button.py similarity index 91% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_app_link_button.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/buttons/kakaotalk_app_link_button.py index 638ce4c0..675c3dfc 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_app_link_button.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/buttons/kakaotalk_app_link_button.py @@ -1,6 +1,6 @@ from typing import Literal from pydantic import Field, StrictStr -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_button import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.buttons import ( KakaoTalkButton, ) diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_bot_keyword_button.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/buttons/kakaotalk_bot_keyword_button.py similarity index 83% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_bot_keyword_button.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/buttons/kakaotalk_bot_keyword_button.py index bfaabe98..1cac0dec 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_bot_keyword_button.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/buttons/kakaotalk_bot_keyword_button.py @@ -1,6 +1,6 @@ from typing import Literal from pydantic import Field -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_button import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.buttons import ( KakaoTalkButton, ) diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_button.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/buttons/kakaotalk_button.py similarity index 100% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_button.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/buttons/kakaotalk_button.py diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_web_link_button.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/buttons/kakaotalk_web_link_button.py similarity index 90% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_web_link_button.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/buttons/kakaotalk_web_link_button.py index 7b297e23..e49e8e85 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_web_link_button.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/buttons/kakaotalk_web_link_button.py @@ -1,6 +1,6 @@ from typing import Literal, Optional from pydantic import Field, StrictStr -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_button import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.buttons import ( KakaoTalkButton, ) diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/__init__.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/__init__.py new file mode 100644 index 00000000..84ddbabd --- /dev/null +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/__init__.py @@ -0,0 +1,42 @@ +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.commerce.kakaotalk_channel_specific_message import ( + KakaoTalkChannelSpecificMessage, +) +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.commerce.kakaotalk_commerce_image import ( + KakaoTalkCommerceImage, +) +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.commerce.kakaotalk_carousel_head import ( + KakaoTalkCarouselHead, +) +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.commerce.kakaotalk_carousel_tail import ( + KakaoTalkCarouselTail, +) +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.commerce.kakaotalk_regular_price_commerce import ( + KakaoTalkRegularPriceCommerce, +) + + +def __getattr__(name: str): + if name == "KakaoTalkCommerceMessage": + from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.commerce.kakaotalk_commerce_message import ( + KakaoTalkCommerceMessage, + ) + + return KakaoTalkCommerceMessage + if name == "KakaoTalkCarousel": + from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.commerce.kakaotalk_carousel import ( + KakaoTalkCarousel, + ) + + return KakaoTalkCarousel + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +__all__ = [ + "KakaoTalkChannelSpecificMessage", + "KakaoTalkCommerceImage", + "KakaoTalkCarouselHead", + "KakaoTalkCarouselTail", + "KakaoTalkRegularPriceCommerce", + "KakaoTalkCommerceMessage", + "KakaoTalkCarousel", +] diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_carousel.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_carousel.py similarity index 70% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_carousel.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_carousel.py index d3517fca..6fac4cc7 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_carousel.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_carousel.py @@ -1,12 +1,8 @@ from typing import Optional from pydantic import Field, conlist -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_carousel_head import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.commerce import ( KakaoTalkCarouselHead, -) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_carousel_tail import ( KakaoTalkCarouselTail, -) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_commerce_message import ( KakaoTalkCommerceMessage, ) from sinch.domains.conversation.models.v1.messages.internal.base import ( diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_carousel_commerce_channel_specific_message.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_carousel_commerce_channel_specific_message.py similarity index 63% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_carousel_commerce_channel_specific_message.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_carousel_commerce_channel_specific_message.py index 8cc4305c..9a2d45f7 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_carousel_commerce_channel_specific_message.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_carousel_commerce_channel_specific_message.py @@ -1,9 +1,7 @@ from pydantic import Field -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_channel_specific_message import ( - KakaoTalkChannelSpecificMessage, -) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_carousel import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.commerce import ( KakaoTalkCarousel, + KakaoTalkChannelSpecificMessage, ) diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_carousel_head.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_carousel_head.py similarity index 100% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_carousel_head.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_carousel_head.py diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_carousel_tail.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_carousel_tail.py similarity index 100% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_carousel_tail.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_carousel_tail.py diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_channel_specific_message.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_channel_specific_message.py similarity index 100% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_channel_specific_message.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_channel_specific_message.py diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_commerce_channel_specific_message.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_commerce_channel_specific_message.py similarity index 85% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_commerce_channel_specific_message.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_commerce_channel_specific_message.py index 580532e3..6b8a0eca 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_commerce_channel_specific_message.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_commerce_channel_specific_message.py @@ -1,7 +1,8 @@ from typing import Optional from pydantic import Field, StrictStr, conlist -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_channel_specific_message import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.commerce import ( KakaoTalkChannelSpecificMessage, + KakaoTalkCommerceImage, ) from sinch.domains.conversation.models.v1.messages.response.types.kakaotalk_button import ( KakaoTalkButton, @@ -12,9 +13,6 @@ from sinch.domains.conversation.models.v1.messages.response.types.kakaotalk_coupon import ( KakaoTalkCoupon, ) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_commerce_image import ( - KakaoTalkCommerceImage, -) class KakaoTalkCommerceChannelSpecificMessage(KakaoTalkChannelSpecificMessage): diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_commerce_image.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_commerce_image.py similarity index 100% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_commerce_image.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_commerce_image.py diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_commerce_message.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_commerce_message.py similarity index 95% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_commerce_message.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_commerce_message.py index 4e48ee30..5ae37bad 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_commerce_message.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_commerce_message.py @@ -9,7 +9,7 @@ from sinch.domains.conversation.models.v1.messages.response.types.kakaotalk_coupon import ( KakaoTalkCoupon, ) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_commerce_image import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.commerce import ( KakaoTalkCommerceImage, ) from sinch.domains.conversation.models.v1.messages.internal.base import ( diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_discount_fixed_commerce.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_discount_fixed_commerce.py similarity index 89% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_discount_fixed_commerce.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_discount_fixed_commerce.py index efc17379..38e9cdf4 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_discount_fixed_commerce.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_discount_fixed_commerce.py @@ -1,6 +1,6 @@ from typing import Literal from pydantic import Field, StrictInt -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_regular_price_commerce import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.commerce import ( KakaoTalkRegularPriceCommerce, ) diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_discount_rate_commerce.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_discount_rate_commerce.py similarity index 89% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_discount_rate_commerce.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_discount_rate_commerce.py index 6947f9ac..0975dc0a 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_discount_rate_commerce.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_discount_rate_commerce.py @@ -1,6 +1,6 @@ from typing import Literal from pydantic import Field, StrictInt -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_regular_price_commerce import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.commerce import ( KakaoTalkRegularPriceCommerce, ) diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_regular_price_commerce.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_regular_price_commerce.py similarity index 100% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_regular_price_commerce.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/commerce/kakaotalk_regular_price_commerce.py diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/__init__.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/__init__.py new file mode 100644 index 00000000..73992ad2 --- /dev/null +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/__init__.py @@ -0,0 +1,7 @@ +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.coupons.kakaotalk_coupon import ( + KakaoTalkCoupon, +) + +__all__ = [ + "KakaoTalkCoupon", +] diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_coupon.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/kakaotalk_coupon.py similarity index 100% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_coupon.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/kakaotalk_coupon.py diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_discount_rate_coupon.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/kakaotalk_discount_rate_coupon.py similarity index 89% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_discount_rate_coupon.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/kakaotalk_discount_rate_coupon.py index 41e05fac..687a45bb 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_discount_rate_coupon.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/kakaotalk_discount_rate_coupon.py @@ -1,6 +1,6 @@ from typing import Literal from pydantic import Field, StrictInt -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_coupon import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.coupons import ( KakaoTalkCoupon, ) diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_fixed_discount_coupon.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/kakaotalk_fixed_discount_coupon.py similarity index 89% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_fixed_discount_coupon.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/kakaotalk_fixed_discount_coupon.py index 2d06d05e..05f9c28f 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_fixed_discount_coupon.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/kakaotalk_fixed_discount_coupon.py @@ -1,6 +1,6 @@ from typing import Literal from pydantic import Field, StrictInt -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_coupon import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.coupons import ( KakaoTalkCoupon, ) diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_free_coupon.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/kakaotalk_free_coupon.py similarity index 87% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_free_coupon.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/kakaotalk_free_coupon.py index c587c9c8..1feefca6 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_free_coupon.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/kakaotalk_free_coupon.py @@ -1,6 +1,6 @@ from typing import Literal from pydantic import Field, StrictStr -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_coupon import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.coupons import ( KakaoTalkCoupon, ) diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_shipping_discount_coupon.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/kakaotalk_shipping_discount_coupon.py similarity index 87% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_shipping_discount_coupon.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/kakaotalk_shipping_discount_coupon.py index 46f27ded..517e0bac 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_shipping_discount_coupon.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/kakaotalk_shipping_discount_coupon.py @@ -1,6 +1,6 @@ from typing import Literal from pydantic import Field -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_coupon import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.coupons import ( KakaoTalkCoupon, ) diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_up_coupon.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/kakaotalk_up_coupon.py similarity index 87% rename from sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_up_coupon.py rename to sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/kakaotalk_up_coupon.py index c3783c89..62d87fad 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/kakaotalk_up_coupon.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/kakaotalk/coupons/kakaotalk_up_coupon.py @@ -1,6 +1,6 @@ from typing import Literal from pydantic import Field, StrictStr -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_coupon import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.coupons import ( KakaoTalkCoupon, ) diff --git a/sinch/domains/conversation/models/v1/messages/response/types/channel_specific_message_content.py b/sinch/domains/conversation/models/v1/messages/response/types/channel_specific_message_content.py index 90ee43fc..4bb50086 100644 --- a/sinch/domains/conversation/models/v1/messages/response/types/channel_specific_message_content.py +++ b/sinch/domains/conversation/models/v1/messages/response/types/channel_specific_message_content.py @@ -8,10 +8,10 @@ from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.payment.payment_order_status_channel_specific_message import ( PaymentOrderStatusChannelSpecificMessage, ) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_commerce_channel_specific_message import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.commerce.kakaotalk_commerce_channel_specific_message import ( KakaoTalkCommerceChannelSpecificMessage, ) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_carousel_commerce_channel_specific_message import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.commerce.kakaotalk_carousel_commerce_channel_specific_message import ( KakaoTalkCarouselCommerceChannelSpecificMessage, ) diff --git a/sinch/domains/conversation/models/v1/messages/response/types/kakaotalk_button.py b/sinch/domains/conversation/models/v1/messages/response/types/kakaotalk_button.py index e1d15f36..d84a85db 100644 --- a/sinch/domains/conversation/models/v1/messages/response/types/kakaotalk_button.py +++ b/sinch/domains/conversation/models/v1/messages/response/types/kakaotalk_button.py @@ -1,11 +1,11 @@ from typing import Union -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_web_link_button import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.buttons.kakaotalk_web_link_button import ( KakaoTalkWebLinkButton, ) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_app_link_button import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.buttons.kakaotalk_app_link_button import ( KakaoTalkAppLinkButton, ) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_bot_keyword_button import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.buttons.kakaotalk_bot_keyword_button import ( KakaoTalkBotKeywordButton, ) diff --git a/sinch/domains/conversation/models/v1/messages/response/types/kakaotalk_commerce.py b/sinch/domains/conversation/models/v1/messages/response/types/kakaotalk_commerce.py index 48a8e02c..2c8593e4 100644 --- a/sinch/domains/conversation/models/v1/messages/response/types/kakaotalk_commerce.py +++ b/sinch/domains/conversation/models/v1/messages/response/types/kakaotalk_commerce.py @@ -1,11 +1,11 @@ from typing import Union -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_regular_price_commerce import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.commerce.kakaotalk_regular_price_commerce import ( KakaoTalkRegularPriceCommerce, ) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_discount_fixed_commerce import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.commerce.kakaotalk_discount_fixed_commerce import ( KakaoTalkDiscountFixedCommerce, ) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_discount_rate_commerce import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.commerce.kakaotalk_discount_rate_commerce import ( KakaoTalkDiscountRateCommerce, ) diff --git a/sinch/domains/conversation/models/v1/messages/response/types/kakaotalk_coupon.py b/sinch/domains/conversation/models/v1/messages/response/types/kakaotalk_coupon.py index 85256c08..6331efbc 100644 --- a/sinch/domains/conversation/models/v1/messages/response/types/kakaotalk_coupon.py +++ b/sinch/domains/conversation/models/v1/messages/response/types/kakaotalk_coupon.py @@ -1,18 +1,18 @@ from typing import Annotated, Union from pydantic import Field -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_fixed_discount_coupon import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.coupons.kakaotalk_fixed_discount_coupon import ( KakaoTalkFixedDiscountCoupon, ) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_discount_rate_coupon import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.coupons.kakaotalk_discount_rate_coupon import ( KakaoTalkDiscountRateCoupon, ) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_shipping_discount_coupon import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.coupons.kakaotalk_shipping_discount_coupon import ( KakaoTalkShippingDiscountCoupon, ) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_free_coupon import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.coupons.kakaotalk_free_coupon import ( KakaoTalkFreeCoupon, ) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.kakaotalk_up_coupon import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.kakaotalk.coupons.kakaotalk_up_coupon import ( KakaoTalkUpCoupon, ) From 008e1bf18bdb787940c268787fc340d0f0ed497a Mon Sep 17 00:00:00 2001 From: Jessica Matsuoka Date: Wed, 14 Jan 2026 16:14:45 +0100 Subject: [PATCH 2/2] chore: update whatsapp directory structure --- .../whatsapp/flows/__init__.py | 31 +++++++++++ .../flows/flow_channel_specific_message.py | 2 +- .../whatsapp_interactive_document_header.py | 2 +- .../whatsapp_interactive_image_header.py | 2 +- .../whatsapp_interactive_video_header.py | 2 +- .../whatsapp/nfmreply/__init__.py | 7 +++ .../whatsapp_interactive_nfm_reply_message.py | 2 +- .../whatsapp/payment/__init__.py | 51 +++++++++++++++++++ .../whatsapp/payment/payment_order.py | 2 +- ..._order_details_channel_specific_message.py | 2 +- .../payment/payment_order_details_content.py | 2 +- ...t_order_status_channel_specific_message.py | 2 +- .../payment/payment_order_status_content.py | 2 +- .../whatsapp/whatsapp_common_props.py | 4 +- 14 files changed, 100 insertions(+), 13 deletions(-) diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/flows/__init__.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/flows/__init__.py index e69de29b..92044534 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/flows/__init__.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/flows/__init__.py @@ -0,0 +1,31 @@ +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.flows.flow_action_payload import ( + FlowActionPayload, +) +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.flows.whatsapp_interactive_body import ( + WhatsAppInteractiveBody, +) +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.flows.whatsapp_interactive_footer import ( + WhatsAppInteractiveFooter, +) +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.flows.whatsapp_interactive_header_media import ( + WhatsAppInteractiveHeaderMedia, +) + + +def __getattr__(name: str): + if name == "FlowChannelSpecificMessage": + from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.flows.flow_channel_specific_message import ( + FlowChannelSpecificMessage, + ) + + return FlowChannelSpecificMessage + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +__all__ = [ + "FlowActionPayload", + "WhatsAppInteractiveBody", + "WhatsAppInteractiveFooter", + "WhatsAppInteractiveHeaderMedia", + "FlowChannelSpecificMessage", +] diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/flows/flow_channel_specific_message.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/flows/flow_channel_specific_message.py index 909e521c..b54a0672 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/flows/flow_channel_specific_message.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/flows/flow_channel_specific_message.py @@ -3,7 +3,7 @@ from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.whatsapp_common_props import ( WhatsAppCommonProps, ) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.flows.flow_action_payload import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.flows import ( FlowActionPayload, ) diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/flows/whatsapp_interactive_document_header.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/flows/whatsapp_interactive_document_header.py index 7cc87228..059c22eb 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/flows/whatsapp_interactive_document_header.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/flows/whatsapp_interactive_document_header.py @@ -1,6 +1,6 @@ from typing import Literal from pydantic import Field -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.flows.whatsapp_interactive_header_media import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.flows import ( WhatsAppInteractiveHeaderMedia, ) from sinch.domains.conversation.models.v1.messages.internal.base import ( diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/flows/whatsapp_interactive_image_header.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/flows/whatsapp_interactive_image_header.py index 2c6b9b47..f1887210 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/flows/whatsapp_interactive_image_header.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/flows/whatsapp_interactive_image_header.py @@ -1,6 +1,6 @@ from typing import Literal from pydantic import Field -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.flows.whatsapp_interactive_header_media import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.flows import ( WhatsAppInteractiveHeaderMedia, ) from sinch.domains.conversation.models.v1.messages.internal.base import ( diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/flows/whatsapp_interactive_video_header.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/flows/whatsapp_interactive_video_header.py index ab9965dc..d5d76785 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/flows/whatsapp_interactive_video_header.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/flows/whatsapp_interactive_video_header.py @@ -1,6 +1,6 @@ from typing import Literal from pydantic import Field -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.flows.whatsapp_interactive_header_media import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.flows import ( WhatsAppInteractiveHeaderMedia, ) from sinch.domains.conversation.models.v1.messages.internal.base import ( diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/nfmreply/__init__.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/nfmreply/__init__.py index e69de29b..cd920029 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/nfmreply/__init__.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/nfmreply/__init__.py @@ -0,0 +1,7 @@ +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.nfmreply.whatsapp_interactive_nfm_reply import ( + WhatsAppInteractiveNfmReply, +) + +__all__ = [ + "WhatsAppInteractiveNfmReply", +] diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/nfmreply/whatsapp_interactive_nfm_reply_message.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/nfmreply/whatsapp_interactive_nfm_reply_message.py index e6c2ab9e..4068cd89 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/nfmreply/whatsapp_interactive_nfm_reply_message.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/nfmreply/whatsapp_interactive_nfm_reply_message.py @@ -1,6 +1,6 @@ from typing import Literal from pydantic import Field -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.nfmreply.whatsapp_interactive_nfm_reply import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.nfmreply import ( WhatsAppInteractiveNfmReply, ) from sinch.domains.conversation.models.v1.messages.internal.base import ( diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/__init__.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/__init__.py index e69de29b..71559f06 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/__init__.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/__init__.py @@ -0,0 +1,51 @@ +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.payment.order_item import ( + OrderItem, +) +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.payment.payment_order_status_order import ( + PaymentOrderStatusOrder, +) + + +def __getattr__(name: str): + if name == "PaymentOrder": + from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.payment.payment_order import ( + PaymentOrder, + ) + + return PaymentOrder + if name == "PaymentOrderDetailsContent": + from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.payment.payment_order_details_content import ( + PaymentOrderDetailsContent, + ) + + return PaymentOrderDetailsContent + if name == "PaymentOrderStatusContent": + from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.payment.payment_order_status_content import ( + PaymentOrderStatusContent, + ) + + return PaymentOrderStatusContent + if name == "PaymentOrderDetailsChannelSpecificMessage": + from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.payment.payment_order_details_channel_specific_message import ( + PaymentOrderDetailsChannelSpecificMessage, + ) + + return PaymentOrderDetailsChannelSpecificMessage + if name == "PaymentOrderStatusChannelSpecificMessage": + from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.payment.payment_order_status_channel_specific_message import ( + PaymentOrderStatusChannelSpecificMessage, + ) + + return PaymentOrderStatusChannelSpecificMessage + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +__all__ = [ + "OrderItem", + "PaymentOrderStatusOrder", + "PaymentOrder", + "PaymentOrderDetailsContent", + "PaymentOrderStatusContent", + "PaymentOrderDetailsChannelSpecificMessage", + "PaymentOrderStatusChannelSpecificMessage", +] diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/payment_order.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/payment_order.py index ba80e753..30bbcb30 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/payment_order.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/payment_order.py @@ -1,7 +1,7 @@ from datetime import datetime from typing import Optional from pydantic import Field, StrictStr, StrictInt, conlist -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.payment.order_item import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.payment import ( OrderItem, ) from sinch.domains.conversation.models.v1.messages.internal.base import ( diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/payment_order_details_channel_specific_message.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/payment_order_details_channel_specific_message.py index 568918b6..66271782 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/payment_order_details_channel_specific_message.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/payment_order_details_channel_specific_message.py @@ -2,7 +2,7 @@ from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.whatsapp_common_props import ( WhatsAppCommonProps, ) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.payment.payment_order_details_content import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.payment import ( PaymentOrderDetailsContent, ) diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/payment_order_details_content.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/payment_order_details_content.py index de3c9d59..3cbdfac6 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/payment_order_details_content.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/payment_order_details_content.py @@ -9,7 +9,7 @@ from sinch.domains.conversation.models.v1.messages.response.types.payment_settings import ( PaymentSettings, ) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.payment.payment_order import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.payment import ( PaymentOrder, ) from sinch.domains.conversation.models.v1.messages.internal.base import ( diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/payment_order_status_channel_specific_message.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/payment_order_status_channel_specific_message.py index b00cda0e..3d31c01e 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/payment_order_status_channel_specific_message.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/payment_order_status_channel_specific_message.py @@ -2,7 +2,7 @@ from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.whatsapp_common_props import ( WhatsAppCommonProps, ) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.payment.payment_order_status_content import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.payment import ( PaymentOrderStatusContent, ) diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/payment_order_status_content.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/payment_order_status_content.py index fc0e5fa7..8ef61f11 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/payment_order_status_content.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/payment/payment_order_status_content.py @@ -1,5 +1,5 @@ from pydantic import Field, StrictStr -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.payment.payment_order_status_order import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.payment import ( PaymentOrderStatusOrder, ) from sinch.domains.conversation.models.v1.messages.internal.base import ( diff --git a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/whatsapp_common_props.py b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/whatsapp_common_props.py index 85b947e1..1d340106 100644 --- a/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/whatsapp_common_props.py +++ b/sinch/domains/conversation/models/v1/messages/categories/channelspecific/whatsapp/whatsapp_common_props.py @@ -3,10 +3,8 @@ from sinch.domains.conversation.models.v1.messages.response.types.whatsapp_interactive_header import ( WhatsAppInteractiveHeader, ) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.flows.whatsapp_interactive_body import ( +from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.flows import ( WhatsAppInteractiveBody, -) -from sinch.domains.conversation.models.v1.messages.categories.channelspecific.whatsapp.flows.whatsapp_interactive_footer import ( WhatsAppInteractiveFooter, ) from sinch.domains.conversation.models.v1.messages.internal.base import (