letschatty 0.4.413__tar.gz → 0.4.415__tar.gz

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.
Files changed (373) hide show
  1. {letschatty-0.4.413 → letschatty-0.4.415}/PKG-INFO +1 -1
  2. {letschatty-0.4.413 → letschatty-0.4.415}/pyproject.toml +1 -1
  3. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/sources/__init__.py +2 -1
  4. letschatty-0.4.415/src/letschatty/models/analytics/sources/contact_import_source.py +38 -0
  5. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/sources/helpers.py +2 -1
  6. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/sources/pure_ad.py +14 -1
  7. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/chat/chat.py +1 -1
  8. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/utils/types/source_types.py +10 -0
  9. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/analytics/sources/helpers.py +3 -2
  10. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/analytics/sources/source_factory.py +9 -1
  11. {letschatty-0.4.413 → letschatty-0.4.415}/LICENSE +0 -0
  12. {letschatty-0.4.413 → letschatty-0.4.415}/README.md +0 -0
  13. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/__init__.py +0 -0
  14. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/__init__.py +0 -0
  15. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/ai_microservices/__init__.py +0 -0
  16. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/ai_microservices/expected_output.py +0 -0
  17. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/ai_microservices/lambda_events.py +0 -0
  18. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/ai_microservices/lambda_invokation_types.py +0 -0
  19. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/ai_microservices/n8n_ai_agents_payload.py +0 -0
  20. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/ai_microservices/openai_payloads.py +0 -0
  21. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/__init__.py +0 -0
  22. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/__init__.py +0 -0
  23. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/base.py +0 -0
  24. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/chat_based_events/ai_agent_chat.py +0 -0
  25. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/chat_based_events/ai_agent_escalate_event.py +0 -0
  26. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/chat_based_events/ai_agent_execution_event.py +0 -0
  27. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/chat_based_events/business_area.py +0 -0
  28. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/chat_based_events/chat_based_event.py +0 -0
  29. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/chat_based_events/chat_client.py +0 -0
  30. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/chat_based_events/chat_context.py +0 -0
  31. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/chat_based_events/chat_funnel.py +0 -0
  32. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/chat_based_events/chat_reset.py +0 -0
  33. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/chat_based_events/chat_status.py +0 -0
  34. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/chat_based_events/contact_point.py +0 -0
  35. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/chat_based_events/continuous_conversation.py +0 -0
  36. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/chat_based_events/highlight.py +0 -0
  37. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/chat_based_events/message.py +0 -0
  38. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/chat_based_events/messages_intent_context.py +0 -0
  39. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/chat_based_events/product_chat.py +0 -0
  40. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/chat_based_events/quality_scoring.py +0 -0
  41. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/chat_based_events/sale.py +0 -0
  42. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/chat_based_events/tag_chat.py +0 -0
  43. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/chat_based_events/workflow.py +0 -0
  44. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/company_based_events/asset_events.py +0 -0
  45. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/company_based_events/company_events.py +0 -0
  46. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/company_based_events/user_events.py +0 -0
  47. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/event_type_to_classes.py +0 -0
  48. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/event_types.py +0 -0
  49. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/user_notification_intent/HOW-TO-ADD.md +0 -0
  50. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/user_notification_intent/__init__.py +0 -0
  51. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/user_notification_intent/builders.py +0 -0
  52. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/user_notification_intent/event.py +0 -0
  53. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/events/user_notification_intent/metadata.py +0 -0
  54. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/metrics/__init_.py +0 -0
  55. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/metrics/daily_contact_points.py +0 -0
  56. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/metrics/daily_new_chats.py +0 -0
  57. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/metrics/daily_sent_templates_grouped.py +0 -0
  58. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/metrics/sales_roadmap.py +0 -0
  59. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/metrics/sent_templates.py +0 -0
  60. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/smart_messages/friendly_code_for_source.py +0 -0
  61. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/smart_messages/topic.py +0 -0
  62. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/smart_messages/topic_message.py +0 -0
  63. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/sources/google_ad_utm_source.py +0 -0
  64. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/sources/other_source.py +0 -0
  65. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/sources/pure_ad_utm_source.py +0 -0
  66. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/sources/source_base.py +0 -0
  67. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/sources/template_source.py +0 -0
  68. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/sources/topic_default_source.py +0 -0
  69. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/sources/utm_source.py +0 -0
  70. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/sources/utms/referer_info.py +0 -0
  71. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/sources/utms/utm_query_params.py +0 -0
  72. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/analytics/sources/whatsapp_default_source.py +0 -0
  73. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/auth/jwt.py +0 -0
  74. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/base_models/__init__.py +0 -0
  75. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/base_models/ai_agent_component.py +0 -0
  76. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/base_models/chatty_asset_model.py +0 -0
  77. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/base_models/helpers.py +0 -0
  78. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/base_models/related_asset_usage_example.py +0 -0
  79. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/base_models/singleton.py +0 -0
  80. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/base_models/update_model_interface.py +0 -0
  81. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/base_models/validate_timestamps_and_id.py +0 -0
  82. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/cache/README.md +0 -0
  83. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/cache/__init__.py +0 -0
  84. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/cache/cache_protocol.py +0 -0
  85. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/cache/no_cache.py +0 -0
  86. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/cache/redis_cache.py +0 -0
  87. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/cache/redis_connection.py +0 -0
  88. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/channels/channel.py +0 -0
  89. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/chat/assets_assigned_to_chat.py +0 -0
  90. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/chat/chat_status_modifications.py +0 -0
  91. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/chat/chat_with_assets.py +0 -0
  92. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/chat/client.py +0 -0
  93. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/chat/continuous_conversation.py +0 -0
  94. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/chat/filter_parameters.py +0 -0
  95. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/chat/flow_link_state.py +0 -0
  96. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/chat/highlight.py +0 -0
  97. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/chat/preview.py +0 -0
  98. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/chat/quality_scoring.py +0 -0
  99. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/chat/scheduled_messages.py +0 -0
  100. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/chat/temporary_chat.py +0 -0
  101. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/chat/time_left.py +0 -0
  102. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/CRM/business_area.py +0 -0
  103. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/CRM/funnel.py +0 -0
  104. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/__init__.py +0 -0
  105. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/CINTIA/__init__.py +0 -0
  106. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/CINTIA/cintia_execution.py +0 -0
  107. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/CINTIA/events/__init__.py +0 -0
  108. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/CINTIA/events/cintia_event_type.py +0 -0
  109. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/CINTIA/models/__init__.py +0 -0
  110. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/CINTIA/models/chat_vector.py +0 -0
  111. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/CINTIA/models/chatty_asset_embedding.py +0 -0
  112. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/CINTIA/models/chatty_trigger.py +0 -0
  113. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/CINTIA/models/cintia_feedback.py +0 -0
  114. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/CINTIA/models/cintia_trigger.py +0 -0
  115. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/CINTIA/models/lambda_trigger_events.py +0 -0
  116. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/CINTIA/models/outputs/__init__.py +0 -0
  117. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/CINTIA/models/outputs/cintia_assistant_output.py +0 -0
  118. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/CINTIA/models/outputs/cintia_audio_transcriber_output.py +0 -0
  119. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/CINTIA/models/outputs/cintia_customer_success_output.py +0 -0
  120. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/CINTIA/models/outputs/cintia_decision_output.py +0 -0
  121. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/CINTIA/models/outputs/cintia_responder_output.py +0 -0
  122. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/CINTIA/models/outputs/cintia_smart_follow_output.py +0 -0
  123. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/CINTIA/models/outputs/cintia_tagger_output.py +0 -0
  124. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/__init__.py +0 -0
  125. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/ai_agent_message_draft.py +0 -0
  126. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/ai_agents_decision_output.py +0 -0
  127. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/ai_specific_instruction.py +0 -0
  128. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/chain_of_thought_in_chat.py +0 -0
  129. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/chat_example.py +0 -0
  130. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/chat_example_test.py +0 -0
  131. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/chatty_ai_agent.py +0 -0
  132. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/chatty_ai_agent_config_for_automation.py +0 -0
  133. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/chatty_ai_agent_in_chat.py +0 -0
  134. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/chatty_ai_mode.py +0 -0
  135. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/context_item.py +0 -0
  136. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/cs_scenario.py +0 -0
  137. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/data_collection_config.py +0 -0
  138. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/faq.py +0 -0
  139. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/fast_answer_reference.py +0 -0
  140. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/follow_up_strategy.py +0 -0
  141. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/get_chat_with_prompt_response.py +0 -0
  142. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/instruction.py +0 -0
  143. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/knowleadge_base_components.py +0 -0
  144. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/n8n_agents_info.py +0 -0
  145. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/n8n_schema_incoming_message_output.json +0 -0
  146. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/n8n_schema_smart_follow_up_output.json +0 -0
  147. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/pre_qualify_config.py +0 -0
  148. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/ai_agents_v2/tag_reference.py +0 -0
  149. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/asset_model_registry.py +0 -0
  150. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/assignment/__init__.py +0 -0
  151. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/assignment/assignment_assets.py +0 -0
  152. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/automation.py +0 -0
  153. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/chat_assets.py +0 -0
  154. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/chatty_fast_answers/__init__.py +0 -0
  155. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/chatty_fast_answers/chatty_fast_answer.py +0 -0
  156. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/company_assets.py +0 -0
  157. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/contact_point.py +0 -0
  158. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/embeddable.py +0 -0
  159. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/filter_criteria.py +0 -0
  160. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/flow.py +0 -0
  161. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/launch/__init__.py +0 -0
  162. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/launch/launch.py +0 -0
  163. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/launch/scheduled_communication.py +0 -0
  164. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/launch/subscription.py +0 -0
  165. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/media/__init__.py +0 -0
  166. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/media/file.py +0 -0
  167. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/notification.py +0 -0
  168. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/product.py +0 -0
  169. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/product_parameter_embed_config.py +0 -0
  170. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/sale.py +0 -0
  171. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/tag.py +0 -0
  172. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/users/agent_chats_snapshot.py +0 -0
  173. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/users/user.py +0 -0
  174. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/users/user_asset_permission.py +0 -0
  175. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/assets/workflow_execution.py +0 -0
  176. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/company_chats_snapshot.py +0 -0
  177. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/company_messaging_settgins.py +0 -0
  178. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/conversation_topic.py +0 -0
  179. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/empresa.py +0 -0
  180. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/form_field.py +0 -0
  181. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/insight.py +0 -0
  182. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/integrations/product_sync_status.py +0 -0
  183. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/integrations/shopify/company_shopify_integration.py +0 -0
  184. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/integrations/shopify/shopify_product_sync_status.py +0 -0
  185. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/integrations/shopify/shopify_webhook_topics.py +0 -0
  186. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/integrations/sync_status_enum.py +0 -0
  187. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/integrations/tienda_nube/company_tienda_nube_integration.py +0 -0
  188. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/integrations/tienda_nube/tienda_nube_product_sync_status.py +0 -0
  189. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/integrations/tienda_nube/tienda_nube_webhook_topics.py +0 -0
  190. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/company/notifications/notification.py +0 -0
  191. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/copilot/links.py +0 -0
  192. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/data_base/README.md +0 -0
  193. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/data_base/__init__.py +0 -0
  194. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/data_base/collection_interface.py +0 -0
  195. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/data_base/mongo_connection.py +0 -0
  196. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/execution/__init__.py +0 -0
  197. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/execution/execution.py +0 -0
  198. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/execution/executor.py +0 -0
  199. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/forms/company/auth0_company_registration_form.py +0 -0
  200. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/forms/company/meta_register.py +0 -0
  201. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/__init__.py +0 -0
  202. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/__init__.py +0 -0
  203. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/audio.py +0 -0
  204. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/base/__init__.py +0 -0
  205. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/base/chatty_message_json.py +0 -0
  206. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/base/message_base.py +0 -0
  207. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/base/message_draft.py +0 -0
  208. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/button.py +0 -0
  209. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/central_notification.py +0 -0
  210. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/contact.py +0 -0
  211. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/document.py +0 -0
  212. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/image.py +0 -0
  213. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/interactive.py +0 -0
  214. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/location.py +0 -0
  215. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/reaction.py +0 -0
  216. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/schema/__init__.py +0 -0
  217. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_audio.py +0 -0
  218. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_button.py +0 -0
  219. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_central.py +0 -0
  220. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_contacts.py +0 -0
  221. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_document.py +0 -0
  222. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_image.py +0 -0
  223. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_interactive.py +0 -0
  224. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_location.py +0 -0
  225. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_media.py +0 -0
  226. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_reaction.py +0 -0
  227. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_sticker.py +0 -0
  228. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_text.py +0 -0
  229. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_video.py +0 -0
  230. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/schema/chatty_context/__init__.py +0 -0
  231. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/schema/chatty_context/chatty_context.py +0 -0
  232. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/schema/chatty_referal/__init__.py +0 -0
  233. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/schema/chatty_referal/chatty_referal.py +0 -0
  234. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/sticker.py +0 -0
  235. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/text.py +0 -0
  236. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/chatty_messages/video.py +0 -0
  237. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/message_templates/__init__.py +0 -0
  238. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/message_templates/chatty_template_campaign.py +0 -0
  239. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/message_templates/filled_data_from_frontend.py +0 -0
  240. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/message_templates/payload_for_sending_template.py +0 -0
  241. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/message_templates/raw_meta_template.py +0 -0
  242. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/message_templates/recipient_of_template_campaign.py +0 -0
  243. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/message_templates/required_for_frontend_templates.py +0 -0
  244. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/meta_message_model/meta_base_notification_json.py +0 -0
  245. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/meta_message_model/meta_error_json.py +0 -0
  246. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/meta_message_model/meta_inexistent_json.py +0 -0
  247. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/meta_message_model/meta_message_json.py +0 -0
  248. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/meta_message_model/meta_status_json.py +0 -0
  249. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/meta_message_model/meta_unknown_json.py +0 -0
  250. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/meta_message_model/schema/content_messages/__init__.py +0 -0
  251. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/meta_message_model/schema/content_messages/button_content.py +0 -0
  252. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/meta_message_model/schema/content_messages/contacts_content.py +0 -0
  253. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/meta_message_model/schema/content_messages/interactive_content.py +0 -0
  254. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/meta_message_model/schema/content_messages/location_content.py +0 -0
  255. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/meta_message_model/schema/content_messages/multimedia_content.py +0 -0
  256. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/meta_message_model/schema/content_messages/order_content.py +0 -0
  257. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/meta_message_model/schema/content_messages/reaction_content.py +0 -0
  258. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/meta_message_model/schema/content_messages/system_content.py +0 -0
  259. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/meta_message_model/schema/content_messages/text_content.py +0 -0
  260. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/meta_message_model/schema/values/__init__.py +0 -0
  261. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/meta_message_model/schema/values/value_errors.py +0 -0
  262. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/meta_message_model/schema/values/value_messages.py +0 -0
  263. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/messages/meta_message_model/schema/values/value_statuses.py +0 -0
  264. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/push_notifications/__init__.py +0 -0
  265. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/push_notifications/enums.py +0 -0
  266. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/push_notifications/user_device.py +0 -0
  267. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/utils/__init__.py +0 -0
  268. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/utils/custom_exceptions/__init__.py +0 -0
  269. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/utils/custom_exceptions/custom_exceptions.py +0 -0
  270. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/utils/definitions.py +0 -0
  271. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/utils/types/CRUD_operations.py +0 -0
  272. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/utils/types/__init__.py +0 -0
  273. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/utils/types/channel_types.py +0 -0
  274. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/utils/types/chats_actions.py +0 -0
  275. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/utils/types/country.py +0 -0
  276. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/utils/types/deletion_type.py +0 -0
  277. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/utils/types/executor_types.py +0 -0
  278. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/utils/types/identifier.py +0 -0
  279. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/utils/types/message_status_types.py +0 -0
  280. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/utils/types/message_types.py +0 -0
  281. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/utils/types/phone_number.py +0 -0
  282. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/utils/types/serializer_type.py +0 -0
  283. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/models/utils/types/typealiases.py +0 -0
  284. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/__init__.py +0 -0
  285. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/ai_agents/context_builder_v2.py +0 -0
  286. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/ai_agents/cot_follow_up_examples.py +0 -0
  287. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/ai_agents/followup_schema.json +0 -0
  288. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/ai_agents/smart_follow_up_context_builder_v2.py +0 -0
  289. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/ai_agents/smart_follow_up_service_v2.py +0 -0
  290. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/ai_agents/tool_descriptions/assign_chat_to_ai_agent_itself.json +0 -0
  291. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/ai_agents/tool_descriptions/human_handover.json +0 -0
  292. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/ai_agents/tool_descriptions.py +0 -0
  293. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/ai_components_service.py +0 -0
  294. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chat/chat_extractors.py +0 -0
  295. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chat/chat_service.py +0 -0
  296. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chat/client_service.py +0 -0
  297. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chat/conversation_topics_service.py +0 -0
  298. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chat/whatsapp_apb_mode_service.py +0 -0
  299. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/__init__.py +0 -0
  300. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/asset_service.py +0 -0
  301. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/assets_collections.py +0 -0
  302. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/base_container_with_collection.py +0 -0
  303. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/collections/__init__.py +0 -0
  304. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/collections/ai_agent_collection.py +0 -0
  305. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/collections/ai_agent_in_chat_collection.py +0 -0
  306. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/collections/ai_component_collection.py +0 -0
  307. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/collections/chain_of_thought_collection.py +0 -0
  308. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/collections/chat_collection.py +0 -0
  309. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/collections/contact_point_collection.py +0 -0
  310. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/collections/fast_answer_collection.py +0 -0
  311. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/collections/filter_criteria_collection.py +0 -0
  312. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/collections/flow_collection.py +0 -0
  313. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/collections/form_field_collection.py +0 -0
  314. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/collections/product_collection.py +0 -0
  315. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/collections/sale_collection.py +0 -0
  316. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/collections/source_collection.py +0 -0
  317. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/collections/tag_collection.py +0 -0
  318. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/collections/topic_collection.py +0 -0
  319. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/collections/user_collection.py +0 -0
  320. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/documentation_diagram.png +0 -0
  321. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/example_usage.py +0 -0
  322. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/readme.md +0 -0
  323. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/services/__init__.py +0 -0
  324. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/services/ai_agent_in_chat_service.py +0 -0
  325. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/services/ai_agent_service.py +0 -0
  326. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/services/chain_of_thought_service.py +0 -0
  327. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/services/chat_service.py +0 -0
  328. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/services/contact_point_service.py +0 -0
  329. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/services/fast_answer_service.py +0 -0
  330. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/services/filter_criteria_service.py +0 -0
  331. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/services/flow_service.py +0 -0
  332. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/services/product_service.py +0 -0
  333. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/services/sale_service.py +0 -0
  334. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/services/source_service.py +0 -0
  335. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/services/tag_service.py +0 -0
  336. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/services/topic_service.py +0 -0
  337. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/chatty_assets/services/user_service.py +0 -0
  338. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/concurrent/concurrent.py +0 -0
  339. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/contact_points/contact_point_service.py +0 -0
  340. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/continuous_conversation_service/continuous_conversation_helper.py +0 -0
  341. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/events/__init__.py +0 -0
  342. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/events/events_manager.py +0 -0
  343. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/__init__.py +0 -0
  344. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/analytics/ai_agent_event_factory.py +0 -0
  345. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/analytics/contact_point_factory.py +0 -0
  346. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/analytics/events_factory.py +0 -0
  347. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/analytics/smart_messages/topics_factory.py +0 -0
  348. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/chats/chat_factory.py +0 -0
  349. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/chatty_fast_answers/__init__.py +0 -0
  350. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/chatty_fast_answers/chatty_fast_answers_factory.py +0 -0
  351. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/clients/client_factory.py +0 -0
  352. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/company/__init__.py +0 -0
  353. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/company/empresa_factory.py +0 -0
  354. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/lambda_ai_orchestrartor/lambda_events_factory.py +0 -0
  355. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/messages/__init__.py +0 -0
  356. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/messages/central_notification_factory.py +0 -0
  357. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/messages/chatty_message_factory.py +0 -0
  358. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/messages/child_db_message_factory.py +0 -0
  359. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/messages/child_request_message.py +0 -0
  360. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/messages/from_template_hot_fix.py +0 -0
  361. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/messages/message_templates/template_factory.py +0 -0
  362. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/messages/message_templates/test.py +0 -0
  363. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/meta_notifications/__init__.py +0 -0
  364. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/meta_notifications/meta_notification_factory.py +0 -0
  365. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/factories/product_factory.py +0 -0
  366. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/filter_criteria_service.py +0 -0
  367. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/messages_helpers/__init__.py +0 -0
  368. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/messages_helpers/get_caption_or_body_or_preview.py +0 -0
  369. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/scheduled_messages_service/scheduled_messages_helpers.py +0 -0
  370. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/template_campaigns/template_campaign_service.py +0 -0
  371. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/users/agent_service.py +0 -0
  372. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/users/user_factory.py +0 -0
  373. {letschatty-0.4.413 → letschatty-0.4.415}/src/letschatty/services/validators/analytics_validator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: letschatty
