@iann29/rastro 0.10.9 → 0.11.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.
Files changed (178) hide show
  1. package/README.md +8 -0
  2. package/agent/integration.md +45 -0
  3. package/agent/manifest.json +4 -4
  4. package/dist/client/federation.d.ts +82 -9
  5. package/dist/client/federation.d.ts.map +1 -1
  6. package/dist/client/federation.js +40 -2
  7. package/dist/client/federation.js.map +1 -1
  8. package/dist/client/index.d.ts +464 -8
  9. package/dist/client/index.d.ts.map +1 -1
  10. package/dist/client/index.js +259 -7
  11. package/dist/client/index.js.map +1 -1
  12. package/dist/component/_generated/api.d.ts +10 -0
  13. package/dist/component/_generated/api.d.ts.map +1 -1
  14. package/dist/component/_generated/api.js.map +1 -1
  15. package/dist/component/_generated/component.d.ts +273 -21
  16. package/dist/component/_generated/component.d.ts.map +1 -1
  17. package/dist/component/_generated/server.d.ts +2 -0
  18. package/dist/component/_generated/server.d.ts.map +1 -1
  19. package/dist/component/_generated/server.js.map +1 -1
  20. package/dist/component/constants.d.ts +31 -0
  21. package/dist/component/constants.d.ts.map +1 -1
  22. package/dist/component/constants.js +31 -0
  23. package/dist/component/constants.js.map +1 -1
  24. package/dist/component/convex.config.d.ts +2 -0
  25. package/dist/component/convex.config.js +7 -0
  26. package/dist/component/convex.config.js.map +1 -1
  27. package/dist/component/errors.d.ts +1 -1
  28. package/dist/component/errors.d.ts.map +1 -1
  29. package/dist/component/errors.js.map +1 -1
  30. package/dist/component/http.d.ts.map +1 -1
  31. package/dist/component/http.js +64 -0
  32. package/dist/component/http.js.map +1 -1
  33. package/dist/component/leadAdsValidators.d.ts +1092 -0
  34. package/dist/component/leadAdsValidators.d.ts.map +1 -0
  35. package/dist/component/leadAdsValidators.js +304 -0
  36. package/dist/component/leadAdsValidators.js.map +1 -0
  37. package/dist/component/leadFormRules.d.ts +60 -0
  38. package/dist/component/leadFormRules.d.ts.map +1 -0
  39. package/dist/component/leadFormRules.js +140 -0
  40. package/dist/component/leadFormRules.js.map +1 -0
  41. package/dist/component/leadFormStore.d.ts +16 -0
  42. package/dist/component/leadFormStore.d.ts.map +1 -0
  43. package/dist/component/leadFormStore.js +92 -0
  44. package/dist/component/leadFormStore.js.map +1 -0
  45. package/dist/component/leadgenToken.d.ts +56 -0
  46. package/dist/component/leadgenToken.d.ts.map +1 -0
  47. package/dist/component/leadgenToken.js +262 -0
  48. package/dist/component/leadgenToken.js.map +1 -0
  49. package/dist/component/leads.d.ts +76 -7
  50. package/dist/component/leads.d.ts.map +1 -1
  51. package/dist/component/leads.js +112 -78
  52. package/dist/component/leads.js.map +1 -1
  53. package/dist/component/meta.d.ts.map +1 -1
  54. package/dist/component/meta.js +21 -1
  55. package/dist/component/meta.js.map +1 -1
  56. package/dist/component/metaFake.d.ts +44 -0
  57. package/dist/component/metaFake.d.ts.map +1 -1
  58. package/dist/component/metaFake.js +400 -1
  59. package/dist/component/metaFake.js.map +1 -1
  60. package/dist/component/metaGraph.d.ts +91 -0
  61. package/dist/component/metaGraph.d.ts.map +1 -1
  62. package/dist/component/metaGraph.js +217 -0
  63. package/dist/component/metaGraph.js.map +1 -1
  64. package/dist/component/metaLeads.d.ts +681 -0
  65. package/dist/component/metaLeads.d.ts.map +1 -0
  66. package/dist/component/metaLeads.js +2634 -0
  67. package/dist/component/metaLeads.js.map +1 -0
  68. package/dist/component/schema.d.ts +414 -5
  69. package/dist/component/schema.d.ts.map +1 -1
  70. package/dist/component/schema.js +169 -1
  71. package/dist/component/schema.js.map +1 -1
  72. package/dist/component/validators.d.ts +235 -11
  73. package/dist/component/validators.d.ts.map +1 -1
  74. package/dist/component/validators.js +14 -1
  75. package/dist/component/validators.js.map +1 -1
  76. package/dist/tracker/generated.d.ts +1 -1
  77. package/dist/tracker/generated.js +1 -1
  78. package/dist/ui/campaigns/CampaignsView.d.ts +5 -1
  79. package/dist/ui/campaigns/CampaignsView.d.ts.map +1 -1
  80. package/dist/ui/campaigns/CampaignsView.js.map +1 -1
  81. package/dist/ui/campaigns/Drawer.d.ts.map +1 -1
  82. package/dist/ui/campaigns/Drawer.js +8 -26
  83. package/dist/ui/campaigns/Drawer.js.map +1 -1
  84. package/dist/ui/campaigns/labels.d.ts +29 -1
  85. package/dist/ui/campaigns/labels.d.ts.map +1 -1
  86. package/dist/ui/campaigns/labels.js +77 -2
  87. package/dist/ui/campaigns/labels.js.map +1 -1
  88. package/dist/ui/campaigns/model.js +2 -2
  89. package/dist/ui/campaigns/model.js.map +1 -1
  90. package/dist/ui/forms/FirstContact.d.ts +19 -0
  91. package/dist/ui/forms/FirstContact.d.ts.map +1 -0
  92. package/dist/ui/forms/FirstContact.js +81 -0
  93. package/dist/ui/forms/FirstContact.js.map +1 -0
  94. package/dist/ui/forms/FormLead.d.ts +28 -0
  95. package/dist/ui/forms/FormLead.d.ts.map +1 -0
  96. package/dist/ui/forms/FormLead.js +199 -0
  97. package/dist/ui/forms/FormLead.js.map +1 -0
  98. package/dist/ui/forms/FormRulesDrawer.d.ts +49 -0
  99. package/dist/ui/forms/FormRulesDrawer.d.ts.map +1 -0
  100. package/dist/ui/forms/FormRulesDrawer.js +149 -0
  101. package/dist/ui/forms/FormRulesDrawer.js.map +1 -0
  102. package/dist/ui/forms/FormsView.d.ts +10 -0
  103. package/dist/ui/forms/FormsView.d.ts.map +1 -0
  104. package/dist/ui/forms/FormsView.js +215 -0
  105. package/dist/ui/forms/FormsView.js.map +1 -0
  106. package/dist/ui/forms/Icons.d.ts +46 -0
  107. package/dist/ui/forms/Icons.d.ts.map +1 -0
  108. package/dist/ui/forms/Icons.js +45 -0
  109. package/dist/ui/forms/Icons.js.map +1 -0
  110. package/dist/ui/forms/RuleRow.d.ts +37 -0
  111. package/dist/ui/forms/RuleRow.d.ts.map +1 -0
  112. package/dist/ui/forms/RuleRow.js +80 -0
  113. package/dist/ui/forms/RuleRow.js.map +1 -0
  114. package/dist/ui/forms/WhatsAppButtonGuide.d.ts +33 -0
  115. package/dist/ui/forms/WhatsAppButtonGuide.d.ts.map +1 -0
  116. package/dist/ui/forms/WhatsAppButtonGuide.js +90 -0
  117. package/dist/ui/forms/WhatsAppButtonGuide.js.map +1 -0
  118. package/dist/ui/forms/index.d.ts +11 -0
  119. package/dist/ui/forms/index.d.ts.map +1 -0
  120. package/dist/ui/forms/index.js +7 -0
  121. package/dist/ui/forms/index.js.map +1 -0
  122. package/dist/ui/forms/journey.d.ts +19 -0
  123. package/dist/ui/forms/journey.d.ts.map +1 -0
  124. package/dist/ui/forms/journey.js +54 -0
  125. package/dist/ui/forms/journey.js.map +1 -0
  126. package/dist/ui/forms/model.d.ts +239 -0
  127. package/dist/ui/forms/model.d.ts.map +1 -0
  128. package/dist/ui/forms/model.js +556 -0
  129. package/dist/ui/forms/model.js.map +1 -0
  130. package/dist/ui/forms/sample.d.ts +36 -0
  131. package/dist/ui/forms/sample.d.ts.map +1 -0
  132. package/dist/ui/forms/sample.js +444 -0
  133. package/dist/ui/forms/sample.js.map +1 -0
  134. package/dist/ui/forms/types.d.ts +454 -0
  135. package/dist/ui/forms/types.d.ts.map +1 -0
  136. package/dist/ui/forms/types.js +2 -0
  137. package/dist/ui/forms/types.js.map +1 -0
  138. package/dist/ui/index.d.ts +2 -0
  139. package/dist/ui/index.d.ts.map +1 -1
  140. package/dist/ui/index.js +4 -0
  141. package/dist/ui/index.js.map +1 -1
  142. package/dist/ui/integrations/Overlay.d.ts +3 -1
  143. package/dist/ui/integrations/Overlay.d.ts.map +1 -1
  144. package/dist/ui/integrations/Overlay.js +2 -2
  145. package/dist/ui/integrations/Overlay.js.map +1 -1
  146. package/dist/ui/portfolio/PortfolioView.d.ts +4 -1
  147. package/dist/ui/portfolio/PortfolioView.d.ts.map +1 -1
  148. package/dist/ui/portfolio/PortfolioView.js.map +1 -1
  149. package/dist/ui/sample.d.ts +3 -1
  150. package/dist/ui/sample.d.ts.map +1 -1
  151. package/dist/ui/sample.js +2 -0
  152. package/dist/ui/sample.js.map +1 -1
  153. package/dist/ui/seed.d.ts +1 -1
  154. package/dist/ui/ui.css +2301 -0
  155. package/docs/federation.md +19 -0
  156. package/docs/meta-ads.md +713 -7
  157. package/docs/upgrading.md +70 -0
  158. package/llms.txt +1 -0
  159. package/package.json +1 -1
  160. package/src/component/_generated/api.ts +10 -0
  161. package/src/component/_generated/component.ts +289 -20
  162. package/src/component/_generated/server.ts +2 -0
  163. package/src/component/constants.ts +33 -0
  164. package/src/component/convex.config.ts +7 -0
  165. package/src/component/errors.ts +3 -1
  166. package/src/component/http.ts +75 -0
  167. package/src/component/leadAdsValidators.ts +365 -0
  168. package/src/component/leadFormRules.ts +202 -0
  169. package/src/component/leadFormStore.ts +129 -0
  170. package/src/component/leadgenToken.ts +348 -0
  171. package/src/component/leads.ts +136 -84
  172. package/src/component/meta.ts +21 -1
  173. package/src/component/metaFake.ts +485 -1
  174. package/src/component/metaGraph.ts +327 -0
  175. package/src/component/metaLeads.ts +3101 -0
  176. package/src/component/schema.ts +187 -1
  177. package/src/component/validators.ts +17 -1
  178. package/src/tracker/generated.ts +1 -1
