zavudev 0.5.0 → 0.7.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +22 -0
- data/README.md +1 -1
- data/lib/zavudev/internal/util.rb +3 -1
- data/lib/zavudev/models/contact.rb +3 -153
- data/lib/zavudev/models/contact_channel.rb +155 -0
- data/lib/zavudev/models/message_send_params.rb +4 -3
- data/lib/zavudev/models/senders/agent/agent_flow.rb +6 -101
- data/lib/zavudev/models/senders/agent/agent_tool.rb +3 -53
- data/lib/zavudev/models/senders/agent/flow_create_params.rb +6 -100
- data/lib/zavudev/models/senders/agent/flow_step.rb +61 -0
- data/lib/zavudev/models/senders/agent/flow_trigger.rb +51 -0
- data/lib/zavudev/models/senders/agent/flow_update_params.rb +6 -100
- data/lib/zavudev/models/senders/agent/tool_create_params.rb +3 -52
- data/lib/zavudev/models/senders/agent/tool_parameters.rb +58 -0
- data/lib/zavudev/models/senders/agent/tool_update_params.rb +3 -52
- data/lib/zavudev/models/template.rb +33 -5
- data/lib/zavudev/models/template_create_params.rb +64 -2
- data/lib/zavudev/models.rb +2 -0
- data/lib/zavudev/resources/messages.rb +1 -1
- data/lib/zavudev/resources/senders/agent/flows.rb +4 -4
- data/lib/zavudev/resources/senders/agent/tools.rb +2 -2
- data/lib/zavudev/resources/templates.rb +14 -2
- data/lib/zavudev/version.rb +1 -1
- data/lib/zavudev.rb +4 -0
- data/rbi/zavudev/models/contact.rbi +4 -235
- data/rbi/zavudev/models/contact_channel.rbi +231 -0
- data/rbi/zavudev/models/message_send_params.rbi +6 -4
- data/rbi/zavudev/models/senders/agent/agent_flow.rbi +7 -233
- data/rbi/zavudev/models/senders/agent/agent_tool.rbi +4 -130
- data/rbi/zavudev/models/senders/agent/flow_create_params.rbi +7 -245
- data/rbi/zavudev/models/senders/agent/flow_step.rbi +115 -0
- data/rbi/zavudev/models/senders/agent/flow_trigger.rbi +108 -0
- data/rbi/zavudev/models/senders/agent/flow_update_params.rbi +8 -255
- data/rbi/zavudev/models/senders/agent/tool_create_params.rbi +4 -132
- data/rbi/zavudev/models/senders/agent/tool_parameters.rbi +124 -0
- data/rbi/zavudev/models/senders/agent/tool_update_params.rbi +4 -136
- data/rbi/zavudev/models/template.rbi +39 -4
- data/rbi/zavudev/models/template_create_params.rbi +105 -0
- data/rbi/zavudev/models.rbi +2 -0
- data/rbi/zavudev/resources/messages.rbi +3 -3
- data/rbi/zavudev/resources/senders/agent/flows.rbi +4 -12
- data/rbi/zavudev/resources/senders/agent/tools.rbi +2 -4
- data/rbi/zavudev/resources/templates.rbi +19 -0
- data/sig/zavudev/models/contact.rbs +6 -153
- data/sig/zavudev/models/contact_channel.rbs +150 -0
- data/sig/zavudev/models/senders/agent/agent_flow.rbs +8 -100
- data/sig/zavudev/models/senders/agent/agent_tool.rbs +4 -57
- data/sig/zavudev/models/senders/agent/flow_create_params.rbs +8 -100
- data/sig/zavudev/models/senders/agent/flow_step.rbs +55 -0
- data/sig/zavudev/models/senders/agent/flow_trigger.rbs +51 -0
- data/sig/zavudev/models/senders/agent/flow_update_params.rbs +12 -104
- data/sig/zavudev/models/senders/agent/tool_create_params.rbs +4 -57
- data/sig/zavudev/models/senders/agent/tool_parameters.rbs +60 -0
- data/sig/zavudev/models/senders/agent/tool_update_params.rbs +6 -59
- data/sig/zavudev/models/template.rbs +21 -0
- data/sig/zavudev/models/template_create_params.rbs +57 -0
- data/sig/zavudev/models.rbs +2 -0
- data/sig/zavudev/resources/senders/agent/flows.rbs +4 -4
- data/sig/zavudev/resources/senders/agent/tools.rbs +2 -2
- data/sig/zavudev/resources/templates.rbs +6 -0
- metadata +14 -2
|
@@ -8,6 +8,7 @@ module Zavudev
|
|
|
8
8
|
include Zavudev::Internal::Type::RequestParameters
|
|
9
9
|
|
|
10
10
|
# @!attribute body
|
|
11
|
+
# Default template body. Used when no channel-specific body is set.
|
|
11
12
|
#
|
|
12
13
|
# @return [String]
|
|
13
14
|
required :body, String
|
|
@@ -42,6 +43,42 @@ module Zavudev
|
|
|
42
43
|
# @return [Integer, nil]
|
|
43
44
|
optional :code_expiration_minutes, Integer, api_name: :codeExpirationMinutes
|
|
44
45
|
|
|
46
|
+
# @!attribute footer
|
|
47
|
+
# Footer text for the template.
|
|
48
|
+
#
|
|
49
|
+
# @return [String, nil]
|
|
50
|
+
optional :footer, String
|
|
51
|
+
|
|
52
|
+
# @!attribute header_content
|
|
53
|
+
# Header content (text string or media URL).
|
|
54
|
+
#
|
|
55
|
+
# @return [String, nil]
|
|
56
|
+
optional :header_content, String, api_name: :headerContent
|
|
57
|
+
|
|
58
|
+
# @!attribute header_type
|
|
59
|
+
# Type of header for the template.
|
|
60
|
+
#
|
|
61
|
+
# @return [Symbol, Zavudev::Models::TemplateCreateParams::HeaderType, nil]
|
|
62
|
+
optional :header_type, enum: -> { Zavudev::TemplateCreateParams::HeaderType }, api_name: :headerType
|
|
63
|
+
|
|
64
|
+
# @!attribute instagram_body
|
|
65
|
+
# Channel-specific body for Instagram. Falls back to `body` if not set.
|
|
66
|
+
#
|
|
67
|
+
# @return [String, nil]
|
|
68
|
+
optional :instagram_body, String, api_name: :instagramBody
|
|
69
|
+
|
|
70
|
+
# @!attribute sms_body
|
|
71
|
+
# Channel-specific body for SMS. Falls back to `body` if not set.
|
|
72
|
+
#
|
|
73
|
+
# @return [String, nil]
|
|
74
|
+
optional :sms_body, String, api_name: :smsBody
|
|
75
|
+
|
|
76
|
+
# @!attribute telegram_body
|
|
77
|
+
# Channel-specific body for Telegram. Falls back to `body` if not set.
|
|
78
|
+
#
|
|
79
|
+
# @return [String, nil]
|
|
80
|
+
optional :telegram_body, String, api_name: :telegramBody
|
|
81
|
+
|
|
45
82
|
# @!attribute variables
|
|
46
83
|
#
|
|
47
84
|
# @return [Array<String>, nil]
|
|
@@ -53,8 +90,8 @@ module Zavudev
|
|
|
53
90
|
# @return [Symbol, Zavudev::Models::WhatsappCategory, nil]
|
|
54
91
|
optional :whatsapp_category, enum: -> { Zavudev::WhatsappCategory }, api_name: :whatsappCategory
|
|
55
92
|
|
|
56
|
-
# @!method initialize(body:, language:, name:, add_security_recommendation: nil, buttons: nil, code_expiration_minutes: nil, variables: nil, whatsapp_category: nil, request_options: {})
|
|
57
|
-
# @param body [String]
|
|
93
|
+
# @!method initialize(body:, language:, name:, add_security_recommendation: nil, buttons: nil, code_expiration_minutes: nil, footer: nil, header_content: nil, header_type: nil, instagram_body: nil, sms_body: nil, telegram_body: nil, variables: nil, whatsapp_category: nil, request_options: {})
|
|
94
|
+
# @param body [String] Default template body. Used when no channel-specific body is set.
|
|
58
95
|
#
|
|
59
96
|
# @param language [String]
|
|
60
97
|
#
|
|
@@ -66,6 +103,18 @@ module Zavudev
|
|
|
66
103
|
#
|
|
67
104
|
# @param code_expiration_minutes [Integer] Code expiration time in minutes. Only for AUTHENTICATION templates.
|
|
68
105
|
#
|
|
106
|
+
# @param footer [String] Footer text for the template.
|
|
107
|
+
#
|
|
108
|
+
# @param header_content [String] Header content (text string or media URL).
|
|
109
|
+
#
|
|
110
|
+
# @param header_type [Symbol, Zavudev::Models::TemplateCreateParams::HeaderType] Type of header for the template.
|
|
111
|
+
#
|
|
112
|
+
# @param instagram_body [String] Channel-specific body for Instagram. Falls back to `body` if not set.
|
|
113
|
+
#
|
|
114
|
+
# @param sms_body [String] Channel-specific body for SMS. Falls back to `body` if not set.
|
|
115
|
+
#
|
|
116
|
+
# @param telegram_body [String] Channel-specific body for Telegram. Falls back to `body` if not set.
|
|
117
|
+
#
|
|
69
118
|
# @param variables [Array<String>]
|
|
70
119
|
#
|
|
71
120
|
# @param whatsapp_category [Symbol, Zavudev::Models::WhatsappCategory] WhatsApp template category.
|
|
@@ -157,6 +206,19 @@ module Zavudev
|
|
|
157
206
|
# @return [Array<Symbol>]
|
|
158
207
|
end
|
|
159
208
|
end
|
|
209
|
+
|
|
210
|
+
# Type of header for the template.
|
|
211
|
+
module HeaderType
|
|
212
|
+
extend Zavudev::Internal::Type::Enum
|
|
213
|
+
|
|
214
|
+
TEXT = :text
|
|
215
|
+
IMAGE = :image
|
|
216
|
+
VIDEO = :video
|
|
217
|
+
DOCUMENT = :document
|
|
218
|
+
|
|
219
|
+
# @!method self.values
|
|
220
|
+
# @return [Array<Symbol>]
|
|
221
|
+
end
|
|
160
222
|
end
|
|
161
223
|
end
|
|
162
224
|
end
|
data/lib/zavudev/models.rb
CHANGED
|
@@ -113,7 +113,7 @@ module Zavudev
|
|
|
113
113
|
#
|
|
114
114
|
# @param attachments [Array<Zavudev::Models::MessageSendParams::Attachment>] Body param: Email attachments. Only supported when channel is 'email'. Maximum 4
|
|
115
115
|
#
|
|
116
|
-
# @param channel [Symbol, Zavudev::Models::Channel] Body param: Delivery channel. Use 'auto' for intelligent routing. If omitted
|
|
116
|
+
# @param channel [Symbol, Zavudev::Models::Channel] Body param: Delivery channel. Use 'auto' for intelligent routing. If omitted, ch
|
|
117
117
|
#
|
|
118
118
|
# @param content [Zavudev::Models::MessageContent] Body param: Additional content for non-text message types.
|
|
119
119
|
#
|
|
@@ -11,8 +11,8 @@ module Zavudev
|
|
|
11
11
|
#
|
|
12
12
|
# @param sender_id [String]
|
|
13
13
|
# @param name [String]
|
|
14
|
-
# @param steps [Array<Zavudev::Models::Senders::Agent::
|
|
15
|
-
# @param trigger [Zavudev::Models::Senders::Agent::
|
|
14
|
+
# @param steps [Array<Zavudev::Models::Senders::Agent::FlowStep>]
|
|
15
|
+
# @param trigger [Zavudev::Models::Senders::Agent::FlowTrigger]
|
|
16
16
|
# @param description [String]
|
|
17
17
|
# @param enabled [Boolean]
|
|
18
18
|
# @param priority [Integer]
|
|
@@ -73,9 +73,9 @@ module Zavudev
|
|
|
73
73
|
#
|
|
74
74
|
# @param priority [Integer] Body param
|
|
75
75
|
#
|
|
76
|
-
# @param steps [Array<Zavudev::Models::Senders::Agent::
|
|
76
|
+
# @param steps [Array<Zavudev::Models::Senders::Agent::FlowStep>] Body param
|
|
77
77
|
#
|
|
78
|
-
# @param trigger [Zavudev::Models::Senders::Agent::
|
|
78
|
+
# @param trigger [Zavudev::Models::Senders::Agent::FlowTrigger] Body param
|
|
79
79
|
#
|
|
80
80
|
# @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
81
81
|
#
|
|
@@ -15,7 +15,7 @@ module Zavudev
|
|
|
15
15
|
#
|
|
16
16
|
# @param name [String]
|
|
17
17
|
#
|
|
18
|
-
# @param parameters [Zavudev::Models::Senders::Agent::
|
|
18
|
+
# @param parameters [Zavudev::Models::Senders::Agent::ToolParameters]
|
|
19
19
|
#
|
|
20
20
|
# @param webhook_url [String] Must be HTTPS.
|
|
21
21
|
#
|
|
@@ -78,7 +78,7 @@ module Zavudev
|
|
|
78
78
|
#
|
|
79
79
|
# @param name [String] Body param
|
|
80
80
|
#
|
|
81
|
-
# @param parameters [Zavudev::Models::Senders::Agent::
|
|
81
|
+
# @param parameters [Zavudev::Models::Senders::Agent::ToolParameters] Body param
|
|
82
82
|
#
|
|
83
83
|
# @param webhook_secret [String, nil] Body param
|
|
84
84
|
#
|
|
@@ -6,9 +6,9 @@ module Zavudev
|
|
|
6
6
|
# Create a WhatsApp message template. Note: Templates must be approved by Meta
|
|
7
7
|
# before use.
|
|
8
8
|
#
|
|
9
|
-
# @overload create(body:, language:, name:, add_security_recommendation: nil, buttons: nil, code_expiration_minutes: nil, variables: nil, whatsapp_category: nil, request_options: {})
|
|
9
|
+
# @overload create(body:, language:, name:, add_security_recommendation: nil, buttons: nil, code_expiration_minutes: nil, footer: nil, header_content: nil, header_type: nil, instagram_body: nil, sms_body: nil, telegram_body: nil, variables: nil, whatsapp_category: nil, request_options: {})
|
|
10
10
|
#
|
|
11
|
-
# @param body [String]
|
|
11
|
+
# @param body [String] Default template body. Used when no channel-specific body is set.
|
|
12
12
|
#
|
|
13
13
|
# @param language [String]
|
|
14
14
|
#
|
|
@@ -20,6 +20,18 @@ module Zavudev
|
|
|
20
20
|
#
|
|
21
21
|
# @param code_expiration_minutes [Integer] Code expiration time in minutes. Only for AUTHENTICATION templates.
|
|
22
22
|
#
|
|
23
|
+
# @param footer [String] Footer text for the template.
|
|
24
|
+
#
|
|
25
|
+
# @param header_content [String] Header content (text string or media URL).
|
|
26
|
+
#
|
|
27
|
+
# @param header_type [Symbol, Zavudev::Models::TemplateCreateParams::HeaderType] Type of header for the template.
|
|
28
|
+
#
|
|
29
|
+
# @param instagram_body [String] Channel-specific body for Instagram. Falls back to `body` if not set.
|
|
30
|
+
#
|
|
31
|
+
# @param sms_body [String] Channel-specific body for SMS. Falls back to `body` if not set.
|
|
32
|
+
#
|
|
33
|
+
# @param telegram_body [String] Channel-specific body for Telegram. Falls back to `body` if not set.
|
|
34
|
+
#
|
|
23
35
|
# @param variables [Array<String>]
|
|
24
36
|
#
|
|
25
37
|
# @param whatsapp_category [Symbol, Zavudev::Models::WhatsappCategory] WhatsApp template category.
|
data/lib/zavudev/version.rb
CHANGED
data/lib/zavudev.rb
CHANGED
|
@@ -91,6 +91,7 @@ require_relative "zavudev/models/broadcast_update_params"
|
|
|
91
91
|
require_relative "zavudev/models/broadcast_update_response"
|
|
92
92
|
require_relative "zavudev/models/channel"
|
|
93
93
|
require_relative "zavudev/models/contact"
|
|
94
|
+
require_relative "zavudev/models/contact_channel"
|
|
94
95
|
require_relative "zavudev/models/contact_list_params"
|
|
95
96
|
require_relative "zavudev/models/contact_retrieve_by_phone_params"
|
|
96
97
|
require_relative "zavudev/models/contact_retrieve_params"
|
|
@@ -158,6 +159,8 @@ require_relative "zavudev/models/senders/agent/flow_duplicate_response"
|
|
|
158
159
|
require_relative "zavudev/models/senders/agent/flow_list_params"
|
|
159
160
|
require_relative "zavudev/models/senders/agent/flow_retrieve_params"
|
|
160
161
|
require_relative "zavudev/models/senders/agent/flow_retrieve_response"
|
|
162
|
+
require_relative "zavudev/models/senders/agent/flow_step"
|
|
163
|
+
require_relative "zavudev/models/senders/agent/flow_trigger"
|
|
161
164
|
require_relative "zavudev/models/senders/agent/flow_update_params"
|
|
162
165
|
require_relative "zavudev/models/senders/agent/flow_update_response"
|
|
163
166
|
require_relative "zavudev/models/senders/agent/knowledge_base_create_params"
|
|
@@ -176,6 +179,7 @@ require_relative "zavudev/models/senders/agent/tool_create_params"
|
|
|
176
179
|
require_relative "zavudev/models/senders/agent/tool_create_response"
|
|
177
180
|
require_relative "zavudev/models/senders/agent/tool_delete_params"
|
|
178
181
|
require_relative "zavudev/models/senders/agent/tool_list_params"
|
|
182
|
+
require_relative "zavudev/models/senders/agent/tool_parameters"
|
|
179
183
|
require_relative "zavudev/models/senders/agent/tool_retrieve_params"
|
|
180
184
|
require_relative "zavudev/models/senders/agent/tool_retrieve_response"
|
|
181
185
|
require_relative "zavudev/models/senders/agent/tool_test_params"
|
|
@@ -24,10 +24,10 @@ module Zavudev
|
|
|
24
24
|
attr_accessor :verified
|
|
25
25
|
|
|
26
26
|
# All communication channels for this contact.
|
|
27
|
-
sig { returns(T.nilable(T::Array[Zavudev::
|
|
27
|
+
sig { returns(T.nilable(T::Array[Zavudev::ContactChannel])) }
|
|
28
28
|
attr_reader :channels
|
|
29
29
|
|
|
30
|
-
sig { params(channels: T::Array[Zavudev::
|
|
30
|
+
sig { params(channels: T::Array[Zavudev::ContactChannel::OrHash]).void }
|
|
31
31
|
attr_writer :channels
|
|
32
32
|
|
|
33
33
|
sig { returns(T.nilable(String)) }
|
|
@@ -97,7 +97,7 @@ module Zavudev
|
|
|
97
97
|
created_at: Time,
|
|
98
98
|
metadata: T::Hash[Symbol, String],
|
|
99
99
|
verified: T::Boolean,
|
|
100
|
-
channels: T::Array[Zavudev::
|
|
100
|
+
channels: T::Array[Zavudev::ContactChannel::OrHash],
|
|
101
101
|
country_code: String,
|
|
102
102
|
default_channel: Zavudev::Contact::DefaultChannel::OrSymbol,
|
|
103
103
|
display_name: String,
|
|
@@ -146,7 +146,7 @@ module Zavudev
|
|
|
146
146
|
created_at: Time,
|
|
147
147
|
metadata: T::Hash[Symbol, String],
|
|
148
148
|
verified: T::Boolean,
|
|
149
|
-
channels: T::Array[Zavudev::
|
|
149
|
+
channels: T::Array[Zavudev::ContactChannel],
|
|
150
150
|
country_code: String,
|
|
151
151
|
default_channel: Zavudev::Contact::DefaultChannel::TaggedSymbol,
|
|
152
152
|
display_name: String,
|
|
@@ -162,237 +162,6 @@ module Zavudev
|
|
|
162
162
|
def to_hash
|
|
163
163
|
end
|
|
164
164
|
|
|
165
|
-
class Channel < Zavudev::Internal::Type::BaseModel
|
|
166
|
-
OrHash =
|
|
167
|
-
T.type_alias do
|
|
168
|
-
T.any(Zavudev::Contact::Channel, Zavudev::Internal::AnyHash)
|
|
169
|
-
end
|
|
170
|
-
|
|
171
|
-
sig { returns(String) }
|
|
172
|
-
attr_accessor :id
|
|
173
|
-
|
|
174
|
-
# Channel type.
|
|
175
|
-
sig { returns(Zavudev::Contact::Channel::Channel::TaggedSymbol) }
|
|
176
|
-
attr_accessor :channel
|
|
177
|
-
|
|
178
|
-
sig { returns(Time) }
|
|
179
|
-
attr_accessor :created_at
|
|
180
|
-
|
|
181
|
-
# Channel identifier (phone number or email address).
|
|
182
|
-
sig { returns(String) }
|
|
183
|
-
attr_accessor :identifier
|
|
184
|
-
|
|
185
|
-
# Whether this is the primary channel for its type.
|
|
186
|
-
sig { returns(T::Boolean) }
|
|
187
|
-
attr_accessor :is_primary
|
|
188
|
-
|
|
189
|
-
# Whether this channel has been verified.
|
|
190
|
-
sig { returns(T::Boolean) }
|
|
191
|
-
attr_accessor :verified
|
|
192
|
-
|
|
193
|
-
# ISO country code for phone numbers.
|
|
194
|
-
sig { returns(T.nilable(String)) }
|
|
195
|
-
attr_reader :country_code
|
|
196
|
-
|
|
197
|
-
sig { params(country_code: String).void }
|
|
198
|
-
attr_writer :country_code
|
|
199
|
-
|
|
200
|
-
# Optional label for the channel.
|
|
201
|
-
sig { returns(T.nilable(String)) }
|
|
202
|
-
attr_reader :label
|
|
203
|
-
|
|
204
|
-
sig { params(label: String).void }
|
|
205
|
-
attr_writer :label
|
|
206
|
-
|
|
207
|
-
# Last time a message was received on this channel.
|
|
208
|
-
sig { returns(T.nilable(Time)) }
|
|
209
|
-
attr_reader :last_inbound_at
|
|
210
|
-
|
|
211
|
-
sig { params(last_inbound_at: Time).void }
|
|
212
|
-
attr_writer :last_inbound_at
|
|
213
|
-
|
|
214
|
-
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
215
|
-
attr_reader :metadata
|
|
216
|
-
|
|
217
|
-
sig { params(metadata: T::Hash[Symbol, String]).void }
|
|
218
|
-
attr_writer :metadata
|
|
219
|
-
|
|
220
|
-
# Delivery metrics for this channel.
|
|
221
|
-
sig { returns(T.nilable(Zavudev::Contact::Channel::Metrics)) }
|
|
222
|
-
attr_reader :metrics
|
|
223
|
-
|
|
224
|
-
sig { params(metrics: Zavudev::Contact::Channel::Metrics::OrHash).void }
|
|
225
|
-
attr_writer :metrics
|
|
226
|
-
|
|
227
|
-
sig { returns(T.nilable(Time)) }
|
|
228
|
-
attr_reader :updated_at
|
|
229
|
-
|
|
230
|
-
sig { params(updated_at: Time).void }
|
|
231
|
-
attr_writer :updated_at
|
|
232
|
-
|
|
233
|
-
# A communication channel for a contact.
|
|
234
|
-
sig do
|
|
235
|
-
params(
|
|
236
|
-
id: String,
|
|
237
|
-
channel: Zavudev::Contact::Channel::Channel::OrSymbol,
|
|
238
|
-
created_at: Time,
|
|
239
|
-
identifier: String,
|
|
240
|
-
is_primary: T::Boolean,
|
|
241
|
-
verified: T::Boolean,
|
|
242
|
-
country_code: String,
|
|
243
|
-
label: String,
|
|
244
|
-
last_inbound_at: Time,
|
|
245
|
-
metadata: T::Hash[Symbol, String],
|
|
246
|
-
metrics: Zavudev::Contact::Channel::Metrics::OrHash,
|
|
247
|
-
updated_at: Time
|
|
248
|
-
).returns(T.attached_class)
|
|
249
|
-
end
|
|
250
|
-
def self.new(
|
|
251
|
-
id:,
|
|
252
|
-
# Channel type.
|
|
253
|
-
channel:,
|
|
254
|
-
created_at:,
|
|
255
|
-
# Channel identifier (phone number or email address).
|
|
256
|
-
identifier:,
|
|
257
|
-
# Whether this is the primary channel for its type.
|
|
258
|
-
is_primary:,
|
|
259
|
-
# Whether this channel has been verified.
|
|
260
|
-
verified:,
|
|
261
|
-
# ISO country code for phone numbers.
|
|
262
|
-
country_code: nil,
|
|
263
|
-
# Optional label for the channel.
|
|
264
|
-
label: nil,
|
|
265
|
-
# Last time a message was received on this channel.
|
|
266
|
-
last_inbound_at: nil,
|
|
267
|
-
metadata: nil,
|
|
268
|
-
# Delivery metrics for this channel.
|
|
269
|
-
metrics: nil,
|
|
270
|
-
updated_at: nil
|
|
271
|
-
)
|
|
272
|
-
end
|
|
273
|
-
|
|
274
|
-
sig do
|
|
275
|
-
override.returns(
|
|
276
|
-
{
|
|
277
|
-
id: String,
|
|
278
|
-
channel: Zavudev::Contact::Channel::Channel::TaggedSymbol,
|
|
279
|
-
created_at: Time,
|
|
280
|
-
identifier: String,
|
|
281
|
-
is_primary: T::Boolean,
|
|
282
|
-
verified: T::Boolean,
|
|
283
|
-
country_code: String,
|
|
284
|
-
label: String,
|
|
285
|
-
last_inbound_at: Time,
|
|
286
|
-
metadata: T::Hash[Symbol, String],
|
|
287
|
-
metrics: Zavudev::Contact::Channel::Metrics,
|
|
288
|
-
updated_at: Time
|
|
289
|
-
}
|
|
290
|
-
)
|
|
291
|
-
end
|
|
292
|
-
def to_hash
|
|
293
|
-
end
|
|
294
|
-
|
|
295
|
-
# Channel type.
|
|
296
|
-
module Channel
|
|
297
|
-
extend Zavudev::Internal::Type::Enum
|
|
298
|
-
|
|
299
|
-
TaggedSymbol =
|
|
300
|
-
T.type_alias { T.all(Symbol, Zavudev::Contact::Channel::Channel) }
|
|
301
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
302
|
-
|
|
303
|
-
SMS = T.let(:sms, Zavudev::Contact::Channel::Channel::TaggedSymbol)
|
|
304
|
-
WHATSAPP =
|
|
305
|
-
T.let(:whatsapp, Zavudev::Contact::Channel::Channel::TaggedSymbol)
|
|
306
|
-
EMAIL =
|
|
307
|
-
T.let(:email, Zavudev::Contact::Channel::Channel::TaggedSymbol)
|
|
308
|
-
TELEGRAM =
|
|
309
|
-
T.let(:telegram, Zavudev::Contact::Channel::Channel::TaggedSymbol)
|
|
310
|
-
VOICE =
|
|
311
|
-
T.let(:voice, Zavudev::Contact::Channel::Channel::TaggedSymbol)
|
|
312
|
-
|
|
313
|
-
sig do
|
|
314
|
-
override.returns(
|
|
315
|
-
T::Array[Zavudev::Contact::Channel::Channel::TaggedSymbol]
|
|
316
|
-
)
|
|
317
|
-
end
|
|
318
|
-
def self.values
|
|
319
|
-
end
|
|
320
|
-
end
|
|
321
|
-
|
|
322
|
-
class Metrics < Zavudev::Internal::Type::BaseModel
|
|
323
|
-
OrHash =
|
|
324
|
-
T.type_alias do
|
|
325
|
-
T.any(
|
|
326
|
-
Zavudev::Contact::Channel::Metrics,
|
|
327
|
-
Zavudev::Internal::AnyHash
|
|
328
|
-
)
|
|
329
|
-
end
|
|
330
|
-
|
|
331
|
-
sig { returns(T.nilable(Float)) }
|
|
332
|
-
attr_reader :avg_delivery_time_ms
|
|
333
|
-
|
|
334
|
-
sig { params(avg_delivery_time_ms: Float).void }
|
|
335
|
-
attr_writer :avg_delivery_time_ms
|
|
336
|
-
|
|
337
|
-
sig { returns(T.nilable(Integer)) }
|
|
338
|
-
attr_reader :failure_count
|
|
339
|
-
|
|
340
|
-
sig { params(failure_count: Integer).void }
|
|
341
|
-
attr_writer :failure_count
|
|
342
|
-
|
|
343
|
-
sig { returns(T.nilable(Time)) }
|
|
344
|
-
attr_reader :last_success_at
|
|
345
|
-
|
|
346
|
-
sig { params(last_success_at: Time).void }
|
|
347
|
-
attr_writer :last_success_at
|
|
348
|
-
|
|
349
|
-
sig { returns(T.nilable(Integer)) }
|
|
350
|
-
attr_reader :success_count
|
|
351
|
-
|
|
352
|
-
sig { params(success_count: Integer).void }
|
|
353
|
-
attr_writer :success_count
|
|
354
|
-
|
|
355
|
-
sig { returns(T.nilable(Integer)) }
|
|
356
|
-
attr_reader :total_attempts
|
|
357
|
-
|
|
358
|
-
sig { params(total_attempts: Integer).void }
|
|
359
|
-
attr_writer :total_attempts
|
|
360
|
-
|
|
361
|
-
# Delivery metrics for this channel.
|
|
362
|
-
sig do
|
|
363
|
-
params(
|
|
364
|
-
avg_delivery_time_ms: Float,
|
|
365
|
-
failure_count: Integer,
|
|
366
|
-
last_success_at: Time,
|
|
367
|
-
success_count: Integer,
|
|
368
|
-
total_attempts: Integer
|
|
369
|
-
).returns(T.attached_class)
|
|
370
|
-
end
|
|
371
|
-
def self.new(
|
|
372
|
-
avg_delivery_time_ms: nil,
|
|
373
|
-
failure_count: nil,
|
|
374
|
-
last_success_at: nil,
|
|
375
|
-
success_count: nil,
|
|
376
|
-
total_attempts: nil
|
|
377
|
-
)
|
|
378
|
-
end
|
|
379
|
-
|
|
380
|
-
sig do
|
|
381
|
-
override.returns(
|
|
382
|
-
{
|
|
383
|
-
avg_delivery_time_ms: Float,
|
|
384
|
-
failure_count: Integer,
|
|
385
|
-
last_success_at: Time,
|
|
386
|
-
success_count: Integer,
|
|
387
|
-
total_attempts: Integer
|
|
388
|
-
}
|
|
389
|
-
)
|
|
390
|
-
end
|
|
391
|
-
def to_hash
|
|
392
|
-
end
|
|
393
|
-
end
|
|
394
|
-
end
|
|
395
|
-
|
|
396
165
|
# Preferred channel for this contact.
|
|
397
166
|
module DefaultChannel
|
|
398
167
|
extend Zavudev::Internal::Type::Enum
|