3
- Version: 0.4.413
3
+ Version: 0.4.415
4
4
  Summary: Models and custom classes to work across the Chattyverse
5
5
  License: MIT
6
6
  Author: Axel
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "letschatty"
3
- version = "0.4.413"
3
+ version = "0.4.415"
4
4
  description = "Models and custom classes to work across the Chattyverse"
5
5
  authors = ["Axel <axel@letschatty.com>"]
6
6
  license = "MIT"
@@ -9,4 +9,5 @@ from .source_base import SourceBase
9
9
  from .pure_ad_utm_source import PureAdUtmSource
10
10
  from .google_ad_utm_source import GoogleAdUtmSource
11
11
  from .template_source import TemplateSource
12
- Source = Union[OtherSource, PureAd, WhatsAppDefaultSource, TopicDefaultSource, UTMSource, PureAdUtmSource, GoogleAdUtmSource, TemplateSource]
12
+ from .contact_import_source import ContactImportSource
13
+ Source = Union[OtherSource, PureAd, WhatsAppDefaultSource, TopicDefaultSource, UTMSource, PureAdUtmSource, GoogleAdUtmSource, TemplateSource, ContactImportSource]
@@ -0,0 +1,38 @@
1
+ from __future__ import annotations
2
+ from pydantic import Field
3
+
4
+ from .source_base import SourceBase
5
+ from ...utils.types.source_types import SourceType, SourceCheckerType
6
+
7
+
8
+ class ContactImportSource(SourceBase):
9
+ """Internal source for contacts created via bulk import (no inbound message).
10
+
11
+ Contact points on imported chats are created already-matched to this source,
12
+ so it is never run through the inbound message source-checker rotation.
13
+ """
14
+ name: str = Field(default="Contactos importados", frozen=True)
15
+ description: str = Field(
16
+ default="Contacto creado mediante importación masiva, sin mensaje entrante.",
17
+ frozen=True
18
+ )
19
+ category: str = Field(default="Contactos importados", frozen=True)
20
+ source_checker: SourceCheckerType = Field(
21
+ default=SourceCheckerType.CONTACT_IMPORT,
22
+ frozen=True
23
+ )
24
+
25
+ @property
26
+ def default_category(self) -> str:
27
+ return "Contactos importados"
28
+
29
+ @property
30
+ def type(self) -> SourceType:
31
+ return SourceType.CONTACT_IMPORT
32
+
33
+ def __eq__(self, other: object) -> bool:
34
+ """Contact-import sources are unique per company, so they're equal if they're the same type"""
35
+ return isinstance(other, ContactImportSource)
36
+
37
+ def __hash__(self) -> int:
38
+ return hash(self.type)
@@ -9,7 +9,8 @@ SOURCE_CHECKER_MAPPING = {
9
9
  SourceType.UTM_SOURCE: [SourceCheckerType.CHATTY_PIXEL],
10
10
  SourceType.PURE_AD_UTM_SOURCE: [SourceCheckerType.AD_ID_IN_UTM_PARAMS],
11
11
  SourceType.GOOGLE_AD_UTM_SOURCE: [SourceCheckerType.AD_ID_IN_UTM_PARAMS],
12
- SourceType.TEMPLATE_SOURCE: [SourceCheckerType.TEMPLATE]
12
+ SourceType.TEMPLATE_SOURCE: [SourceCheckerType.TEMPLATE],
13
+ SourceType.CONTACT_IMPORT: [SourceCheckerType.CONTACT_IMPORT]
13
14
  }