@@ -0,0 +1,444 @@
1
+ /**
2
+ * Formulários (Lead Ads, wave 4) sample: Clínica Sorriso's Page and its
3
+ * instant forms, the rules of "Avaliação gratuita", and the two leads of the
4
+ * approved demo (direção A, D1–D10). Re-exported by `@iann29/rastro/ui/sample`
5
+ * as `sampleForms`. The clock is the demo's, 28/09 14:55 BRT: four minutes
6
+ * after Mariana Costa sent the form.
7
+ */
8
+ import { brt, DAY_MS, MINUTE_MS, SITES } from "../seed.js";
9
+ const FORMS_NOW = brt(9, 28, 14, 55);
10
+ const CLINICA = (({ siteId, name, segment }) => ({ siteId, name, segment }))(SITES[1]);
11
+ const CLINICA_PAGE = "104857392011234";
12
+ const KIDS_PAGE = "104857392099871";
13
+ const choice = (key, label, values) => ({
14
+ key,
15
+ label,
16
+ type: "CUSTOM",
17
+ options: values.map((value, index) => ({
18
+ key: `${key}_${index + 1}`,
19
+ value,
20
+ })),
21
+ });
22
+ const TRATAMENTO = choice("tratamento", "Tratamento de interesse", [
23
+ "Clareamento",
24
+ "Implante",
25
+ "Lente de contato",
26
+ "Ortodontia",
27
+ ]);
28
+ const ORCAMENTO = choice("orcamento", "Orçamento para o tratamento", [
29
+ "Até R$ 1.000",
30
+ "R$ 1.000 a R$ 3.000",
31
+ "Acima de R$ 3.000",
32
+ ]);
33
+ const AGENDAR = choice("agendar", "Quer agendar a avaliação?", [
34
+ "Sim",
35
+ "Ainda não",
36
+ ]);
37
+ const PERIODO = choice("periodo", "Melhor período", [
38
+ "Manhã",
39
+ "Tarde",
40
+ "Noite",
41
+ ]);
42
+ const CIDADE = choice("cidade", "Onde você mora?", [
43
+ "Caxias do Sul",
44
+ "Outra cidade",
45
+ ]);
46
+ const PHONE = {
47
+ key: "phone_number",
48
+ label: "Telefone",
49
+ type: "PHONE",
50
+ };
51
+ const EMAIL = {
52
+ key: "email",
53
+ label: "E-mail",
54
+ type: "EMAIL",
55
+ };
56
+ const NAME = {
57
+ key: "full_name",
58
+ label: "Nome completo",
59
+ type: "FULL_NAME",
60
+ };
61
+ const synced = FORMS_NOW - 6 * MINUTE_MS;
62
+ /** 30 days of leads, as the host's `metaForms` counts them: the last seven given. */
63
+ const days = (lastWeek) => [
64
+ ...Array.from({ length: 30 - lastWeek.length }, () => 0),
65
+ ...lastWeek,
66
+ ];
67
+ const AVALIACAO = {
68
+ pageId: CLINICA_PAGE,
69
+ formId: "882031944015501",
70
+ name: "Avaliação gratuita",
71
+ status: "ACTIVE",
72
+ questions: [PHONE, TRATAMENTO, ORCAMENTO, AGENDAR, PERIODO],
73
+ whatsappButton: false,
74
+ whatsappButtonConfirmed: false,
75
+ syncedAt: synced,
76
+ createdAt: brt(8, 20, 10, 0),
77
+ leads30d: 64,
78
+ daily: days([2, 3, 2, 4, 3, 5, 6]),
79
+ lastLeadAt: brt(9, 28, 14, 51),
80
+ };
81
+ const CLAREAMENTO = {
82
+ pageId: CLINICA_PAGE,
83
+ formId: "882031944015502",
84
+ name: "Clareamento — orçamento",
85
+ status: "ACTIVE",
86
+ questions: [PHONE, ORCAMENTO, CIDADE],
87
+ whatsappButton: true,
88
+ whatsappButtonConfirmed: false,
89
+ syncedAt: synced,
90
+ createdAt: brt(9, 2, 9, 30),
91
+ leads30d: 18,
92
+ daily: days([1, 2, 1, 2, 1, 3, 2]),
93
+ lastLeadAt: brt(9, 27, 19, 10),
94
+ };
95
+ const LENTE = {
96
+ pageId: CLINICA_PAGE,
97
+ formId: "882031944015503",
98
+ name: "Lente de contato dental",
99
+ status: "ACTIVE",
100
+ questions: [NAME, PHONE, ORCAMENTO, AGENDAR],
101
+ whatsappButton: null,
102
+ whatsappButtonConfirmed: false,
103
+ syncedAt: synced,
104
+ createdAt: brt(9, 26, 16, 40),
105
+ leads30d: 4,
106
+ daily: days([0, 0, 0, 0, 0, 1, 3]),
107
+ lastLeadAt: brt(9, 28, 9, 2),
108
+ };
109
+ const PROMO = {
110
+ pageId: CLINICA_PAGE,
111
+ formId: "882031944015504",
112
+ name: "Promo setembro",
113
+ status: "ARCHIVED",
114
+ questions: [NAME, PHONE, EMAIL, TRATAMENTO],
115
+ whatsappButton: false,
116
+ whatsappButtonConfirmed: false,
117
+ syncedAt: synced,
118
+ createdAt: brt(8, 28, 11, 0),
119
+ leads30d: 0,
120
+ daily: days([]),
121
+ lastLeadAt: brt(9, 12, 17, 30),
122
+ };
123
+ /** Sorriso Kids: a Page whose leads Meta did not grant ("2 formulários"). */
124
+ const KIDS_FORMS = [
125
+ {
126
+ pageId: KIDS_PAGE,
127
+ formId: "882031944015601",
128
+ name: "Consulta infantil",
129
+ status: "ACTIVE",
130
+ questions: [NAME, PHONE],
131
+ whatsappButton: null,
132
+ syncedAt: FORMS_NOW - 2 * DAY_MS,
133
+ },
134
+ {
135
+ pageId: KIDS_PAGE,
136
+ formId: "882031944015602",
137
+ name: "Aparelho infantil",
138
+ status: "ACTIVE",
139
+ questions: [NAME, PHONE],
140
+ whatsappButton: null,
141
+ syncedAt: FORMS_NOW - 2 * DAY_MS,
142
+ },
143
+ ];
144
+ /** Clínica Sorriso's board: uze.ai's Método columns, in blocks. */
145
+ const CLINICA_BOARD = {
146
+ label: "Funil principal",
147
+ entryColumn: "entrada",
148
+ discardColumn: "descartado",
149
+ columns: [
150
+ { key: "entrada", name: "Entrada", color: "#eb5c15", group: "Prospecção" },
151
+ { key: "vacuo", name: "Vácuo", color: "#f59e0b", group: "Vácuo" },
152
+ {
153
+ key: "conversando",
154
+ name: "Conversando",
155
+ color: "#25378d",
156
+ group: "Conversa",
157
+ },
158
+ {
159
+ key: "oportunidade",
160
+ name: "Oportunidade",
161
+ color: "#25378d",
162
+ group: "Conversa",
163
+ },
164
+ {
165
+ key: "apresentacao",
166
+ name: "Apresentação",
167
+ color: "#782278",
168
+ group: "Hora do Show",
169
+ },
170
+ {
171
+ key: "proposta",
172
+ name: "Proposta",
173
+ color: "#782278",
174
+ group: "Hora do Show",
175
+ },
176
+ { key: "fechado", name: "Fechado", color: "#15803d", group: "Fechamento" },
177
+ {
178
+ key: "descartado",
179
+ name: "Descartado",
180
+ color: "#5f5a99",
181
+ group: "Carteira",
182
+ },
183
+ ],
184
+ };
185
+ const FIRST_MESSAGE = "Oi, {primeiro_nome}! Aqui é a Clínica Sorriso. Vi seu pedido de avaliação gratuita. Qual o melhor dia para você vir?";
186
+ /** D2: three rules, the first a discard; the button still to turn on. */
187
+ const AVALIACAO_RULES = {
188
+ siteId: CLINICA.siteId,
189
+ formId: AVALIACAO.formId,
190
+ configured: true,
191
+ whatsappButtonConfirmed: false,
192
+ entryColumn: null,
193
+ rules: [
194
+ {
195
+ questionKey: ORCAMENTO.key,
196
+ answers: ["orcamento_1"],
197
+ to: { discard: "Orçamento abaixo do mínimo" },
198
+ monthCount: 11,
199
+ },
200
+ {
201
+ questionKey: AGENDAR.key,
202
+ answers: ["agendar_1"],
203
+ to: { column: "apresentacao" },
204
+ monthCount: 9,
205
+ },
206
+ {
207
+ questionKey: TRATAMENTO.key,
208
+ answers: ["tratamento_2", "tratamento_3"],
209
+ to: { column: "oportunidade" },
210
+ monthCount: 5,
211
+ },
212
+ ],
213
+ firstContact: { mode: "one_click", text: FIRST_MESSAGE },
214
+ updatedAt: brt(9, 22, 18, 4),
215
+ };
216
+ const reportRow = (form, counts) => ({
217
+ siteId: CLINICA.siteId,
218
+ pageId: form.pageId,
219
+ formId: form.formId,
220
+ name: form.name,
221
+ qualified: counts.won,
222
+ returned: 0,
223
+ ...counts,
224
+ });
225
+ /**
226
+ * `formsReport` for the Clínica's last 30 days: 86 leads, 14 discarded. The
227
+ * forms name no entry column, so what no rule decided counts in `entry`.
228
+ */
229
+ const FORMS_REPORT = {
230
+ partial: false,
231
+ forms: [
232
+ reportRow(AVALIACAO, {
233
+ leads: 64,
234
+ entry: 36,
235
+ columns: [
236
+ { column: "apresentacao", leads: 11 },
237
+ { column: "oportunidade", leads: 6 },
238
+ ],
239
+ discarded: [{ reason: "Orçamento abaixo do mínimo", leads: 11 }],
240
+ won: 4,
241
+ revenueCents: 960_000,
242
+ campaignName: "Clareamento — outubro",
243
+ }),
244
+ reportRow(CLAREAMENTO, {
245
+ leads: 18,
246
+ entry: 15,
247
+ columns: [],
248
+ discarded: [{ reason: "Fora da área de atendimento", leads: 3 }],
249
+ won: 2,
250
+ revenueCents: 180_000,
251
+ campaignName: null,
252
+ }),
253
+ reportRow(LENTE, {
254
+ leads: 4,
255
+ entry: 4,
256
+ columns: [],
257
+ discarded: [],
258
+ won: 0,
259
+ revenueCents: 0,
260
+ campaignName: null,
261
+ }),
262
+ reportRow(PROMO, {
263
+ leads: 0,
264
+ entry: 0,
265
+ columns: [],
266
+ discarded: [],
267
+ won: 0,
268
+ revenueCents: 0,
269
+ campaignName: null,
270
+ }),
271
+ ],
272
+ };
273
+ /** A form never configured, as the host's `formRules` answers it. */
274
+ const unconfigured = (form) => ({
275
+ siteId: CLINICA.siteId,
276
+ formId: form.formId,
277
+ configured: false,
278
+ entryColumn: null,
279
+ rules: [],
280
+ firstContact: { mode: "lead_starts" },
281
+ whatsappButtonConfirmed: false,
282
+ updatedAt: null,
283
+ });
284
+ const ORIGIN = {
285
+ platform: "ig",
286
+ placement: "Stories",
287
+ campaignName: "Clareamento — outubro",
288
+ adsetName: "Mulheres 25–45 · São Paulo",
289
+ adName: "Vídeo antes e depois",
290
+ };
291
+ const AGENDAR_SIM = { question: AGENDAR.label, answers: ["Sim"] };
292
+ /** Mariana: no rule matched, she did not tap the button, she waits (D5, D9). */
293
+ const MARIANA = {
294
+ formName: AVALIACAO.name,
295
+ receivedAt: brt(9, 28, 14, 51),
296
+ answers: [
297
+ { question: TRATAMENTO.label, answer: "Clareamento" },
298
+ { question: ORCAMENTO.label, answer: "R$ 1.000 a R$ 3.000" },
299
+ { question: AGENDAR.label, answer: "Ainda não" },
300
+ { question: PERIODO.label, answer: "Manhã" },
301
+ ],
302
+ origin: ORIGIN,
303
+ decision: { kind: "entry", column: "Entrada", color: "#eb5c15" },
304
+ path: [
305
+ {
306
+ kind: "ad",
307
+ at: brt(9, 28, 14, 49),
308
+ adName: ORIGIN.adName,
309
+ platform: "ig",
310
+ },
311
+ {
312
+ kind: "form",
313
+ at: brt(9, 28, 14, 51),
314
+ formName: AVALIACAO.name,
315
+ platform: "ig",
316
+ },
317
+ { kind: "entry", at: brt(9, 28, 14, 51), column: "Entrada" },
318
+ { kind: "button", at: brt(9, 28, 14, 51), wrote: false },
319
+ { kind: "waiting", since: brt(9, 28, 14, 51) },
320
+ ],
321
+ };
322
+ /** Pedro: "Quer agendar = Sim" sent him to Apresentação; he wrote first (D6). */
323
+ const PEDRO = {
324
+ formName: AVALIACAO.name,
325
+ receivedAt: brt(9, 28, 14, 32),
326
+ answers: [
327
+ { question: TRATAMENTO.label, answer: "Clareamento" },
328
+ { question: ORCAMENTO.label, answer: "R$ 1.000 a R$ 3.000" },
329
+ { question: AGENDAR.label, answer: "Sim" },
330
+ { question: PERIODO.label, answer: "Manhã" },
331
+ ],
332
+ origin: ORIGIN,
333
+ decision: {
334
+ kind: "column",
335
+ column: "Apresentação",
336
+ color: "#782278",
337
+ rule: AGENDAR_SIM,
338
+ },
339
+ path: [
340
+ {
341
+ kind: "ad",
342
+ at: brt(9, 28, 14, 30),
343
+ adName: ORIGIN.adName,
344
+ platform: "ig",
345
+ },
346
+ {
347
+ kind: "form",
348
+ at: brt(9, 28, 14, 32),
349
+ formName: AVALIACAO.name,
350
+ platform: "ig",
351
+ },
352
+ {
353
+ kind: "rule",
354
+ at: brt(9, 28, 14, 32),
355
+ rule: AGENDAR_SIM,
356
+ column: "Apresentação",
357
+ },
358
+ { kind: "button", at: brt(9, 28, 14, 33), wrote: true },
359
+ {
360
+ kind: "note",
361
+ at: brt(9, 28, 14, 41),
362
+ text: "Ana marcou a avaliação: qui 10h",
363
+ },
364
+ ],
365
+ };
366
+ const PAGES = [
367
+ {
368
+ pageId: CLINICA_PAGE,
369
+ name: "Clínica Sorriso",
370
+ leadsAllowed: true,
371
+ subscribedAt: brt(9, 2, 9, 0),
372
+ linkedSiteId: CLINICA.siteId,
373
+ instagram: "@clinicasorriso",
374
+ },
375
+ {
376
+ pageId: KIDS_PAGE,
377
+ name: "Sorriso Kids",
378
+ leadsAllowed: false,
379
+ subscribedAt: null,
380
+ linkedSiteId: null,
381
+ instagram: null,
382
+ },
383
+ ];
384
+ /** The Formulários screens on Clínica Sorriso, as the approved demo draws them. */
385
+ export const sampleForms = {
386
+ /** The company: Clínica Sorriso alone. */
387
+ sites: [CLINICA],
388
+ pages: PAGES,
389
+ forms: [AVALIACAO, CLAREAMENTO, LENTE, PROMO, ...KIDS_FORMS],
390
+ report: FORMS_REPORT,
391
+ /** `formRules` per form: "Lente de contato dental" never had rules. */
392
+ rules: {
393
+ [AVALIACAO.formId]: AVALIACAO_RULES,
394
+ [CLAREAMENTO.formId]: {
395
+ siteId: CLINICA.siteId,
396
+ formId: CLAREAMENTO.formId,
397
+ configured: true,
398
+ whatsappButtonConfirmed: false,
399
+ entryColumn: null,
400
+ rules: [
401
+ {
402
+ questionKey: CIDADE.key,
403
+ answers: ["cidade_2"],
404
+ to: { discard: "Fora da área de atendimento" },
405
+ monthCount: 3,
406
+ },
407
+ ],
408
+ firstContact: { mode: "lead_starts", text: FIRST_MESSAGE },
409
+ updatedAt: brt(9, 3, 10, 12),
410
+ },
411
+ [LENTE.formId]: unconfigured(LENTE),
412
+ [PROMO.formId]: unconfigured(PROMO),
413
+ },
414
+ boards: { [CLINICA.siteId]: CLINICA_BOARD },
415
+ /** "Avaliação gratuita" under its stored rules: 64 leads in 30 days. */
416
+ simulation: {
417
+ total: 64,
418
+ entry: 36,
419
+ rules: [11, 11, 6],
420
+ columns: [
421
+ { column: "apresentacao", leads: 11 },
422
+ { column: "oportunidade", leads: 6 },
423
+ ],
424
+ discarded: [{ reason: "Orçamento abaixo do mínimo", leads: 11 }],
425
+ partial: false,
426
+ },
427
+ /** The demo's two leads, for the host's card and contact panel. */
428
+ leads: { mariana: MARIANA, pedro: PEDRO },
429
+ formIds: {
430
+ avaliacao: AVALIACAO.formId,
431
+ clareamento: CLAREAMENTO.formId,
432
+ lente: LENTE.formId,
433
+ promo: PROMO.formId,
434
+ },
435
+ senderLabel: "Recepção · (11) 94567-1200",
436
+ whatsappNumber: "+55 11 94567-1200",
437
+ businessHoursLabel: "Seg a sex · 8h às 19h",
438
+ /** The host's own check (uze.ai knows its WhatsApp numbers). */
439
+ guideChecks: [
440
+ { label: "Número da Recepção conectado no uze.", state: "ok" },
441
+ ],
442
+ now: FORMS_NOW,
443
+ };
444
+ //# sourceMappingURL=sample.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sample.js","sourceRoot":"","sources":["../../../src/ui/forms/sample.ts"],"names":[],"mappings":"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"}