sentdm 0.25.0 → 0.26.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 +12 -0
- data/README.md +7 -11
- data/lib/sentdm/client.rb +4 -0
- data/lib/sentdm/models/api_response_of_contact_message_summary.rb +43 -0
- data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +43 -0
- data/lib/sentdm/models/{sent_dm_services_common_contracts_poc_os_authentication_config.rb → authentication_config.rb} +2 -3
- data/lib/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_business_info.rb → brand_business_info.rb} +5 -7
- data/lib/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_compliance_info.rb → brand_compliance_info.rb} +2 -10
- data/lib/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_contact_info.rb → brand_contact_info.rb} +1 -1
- data/lib/sentdm/models/brands_brand_data.rb +9 -13
- data/lib/sentdm/models/contact_message_summary.rb +76 -0
- data/lib/sentdm/models/contact_retrieve_message_summary_params.rb +26 -0
- data/lib/sentdm/models/conversation_list_messages_params.rb +38 -0
- data/lib/sentdm/models/conversation_list_params.rb +32 -0
- data/lib/sentdm/models/conversation_messages_list.rb +245 -0
- data/lib/sentdm/models/message_send_response.rb +2 -6
- data/lib/sentdm/models/profile_detail.rb +3 -11
- data/lib/sentdm/models/profile_update_params.rb +2 -2
- data/lib/sentdm/models/profiles/{api_response_of_tcr_campaign_with_use_cases.rb → api_response_of_brand_campaign.rb} +5 -5
- data/lib/sentdm/models/profiles/{campaign_list_response.rb → api_response_of_list_of_brand_campaign.rb} +4 -6
- data/lib/sentdm/models/profiles/{tcr_campaign_with_use_cases.rb → brand_campaign.rb} +63 -111
- data/lib/sentdm/models/profiles/campaign_data.rb +13 -6
- data/lib/sentdm/models/profiles/campaign_use_case.rb +71 -0
- data/lib/sentdm/models/profiles/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rb → campaign_use_case_data.rb} +1 -1
- data/lib/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_body.rb → template_body.rb} +2 -3
- data/lib/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_button.rb → template_button.rb} +5 -6
- data/lib/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_button_props.rb → template_button_props.rb} +2 -3
- data/lib/sentdm/models/template_definition.rb +15 -19
- data/lib/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_footer.rb → template_footer.rb} +1 -1
- data/lib/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_header.rb → template_header.rb} +2 -3
- data/lib/sentdm/models.rb +32 -27
- data/lib/sentdm/resources/contacts.rb +30 -0
- data/lib/sentdm/resources/conversations.rb +82 -0
- data/lib/sentdm/resources/messages.rb +4 -1
- data/lib/sentdm/resources/profiles/campaigns.rb +6 -6
- data/lib/sentdm/resources/profiles.rb +31 -19
- data/lib/sentdm/version.rb +1 -1
- data/lib/sentdm.rb +22 -14
- data/rbi/sentdm/client.rbi +3 -0
- data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +79 -0
- data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +79 -0
- data/rbi/sentdm/models/{sent_dm_services_common_contracts_poc_os_authentication_config.rbi → authentication_config.rbi} +2 -5
- data/rbi/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_business_info.rbi → brand_business_info.rbi} +12 -30
- data/rbi/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_compliance_info.rbi → brand_compliance_info.rbi} +2 -13
- data/rbi/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_contact_info.rbi → brand_contact_info.rbi} +2 -5
- data/rbi/sentdm/models/brands_brand_data.rbi +12 -51
- data/rbi/sentdm/models/contact_message_summary.rbi +144 -0
- data/rbi/sentdm/models/contact_retrieve_message_summary_params.rbi +49 -0
- data/rbi/sentdm/models/conversation_list_messages_params.rbi +65 -0
- data/rbi/sentdm/models/conversation_list_params.rbi +51 -0
- data/rbi/sentdm/models/conversation_messages_list.rbi +419 -0
- data/rbi/sentdm/models/message_send_response.rbi +2 -4
- data/rbi/sentdm/models/profile_detail.rbi +2 -10
- data/rbi/sentdm/models/profile_update_params.rbi +2 -2
- data/rbi/sentdm/models/profiles/{api_response_of_tcr_campaign_with_use_cases.rbi → api_response_of_brand_campaign.rbi} +8 -10
- data/rbi/sentdm/models/profiles/{campaign_list_response.rbi → api_response_of_list_of_brand_campaign.rbi} +5 -13
- data/rbi/sentdm/models/profiles/brand_campaign.rbi +299 -0
- data/rbi/sentdm/models/profiles/campaign_data.rbi +16 -18
- data/rbi/sentdm/models/profiles/campaign_use_case.rbi +110 -0
- data/rbi/sentdm/models/profiles/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rbi → campaign_use_case_data.rbi} +2 -2
- data/rbi/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_body.rbi → template_body.rbi} +2 -7
- data/rbi/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_button.rbi → template_button.rbi} +6 -22
- data/rbi/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_button_props.rbi → template_button_props.rbi} +2 -5
- data/rbi/sentdm/models/template_definition.rbi +19 -87
- data/rbi/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_footer.rbi → template_footer.rbi} +2 -5
- data/rbi/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_header.rbi → template_header.rbi} +2 -5
- data/rbi/sentdm/models.rbi +36 -27
- data/rbi/sentdm/resources/contacts.rbi +20 -0
- data/rbi/sentdm/resources/conversations.rbi +61 -0
- data/rbi/sentdm/resources/messages.rbi +4 -1
- data/rbi/sentdm/resources/profiles/campaigns.rbi +3 -3
- data/rbi/sentdm/resources/profiles.rbi +29 -18
- data/sig/sentdm/client.rbs +2 -0
- data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +39 -0
- data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +39 -0
- data/sig/sentdm/models/{sent_dm_services_common_contracts_poc_os_authentication_config.rbs → authentication_config.rbs} +2 -2
- data/sig/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_business_info.rbs → brand_business_info.rbs} +7 -7
- data/sig/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_compliance_info.rbs → brand_compliance_info.rbs} +2 -7
- data/sig/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_contact_info.rbs → brand_contact_info.rbs} +2 -2
- data/sig/sentdm/models/brands_brand_data.rbs +12 -12
- data/sig/sentdm/models/contact_message_summary.rbs +84 -0
- data/sig/sentdm/models/contact_retrieve_message_summary_params.rbs +30 -0
- data/sig/sentdm/models/conversation_list_messages_params.rbs +38 -0
- data/sig/sentdm/models/conversation_list_params.rbs +34 -0
- data/sig/sentdm/models/conversation_messages_list.rbs +240 -0
- data/sig/sentdm/models/profile_detail.rbs +0 -5
- data/sig/sentdm/models/profiles/{campaign_list_response.rbs → api_response_of_brand_campaign.rbs} +6 -6
- data/sig/sentdm/models/profiles/{api_response_of_tcr_campaign_with_use_cases.rbs → api_response_of_list_of_brand_campaign.rbs} +6 -6
- data/sig/sentdm/models/profiles/brand_campaign.rbs +194 -0
- data/sig/sentdm/models/profiles/campaign_data.rbs +12 -7
- data/sig/sentdm/models/profiles/campaign_use_case.rbs +66 -0
- data/sig/sentdm/models/profiles/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rbs → campaign_use_case_data.rbs} +2 -2
- data/sig/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_body.rbs → template_body.rbs} +2 -2
- data/sig/sentdm/models/template_button.rbs +28 -0
- data/sig/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_button_props.rbs → template_button_props.rbs} +2 -2
- data/sig/sentdm/models/template_definition.rbs +20 -20
- data/sig/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_footer.rbs → template_footer.rbs} +2 -2
- data/sig/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_header.rbs → template_header.rbs} +2 -2
- data/sig/sentdm/models.rbs +32 -18
- data/sig/sentdm/resources/contacts.rbs +6 -0
- data/sig/sentdm/resources/conversations.rbs +22 -0
- data/sig/sentdm/resources/profiles/campaigns.rbs +3 -3
- metadata +68 -44
- data/lib/sentdm/models/profiles/base_dto.rb +0 -32
- data/rbi/sentdm/models/profiles/base_dto.rbi +0 -53
- data/rbi/sentdm/models/profiles/tcr_campaign_with_use_cases.rbi +0 -425
- data/sig/sentdm/models/profiles/base_dto.rbs +0 -27
- data/sig/sentdm/models/profiles/tcr_campaign_with_use_cases.rbs +0 -306
- data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button.rbs +0 -32
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class ConversationMessagesList < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Sentdm::ConversationMessagesList, Sentdm::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# The messages on this page, most recent first.
|
|
12
|
+
sig do
|
|
13
|
+
returns(T.nilable(T::Array[Sentdm::ConversationMessagesList::Message]))
|
|
14
|
+
end
|
|
15
|
+
attr_reader :messages
|
|
16
|
+
|
|
17
|
+
sig do
|
|
18
|
+
params(
|
|
19
|
+
messages: T::Array[Sentdm::ConversationMessagesList::Message::OrHash]
|
|
20
|
+
).void
|
|
21
|
+
end
|
|
22
|
+
attr_writer :messages
|
|
23
|
+
|
|
24
|
+
# Pagination metadata for list responses
|
|
25
|
+
sig { returns(T.nilable(Sentdm::PaginationMeta)) }
|
|
26
|
+
attr_reader :pagination
|
|
27
|
+
|
|
28
|
+
sig { params(pagination: Sentdm::PaginationMeta::OrHash).void }
|
|
29
|
+
attr_writer :pagination
|
|
30
|
+
|
|
31
|
+
# A paginated list of messages — used by both conversation read endpoints.
|
|
32
|
+
sig do
|
|
33
|
+
params(
|
|
34
|
+
messages: T::Array[Sentdm::ConversationMessagesList::Message::OrHash],
|
|
35
|
+
pagination: Sentdm::PaginationMeta::OrHash
|
|
36
|
+
).returns(T.attached_class)
|
|
37
|
+
end
|
|
38
|
+
def self.new(
|
|
39
|
+
# The messages on this page, most recent first.
|
|
40
|
+
messages: nil,
|
|
41
|
+
# Pagination metadata for list responses
|
|
42
|
+
pagination: nil
|
|
43
|
+
)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
sig do
|
|
47
|
+
override.returns(
|
|
48
|
+
{
|
|
49
|
+
messages: T::Array[Sentdm::ConversationMessagesList::Message],
|
|
50
|
+
pagination: Sentdm::PaginationMeta
|
|
51
|
+
}
|
|
52
|
+
)
|
|
53
|
+
end
|
|
54
|
+
def to_hash
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
class Message < Sentdm::Internal::Type::BaseModel
|
|
58
|
+
OrHash =
|
|
59
|
+
T.type_alias do
|
|
60
|
+
T.any(
|
|
61
|
+
Sentdm::ConversationMessagesList::Message,
|
|
62
|
+
Sentdm::Internal::AnyHash
|
|
63
|
+
)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
sig { returns(T.nilable(String)) }
|
|
67
|
+
attr_reader :id
|
|
68
|
+
|
|
69
|
+
sig { params(id: String).void }
|
|
70
|
+
attr_writer :id
|
|
71
|
+
|
|
72
|
+
sig { returns(T.nilable(Float)) }
|
|
73
|
+
attr_accessor :active_contact_price
|
|
74
|
+
|
|
75
|
+
sig { returns(T.nilable(String)) }
|
|
76
|
+
attr_reader :channel
|
|
77
|
+
|
|
78
|
+
sig { params(channel: String).void }
|
|
79
|
+
attr_writer :channel
|
|
80
|
+
|
|
81
|
+
sig { returns(T.nilable(String)) }
|
|
82
|
+
attr_reader :contact_id
|
|
83
|
+
|
|
84
|
+
sig { params(contact_id: String).void }
|
|
85
|
+
attr_writer :contact_id
|
|
86
|
+
|
|
87
|
+
sig { returns(T.nilable(Time)) }
|
|
88
|
+
attr_reader :created_at
|
|
89
|
+
|
|
90
|
+
sig { params(created_at: Time).void }
|
|
91
|
+
attr_writer :created_at
|
|
92
|
+
|
|
93
|
+
sig { returns(T.nilable(String)) }
|
|
94
|
+
attr_reader :customer_id
|
|
95
|
+
|
|
96
|
+
sig { params(customer_id: String).void }
|
|
97
|
+
attr_writer :customer_id
|
|
98
|
+
|
|
99
|
+
sig { returns(T.nilable(String)) }
|
|
100
|
+
attr_reader :direction
|
|
101
|
+
|
|
102
|
+
sig { params(direction: String).void }
|
|
103
|
+
attr_writer :direction
|
|
104
|
+
|
|
105
|
+
sig do
|
|
106
|
+
returns(
|
|
107
|
+
T.nilable(
|
|
108
|
+
T::Array[Sentdm::ConversationMessagesList::Message::Event]
|
|
109
|
+
)
|
|
110
|
+
)
|
|
111
|
+
end
|
|
112
|
+
attr_accessor :events
|
|
113
|
+
|
|
114
|
+
# Structured message body format for database storage. Preserves channel-specific
|
|
115
|
+
# components (header, body, footer, buttons).
|
|
116
|
+
sig do
|
|
117
|
+
returns(
|
|
118
|
+
T.nilable(Sentdm::ConversationMessagesList::Message::MessageBody)
|
|
119
|
+
)
|
|
120
|
+
end
|
|
121
|
+
attr_reader :message_body
|
|
122
|
+
|
|
123
|
+
sig do
|
|
124
|
+
params(
|
|
125
|
+
message_body:
|
|
126
|
+
T.nilable(
|
|
127
|
+
Sentdm::ConversationMessagesList::Message::MessageBody::OrHash
|
|
128
|
+
)
|
|
129
|
+
).void
|
|
130
|
+
end
|
|
131
|
+
attr_writer :message_body
|
|
132
|
+
|
|
133
|
+
sig { returns(T.nilable(String)) }
|
|
134
|
+
attr_reader :phone
|
|
135
|
+
|
|
136
|
+
sig { params(phone: String).void }
|
|
137
|
+
attr_writer :phone
|
|
138
|
+
|
|
139
|
+
sig { returns(T.nilable(String)) }
|
|
140
|
+
attr_reader :phone_international
|
|
141
|
+
|
|
142
|
+
sig { params(phone_international: String).void }
|
|
143
|
+
attr_writer :phone_international
|
|
144
|
+
|
|
145
|
+
sig { returns(T.nilable(Float)) }
|
|
146
|
+
attr_accessor :price
|
|
147
|
+
|
|
148
|
+
sig { returns(T.nilable(String)) }
|
|
149
|
+
attr_reader :region_code
|
|
150
|
+
|
|
151
|
+
sig { params(region_code: String).void }
|
|
152
|
+
attr_writer :region_code
|
|
153
|
+
|
|
154
|
+
sig { returns(T.nilable(String)) }
|
|
155
|
+
attr_reader :status
|
|
156
|
+
|
|
157
|
+
sig { params(status: String).void }
|
|
158
|
+
attr_writer :status
|
|
159
|
+
|
|
160
|
+
sig { returns(T.nilable(String)) }
|
|
161
|
+
attr_accessor :template_category
|
|
162
|
+
|
|
163
|
+
sig { returns(T.nilable(String)) }
|
|
164
|
+
attr_accessor :template_id
|
|
165
|
+
|
|
166
|
+
sig { returns(T.nilable(String)) }
|
|
167
|
+
attr_accessor :template_name
|
|
168
|
+
|
|
169
|
+
# Message response for v3 API — same shape as v2 with snake_case JSON conventions
|
|
170
|
+
sig do
|
|
171
|
+
params(
|
|
172
|
+
id: String,
|
|
173
|
+
active_contact_price: T.nilable(Float),
|
|
174
|
+
channel: String,
|
|
175
|
+
contact_id: String,
|
|
176
|
+
created_at: Time,
|
|
177
|
+
customer_id: String,
|
|
178
|
+
direction: String,
|
|
179
|
+
events:
|
|
180
|
+
T.nilable(
|
|
181
|
+
T::Array[
|
|
182
|
+
Sentdm::ConversationMessagesList::Message::Event::OrHash
|
|
183
|
+
]
|
|
184
|
+
),
|
|
185
|
+
message_body:
|
|
186
|
+
T.nilable(
|
|
187
|
+
Sentdm::ConversationMessagesList::Message::MessageBody::OrHash
|
|
188
|
+
),
|
|
189
|
+
phone: String,
|
|
190
|
+
phone_international: String,
|
|
191
|
+
price: T.nilable(Float),
|
|
192
|
+
region_code: String,
|
|
193
|
+
status: String,
|
|
194
|
+
template_category: T.nilable(String),
|
|
195
|
+
template_id: T.nilable(String),
|
|
196
|
+
template_name: T.nilable(String)
|
|
197
|
+
).returns(T.attached_class)
|
|
198
|
+
end
|
|
199
|
+
def self.new(
|
|
200
|
+
id: nil,
|
|
201
|
+
active_contact_price: nil,
|
|
202
|
+
channel: nil,
|
|
203
|
+
contact_id: nil,
|
|
204
|
+
created_at: nil,
|
|
205
|
+
customer_id: nil,
|
|
206
|
+
direction: nil,
|
|
207
|
+
events: nil,
|
|
208
|
+
# Structured message body format for database storage. Preserves channel-specific
|
|
209
|
+
# components (header, body, footer, buttons).
|
|
210
|
+
message_body: nil,
|
|
211
|
+
phone: nil,
|
|
212
|
+
phone_international: nil,
|
|
213
|
+
price: nil,
|
|
214
|
+
region_code: nil,
|
|
215
|
+
status: nil,
|
|
216
|
+
template_category: nil,
|
|
217
|
+
template_id: nil,
|
|
218
|
+
template_name: nil
|
|
219
|
+
)
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
sig do
|
|
223
|
+
override.returns(
|
|
224
|
+
{
|
|
225
|
+
id: String,
|
|
226
|
+
active_contact_price: T.nilable(Float),
|
|
227
|
+
channel: String,
|
|
228
|
+
contact_id: String,
|
|
229
|
+
created_at: Time,
|
|
230
|
+
customer_id: String,
|
|
231
|
+
direction: String,
|
|
232
|
+
events:
|
|
233
|
+
T.nilable(
|
|
234
|
+
T::Array[Sentdm::ConversationMessagesList::Message::Event]
|
|
235
|
+
),
|
|
236
|
+
message_body:
|
|
237
|
+
T.nilable(
|
|
238
|
+
Sentdm::ConversationMessagesList::Message::MessageBody
|
|
239
|
+
),
|
|
240
|
+
phone: String,
|
|
241
|
+
phone_international: String,
|
|
242
|
+
price: T.nilable(Float),
|
|
243
|
+
region_code: String,
|
|
244
|
+
status: String,
|
|
245
|
+
template_category: T.nilable(String),
|
|
246
|
+
template_id: T.nilable(String),
|
|
247
|
+
template_name: T.nilable(String)
|
|
248
|
+
}
|
|
249
|
+
)
|
|
250
|
+
end
|
|
251
|
+
def to_hash
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
class Event < Sentdm::Internal::Type::BaseModel
|
|
255
|
+
OrHash =
|
|
256
|
+
T.type_alias do
|
|
257
|
+
T.any(
|
|
258
|
+
Sentdm::ConversationMessagesList::Message::Event,
|
|
259
|
+
Sentdm::Internal::AnyHash
|
|
260
|
+
)
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
sig { returns(String) }
|
|
264
|
+
attr_accessor :status
|
|
265
|
+
|
|
266
|
+
sig { returns(Time) }
|
|
267
|
+
attr_accessor :timestamp
|
|
268
|
+
|
|
269
|
+
sig { returns(T.nilable(String)) }
|
|
270
|
+
attr_accessor :description
|
|
271
|
+
|
|
272
|
+
# Represents a status change event in a message's lifecycle (v3)
|
|
273
|
+
sig do
|
|
274
|
+
params(
|
|
275
|
+
status: String,
|
|
276
|
+
timestamp: Time,
|
|
277
|
+
description: T.nilable(String)
|
|
278
|
+
).returns(T.attached_class)
|
|
279
|
+
end
|
|
280
|
+
def self.new(status:, timestamp:, description: nil)
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
sig do
|
|
284
|
+
override.returns(
|
|
285
|
+
{
|
|
286
|
+
status: String,
|
|
287
|
+
timestamp: Time,
|
|
288
|
+
description: T.nilable(String)
|
|
289
|
+
}
|
|
290
|
+
)
|
|
291
|
+
end
|
|
292
|
+
def to_hash
|
|
293
|
+
end
|
|
294
|
+
end
|
|
295
|
+
|
|
296
|
+
class MessageBody < Sentdm::Internal::Type::BaseModel
|
|
297
|
+
OrHash =
|
|
298
|
+
T.type_alias do
|
|
299
|
+
T.any(
|
|
300
|
+
Sentdm::ConversationMessagesList::Message::MessageBody,
|
|
301
|
+
Sentdm::Internal::AnyHash
|
|
302
|
+
)
|
|
303
|
+
end
|
|
304
|
+
|
|
305
|
+
sig do
|
|
306
|
+
returns(
|
|
307
|
+
T.nilable(
|
|
308
|
+
T::Array[
|
|
309
|
+
Sentdm::ConversationMessagesList::Message::MessageBody::Button
|
|
310
|
+
]
|
|
311
|
+
)
|
|
312
|
+
)
|
|
313
|
+
end
|
|
314
|
+
attr_accessor :buttons
|
|
315
|
+
|
|
316
|
+
sig { returns(T.nilable(String)) }
|
|
317
|
+
attr_reader :content
|
|
318
|
+
|
|
319
|
+
sig { params(content: String).void }
|
|
320
|
+
attr_writer :content
|
|
321
|
+
|
|
322
|
+
sig { returns(T.nilable(String)) }
|
|
323
|
+
attr_accessor :footer
|
|
324
|
+
|
|
325
|
+
sig { returns(T.nilable(String)) }
|
|
326
|
+
attr_accessor :header
|
|
327
|
+
|
|
328
|
+
# Structured message body format for database storage. Preserves channel-specific
|
|
329
|
+
# components (header, body, footer, buttons).
|
|
330
|
+
sig do
|
|
331
|
+
params(
|
|
332
|
+
buttons:
|
|
333
|
+
T.nilable(
|
|
334
|
+
T::Array[
|
|
335
|
+
Sentdm::ConversationMessagesList::Message::MessageBody::Button::OrHash
|
|
336
|
+
]
|
|
337
|
+
),
|
|
338
|
+
content: String,
|
|
339
|
+
footer: T.nilable(String),
|
|
340
|
+
header: T.nilable(String)
|
|
341
|
+
).returns(T.attached_class)
|
|
342
|
+
end
|
|
343
|
+
def self.new(buttons: nil, content: nil, footer: nil, header: nil)
|
|
344
|
+
end
|
|
345
|
+
|
|
346
|
+
sig do
|
|
347
|
+
override.returns(
|
|
348
|
+
{
|
|
349
|
+
buttons:
|
|
350
|
+
T.nilable(
|
|
351
|
+
T::Array[
|
|
352
|
+
Sentdm::ConversationMessagesList::Message::MessageBody::Button
|
|
353
|
+
]
|
|
354
|
+
),
|
|
355
|
+
content: String,
|
|
356
|
+
footer: T.nilable(String),
|
|
357
|
+
header: T.nilable(String)
|
|
358
|
+
}
|
|
359
|
+
)
|
|
360
|
+
end
|
|
361
|
+
def to_hash
|
|
362
|
+
end
|
|
363
|
+
|
|
364
|
+
class Button < Sentdm::Internal::Type::BaseModel
|
|
365
|
+
OrHash =
|
|
366
|
+
T.type_alias do
|
|
367
|
+
T.any(
|
|
368
|
+
Sentdm::ConversationMessagesList::Message::MessageBody::Button,
|
|
369
|
+
Sentdm::Internal::AnyHash
|
|
370
|
+
)
|
|
371
|
+
end
|
|
372
|
+
|
|
373
|
+
sig { returns(T.nilable(String)) }
|
|
374
|
+
attr_accessor :postback_data
|
|
375
|
+
|
|
376
|
+
sig { returns(T.nilable(String)) }
|
|
377
|
+
attr_accessor :text
|
|
378
|
+
|
|
379
|
+
sig { returns(T.nilable(String)) }
|
|
380
|
+
attr_reader :type
|
|
381
|
+
|
|
382
|
+
sig { params(type: String).void }
|
|
383
|
+
attr_writer :type
|
|
384
|
+
|
|
385
|
+
sig { returns(T.nilable(String)) }
|
|
386
|
+
attr_reader :value
|
|
387
|
+
|
|
388
|
+
sig { params(value: String).void }
|
|
389
|
+
attr_writer :value
|
|
390
|
+
|
|
391
|
+
sig do
|
|
392
|
+
params(
|
|
393
|
+
postback_data: T.nilable(String),
|
|
394
|
+
text: T.nilable(String),
|
|
395
|
+
type: String,
|
|
396
|
+
value: String
|
|
397
|
+
).returns(T.attached_class)
|
|
398
|
+
end
|
|
399
|
+
def self.new(postback_data: nil, text: nil, type: nil, value: nil)
|
|
400
|
+
end
|
|
401
|
+
|
|
402
|
+
sig do
|
|
403
|
+
override.returns(
|
|
404
|
+
{
|
|
405
|
+
postback_data: T.nilable(String),
|
|
406
|
+
text: T.nilable(String),
|
|
407
|
+
type: String,
|
|
408
|
+
value: String
|
|
409
|
+
}
|
|
410
|
+
)
|
|
411
|
+
end
|
|
412
|
+
def to_hash
|
|
413
|
+
end
|
|
414
|
+
end
|
|
415
|
+
end
|
|
416
|
+
end
|
|
417
|
+
end
|
|
418
|
+
end
|
|
419
|
+
end
|
|
@@ -103,8 +103,7 @@ module Sentdm
|
|
|
103
103
|
end
|
|
104
104
|
attr_writer :recipients
|
|
105
105
|
|
|
106
|
-
# Overall request status: "QUEUED" when the batch has been accepted
|
|
107
|
-
# to Kafka.
|
|
106
|
+
# Overall request status: "QUEUED" when the batch has been accepted for delivery.
|
|
108
107
|
sig { returns(T.nilable(String)) }
|
|
109
108
|
attr_reader :status
|
|
110
109
|
|
|
@@ -140,8 +139,7 @@ module Sentdm
|
|
|
140
139
|
def self.new(
|
|
141
140
|
# Per-recipient message results
|
|
142
141
|
recipients: nil,
|
|
143
|
-
# Overall request status: "QUEUED" when the batch has been accepted
|
|
144
|
-
# to Kafka.
|
|
142
|
+
# Overall request status: "QUEUED" when the batch has been accepted for delivery.
|
|
145
143
|
status: nil,
|
|
146
144
|
# Template ID that was used
|
|
147
145
|
template_id: nil,
|
|
@@ -122,7 +122,7 @@ module Sentdm
|
|
|
122
122
|
sig { returns(T.nilable(String)) }
|
|
123
123
|
attr_accessor :sending_phone_number
|
|
124
124
|
|
|
125
|
-
# Reference to another profile
|
|
125
|
+
# Reference to another profile whose SMS configuration this profile uses
|
|
126
126
|
sig { returns(T.nilable(String)) }
|
|
127
127
|
attr_accessor :sending_phone_number_profile_id
|
|
128
128
|
|
|
@@ -224,7 +224,7 @@ module Sentdm
|
|
|
224
224
|
organization_id: nil,
|
|
225
225
|
# Direct SMS phone number
|
|
226
226
|
sending_phone_number: nil,
|
|
227
|
-
# Reference to another profile
|
|
227
|
+
# Reference to another profile whose SMS configuration this profile uses
|
|
228
228
|
sending_phone_number_profile_id: nil,
|
|
229
229
|
# Reference to another profile for WhatsApp configuration
|
|
230
230
|
sending_whatsapp_number_profile_id: nil,
|
|
@@ -645,10 +645,6 @@ module Sentdm
|
|
|
645
645
|
end
|
|
646
646
|
attr_writer :destination_countries
|
|
647
647
|
|
|
648
|
-
# Expected daily messaging volume
|
|
649
|
-
sig { returns(T.nilable(String)) }
|
|
650
|
-
attr_accessor :expected_messaging_volume
|
|
651
|
-
|
|
652
648
|
# Whether this is a TCR (Campaign Registry) application
|
|
653
649
|
sig { returns(T.nilable(T::Boolean)) }
|
|
654
650
|
attr_reader :is_tcr_application
|
|
@@ -678,7 +674,6 @@ module Sentdm
|
|
|
678
674
|
T.nilable(Sentdm::TcrBrandRelationship::OrSymbol),
|
|
679
675
|
destination_countries:
|
|
680
676
|
T::Array[Sentdm::DestinationCountry::OrHash],
|
|
681
|
-
expected_messaging_volume: T.nilable(String),
|
|
682
677
|
is_tcr_application: T::Boolean,
|
|
683
678
|
notes: T.nilable(String),
|
|
684
679
|
phone_number_prefix: T.nilable(String),
|
|
@@ -690,8 +685,6 @@ module Sentdm
|
|
|
690
685
|
brand_relationship: nil,
|
|
691
686
|
# List of destination countries for messaging
|
|
692
687
|
destination_countries: nil,
|
|
693
|
-
# Expected daily messaging volume
|
|
694
|
-
expected_messaging_volume: nil,
|
|
695
688
|
# Whether this is a TCR (Campaign Registry) application
|
|
696
689
|
is_tcr_application: nil,
|
|
697
690
|
# Additional notes about the business or use case
|
|
@@ -710,7 +703,6 @@ module Sentdm
|
|
|
710
703
|
brand_relationship:
|
|
711
704
|
T.nilable(Sentdm::TcrBrandRelationship::TaggedSymbol),
|
|
712
705
|
destination_countries: T::Array[Sentdm::DestinationCountry],
|
|
713
|
-
expected_messaging_volume: T.nilable(String),
|
|
714
706
|
is_tcr_application: T::Boolean,
|
|
715
707
|
notes: T.nilable(String),
|
|
716
708
|
phone_number_prefix: T.nilable(String),
|
|
@@ -106,7 +106,7 @@ module Sentdm
|
|
|
106
106
|
sig { returns(T.nilable(String)) }
|
|
107
107
|
attr_accessor :sending_phone_number
|
|
108
108
|
|
|
109
|
-
# Reference to another profile to use for SMS
|
|
109
|
+
# Reference to another profile to use for SMS configuration (optional)
|
|
110
110
|
sig { returns(T.nilable(String)) }
|
|
111
111
|
attr_accessor :sending_phone_number_profile_id
|
|
112
112
|
|
|
@@ -208,7 +208,7 @@ module Sentdm
|
|
|
208
208
|
sandbox: nil,
|
|
209
209
|
# Direct phone number for SMS sending (optional)
|
|
210
210
|
sending_phone_number: nil,
|
|
211
|
-
# Reference to another profile to use for SMS
|
|
211
|
+
# Reference to another profile to use for SMS configuration (optional)
|
|
212
212
|
sending_phone_number_profile_id: nil,
|
|
213
213
|
# Reference to another profile to use for WhatsApp configuration (optional)
|
|
214
214
|
sending_whatsapp_number_profile_id: nil,
|
|
@@ -3,23 +3,21 @@
|
|
|
3
3
|
module Sentdm
|
|
4
4
|
module Models
|
|
5
5
|
module Profiles
|
|
6
|
-
class
|
|
6
|
+
class APIResponseOfBrandCampaign < Sentdm::Internal::Type::BaseModel
|
|
7
7
|
OrHash =
|
|
8
8
|
T.type_alias do
|
|
9
9
|
T.any(
|
|
10
|
-
Sentdm::Profiles::
|
|
10
|
+
Sentdm::Profiles::APIResponseOfBrandCampaign,
|
|
11
11
|
Sentdm::Internal::AnyHash
|
|
12
12
|
)
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
#
|
|
16
|
-
sig { returns(T.nilable(Sentdm::Profiles::
|
|
15
|
+
# A 10DLC campaign registered for a brand.
|
|
16
|
+
sig { returns(T.nilable(Sentdm::Profiles::BrandCampaign)) }
|
|
17
17
|
attr_reader :data
|
|
18
18
|
|
|
19
19
|
sig do
|
|
20
|
-
params(
|
|
21
|
-
data: T.nilable(Sentdm::Profiles::TcrCampaignWithUseCases::OrHash)
|
|
22
|
-
).void
|
|
20
|
+
params(data: T.nilable(Sentdm::Profiles::BrandCampaign::OrHash)).void
|
|
23
21
|
end
|
|
24
22
|
attr_writer :data
|
|
25
23
|
|
|
@@ -47,14 +45,14 @@ module Sentdm
|
|
|
47
45
|
# Standard API response envelope for all v3 endpoints
|
|
48
46
|
sig do
|
|
49
47
|
params(
|
|
50
|
-
data: T.nilable(Sentdm::Profiles::
|
|
48
|
+
data: T.nilable(Sentdm::Profiles::BrandCampaign::OrHash),
|
|
51
49
|
error: T.nilable(Sentdm::ErrorDetail::OrHash),
|
|
52
50
|
meta: Sentdm::APIMeta::OrHash,
|
|
53
51
|
success: T::Boolean
|
|
54
52
|
).returns(T.attached_class)
|
|
55
53
|
end
|
|
56
54
|
def self.new(
|
|
57
|
-
#
|
|
55
|
+
# A 10DLC campaign registered for a brand.
|
|
58
56
|
data: nil,
|
|
59
57
|
# Error information
|
|
60
58
|
error: nil,
|
|
@@ -68,7 +66,7 @@ module Sentdm
|
|
|
68
66
|
sig do
|
|
69
67
|
override.returns(
|
|
70
68
|
{
|
|
71
|
-
data: T.nilable(Sentdm::Profiles::
|
|
69
|
+
data: T.nilable(Sentdm::Profiles::BrandCampaign),
|
|
72
70
|
error: T.nilable(Sentdm::ErrorDetail),
|
|
73
71
|
meta: Sentdm::APIMeta,
|
|
74
72
|
success: T::Boolean
|
|
@@ -3,21 +3,17 @@
|
|
|
3
3
|
module Sentdm
|
|
4
4
|
module Models
|
|
5
5
|
module Profiles
|
|
6
|
-
class
|
|
6
|
+
class APIResponseOfListOfBrandCampaign < Sentdm::Internal::Type::BaseModel
|
|
7
7
|
OrHash =
|
|
8
8
|
T.type_alias do
|
|
9
9
|
T.any(
|
|
10
|
-
Sentdm::
|
|
10
|
+
Sentdm::Profiles::APIResponseOfListOfBrandCampaign,
|
|
11
11
|
Sentdm::Internal::AnyHash
|
|
12
12
|
)
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
# The response data (null if error)
|
|
16
|
-
sig
|
|
17
|
-
returns(
|
|
18
|
-
T.nilable(T::Array[Sentdm::Profiles::TcrCampaignWithUseCases])
|
|
19
|
-
)
|
|
20
|
-
end
|
|
16
|
+
sig { returns(T.nilable(T::Array[Sentdm::Profiles::BrandCampaign])) }
|
|
21
17
|
attr_accessor :data
|
|
22
18
|
|
|
23
19
|
# Error information
|
|
@@ -44,10 +40,7 @@ module Sentdm
|
|
|
44
40
|
# Standard API response envelope for all v3 endpoints
|
|
45
41
|
sig do
|
|
46
42
|
params(
|
|
47
|
-
data:
|
|
48
|
-
T.nilable(
|
|
49
|
-
T::Array[Sentdm::Profiles::TcrCampaignWithUseCases::OrHash]
|
|
50
|
-
),
|
|
43
|
+
data: T.nilable(T::Array[Sentdm::Profiles::BrandCampaign::OrHash]),
|
|
51
44
|
error: T.nilable(Sentdm::ErrorDetail::OrHash),
|
|
52
45
|
meta: Sentdm::APIMeta::OrHash,
|
|
53
46
|
success: T::Boolean
|
|
@@ -68,8 +61,7 @@ module Sentdm
|
|
|
68
61
|
sig do
|
|
69
62
|
override.returns(
|
|
70
63
|
{
|
|
71
|
-
data:
|
|
72
|
-
T.nilable(T::Array[Sentdm::Profiles::TcrCampaignWithUseCases]),
|
|
64
|
+
data: T.nilable(T::Array[Sentdm::Profiles::BrandCampaign]),
|
|
73
65
|
error: T.nilable(Sentdm::ErrorDetail),
|
|
74
66
|
meta: Sentdm::APIMeta,
|
|
75
67
|
success: T::Boolean
|