14
15
 
15
16
  class SourceHelpers:
@@ -1,5 +1,5 @@
1
1
  from __future__ import annotations
2
- from pydantic import Field, ConfigDict
2
+ from pydantic import Field, ConfigDict, field_validator
3
3
  from typing import Optional
4
4
  from .source_base import SourceBase
5
5
  from ...utils.types.source_types import SourceType, SourceCheckerType
@@ -16,6 +16,19 @@ class PureAd(SourceBase):
16
16
  meta_image_url: Optional[str] = Field(default=None)
17
17
  meta_thumbnail_url: Optional[str] = Field(default=None)
18
18
 
19
+ @field_validator("meta_ad_url", "meta_referral_type", "meta_body",
20
+ "meta_headline", "meta_media_type", mode="before")
21
+ @classmethod
22
+ def _coerce_none_to_empty(cls, v: object) -> object:
23
+ # Meta sends these Click-to-WhatsApp referral fields as null for ads that
24
+ # lack that element (e.g. image-only ads have no body/headline, some
25
+ # formats have no media_type). ChattyReferral types them Optional, but
26
+ # these PureAd fields are `str`, and pydantic v2 rejects an explicit None
27
+ # for a `str` field even when default="" — the default only applies when
28
+ # the key is ABSENT, not when it's present-but-null. Coerce None -> "" so
29
+ # a legitimate ad with missing text doesn't 500 the webhook.
30
+ return "" if v is None else v
31
+
19
32
  exclude_fields = {
20
33
  SerializerType.FRONTEND_ASSET_PREVIEW: {"meta_ad_url", "meta_referral_type", "meta_body", "meta_headline", "meta_media_type", "meta_video_url", "meta_image_url", "meta_thumbnail_url"}
21
34
  }
