letschatty 0.4.415__tar.gz → 0.4.417__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.
- {letschatty-0.4.415 → letschatty-0.4.417}/PKG-INFO +1 -1
- {letschatty-0.4.415 → letschatty-0.4.417}/pyproject.toml +1 -1
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/chat/chat.py +6 -1
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/meta_message_model/schema/values/value_errors.py +52 -1
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/utils/custom_exceptions/custom_exceptions.py +6 -1
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chat/chat_service.py +7 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/LICENSE +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/README.md +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/ai_microservices/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/ai_microservices/expected_output.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/ai_microservices/lambda_events.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/ai_microservices/lambda_invokation_types.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/ai_microservices/n8n_ai_agents_payload.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/ai_microservices/openai_payloads.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/base.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/chat_based_events/ai_agent_chat.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/chat_based_events/ai_agent_escalate_event.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/chat_based_events/ai_agent_execution_event.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/chat_based_events/business_area.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/chat_based_events/chat_based_event.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/chat_based_events/chat_client.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/chat_based_events/chat_context.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/chat_based_events/chat_funnel.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/chat_based_events/chat_reset.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/chat_based_events/chat_status.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/chat_based_events/contact_point.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/chat_based_events/continuous_conversation.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/chat_based_events/highlight.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/chat_based_events/message.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/chat_based_events/messages_intent_context.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/chat_based_events/product_chat.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/chat_based_events/quality_scoring.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/chat_based_events/sale.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/chat_based_events/tag_chat.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/chat_based_events/workflow.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/company_based_events/asset_events.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/company_based_events/company_events.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/company_based_events/user_events.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/event_type_to_classes.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/event_types.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/user_notification_intent/HOW-TO-ADD.md +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/user_notification_intent/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/user_notification_intent/builders.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/user_notification_intent/event.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/user_notification_intent/metadata.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/metrics/__init_.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/metrics/daily_contact_points.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/metrics/daily_new_chats.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/metrics/daily_sent_templates_grouped.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/metrics/sales_roadmap.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/metrics/sent_templates.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/smart_messages/friendly_code_for_source.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/smart_messages/topic.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/smart_messages/topic_message.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/contact_import_source.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/google_ad_utm_source.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/helpers.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/other_source.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/pure_ad.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/pure_ad_utm_source.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/source_base.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/template_source.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/topic_default_source.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/utm_source.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/utms/referer_info.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/utms/utm_query_params.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/whatsapp_default_source.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/auth/jwt.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/base_models/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/base_models/ai_agent_component.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/base_models/chatty_asset_model.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/base_models/helpers.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/base_models/related_asset_usage_example.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/base_models/singleton.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/base_models/update_model_interface.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/base_models/validate_timestamps_and_id.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/cache/README.md +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/cache/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/cache/cache_protocol.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/cache/no_cache.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/cache/redis_cache.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/cache/redis_connection.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/channels/channel.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/chat/assets_assigned_to_chat.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/chat/chat_status_modifications.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/chat/chat_with_assets.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/chat/client.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/chat/continuous_conversation.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/chat/filter_parameters.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/chat/flow_link_state.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/chat/highlight.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/chat/preview.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/chat/quality_scoring.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/chat/scheduled_messages.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/chat/temporary_chat.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/chat/time_left.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/CRM/business_area.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/CRM/funnel.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/CINTIA/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/CINTIA/cintia_execution.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/CINTIA/events/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/CINTIA/events/cintia_event_type.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/CINTIA/models/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/CINTIA/models/chat_vector.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/CINTIA/models/chatty_asset_embedding.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/CINTIA/models/chatty_trigger.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/CINTIA/models/cintia_feedback.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/CINTIA/models/cintia_trigger.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/CINTIA/models/lambda_trigger_events.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/CINTIA/models/outputs/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/CINTIA/models/outputs/cintia_assistant_output.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/CINTIA/models/outputs/cintia_audio_transcriber_output.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/CINTIA/models/outputs/cintia_customer_success_output.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/CINTIA/models/outputs/cintia_decision_output.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/CINTIA/models/outputs/cintia_responder_output.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/CINTIA/models/outputs/cintia_smart_follow_output.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/CINTIA/models/outputs/cintia_tagger_output.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/ai_agent_message_draft.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/ai_agents_decision_output.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/ai_specific_instruction.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/chain_of_thought_in_chat.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/chat_example.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/chat_example_test.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/chatty_ai_agent.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/chatty_ai_agent_config_for_automation.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/chatty_ai_agent_in_chat.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/chatty_ai_mode.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/context_item.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/cs_scenario.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/data_collection_config.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/faq.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/fast_answer_reference.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/follow_up_strategy.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/get_chat_with_prompt_response.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/instruction.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/knowleadge_base_components.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/n8n_agents_info.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/n8n_schema_incoming_message_output.json +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/n8n_schema_smart_follow_up_output.json +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/pre_qualify_config.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/tag_reference.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/asset_model_registry.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/assignment/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/assignment/assignment_assets.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/automation.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/chat_assets.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/chatty_fast_answers/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/chatty_fast_answers/chatty_fast_answer.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/company_assets.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/contact_point.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/embeddable.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/filter_criteria.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/flow.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/launch/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/launch/launch.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/launch/scheduled_communication.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/launch/subscription.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/media/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/media/file.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/notification.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/product.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/product_parameter_embed_config.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/sale.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/tag.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/users/agent_chats_snapshot.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/users/user.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/users/user_asset_permission.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/workflow_execution.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/company_chats_snapshot.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/company_messaging_settgins.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/conversation_topic.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/empresa.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/form_field.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/insight.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/integrations/product_sync_status.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/integrations/shopify/company_shopify_integration.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/integrations/shopify/shopify_product_sync_status.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/integrations/shopify/shopify_webhook_topics.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/integrations/sync_status_enum.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/integrations/tienda_nube/company_tienda_nube_integration.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/integrations/tienda_nube/tienda_nube_product_sync_status.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/integrations/tienda_nube/tienda_nube_webhook_topics.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/notifications/notification.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/copilot/links.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/data_base/README.md +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/data_base/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/data_base/collection_interface.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/data_base/mongo_connection.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/execution/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/execution/execution.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/execution/executor.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/forms/company/auth0_company_registration_form.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/forms/company/meta_register.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/audio.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/base/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/base/chatty_message_json.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/base/message_base.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/base/message_draft.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/button.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/central_notification.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/contact.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/document.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/image.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/interactive.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/location.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/reaction.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/schema/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_audio.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_button.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_central.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_contacts.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_document.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_image.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_interactive.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_location.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_media.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_reaction.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_sticker.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_text.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_video.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/schema/chatty_context/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/schema/chatty_context/chatty_context.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/schema/chatty_referal/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/schema/chatty_referal/chatty_referal.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/sticker.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/text.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/chatty_messages/video.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/message_templates/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/message_templates/chatty_template_campaign.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/message_templates/filled_data_from_frontend.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/message_templates/payload_for_sending_template.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/message_templates/raw_meta_template.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/message_templates/recipient_of_template_campaign.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/message_templates/required_for_frontend_templates.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/meta_message_model/meta_base_notification_json.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/meta_message_model/meta_error_json.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/meta_message_model/meta_inexistent_json.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/meta_message_model/meta_message_json.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/meta_message_model/meta_status_json.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/meta_message_model/meta_unknown_json.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/meta_message_model/schema/content_messages/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/meta_message_model/schema/content_messages/button_content.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/meta_message_model/schema/content_messages/contacts_content.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/meta_message_model/schema/content_messages/interactive_content.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/meta_message_model/schema/content_messages/location_content.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/meta_message_model/schema/content_messages/multimedia_content.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/meta_message_model/schema/content_messages/order_content.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/meta_message_model/schema/content_messages/reaction_content.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/meta_message_model/schema/content_messages/system_content.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/meta_message_model/schema/content_messages/text_content.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/meta_message_model/schema/values/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/meta_message_model/schema/values/value_messages.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/messages/meta_message_model/schema/values/value_statuses.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/push_notifications/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/push_notifications/enums.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/push_notifications/user_device.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/utils/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/utils/custom_exceptions/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/utils/definitions.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/utils/types/CRUD_operations.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/utils/types/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/utils/types/channel_types.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/utils/types/chats_actions.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/utils/types/country.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/utils/types/deletion_type.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/utils/types/executor_types.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/utils/types/identifier.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/utils/types/message_status_types.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/utils/types/message_types.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/utils/types/phone_number.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/utils/types/serializer_type.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/utils/types/source_types.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/utils/types/typealiases.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/ai_agents/context_builder_v2.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/ai_agents/cot_follow_up_examples.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/ai_agents/followup_schema.json +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/ai_agents/smart_follow_up_context_builder_v2.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/ai_agents/smart_follow_up_service_v2.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/ai_agents/tool_descriptions/assign_chat_to_ai_agent_itself.json +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/ai_agents/tool_descriptions/human_handover.json +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/ai_agents/tool_descriptions.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/ai_components_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chat/chat_extractors.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chat/client_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chat/conversation_topics_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chat/whatsapp_apb_mode_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/asset_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/assets_collections.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/base_container_with_collection.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/collections/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/collections/ai_agent_collection.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/collections/ai_agent_in_chat_collection.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/collections/ai_component_collection.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/collections/chain_of_thought_collection.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/collections/chat_collection.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/collections/contact_point_collection.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/collections/fast_answer_collection.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/collections/filter_criteria_collection.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/collections/flow_collection.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/collections/form_field_collection.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/collections/product_collection.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/collections/sale_collection.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/collections/source_collection.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/collections/tag_collection.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/collections/topic_collection.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/collections/user_collection.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/documentation_diagram.png +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/example_usage.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/readme.md +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/services/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/services/ai_agent_in_chat_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/services/ai_agent_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/services/chain_of_thought_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/services/chat_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/services/contact_point_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/services/fast_answer_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/services/filter_criteria_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/services/flow_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/services/product_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/services/sale_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/services/source_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/services/tag_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/services/topic_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/chatty_assets/services/user_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/concurrent/concurrent.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/contact_points/contact_point_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/continuous_conversation_service/continuous_conversation_helper.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/events/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/events/events_manager.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/analytics/ai_agent_event_factory.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/analytics/contact_point_factory.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/analytics/events_factory.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/analytics/smart_messages/topics_factory.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/analytics/sources/helpers.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/analytics/sources/source_factory.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/chats/chat_factory.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/chatty_fast_answers/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/chatty_fast_answers/chatty_fast_answers_factory.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/clients/client_factory.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/company/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/company/empresa_factory.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/lambda_ai_orchestrartor/lambda_events_factory.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/messages/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/messages/central_notification_factory.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/messages/chatty_message_factory.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/messages/child_db_message_factory.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/messages/child_request_message.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/messages/from_template_hot_fix.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/messages/message_templates/template_factory.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/messages/message_templates/test.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/meta_notifications/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/meta_notifications/meta_notification_factory.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/factories/product_factory.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/filter_criteria_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/messages_helpers/__init__.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/messages_helpers/get_caption_or_body_or_preview.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/scheduled_messages_service/scheduled_messages_helpers.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/template_campaigns/template_campaign_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/users/agent_service.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/users/user_factory.py +0 -0
- {letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/services/validators/analytics_validator.py +0 -0
|
@@ -358,7 +358,12 @@ 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
|
-
|
|
361
|
+
# Empty chats (no non-CENTRAL message) store NULL here on purpose, so the
|
|
362
|
+
# inbox preview feed can exclude them via the indexed last_message_timestamp
|
|
363
|
+
# range filter while search still returns them. Display fallback to created_at
|
|
364
|
+
# happens at read time in api-chatty's preview build. (The __gt__/__lt__
|
|
365
|
+
# comparison fallbacks above keep created_at for in-memory sorting.)
|
|
366
|
+
dump["last_message_timestamp"]= self.last_message_timestamp
|
|
362
367
|
dump["free_conversation_expire_date"] = self.free_conversation_expire_date
|
|
363
368
|
dump["free_template_window_expire_date"] = self.free_template_window_expire_date
|
|
364
369
|
dump["last_message"] = self.last_message.model_dump_json(serializer=SerializerType.DATABASE) if self.last_message else None
|
|
@@ -35,13 +35,64 @@ class ErrorResponse(BaseModel):
|
|
|
35
35
|
def get_error_details(code: int) -> Optional[Dict[str, str]]:
|
|
36
36
|
"""
|
|
37
37
|
Obtiene los detalles del error basándose en el código de error.
|
|
38
|
-
|
|
38
|
+
|
|
39
39
|
:param code: Código de error entero.
|
|
40
40
|
:return: Diccionario con 'description', 'solution' y 'http_status' si el código existe, de lo contrario None.
|
|
41
41
|
"""
|
|
42
42
|
return ERROR_CODE_DETAILS.get(code)
|
|
43
43
|
|
|
44
44
|
|
|
45
|
+
# -------------------------------------------------------------------------
|
|
46
|
+
# Agent-facing friendly reasons (Spanish), mapped by Meta error code or HTTP
|
|
47
|
+
# status. Used to explain a failed outbound send to the agent in the chat.
|
|
48
|
+
# This is additive — it does NOT touch ERROR_CODE_DETAILS or get_error_details.
|
|
49
|
+
# -------------------------------------------------------------------------
|
|
50
|
+
|
|
51
|
+
# Meta error code -> short agent-facing Spanish text.
|
|
52
|
+
FRIENDLY_AGENT_TEXT_ES: Dict[int, str] = {
|
|
53
|
+
131047: "El cliente no escribió en las últimas 24 hs. Enviá una plantilla para retomar la conversación.",
|
|
54
|
+
131051: "Tipo de mensaje no soportado para este envío.",
|
|
55
|
+
131026: "El número no puede recibir mensajes de WhatsApp.",
|
|
56
|
+
131021: "No se puede enviar un mensaje a este número.",
|
|
57
|
+
131049: "WhatsApp no entregó el mensaje por políticas de Meta.",
|
|
58
|
+
130472: "No entregado: el usuario forma parte de un experimento de Meta.",
|
|
59
|
+
131031: "La cuenta de WhatsApp está bloqueada.",
|
|
60
|
+
131008: "Falta un parámetro requerido en el mensaje.",
|
|
61
|
+
131009: "Un parámetro del mensaje tiene un valor inválido.",
|
|
62
|
+
190: "La conexión con WhatsApp expiró. Reconectá la cuenta.",
|
|
63
|
+
368: "Cuenta temporalmente bloqueada por una violación de políticas.",
|
|
64
|
+
131048: "Límite de frecuencia alcanzado. Probá nuevamente más tarde.",
|
|
65
|
+
130429: "Demasiados mensajes en poco tiempo. Probá nuevamente más tarde.",
|
|
66
|
+
131056: "Demasiados mensajes al mismo número en poco tiempo.",
|
|
67
|
+
133016: "Límite de frecuencia de la cuenta alcanzado.",
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
_FRIENDLY_DEFAULT = "No se pudo enviar el mensaje."
|
|
71
|
+
_FRIENDLY_AUTH = "La conexión con WhatsApp expiró. Reconectá la cuenta."
|
|
72
|
+
_FRIENDLY_TRANSIENT = "Error temporal de WhatsApp. Se reintentó sin éxito, probá de nuevo en unos minutos."
|
|
73
|
+
_FRIENDLY_4XX = "WhatsApp rechazó el mensaje."
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def friendly_failure_reason(*, meta_code: Optional[int] = None,
|
|
77
|
+
http_status: Optional[int] = None,
|
|
78
|
+
transient: bool = False) -> str:
|
|
79
|
+
"""Map a failed outbound send to a short, agent-facing Spanish reason.
|
|
80
|
+
|
|
81
|
+
Precedence: a known Meta error code wins; then HTTP 401 (auth/expired token);
|
|
82
|
+
then transient/5xx; then any other 4xx; else a generic fallback. Pure function,
|
|
83
|
+
no side effects — safe to call anywhere and trivial to unit-test.
|
|
84
|
+
"""
|
|
85
|
+
if meta_code is not None and meta_code in FRIENDLY_AGENT_TEXT_ES:
|
|
86
|
+
return FRIENDLY_AGENT_TEXT_ES[meta_code]
|
|
87
|
+
if http_status == 401 or meta_code == 190:
|
|
88
|
+
return _FRIENDLY_AUTH
|
|
89
|
+
if transient or (http_status is not None and 500 <= http_status < 600):
|
|
90
|
+
return _FRIENDLY_TRANSIENT
|
|
91
|
+
if http_status is not None and 400 <= http_status < 500:
|
|
92
|
+
return _FRIENDLY_4XX
|
|
93
|
+
return _FRIENDLY_DEFAULT
|
|
94
|
+
|
|
95
|
+
|
|
45
96
|
|
|
46
97
|
|
|
47
98
|
# -------------------------
|
|
@@ -52,8 +52,13 @@ class UnauthorizedOrigin(CustomException):
|
|
|
52
52
|
super().__init__(message, status_code=status_code, **context_data)
|
|
53
53
|
|
|
54
54
|
class WhatsAppAPIError(CustomException):
|
|
55
|
-
def __init__(self, message="WhatsApp API error", status_code=400, **context_data):
|
|
55
|
+
def __init__(self, message="WhatsApp API error", status_code=400, meta_code: Optional[int] = None, transient: bool = False, **context_data):
|
|
56
56
|
super().__init__(message, status_code=status_code, **context_data)
|
|
57
|
+
# meta_code: Meta's numeric error code parsed from the response body (when present).
|
|
58
|
+
# transient: True for retryable transport failures (clean 5xx). Both default-safe so
|
|
59
|
+
# existing call sites that don't pass them keep working.
|
|
60
|
+
self.meta_code = meta_code
|
|
61
|
+
self.transient = transient
|
|
57
62
|
|
|
58
63
|
class WhatsAppPayloadValidationError(Exception):
|
|
59
64
|
def __init__(self, message="WhatsApp payload validation error", status_code=400, **context_data):
|
|
@@ -485,6 +485,13 @@ class ChatService:
|
|
|
485
485
|
logger.warning(f"No active CC found for chat {chat.id}")
|
|
486
486
|
logger.warning(f"Template {message.context.template_name} failed: {error_details.get_error_details()}")
|
|
487
487
|
raise MetaErrorNotification(message=f"Template {message.context.template_name} failed", status_code=400, chat_id=chat.identifier, details=error_details.get_more_info())
|
|
488
|
+
elif status == Status.FAILED and error_details is not None:
|
|
489
|
+
# Non-template message reported FAILED by Meta (async). Surface the same
|
|
490
|
+
# friendly Spanish reason via a central notification — mirrors the sync
|
|
491
|
+
# send-failure path so both ingress points behave identically.
|
|
492
|
+
from letschatty.models.messages.meta_message_model.schema.values.value_errors import friendly_failure_reason
|
|
493
|
+
ChatService.add_central_notification_from_text(chat=chat, body=f"No se pudo enviar el mensaje: {friendly_failure_reason(meta_code=error_details.code)}", subtype=MessageSubtype.META_ERROR, content_status=CentralNotificationStatus.ERROR)
|
|
494
|
+
logger.warning(f"Message {message_id} failed (meta_code={error_details.code}): {error_details.get_error_details()}")
|
|
488
495
|
return message
|
|
489
496
|
|
|
490
497
|
@staticmethod
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/ai_microservices/__init__.py
RENAMED
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/ai_microservices/expected_output.py
RENAMED
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/ai_microservices/lambda_events.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/ai_microservices/openai_payloads.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/events/event_types.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/metrics/__init_.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/metrics/daily_new_chats.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/metrics/sales_roadmap.py
RENAMED
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/metrics/sent_templates.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/smart_messages/topic.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/helpers.py
RENAMED
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/other_source.py
RENAMED
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/pure_ad.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/source_base.py
RENAMED
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/template_source.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/analytics/sources/utm_source.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/base_models/ai_agent_component.py
RENAMED
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/base_models/chatty_asset_model.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/chat/assets_assigned_to_chat.py
RENAMED
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/chat/chat_status_modifications.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/chat/continuous_conversation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/CRM/business_area.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/CINTIA/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/ai_agents_v2/faq.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/automation.py
RENAMED
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/chat_assets.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/company_assets.py
RENAMED
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/contact_point.py
RENAMED
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/embeddable.py
RENAMED
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/filter_criteria.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/launch/__init__.py
RENAMED
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/launch/launch.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/media/__init__.py
RENAMED
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/media/file.py
RENAMED
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/notification.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/users/user.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/assets/workflow_execution.py
RENAMED
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/company_chats_snapshot.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.415 → letschatty-0.4.417}/src/letschatty/models/company/conversation_topic.py
RENAMED
|
File without changes
|
|
File without changes
|