@@ -358,7 +358,7 @@ class Chat(CompanyAssetModel):
358
358
  dump = super().model_dump_json(*args, **kwargs)
359
359
  serializer = kwargs.get('serializer', SerializerType.API)
360
360
  if serializer == SerializerType.DATABASE:
361
- dump["last_message_timestamp"]= self.last_message_timestamp
361
+ dump["last_message_timestamp"]= self.last_message_timestamp or self.created_at
362
362
  dump["free_conversation_expire_date"] = self.free_conversation_expire_date
363
363
  dump["free_template_window_expire_date"] = self.free_template_window_expire_date
364
364
  dump["last_message"] = self.last_message.model_dump_json(serializer=SerializerType.DATABASE) if self.last_message else None
@@ -10,6 +10,7 @@ class SourceType(StrEnum):
10
10
  PURE_AD_UTM_SOURCE = "pure_ad_utm_source"
11
11
  GOOGLE_AD_UTM_SOURCE = "google_ad_utm_source"
12
12
  TEMPLATE_SOURCE = "template_source"
13
+ CONTACT_IMPORT = "contact_import"
13
14
  @classmethod
14
15
  def list(cls):
15
16
  return [member.value for member in cls]
@@ -23,6 +24,7 @@ class SourceCheckerType(StrEnum):
23
24
  AD_ID_IN_UTM_PARAMS = "ad_id_in_utm_params"
24
25
  CHATTY_PIXEL = "chatty_pixel"
25
26
  TEMPLATE = "template"
27
+ CONTACT_IMPORT = "contact_import"
26
28
 
27
29
  source_checker_types_schema = {
28
30
  SourceCheckerType.SMART_MESSAGES: {
@@ -56,6 +58,10 @@ source_checker_types_schema = {
56
58
  SourceCheckerType.TEMPLATE: {
57
59
  "label": "Plantilla de mensaje",
58
60
  "description": "Chatty reconoce directamente las plantillas de mensaje como fuentes de origen, identificando el nombre de la plantilla."
61
+ },
62
+ SourceCheckerType.CONTACT_IMPORT: {
63
+ "label": "Contacto importado",
64
+ "description": "Método interno de Chatty para atribuir contactos creados mediante importación masiva. No matchea mensajes entrantes."
59
65
  }
60
66
  }
61
67
 
@@ -87,6 +93,10 @@ source_types_schema = {
87
93
  SourceType.TOPIC_DEFAULT_SOURCE: {
88
94
  "label": "Fuente para mensajes de topics sin fuente de origen",
89
95
  "description": "Fuente predeterminada de Chatty para usuarios que envían un smart message de un topic, sin que tengan una fuente de origen específica."
96
+ },
97
+ SourceType.CONTACT_IMPORT: {
98
+ "label": "Contactos importados",
99
+ "description": "Fuente interna de Chatty para contactos creados mediante importación masiva (sin mensaje entrante)."
90
100
  }
91
101
  }
92
102
 
@@ -1,6 +1,6 @@
1
1
  from typing import Type
2
2
  from .....models.utils.types.source_types import SourceType
3
- from .....models.analytics.sources import OtherSource, PureAd, WhatsAppDefaultSource, TopicDefaultSource, UTMSource, Source, PureAdUtmSource, GoogleAdUtmSource, TemplateSource
3
+ from .....models.analytics.sources import OtherSource, PureAd, WhatsAppDefaultSource, TopicDefaultSource, UTMSource, Source, PureAdUtmSource, GoogleAdUtmSource, TemplateSource, ContactImportSource
4
4
 
5
5
  class SourceFactoryHelpers:
6
6
  @staticmethod
@@ -13,5 +13,6 @@ class SourceFactoryHelpers:
13
13
  SourceType.UTM_SOURCE: UTMSource,
14
14
  SourceType.PURE_AD_UTM_SOURCE: PureAdUtmSource,
15
15
  SourceType.GOOGLE_AD_UTM_SOURCE: GoogleAdUtmSource,
16
- SourceType.TEMPLATE_SOURCE: TemplateSource
16
+ SourceType.TEMPLATE_SOURCE: TemplateSource,
17
+ SourceType.CONTACT_IMPORT: ContactImportSource
17
18
  }[source_type]
@@ -4,7 +4,7 @@ import logging
4
4
 
5
5
  from letschatty.models.company.empresa import EmpresaModel
6
6
 
7
- from .....models.analytics.sources import GoogleAdUtmSource, PureAdUtmSource, SourceBase, WhatsAppDefaultSource, TopicDefaultSource, PureAd, Source, TemplateSource, OtherSource
7
+ from .....models.analytics.sources import GoogleAdUtmSource, PureAdUtmSource, SourceBase, WhatsAppDefaultSource, TopicDefaultSource, PureAd, Source, TemplateSource, OtherSource, ContactImportSource
8
8
  from .....models.company.assets.ai_agents_v2.chatty_ai_agent_config_for_automation import ChattyAIConfigForAutomation
9
9
  from .....models.company.assets.ai_agents_v2.chatty_ai_agent_config_for_automation import ChattyAIMode
10
10
  from .....models.utils.types.identifier import StrObjectId
@@ -50,6 +50,14 @@ class SourceFactory:
50
50
  updated_at=datetime.now(ZoneInfo("UTC")),
51
51
  )
52
52
 
53
+ @staticmethod
54
+ def create_contact_import_source(company_id: str) -> ContactImportSource:
55
+ return ContactImportSource(
56
+ company_id=company_id,
57
+ created_at=datetime.now(ZoneInfo("UTC")),
58
+ updated_at=datetime.now(ZoneInfo("UTC")),
59
+ )
60
+
53
61
  @staticmethod
54
62
  def create_topic_default_source(topic: Topic, company_id: str, whatsapp_default_source: WhatsAppDefaultSource) -> TopicDefaultSource:
55
63
  return TopicDefaultSource(
File without changes
File without changes