autopilot-core-sandbox 0.0.1

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 (822) hide show
  1. package/README.md +53 -0
  2. package/dist/Provider.d.ts +21 -0
  3. package/dist/Provider.d.ts.map +1 -0
  4. package/dist/Provider.js +61 -0
  5. package/dist/Provider.js.map +1 -0
  6. package/dist/dist/Provider.d.ts +21 -0
  7. package/dist/dist/Provider.d.ts.map +1 -0
  8. package/dist/dist/Provider.js +61 -0
  9. package/dist/dist/Provider.js.map +1 -0
  10. package/dist/dist/index.d.ts +45 -0
  11. package/dist/dist/index.d.ts.map +1 -0
  12. package/dist/dist/index.js +61 -0
  13. package/dist/dist/index.js.map +1 -0
  14. package/dist/dist/interfaces/index.d.ts +1238 -0
  15. package/dist/dist/interfaces/index.d.ts.map +1 -0
  16. package/dist/dist/interfaces/index.js +3 -0
  17. package/dist/dist/interfaces/index.js.map +1 -0
  18. package/dist/dist/migrations/20260608222757_remote_schema.sql +5666 -0
  19. package/dist/dist/migrations/20260611174826_add_job_item_recurring_id_to_job_item.sql +7 -0
  20. package/dist/dist/migrations/20260625224612_add_dashboard_guided_tour_dismissed_to_settings_user.sql +5 -0
  21. package/dist/dist/migrations/20260627031433_support_chat_tables.sql +115 -0
  22. package/dist/dist/migrations/20260627031434_support_chat_rls.sql +37 -0
  23. package/dist/dist/migrations/20260704170209_add_estimate_scheduling.sql +121 -0
  24. package/dist/dist/migrations/20260704170210_add_estimate_scheduling_rls.sql +42 -0
  25. package/dist/dist/migrations/20260704235034_add_estimate_reminder_settings.sql +11 -0
  26. package/dist/dist/migrations/20260707003825_blocked_number_table.sql +32 -0
  27. package/dist/dist/migrations/20260707003826_blocked_number_rls.sql +22 -0
  28. package/dist/dist/migrations/20260709191055_sms_opt_out_table.sql +38 -0
  29. package/dist/dist/migrations/20260709191056_sms_opt_out_rls.sql +21 -0
  30. package/dist/dist/migrations/20260709214507_job_time_entry_table.sql +70 -0
  31. package/dist/dist/migrations/20260709214508_job_time_entry_rls.sql +21 -0
  32. package/dist/dist/migrations/20260711185956_phone_call_table.sql +99 -0
  33. package/dist/dist/migrations/20260711185957_phone_call_rls.sql +25 -0
  34. package/dist/dist/migrations/20260712014705_ai_voice_assistant_settings.sql +71 -0
  35. package/dist/dist/migrations/20260712014706_ai_voice_assistant_settings_rls.sql +14 -0
  36. package/dist/dist/migrations/20260712014707_ai_prompt_templates.sql +28 -0
  37. package/dist/dist/migrations/20260712014708_ai_prompt_templates_rls.sql +5 -0
  38. package/dist/dist/migrations/20260712014709_ai_prompt_templates_seed.sql +77 -0
  39. package/dist/dist/migrations/20260715011550_reminder_dispatch_table.sql +47 -0
  40. package/dist/dist/migrations/20260715011551_reminder_dispatch_rls.sql +22 -0
  41. package/dist/dist/migrations/20260715192923_dedup_sequence_contact_add_unique_constraint.sql +27 -0
  42. package/dist/dist/migrations/20260716194420_add_employee_location_tracking.sql +146 -0
  43. package/dist/dist/migrations/20260716194421_add_employee_location_tracking_rls.sql +154 -0
  44. package/dist/dist/migrations/20260716194422_get_client_map_last_completed_jobs.sql +28 -0
  45. package/dist/dist/migrations/20260717144535_add_blast_email_invalid_skipped_count.sql +2 -0
  46. package/dist/dist/migrations/20260717162900_create_blast_email_chunk.sql +36 -0
  47. package/dist/dist/migrations/20260717162901_add_blast_email_chunk_rls.sql +5 -0
  48. package/dist/dist/migrations/20260717162902_add_blast_email_chunk_progress_columns.sql +3 -0
  49. package/dist/dist/migrations/20260717162903_add_blast_email_bounce_tracking_columns.sql +4 -0
  50. package/dist/dist/migrations/20260717162904_create_email_hard_bounced.sql +23 -0
  51. package/dist/dist/migrations/20260717162905_add_email_hard_bounced_rls.sql +5 -0
  52. package/dist/dist/migrations/20260717164837_add_sequence_contact_sent_at.sql +19 -0
  53. package/dist/dist/migrations/20260717170920_add_sequence_contact_claim_index.sql +12 -0
  54. package/dist/dist/migrations/20260719215139_create_outbound_event.sql +59 -0
  55. package/dist/dist/migrations/20260719215140_create_outbound_event_rls.sql +16 -0
  56. package/dist/dist/migrations/20260719215141_create_webhook_delivery.sql +99 -0
  57. package/dist/dist/migrations/20260719215142_create_webhook_delivery_rls.sql +11 -0
  58. package/dist/dist/migrations/20260719215143_outbound_event_triggers.sql +219 -0
  59. package/dist/dist/migrations/20260719215144_create_api_key.sql +34 -0
  60. package/dist/dist/migrations/20260719215146_create_api_key_rls.sql +12 -0
  61. package/dist/dist/migrations/20260719215147_webhook_subscription_add_secret_active.sql +28 -0
  62. package/dist/dist/migrations/20260719215148_api_aggregate_create_functions.sql +479 -0
  63. package/dist/dist/migrations/20260721174837_webhook_subscription_generic_endpoints.sql +41 -0
  64. package/dist/dist/migrations/20260721185631_webhook_outbox_retention.sql +87 -0
  65. package/dist/dist/migrations/20260721190304_create_qb_sync_task.sql +120 -0
  66. package/dist/dist/migrations/20260721190306_qb_sync_task_rls.sql +8 -0
  67. package/dist/dist/migrations/20260721190307_qb_mapping_orphan_fks.sql +29 -0
  68. package/dist/dist/migrations/20260721190308_qb_task_retention.sql +90 -0
  69. package/dist/dist/migrations/20260721234401_create_permission_role.sql +83 -0
  70. package/dist/dist/migrations/20260721234402_permission_role_rls.sql +22 -0
  71. package/dist/dist/migrations/20260721234403_user_role_add_permission_role_id.sql +12 -0
  72. package/dist/dist/migrations/20260721234404_seed_permission_roles.sql +100 -0
  73. package/dist/dist/migrations/20260721234405_backfill_user_role_permission_role_id.sql +20 -0
  74. package/dist/dist/migrations/20260722193800_permission_role_add_manage_employees.sql +56 -0
  75. package/dist/dist/migrations/20260723025606_staging_new_employee_company_read_rls.sql +10 -0
  76. package/dist/dist/migrations/20260723134328_create_google_lsa_integration.sql +1016 -0
  77. package/dist/dist/migrations/20260723134329_google_lsa_integration_rls.sql +205 -0
  78. package/dist/dist/migrations/20260723150640_google_lsa_hardening.sql +169 -0
  79. package/dist/dist/migrations/20260723150641_google_lsa_hardening_rls.sql +12 -0
  80. package/dist/dist/migrations/20260724230721_google_lsa_facebook_exclusivity_attach.sql +104 -0
  81. package/dist/dist/migrations/20260724230722_google_lsa_facebook_exclusivity_attach_rls.sql +20 -0
  82. package/dist/dist/migrations/20260725172630_add_message_pagination_and_search.sql +265 -0
  83. package/dist/dist/migrations/20260725172631_add_message_pagination_and_search_rls.sql +72 -0
  84. package/dist/dist/migrations/20260725172632_optimize_message_thread_pagination_search.sql +245 -0
  85. package/dist/dist/migrations/20260725172633_harden_message_search_and_photo_pagination.sql +256 -0
  86. package/dist/dist/migrations/20260725172634_fix_message_thread_line_filter.sql +250 -0
  87. package/dist/dist/migrations/20260725174948_google_lsa_attach_bing_exclusivity_guard.sql +23 -0
  88. package/dist/dist/migrations/20260725200430_client_portal_settings.sql +41 -0
  89. package/dist/dist/migrations/20260725200431_client_portal_settings_rls.sql +21 -0
  90. package/dist/dist/migrations/20260725200433_client_portal_auth_tables.sql +81 -0
  91. package/dist/dist/migrations/20260725200434_client_portal_auth_rls.sql +18 -0
  92. package/dist/dist/migrations/20260725200435_portal_claim_login_attempt.sql +36 -0
  93. package/dist/dist/migrations/20260725200436_portal_appointment_request.sql +39 -0
  94. package/dist/dist/migrations/20260725200437_portal_appointment_request_rls.sql +10 -0
  95. package/dist/dist/migrations/20260725210000_google_reserve_integration.sql +85 -0
  96. package/dist/dist/migrations/20260725210001_google_reserve_integration_rls.sql +10 -0
  97. package/dist/dist/migrations/20260725220000_add_analytics_query_indexes.sql +47 -0
  98. package/dist/dist/migrations/20260725230000_onboarding_preload_data.sql +1074 -0
  99. package/dist/dist/migrations/20260725230001_onboarding_preload_data_rls.sql +40 -0
  100. package/dist/dist/migrations/20260725230002_add_pricebook_query_indexes.sql +13 -0
  101. package/dist/dist/migrations/20260726000000_facebook_ads_integration.sql +1538 -0
  102. package/dist/dist/migrations/20260726000001_facebook_ads_integration_rls.sql +356 -0
  103. package/dist/dist/migrations/20260726000002_facebook_ads_attach_lsa_exclusivity_guard.sql +25 -0
  104. package/dist/dist/migrations/20260726000003_facebook_ads_attach_bing_exclusivity_guard.sql +22 -0
  105. package/dist/dist/migrations/20260726010000_create_bing_ads_integration.sql +1112 -0
  106. package/dist/dist/migrations/20260726010001_bing_ads_integration_rls.sql +227 -0
  107. package/dist/dist/migrations/20260726220000_add_document_theme_settings.sql +11 -0
  108. package/dist/dist/migrations/20260726220001_update_document_theme_comments.sql +7 -0
  109. package/dist/dist/migrations/20260727210319_evolve_tier_for_pricing.sql +68 -0
  110. package/dist/dist/migrations/20260727210320_create_billing_addon.sql +85 -0
  111. package/dist/dist/migrations/20260727210321_create_billing_addon_rls.sql +21 -0
  112. package/dist/dist/migrations/20260728213930_create_usage_metering.sql +189 -0
  113. package/dist/dist/migrations/20260728213931_create_usage_metering_rls.sql +32 -0
  114. package/dist/dist/migrations/20260729004305_marketing_charge_txn_functions.sql +242 -0
  115. package/dist/dist/migrations/20260729004306_marketing_charge_txn_functions_rls.sql +37 -0
  116. package/dist/dist/migrations/20260729005524_update_deduct_from_balance_errcode.sql +42 -0
  117. package/dist/dist/migrations/20260730193601_fix_deduct_from_balance_lost_update.sql +46 -0
  118. package/dist/dist/migrations/20260730193602_add_blast_sms_chunk_reaper_columns.sql +27 -0
  119. package/dist/dist/migrations/20260731011415_create_google_calendar_connection.sql +84 -0
  120. package/dist/dist/migrations/20260731011416_google_calendar_connection_rls.sql +23 -0
  121. package/dist/dist/migrations/20260731011417_create_google_calendar_sync.sql +157 -0
  122. package/dist/dist/migrations/20260731011418_google_calendar_sync_rls.sql +26 -0
  123. package/dist/dist/migrations/20260731011419_event_outbound_triggers.sql +28 -0
  124. package/dist/dist/migrations/20260731011420_add_google_calendar_addon_key.sql +24 -0
  125. package/dist/dist/migrations/20260731011421_gcal_task_retention.sql +109 -0
  126. package/dist/dist/migrations/20260731234245_create_estimate_proposal.sql +157 -0
  127. package/dist/dist/migrations/20260731234247_estimate_proposal_rls.sql +46 -0
  128. package/dist/dist/migrations/20260731234248_add_proposal_estimate_settings.sql +17 -0
  129. package/dist/dist/migrations/20260731234249_add_estimate_proposals_addon_key.sql +25 -0
  130. package/dist/dist/migrations/20260731234250_approve_estimate_proposal_function.sql +133 -0
  131. package/dist/dist/migrations/20260801010609_save_estimate_proposal_function.sql +154 -0
  132. package/dist/dist/migrations/20260801173554_add_hide_autopilot_branding_setting.sql +6 -0
  133. package/dist/dist/migrations/20260806230917_add_client_billing_address_columns.sql +9 -0
  134. package/dist/dist/migrations/20260806230944_api_create_client_billing_address.sql +93 -0
  135. package/dist/dist/migrations/20260807014702_create_parent_id_company_id_keys.sql +20 -0
  136. package/dist/dist/migrations/20260807014703_create_contract_template.sql +30 -0
  137. package/dist/dist/migrations/20260807014704_create_contract.sql +233 -0
  138. package/dist/dist/migrations/20260807014705_create_contract_signature.sql +39 -0
  139. package/dist/dist/migrations/20260807014706_create_item_contract_requirement.sql +38 -0
  140. package/dist/dist/migrations/20260807014707_create_settings_contract.sql +23 -0
  141. package/dist/dist/migrations/20260807014708_contract_rls.sql +74 -0
  142. package/dist/dist/migrations/20260807014709_sign_contract_function.sql +92 -0
  143. package/dist/dist/migrations/20260807014710_create_settings_rental.sql +34 -0
  144. package/dist/dist/migrations/20260807014711_create_saved_location.sql +56 -0
  145. package/dist/dist/migrations/20260807014712_create_rental_task_option.sql +52 -0
  146. package/dist/dist/migrations/20260807014713_create_asset.sql +90 -0
  147. package/dist/dist/migrations/20260807014714_add_job_schedule_asset_fkeys.sql +39 -0
  148. package/dist/dist/migrations/20260807014715_rental_rls.sql +48 -0
  149. package/dist/dist/migrations/20260807014716_add_job_schedule_any_time.sql +7 -0
  150. package/dist/dist/migrations/20260807014717_add_job_schedule_target_location.sql +48 -0
  151. package/dist/dist/migrations/20260807014718_job_schedule_completion_guard.sql +53 -0
  152. package/dist/dist/migrations/20260807014719_add_job_schedule_list_sort_key.sql +7 -0
  153. package/dist/dist/migrations/20260807014720_add_item_duration.sql +11 -0
  154. package/dist/dist/migrations/20260807014721_add_settings_booking_enforce_rental_availability.sql +9 -0
  155. package/dist/dist/migrations/20260807014722_add_job_unsigned_rental_agreement.sql +10 -0
  156. package/dist/dist/migrations/20260807014723_add_item_size.sql +12 -0
  157. package/dist/dist/migrations/20260809193533_add_booking_path_button_labels.sql +11 -0
  158. package/dist/dist/migrations/20260809231721_add_route_distance_cache.sql +37 -0
  159. package/dist/dist/migrations/20260809231722_route_distance_cache_rls.sql +15 -0
  160. package/dist/dist/migrations/20260809231723_apply_rental_route_plan_function.sql +275 -0
  161. package/dist/dist/migrations/20260810171550_add_settings_job_default_job_types.sql +9 -0
  162. package/dist/dist/migrations/20260810212430_backfill_rental_task_option_sort_order.sql +61 -0
  163. package/dist/dist/migrations/20260811224317_add_settings_user_dnd_hint_dismissed.sql +9 -0
  164. package/dist/dist/migrations/20260813174503_repair_user_role_email_drift.sql +59 -0
  165. package/dist/dist/migrations/20260813174504_sync_user_role_email_trigger.sql +30 -0
  166. package/dist/dist/migrations/20260813175210_add_event_list_sort_key.sql +5 -0
  167. package/dist/dist/migrations/20260814172222_add_client_auto_bill_on_completion.sql +6 -0
  168. package/dist/dist/migrations/20260816160252_create_automation_rule.sql +99 -0
  169. package/dist/dist/migrations/20260816160253_automation_rule_rls.sql +19 -0
  170. package/dist/dist/migrations/20260816160254_create_settings_automation.sql +36 -0
  171. package/dist/dist/migrations/20260816160255_settings_automation_rls.sql +18 -0
  172. package/dist/dist/migrations/20260816160256_create_automation_event.sql +71 -0
  173. package/dist/dist/migrations/20260816160257_automation_event_rls.sql +12 -0
  174. package/dist/dist/migrations/20260816160258_create_automation_run.sql +129 -0
  175. package/dist/dist/migrations/20260816160259_automation_run_rls.sql +19 -0
  176. package/dist/dist/migrations/20260816160300_add_client_created_via.sql +25 -0
  177. package/dist/dist/migrations/20260816160301_add_estimate_sent_at.sql +39 -0
  178. package/dist/dist/migrations/20260816160302_add_message_automation_ref.sql +10 -0
  179. package/dist/dist/migrations/20260816160303_automation_event_triggers.sql +236 -0
  180. package/dist/dist/migrations/20260816160304_automation_retention.sql +142 -0
  181. package/dist/dist/migrations/20260816202404_add_automation_center_addon_key.sql +26 -0
  182. package/dist/dist/migrations/20260816225501_widen_automation_rule_trigger_action_checks.sql +25 -0
  183. package/dist/dist/migrations/20260816225502_widen_automation_event_type_check.sql +18 -0
  184. package/dist/dist/migrations/20260816225503_add_invoice_id_to_automation_tables.sql +18 -0
  185. package/dist/dist/migrations/20260816225504_add_job_rescheduled_capture_trigger.sql +51 -0
  186. package/dist/dist/migrations/20260816225505_add_lead_converted_capture_trigger.sql +26 -0
  187. package/dist/dist/migrations/20260816225506_fix_booking_request_import_guard.sql +27 -0
  188. package/dist/dist/migrations/20260816225507_widen_outbound_event_for_automation.sql +38 -0
  189. package/dist/dist/migrations/20260817002626_add_user_last_login_platform_columns.sql +14 -0
  190. package/dist/dist/migrations/20260817221703_create_deletion.sql +34 -0
  191. package/dist/dist/migrations/20260817221707_deletion_rls.sql +21 -0
  192. package/dist/dist/migrations/20260817221708_add_soft_delete_columns.sql +82 -0
  193. package/dist/dist/migrations/20260817221709_trash_functions.sql +434 -0
  194. package/dist/dist/migrations/20260817221710_outbound_event_soft_delete.sql +55 -0
  195. package/dist/dist/migrations/20260817221711_automation_soft_delete_events.sql +77 -0
  196. package/dist/dist/migrations/20260817221712_fix_estimate_address_cascade.sql +14 -0
  197. package/dist/dist/migrations/20260817232630_trash_batch_function.sql +67 -0
  198. package/dist/dist/migrations/20260819170204_create_email_spam_complaint.sql +23 -0
  199. package/dist/dist/migrations/20260819170205_add_email_spam_complaint_rls.sql +5 -0
  200. package/dist/dist/migrations/20260819170206_email_unsubscribed_upsert_constraints.sql +14 -0
  201. package/dist/dist/migrations/20260819180151_get_suppressed_emails_function.sql +23 -0
  202. package/dist/dist/migrations/20260819191143_is_deleted_backfill_guard.sql +29 -0
  203. package/dist/dist/migrations/20260819191144_trash_functions_no_dual_write.sql +319 -0
  204. package/dist/dist/migrations/20260819191145_client_map_jobs_deleted_at.sql +33 -0
  205. package/dist/dist/migrations/20260819191147_booking_declined_deleted_at.sql +28 -0
  206. package/dist/dist/migrations/20260819191148_onboarding_preload_no_address_is_deleted.sql +1019 -0
  207. package/dist/dist/migrations/20260820222756_add_settings_job_hide_task_timer.sql +2 -0
  208. package/dist/dist/migrations/20260824234151_add_blast_chunk_recipients.sql +13 -0
  209. package/dist/dist/migrations/20260824234152_add_blast_pause_cancel_columns.sql +10 -0
  210. package/dist/dist/migrations/20260825014725_get_job_ids_in_range.sql +42 -0
  211. package/dist/dist/migrations/20260825194452_add_failed_job_status.sql +15 -0
  212. package/dist/dist/migrations/20260825194457_remove_take_to_rental_task_options.sql +24 -0
  213. package/dist/dist/migrations/20260825194458_remove_take_to_job_schedules.sql +12 -0
  214. package/dist/dist/migrations/20260825194459_rework_apply_rental_route_plan_no_take_to.sql +168 -0
  215. package/dist/dist/migrations/20260825194500_drop_job_schedule_target_location.sql +24 -0
  216. package/dist/dist/migrations/20260825194501_add_job_schedule_size.sql +17 -0
  217. package/dist/dist/migrations/20260825233001_add_job_schedule_id_company_id_key.sql +11 -0
  218. package/dist/dist/migrations/20260825233002_create_route_plan.sql +52 -0
  219. package/dist/dist/migrations/20260825233003_create_route_plan_stop.sql +159 -0
  220. package/dist/dist/migrations/20260825233004_route_plan_rls.sql +32 -0
  221. package/dist/dist/migrations/20260825233005_apply_rental_route_plan_v2.sql +351 -0
  222. package/dist/dist/migrations/20260826150934_facebook_ads_lead_ingestion.sql +1711 -0
  223. package/dist/dist/migrations/20260826151141_facebook_ads_lead_ingestion_rls_v2.sql +43 -0
  224. package/dist/dist/migrations/20260826234722_facebook_messenger_ingestion.sql +703 -0
  225. package/dist/dist/migrations/20260826234723_facebook_messenger_ingestion_rls.sql +80 -0
  226. package/dist/dist/migrations/20260826234724_widen_automations_messenger.sql +46 -0
  227. package/dist/dist/migrations/20260827100001_add_route_plan_minutes.sql +10 -0
  228. package/dist/dist/migrations/20260827100002_add_route_plan_stop_leg_minutes.sql +9 -0
  229. package/dist/dist/migrations/20260827100003_apply_rental_route_plan_v3.sql +341 -0
  230. package/dist/dist/migrations/20260827230346_apply_rental_route_plan_v4.sql +366 -0
  231. package/dist/dist/migrations/20260829090911_create_fleet_schema.sql +3698 -0
  232. package/dist/dist/migrations/20260829090912_fleet_rls.sql +1011 -0
  233. package/dist/dist/migrations/20260831102212_add_online_booking_address_display.sql +8 -0
  234. package/dist/dist/providers/AddressProvider.d.ts +9 -0
  235. package/dist/dist/providers/AddressProvider.d.ts.map +1 -0
  236. package/dist/dist/providers/AddressProvider.js +207 -0
  237. package/dist/dist/providers/AddressProvider.js.map +1 -0
  238. package/dist/dist/providers/AutomationsProvider.d.ts +11 -0
  239. package/dist/dist/providers/AutomationsProvider.d.ts.map +1 -0
  240. package/dist/dist/providers/AutomationsProvider.js +170 -0
  241. package/dist/dist/providers/AutomationsProvider.js.map +1 -0
  242. package/dist/dist/providers/BlockedNumbersProvider.d.ts +13 -0
  243. package/dist/dist/providers/BlockedNumbersProvider.d.ts.map +1 -0
  244. package/dist/dist/providers/BlockedNumbersProvider.js +71 -0
  245. package/dist/dist/providers/BlockedNumbersProvider.js.map +1 -0
  246. package/dist/dist/providers/CategoryProvider.d.ts +8 -0
  247. package/dist/dist/providers/CategoryProvider.d.ts.map +1 -0
  248. package/dist/dist/providers/CategoryProvider.js +95 -0
  249. package/dist/dist/providers/CategoryProvider.js.map +1 -0
  250. package/dist/dist/providers/ClientProvider.d.ts +39 -0
  251. package/dist/dist/providers/ClientProvider.d.ts.map +1 -0
  252. package/dist/dist/providers/ClientProvider.js +253 -0
  253. package/dist/dist/providers/ClientProvider.js.map +1 -0
  254. package/dist/dist/providers/CompanyProvider.d.ts +7 -0
  255. package/dist/dist/providers/CompanyProvider.d.ts.map +1 -0
  256. package/dist/dist/providers/CompanyProvider.js +114 -0
  257. package/dist/dist/providers/CompanyProvider.js.map +1 -0
  258. package/dist/dist/providers/DashboardProvider.d.ts +78 -0
  259. package/dist/dist/providers/DashboardProvider.d.ts.map +1 -0
  260. package/dist/dist/providers/DashboardProvider.js +568 -0
  261. package/dist/dist/providers/DashboardProvider.js.map +1 -0
  262. package/dist/dist/providers/DiscountProvider.d.ts +8 -0
  263. package/dist/dist/providers/DiscountProvider.d.ts.map +1 -0
  264. package/dist/dist/providers/DiscountProvider.js +92 -0
  265. package/dist/dist/providers/DiscountProvider.js.map +1 -0
  266. package/dist/dist/providers/EmployeesProvider.d.ts +6 -0
  267. package/dist/dist/providers/EmployeesProvider.d.ts.map +1 -0
  268. package/dist/dist/providers/EmployeesProvider.js +185 -0
  269. package/dist/dist/providers/EmployeesProvider.js.map +1 -0
  270. package/dist/dist/providers/EstimatesProvider.d.ts +16 -0
  271. package/dist/dist/providers/EstimatesProvider.d.ts.map +1 -0
  272. package/dist/dist/providers/EstimatesProvider.js +251 -0
  273. package/dist/dist/providers/EstimatesProvider.js.map +1 -0
  274. package/dist/dist/providers/EventsProvider.d.ts +4 -0
  275. package/dist/dist/providers/EventsProvider.d.ts.map +1 -0
  276. package/dist/dist/providers/EventsProvider.js +24 -0
  277. package/dist/dist/providers/EventsProvider.js.map +1 -0
  278. package/dist/dist/providers/FilesProvider.d.ts +17 -0
  279. package/dist/dist/providers/FilesProvider.d.ts.map +1 -0
  280. package/dist/dist/providers/FilesProvider.js +201 -0
  281. package/dist/dist/providers/FilesProvider.js.map +1 -0
  282. package/dist/dist/providers/InvoicesProvider.d.ts +13 -0
  283. package/dist/dist/providers/InvoicesProvider.d.ts.map +1 -0
  284. package/dist/dist/providers/InvoicesProvider.js +207 -0
  285. package/dist/dist/providers/InvoicesProvider.js.map +1 -0
  286. package/dist/dist/providers/ItemProvider.d.ts +9 -0
  287. package/dist/dist/providers/ItemProvider.d.ts.map +1 -0
  288. package/dist/dist/providers/ItemProvider.js +201 -0
  289. package/dist/dist/providers/ItemProvider.js.map +1 -0
  290. package/dist/dist/providers/JobSourceProvider.d.ts +8 -0
  291. package/dist/dist/providers/JobSourceProvider.d.ts.map +1 -0
  292. package/dist/dist/providers/JobSourceProvider.js +75 -0
  293. package/dist/dist/providers/JobSourceProvider.js.map +1 -0
  294. package/dist/dist/providers/JobTypeProvider.d.ts +8 -0
  295. package/dist/dist/providers/JobTypeProvider.d.ts.map +1 -0
  296. package/dist/dist/providers/JobTypeProvider.js +75 -0
  297. package/dist/dist/providers/JobTypeProvider.js.map +1 -0
  298. package/dist/dist/providers/JobsProvider.d.ts +35 -0
  299. package/dist/dist/providers/JobsProvider.d.ts.map +1 -0
  300. package/dist/dist/providers/JobsProvider.js +863 -0
  301. package/dist/dist/providers/JobsProvider.js.map +1 -0
  302. package/dist/dist/providers/MessagesProvider.d.ts +33 -0
  303. package/dist/dist/providers/MessagesProvider.d.ts.map +1 -0
  304. package/dist/dist/providers/MessagesProvider.js +415 -0
  305. package/dist/dist/providers/MessagesProvider.js.map +1 -0
  306. package/dist/dist/providers/PaymentProvider.d.ts +9 -0
  307. package/dist/dist/providers/PaymentProvider.d.ts.map +1 -0
  308. package/dist/dist/providers/PaymentProvider.js +48 -0
  309. package/dist/dist/providers/PaymentProvider.js.map +1 -0
  310. package/dist/dist/providers/PermissionRolesProvider.d.ts +5 -0
  311. package/dist/dist/providers/PermissionRolesProvider.d.ts.map +1 -0
  312. package/dist/dist/providers/PermissionRolesProvider.js +30 -0
  313. package/dist/dist/providers/PermissionRolesProvider.js.map +1 -0
  314. package/dist/dist/providers/PhoneNumberProvider.d.ts +12 -0
  315. package/dist/dist/providers/PhoneNumberProvider.d.ts.map +1 -0
  316. package/dist/dist/providers/PhoneNumberProvider.js +184 -0
  317. package/dist/dist/providers/PhoneNumberProvider.js.map +1 -0
  318. package/dist/dist/providers/ProfileProvider.d.ts +6 -0
  319. package/dist/dist/providers/ProfileProvider.d.ts.map +1 -0
  320. package/dist/dist/providers/ProfileProvider.js +71 -0
  321. package/dist/dist/providers/ProfileProvider.js.map +1 -0
  322. package/dist/dist/providers/RentalsProvider.d.ts +28 -0
  323. package/dist/dist/providers/RentalsProvider.d.ts.map +1 -0
  324. package/dist/dist/providers/RentalsProvider.js +438 -0
  325. package/dist/dist/providers/RentalsProvider.js.map +1 -0
  326. package/dist/dist/providers/SettingsBookingProvider.d.ts +9 -0
  327. package/dist/dist/providers/SettingsBookingProvider.d.ts.map +1 -0
  328. package/dist/dist/providers/SettingsBookingProvider.js +163 -0
  329. package/dist/dist/providers/SettingsBookingProvider.js.map +1 -0
  330. package/dist/dist/providers/SettingsProvider.d.ts +8 -0
  331. package/dist/dist/providers/SettingsProvider.d.ts.map +1 -0
  332. package/dist/dist/providers/SettingsProvider.js +86 -0
  333. package/dist/dist/providers/SettingsProvider.js.map +1 -0
  334. package/dist/dist/providers/TagsProvider.d.ts +12 -0
  335. package/dist/dist/providers/TagsProvider.d.ts.map +1 -0
  336. package/dist/dist/providers/TagsProvider.js +210 -0
  337. package/dist/dist/providers/TagsProvider.js.map +1 -0
  338. package/dist/dist/providers/TimeCardProvider.d.ts +8 -0
  339. package/dist/dist/providers/TimeCardProvider.d.ts.map +1 -0
  340. package/dist/dist/providers/TimeCardProvider.js +93 -0
  341. package/dist/dist/providers/TimeCardProvider.js.map +1 -0
  342. package/dist/dist/providers/TrashProvider.d.ts +13 -0
  343. package/dist/dist/providers/TrashProvider.d.ts.map +1 -0
  344. package/dist/dist/providers/TrashProvider.js +98 -0
  345. package/dist/dist/providers/TrashProvider.js.map +1 -0
  346. package/dist/dist/providers/dashboardAnalytics.d.ts +9 -0
  347. package/dist/dist/providers/dashboardAnalytics.d.ts.map +1 -0
  348. package/dist/dist/providers/dashboardAnalytics.js +41 -0
  349. package/dist/dist/providers/dashboardAnalytics.js.map +1 -0
  350. package/dist/dist/providers/dashboardAnalytics.test.d.ts +2 -0
  351. package/dist/dist/providers/dashboardAnalytics.test.d.ts.map +1 -0
  352. package/dist/dist/providers/dashboardAnalytics.test.js +111 -0
  353. package/dist/dist/providers/dashboardAnalytics.test.js.map +1 -0
  354. package/dist/dist/server-safe/BlockedNumberFunctions.d.ts +11 -0
  355. package/dist/dist/server-safe/BlockedNumberFunctions.d.ts.map +1 -0
  356. package/dist/dist/server-safe/BlockedNumberFunctions.js +16 -0
  357. package/dist/dist/server-safe/BlockedNumberFunctions.js.map +1 -0
  358. package/dist/dist/server-safe/EmployeeFunctions.d.ts +14 -0
  359. package/dist/dist/server-safe/EmployeeFunctions.d.ts.map +1 -0
  360. package/dist/dist/server-safe/EmployeeFunctions.js +70 -0
  361. package/dist/dist/server-safe/EmployeeFunctions.js.map +1 -0
  362. package/dist/dist/server-safe/EmployeeLocationFunctions.d.ts +7 -0
  363. package/dist/dist/server-safe/EmployeeLocationFunctions.d.ts.map +1 -0
  364. package/dist/dist/server-safe/EmployeeLocationFunctions.js +47 -0
  365. package/dist/dist/server-safe/EmployeeLocationFunctions.js.map +1 -0
  366. package/dist/dist/server-safe/EstimateFunctions.d.ts +15 -0
  367. package/dist/dist/server-safe/EstimateFunctions.d.ts.map +1 -0
  368. package/dist/dist/server-safe/EstimateFunctions.js +34 -0
  369. package/dist/dist/server-safe/EstimateFunctions.js.map +1 -0
  370. package/dist/dist/server-safe/InvoiceFunctions.d.ts +21 -0
  371. package/dist/dist/server-safe/InvoiceFunctions.d.ts.map +1 -0
  372. package/dist/dist/server-safe/InvoiceFunctions.js +124 -0
  373. package/dist/dist/server-safe/InvoiceFunctions.js.map +1 -0
  374. package/dist/dist/server-safe/JobFunctions.d.ts +15 -0
  375. package/dist/dist/server-safe/JobFunctions.d.ts.map +1 -0
  376. package/dist/dist/server-safe/JobFunctions.js +56 -0
  377. package/dist/dist/server-safe/JobFunctions.js.map +1 -0
  378. package/dist/dist/server-safe/PaymentFunctions.d.ts +16 -0
  379. package/dist/dist/server-safe/PaymentFunctions.d.ts.map +1 -0
  380. package/dist/dist/server-safe/PaymentFunctions.js +80 -0
  381. package/dist/dist/server-safe/PaymentFunctions.js.map +1 -0
  382. package/dist/dist/server-safe/PermissionFunctions.d.ts +7 -0
  383. package/dist/dist/server-safe/PermissionFunctions.d.ts.map +1 -0
  384. package/dist/dist/server-safe/PermissionFunctions.js +39 -0
  385. package/dist/dist/server-safe/PermissionFunctions.js.map +1 -0
  386. package/dist/dist/server-safe/TagFunctions.d.ts +18 -0
  387. package/dist/dist/server-safe/TagFunctions.d.ts.map +1 -0
  388. package/dist/dist/server-safe/TagFunctions.js +52 -0
  389. package/dist/dist/server-safe/TagFunctions.js.map +1 -0
  390. package/dist/dist/server-safe/autoJobType.d.ts +16 -0
  391. package/dist/dist/server-safe/autoJobType.d.ts.map +1 -0
  392. package/dist/dist/server-safe/autoJobType.js +39 -0
  393. package/dist/dist/server-safe/autoJobType.js.map +1 -0
  394. package/dist/dist/server-safe/autoJobType.test.d.ts +2 -0
  395. package/dist/dist/server-safe/autoJobType.test.d.ts.map +1 -0
  396. package/dist/dist/server-safe/autoJobType.test.js +83 -0
  397. package/dist/dist/server-safe/autoJobType.test.js.map +1 -0
  398. package/dist/dist/server-safe/automations.d.ts +197 -0
  399. package/dist/dist/server-safe/automations.d.ts.map +1 -0
  400. package/dist/dist/server-safe/automations.js +757 -0
  401. package/dist/dist/server-safe/automations.js.map +1 -0
  402. package/dist/dist/server-safe/automations.test.d.ts +2 -0
  403. package/dist/dist/server-safe/automations.test.d.ts.map +1 -0
  404. package/dist/dist/server-safe/automations.test.js +441 -0
  405. package/dist/dist/server-safe/automations.test.js.map +1 -0
  406. package/dist/dist/server-safe/constants.d.ts +156 -0
  407. package/dist/dist/server-safe/constants.d.ts.map +1 -0
  408. package/dist/dist/server-safe/constants.js +186 -0
  409. package/dist/dist/server-safe/constants.js.map +1 -0
  410. package/dist/dist/server-safe/contracts.d.ts +3 -0
  411. package/dist/dist/server-safe/contracts.d.ts.map +1 -0
  412. package/dist/dist/server-safe/contracts.js +15 -0
  413. package/dist/dist/server-safe/contracts.js.map +1 -0
  414. package/dist/dist/server-safe/database.types.d.ts +9510 -0
  415. package/dist/dist/server-safe/database.types.d.ts.map +1 -0
  416. package/dist/dist/server-safe/database.types.js +40 -0
  417. package/dist/dist/server-safe/database.types.js.map +1 -0
  418. package/dist/dist/server-safe/entitlements.d.ts +99 -0
  419. package/dist/dist/server-safe/entitlements.d.ts.map +1 -0
  420. package/dist/dist/server-safe/entitlements.js +487 -0
  421. package/dist/dist/server-safe/entitlements.js.map +1 -0
  422. package/dist/dist/server-safe/facebookAdsLeads.d.ts +225 -0
  423. package/dist/dist/server-safe/facebookAdsLeads.d.ts.map +1 -0
  424. package/dist/dist/server-safe/facebookAdsLeads.js +376 -0
  425. package/dist/dist/server-safe/facebookAdsLeads.js.map +1 -0
  426. package/dist/dist/server-safe/facebookAdsLeads.test.d.ts +2 -0
  427. package/dist/dist/server-safe/facebookAdsLeads.test.d.ts.map +1 -0
  428. package/dist/dist/server-safe/facebookAdsLeads.test.js +189 -0
  429. package/dist/dist/server-safe/facebookAdsLeads.test.js.map +1 -0
  430. package/dist/dist/server-safe/facebookAdsLeadsSql.test.d.ts +2 -0
  431. package/dist/dist/server-safe/facebookAdsLeadsSql.test.d.ts.map +1 -0
  432. package/dist/dist/server-safe/facebookAdsLeadsSql.test.js +32 -0
  433. package/dist/dist/server-safe/facebookAdsLeadsSql.test.js.map +1 -0
  434. package/dist/dist/server-safe/facebookMessenger.d.ts +20 -0
  435. package/dist/dist/server-safe/facebookMessenger.d.ts.map +1 -0
  436. package/dist/dist/server-safe/facebookMessenger.js +63 -0
  437. package/dist/dist/server-safe/facebookMessenger.js.map +1 -0
  438. package/dist/dist/server-safe/facebookMessenger.test.d.ts +2 -0
  439. package/dist/dist/server-safe/facebookMessenger.test.d.ts.map +1 -0
  440. package/dist/dist/server-safe/facebookMessenger.test.js +51 -0
  441. package/dist/dist/server-safe/facebookMessenger.test.js.map +1 -0
  442. package/dist/dist/server-safe/helpers.d.ts +78 -0
  443. package/dist/dist/server-safe/helpers.d.ts.map +1 -0
  444. package/dist/dist/server-safe/helpers.js +569 -0
  445. package/dist/dist/server-safe/helpers.js.map +1 -0
  446. package/dist/dist/server-safe/index.d.ts +30 -0
  447. package/dist/dist/server-safe/index.d.ts.map +1 -0
  448. package/dist/dist/server-safe/index.js +46 -0
  449. package/dist/dist/server-safe/index.js.map +1 -0
  450. package/dist/dist/server-safe/permissions.d.ts +29 -0
  451. package/dist/dist/server-safe/permissions.d.ts.map +1 -0
  452. package/dist/dist/server-safe/permissions.js +180 -0
  453. package/dist/dist/server-safe/permissions.js.map +1 -0
  454. package/dist/dist/server-safe/proposals.d.ts +6 -0
  455. package/dist/dist/server-safe/proposals.d.ts.map +1 -0
  456. package/dist/dist/server-safe/proposals.js +58 -0
  457. package/dist/dist/server-safe/proposals.js.map +1 -0
  458. package/dist/dist/server-safe/rentalAvailability.d.ts +56 -0
  459. package/dist/dist/server-safe/rentalAvailability.d.ts.map +1 -0
  460. package/dist/dist/server-safe/rentalAvailability.js +124 -0
  461. package/dist/dist/server-safe/rentalAvailability.js.map +1 -0
  462. package/dist/dist/server-safe/rentalAvailability.test.d.ts +2 -0
  463. package/dist/dist/server-safe/rentalAvailability.test.d.ts.map +1 -0
  464. package/dist/dist/server-safe/rentalAvailability.test.js +290 -0
  465. package/dist/dist/server-safe/rentalAvailability.test.js.map +1 -0
  466. package/dist/dist/server-safe/rentals.d.ts +95 -0
  467. package/dist/dist/server-safe/rentals.d.ts.map +1 -0
  468. package/dist/dist/server-safe/rentals.js +432 -0
  469. package/dist/dist/server-safe/rentals.js.map +1 -0
  470. package/dist/dist/server-safe/rentals.test.d.ts +2 -0
  471. package/dist/dist/server-safe/rentals.test.d.ts.map +1 -0
  472. package/dist/dist/server-safe/rentals.test.js +1034 -0
  473. package/dist/dist/server-safe/rentals.test.js.map +1 -0
  474. package/dist/dist/server-safe/routeOptimization.d.ts +155 -0
  475. package/dist/dist/server-safe/routeOptimization.d.ts.map +1 -0
  476. package/dist/dist/server-safe/routeOptimization.js +120 -0
  477. package/dist/dist/server-safe/routeOptimization.js.map +1 -0
  478. package/dist/dist/server-safe/routeOptimization.test.d.ts +2 -0
  479. package/dist/dist/server-safe/routeOptimization.test.d.ts.map +1 -0
  480. package/dist/dist/server-safe/routeOptimization.test.js +234 -0
  481. package/dist/dist/server-safe/routeOptimization.test.js.map +1 -0
  482. package/dist/dist/server-safe/routePlanFingerprint.d.ts +13 -0
  483. package/dist/dist/server-safe/routePlanFingerprint.d.ts.map +1 -0
  484. package/dist/dist/server-safe/routePlanFingerprint.js +49 -0
  485. package/dist/dist/server-safe/routePlanFingerprint.js.map +1 -0
  486. package/dist/dist/server-safe/routePlanFingerprint.test.d.ts +2 -0
  487. package/dist/dist/server-safe/routePlanFingerprint.test.d.ts.map +1 -0
  488. package/dist/dist/server-safe/routePlanFingerprint.test.js +68 -0
  489. package/dist/dist/server-safe/routePlanFingerprint.test.js.map +1 -0
  490. package/dist/dist/server-safe/scheduleListOrder.d.ts +18 -0
  491. package/dist/dist/server-safe/scheduleListOrder.d.ts.map +1 -0
  492. package/dist/dist/server-safe/scheduleListOrder.js +92 -0
  493. package/dist/dist/server-safe/scheduleListOrder.js.map +1 -0
  494. package/dist/dist/server-safe/scheduleListOrder.test.d.ts +2 -0
  495. package/dist/dist/server-safe/scheduleListOrder.test.d.ts.map +1 -0
  496. package/dist/dist/server-safe/scheduleListOrder.test.js +260 -0
  497. package/dist/dist/server-safe/scheduleListOrder.test.js.map +1 -0
  498. package/dist/dist/server-safe/serviceMinutes.d.ts +13 -0
  499. package/dist/dist/server-safe/serviceMinutes.d.ts.map +1 -0
  500. package/dist/dist/server-safe/serviceMinutes.js +38 -0
  501. package/dist/dist/server-safe/serviceMinutes.js.map +1 -0
  502. package/dist/dist/server-safe/serviceMinutes.test.d.ts +2 -0
  503. package/dist/dist/server-safe/serviceMinutes.test.d.ts.map +1 -0
  504. package/dist/dist/server-safe/serviceMinutes.test.js +86 -0
  505. package/dist/dist/server-safe/serviceMinutes.test.js.map +1 -0
  506. package/dist/dist/server-safe/settingsSearch.d.ts +24 -0
  507. package/dist/dist/server-safe/settingsSearch.d.ts.map +1 -0
  508. package/dist/dist/server-safe/settingsSearch.js +8 -0
  509. package/dist/dist/server-safe/settingsSearch.js.map +1 -0
  510. package/dist/dist/server-safe/supportChat.d.ts +59 -0
  511. package/dist/dist/server-safe/supportChat.d.ts.map +1 -0
  512. package/dist/dist/server-safe/supportChat.js +56 -0
  513. package/dist/dist/server-safe/supportChat.js.map +1 -0
  514. package/dist/dist/server-safe/templates.d.ts +15 -0
  515. package/dist/dist/server-safe/templates.d.ts.map +1 -0
  516. package/dist/dist/server-safe/templates.js +91 -0
  517. package/dist/dist/server-safe/templates.js.map +1 -0
  518. package/dist/dist/server-safe/templates.test.d.ts +2 -0
  519. package/dist/dist/server-safe/templates.test.d.ts.map +1 -0
  520. package/dist/dist/server-safe/templates.test.js +62 -0
  521. package/dist/dist/server-safe/templates.test.js.map +1 -0
  522. package/dist/dist/server-safe/trash.d.ts +50 -0
  523. package/dist/dist/server-safe/trash.d.ts.map +1 -0
  524. package/dist/dist/server-safe/trash.js +100 -0
  525. package/dist/dist/server-safe/trash.js.map +1 -0
  526. package/dist/dist/utils/LogHandler.d.ts +3 -0
  527. package/dist/dist/utils/LogHandler.d.ts.map +1 -0
  528. package/dist/dist/utils/LogHandler.js +16 -0
  529. package/dist/dist/utils/LogHandler.js.map +1 -0
  530. package/dist/dist/utils/convertSupabaseImagesToAssets.d.ts +28 -0
  531. package/dist/dist/utils/convertSupabaseImagesToAssets.d.ts.map +1 -0
  532. package/dist/dist/utils/convertSupabaseImagesToAssets.js +14 -0
  533. package/dist/dist/utils/convertSupabaseImagesToAssets.js.map +1 -0
  534. package/dist/index.d.ts +45 -0
  535. package/dist/index.d.ts.map +1 -0
  536. package/dist/index.js +61 -0
  537. package/dist/index.js.map +1 -0
  538. package/dist/interfaces/index.d.ts +1238 -0
  539. package/dist/interfaces/index.d.ts.map +1 -0
  540. package/dist/interfaces/index.js +3 -0
  541. package/dist/interfaces/index.js.map +1 -0
  542. package/dist/providers/AddressProvider.d.ts +9 -0
  543. package/dist/providers/AddressProvider.d.ts.map +1 -0
  544. package/dist/providers/AddressProvider.js +207 -0
  545. package/dist/providers/AddressProvider.js.map +1 -0
  546. package/dist/providers/AutomationsProvider.d.ts +11 -0
  547. package/dist/providers/AutomationsProvider.d.ts.map +1 -0
  548. package/dist/providers/AutomationsProvider.js +170 -0
  549. package/dist/providers/AutomationsProvider.js.map +1 -0
  550. package/dist/providers/BlockedNumbersProvider.d.ts +7 -0
  551. package/dist/providers/BlockedNumbersProvider.d.ts.map +1 -0
  552. package/dist/providers/BlockedNumbersProvider.js +71 -0
  553. package/dist/providers/BlockedNumbersProvider.js.map +1 -0
  554. package/dist/providers/CategoryProvider.d.ts +8 -0
  555. package/dist/providers/CategoryProvider.d.ts.map +1 -0
  556. package/dist/providers/CategoryProvider.js +95 -0
  557. package/dist/providers/CategoryProvider.js.map +1 -0
  558. package/dist/providers/ClientProvider.d.ts +39 -0
  559. package/dist/providers/ClientProvider.d.ts.map +1 -0
  560. package/dist/providers/ClientProvider.js +253 -0
  561. package/dist/providers/ClientProvider.js.map +1 -0
  562. package/dist/providers/CompanyProvider.d.ts +7 -0
  563. package/dist/providers/CompanyProvider.d.ts.map +1 -0
  564. package/dist/providers/CompanyProvider.js +114 -0
  565. package/dist/providers/CompanyProvider.js.map +1 -0
  566. package/dist/providers/DashboardProvider.d.ts +78 -0
  567. package/dist/providers/DashboardProvider.d.ts.map +1 -0
  568. package/dist/providers/DashboardProvider.js +568 -0
  569. package/dist/providers/DashboardProvider.js.map +1 -0
  570. package/dist/providers/DiscountProvider.d.ts +8 -0
  571. package/dist/providers/DiscountProvider.d.ts.map +1 -0
  572. package/dist/providers/DiscountProvider.js +92 -0
  573. package/dist/providers/DiscountProvider.js.map +1 -0
  574. package/dist/providers/EmployeesProvider.d.ts +6 -0
  575. package/dist/providers/EmployeesProvider.d.ts.map +1 -0
  576. package/dist/providers/EmployeesProvider.js +185 -0
  577. package/dist/providers/EmployeesProvider.js.map +1 -0
  578. package/dist/providers/EstimatesProvider.d.ts +16 -0
  579. package/dist/providers/EstimatesProvider.d.ts.map +1 -0
  580. package/dist/providers/EstimatesProvider.js +251 -0
  581. package/dist/providers/EstimatesProvider.js.map +1 -0
  582. package/dist/providers/EventsProvider.d.ts +4 -0
  583. package/dist/providers/EventsProvider.d.ts.map +1 -0
  584. package/dist/providers/EventsProvider.js +24 -0
  585. package/dist/providers/EventsProvider.js.map +1 -0
  586. package/dist/providers/FilesProvider.d.ts +17 -0
  587. package/dist/providers/FilesProvider.d.ts.map +1 -0
  588. package/dist/providers/FilesProvider.js +201 -0
  589. package/dist/providers/FilesProvider.js.map +1 -0
  590. package/dist/providers/InvoicesProvider.d.ts +13 -0
  591. package/dist/providers/InvoicesProvider.d.ts.map +1 -0
  592. package/dist/providers/InvoicesProvider.js +207 -0
  593. package/dist/providers/InvoicesProvider.js.map +1 -0
  594. package/dist/providers/ItemProvider.d.ts +9 -0
  595. package/dist/providers/ItemProvider.d.ts.map +1 -0
  596. package/dist/providers/ItemProvider.js +201 -0
  597. package/dist/providers/ItemProvider.js.map +1 -0
  598. package/dist/providers/JobSourceProvider.d.ts +8 -0
  599. package/dist/providers/JobSourceProvider.d.ts.map +1 -0
  600. package/dist/providers/JobSourceProvider.js +75 -0
  601. package/dist/providers/JobSourceProvider.js.map +1 -0
  602. package/dist/providers/JobTypeProvider.d.ts +8 -0
  603. package/dist/providers/JobTypeProvider.d.ts.map +1 -0
  604. package/dist/providers/JobTypeProvider.js +75 -0
  605. package/dist/providers/JobTypeProvider.js.map +1 -0
  606. package/dist/providers/JobsProvider.d.ts +20 -0
  607. package/dist/providers/JobsProvider.d.ts.map +1 -0
  608. package/dist/providers/JobsProvider.js +863 -0
  609. package/dist/providers/JobsProvider.js.map +1 -0
  610. package/dist/providers/MessagesProvider.d.ts +14 -0
  611. package/dist/providers/MessagesProvider.d.ts.map +1 -0
  612. package/dist/providers/MessagesProvider.js +415 -0
  613. package/dist/providers/MessagesProvider.js.map +1 -0
  614. package/dist/providers/PaymentProvider.d.ts +9 -0
  615. package/dist/providers/PaymentProvider.d.ts.map +1 -0
  616. package/dist/providers/PaymentProvider.js +48 -0
  617. package/dist/providers/PaymentProvider.js.map +1 -0
  618. package/dist/providers/PermissionRolesProvider.d.ts +5 -0
  619. package/dist/providers/PermissionRolesProvider.d.ts.map +1 -0
  620. package/dist/providers/PermissionRolesProvider.js +30 -0
  621. package/dist/providers/PermissionRolesProvider.js.map +1 -0
  622. package/dist/providers/PhoneNumberProvider.d.ts +12 -0
  623. package/dist/providers/PhoneNumberProvider.d.ts.map +1 -0
  624. package/dist/providers/PhoneNumberProvider.js +184 -0
  625. package/dist/providers/PhoneNumberProvider.js.map +1 -0
  626. package/dist/providers/ProfileProvider.d.ts +6 -0
  627. package/dist/providers/ProfileProvider.d.ts.map +1 -0
  628. package/dist/providers/ProfileProvider.js +71 -0
  629. package/dist/providers/ProfileProvider.js.map +1 -0
  630. package/dist/providers/RentalsProvider.d.ts +28 -0
  631. package/dist/providers/RentalsProvider.d.ts.map +1 -0
  632. package/dist/providers/RentalsProvider.js +438 -0
  633. package/dist/providers/RentalsProvider.js.map +1 -0
  634. package/dist/providers/SettingsBookingProvider.d.ts +9 -0
  635. package/dist/providers/SettingsBookingProvider.d.ts.map +1 -0
  636. package/dist/providers/SettingsBookingProvider.js +163 -0
  637. package/dist/providers/SettingsBookingProvider.js.map +1 -0
  638. package/dist/providers/SettingsProvider.d.ts +8 -0
  639. package/dist/providers/SettingsProvider.d.ts.map +1 -0
  640. package/dist/providers/SettingsProvider.js +86 -0
  641. package/dist/providers/SettingsProvider.js.map +1 -0
  642. package/dist/providers/TagsProvider.d.ts +12 -0
  643. package/dist/providers/TagsProvider.d.ts.map +1 -0
  644. package/dist/providers/TagsProvider.js +210 -0
  645. package/dist/providers/TagsProvider.js.map +1 -0
  646. package/dist/providers/TimeCardProvider.d.ts +8 -0
  647. package/dist/providers/TimeCardProvider.d.ts.map +1 -0
  648. package/dist/providers/TimeCardProvider.js +93 -0
  649. package/dist/providers/TimeCardProvider.js.map +1 -0
  650. package/dist/providers/TrashProvider.d.ts +13 -0
  651. package/dist/providers/TrashProvider.d.ts.map +1 -0
  652. package/dist/providers/TrashProvider.js +98 -0
  653. package/dist/providers/TrashProvider.js.map +1 -0
  654. package/dist/providers/dashboardAnalytics.d.ts +9 -0
  655. package/dist/providers/dashboardAnalytics.d.ts.map +1 -0
  656. package/dist/providers/dashboardAnalytics.js +41 -0
  657. package/dist/providers/dashboardAnalytics.js.map +1 -0
  658. package/dist/providers/dashboardAnalytics.test.d.ts +2 -0
  659. package/dist/providers/dashboardAnalytics.test.d.ts.map +1 -0
  660. package/dist/providers/dashboardAnalytics.test.js +111 -0
  661. package/dist/providers/dashboardAnalytics.test.js.map +1 -0
  662. package/dist/server-safe/BlockedNumberFunctions.d.ts +11 -0
  663. package/dist/server-safe/BlockedNumberFunctions.d.ts.map +1 -0
  664. package/dist/server-safe/BlockedNumberFunctions.js +16 -0
  665. package/dist/server-safe/BlockedNumberFunctions.js.map +1 -0
  666. package/dist/server-safe/EmployeeFunctions.d.ts +14 -0
  667. package/dist/server-safe/EmployeeFunctions.d.ts.map +1 -0
  668. package/dist/server-safe/EmployeeFunctions.js +70 -0
  669. package/dist/server-safe/EmployeeFunctions.js.map +1 -0
  670. package/dist/server-safe/EmployeeLocationFunctions.d.ts +7 -0
  671. package/dist/server-safe/EmployeeLocationFunctions.d.ts.map +1 -0
  672. package/dist/server-safe/EmployeeLocationFunctions.js +47 -0
  673. package/dist/server-safe/EmployeeLocationFunctions.js.map +1 -0
  674. package/dist/server-safe/EstimateFunctions.d.ts +15 -0
  675. package/dist/server-safe/EstimateFunctions.d.ts.map +1 -0
  676. package/dist/server-safe/EstimateFunctions.js +34 -0
  677. package/dist/server-safe/EstimateFunctions.js.map +1 -0
  678. package/dist/server-safe/InvoiceFunctions.d.ts +21 -0
  679. package/dist/server-safe/InvoiceFunctions.d.ts.map +1 -0
  680. package/dist/server-safe/InvoiceFunctions.js +124 -0
  681. package/dist/server-safe/InvoiceFunctions.js.map +1 -0
  682. package/dist/server-safe/JobFunctions.d.ts +15 -0
  683. package/dist/server-safe/JobFunctions.d.ts.map +1 -0
  684. package/dist/server-safe/JobFunctions.js +56 -0
  685. package/dist/server-safe/JobFunctions.js.map +1 -0
  686. package/dist/server-safe/PaymentFunctions.d.ts +16 -0
  687. package/dist/server-safe/PaymentFunctions.d.ts.map +1 -0
  688. package/dist/server-safe/PaymentFunctions.js +80 -0
  689. package/dist/server-safe/PaymentFunctions.js.map +1 -0
  690. package/dist/server-safe/PermissionFunctions.d.ts +7 -0
  691. package/dist/server-safe/PermissionFunctions.d.ts.map +1 -0
  692. package/dist/server-safe/PermissionFunctions.js +39 -0
  693. package/dist/server-safe/PermissionFunctions.js.map +1 -0
  694. package/dist/server-safe/TagFunctions.d.ts +18 -0
  695. package/dist/server-safe/TagFunctions.d.ts.map +1 -0
  696. package/dist/server-safe/TagFunctions.js +52 -0
  697. package/dist/server-safe/TagFunctions.js.map +1 -0
  698. package/dist/server-safe/autoJobType.d.ts +16 -0
  699. package/dist/server-safe/autoJobType.d.ts.map +1 -0
  700. package/dist/server-safe/autoJobType.js +39 -0
  701. package/dist/server-safe/autoJobType.js.map +1 -0
  702. package/dist/server-safe/autoJobType.test.d.ts +2 -0
  703. package/dist/server-safe/autoJobType.test.d.ts.map +1 -0
  704. package/dist/server-safe/autoJobType.test.js +83 -0
  705. package/dist/server-safe/autoJobType.test.js.map +1 -0
  706. package/dist/server-safe/automations.d.ts +197 -0
  707. package/dist/server-safe/automations.d.ts.map +1 -0
  708. package/dist/server-safe/automations.js +757 -0
  709. package/dist/server-safe/automations.js.map +1 -0
  710. package/dist/server-safe/automations.test.d.ts +2 -0
  711. package/dist/server-safe/automations.test.d.ts.map +1 -0
  712. package/dist/server-safe/automations.test.js +441 -0
  713. package/dist/server-safe/automations.test.js.map +1 -0
  714. package/dist/server-safe/constants.d.ts +156 -0
  715. package/dist/server-safe/constants.d.ts.map +1 -0
  716. package/dist/server-safe/constants.js +186 -0
  717. package/dist/server-safe/constants.js.map +1 -0
  718. package/dist/server-safe/contracts.d.ts +3 -0
  719. package/dist/server-safe/contracts.d.ts.map +1 -0
  720. package/dist/server-safe/contracts.js +15 -0
  721. package/dist/server-safe/contracts.js.map +1 -0
  722. package/dist/server-safe/database.types.d.ts +9510 -0
  723. package/dist/server-safe/database.types.d.ts.map +1 -0
  724. package/dist/server-safe/database.types.js +40 -0
  725. package/dist/server-safe/database.types.js.map +1 -0
  726. package/dist/server-safe/entitlements.d.ts +99 -0
  727. package/dist/server-safe/entitlements.d.ts.map +1 -0
  728. package/dist/server-safe/entitlements.js +487 -0
  729. package/dist/server-safe/entitlements.js.map +1 -0
  730. package/dist/server-safe/helpers.d.ts +78 -0
  731. package/dist/server-safe/helpers.d.ts.map +1 -0
  732. package/dist/server-safe/helpers.js +569 -0
  733. package/dist/server-safe/helpers.js.map +1 -0
  734. package/dist/server-safe/index.d.ts +30 -0
  735. package/dist/server-safe/index.d.ts.map +1 -0
  736. package/dist/server-safe/index.js +46 -0
  737. package/dist/server-safe/index.js.map +1 -0
  738. package/dist/server-safe/permissions.d.ts +29 -0
  739. package/dist/server-safe/permissions.d.ts.map +1 -0
  740. package/dist/server-safe/permissions.js +180 -0
  741. package/dist/server-safe/permissions.js.map +1 -0
  742. package/dist/server-safe/proposals.d.ts +6 -0
  743. package/dist/server-safe/proposals.d.ts.map +1 -0
  744. package/dist/server-safe/proposals.js +58 -0
  745. package/dist/server-safe/proposals.js.map +1 -0
  746. package/dist/server-safe/rentalAvailability.d.ts +56 -0
  747. package/dist/server-safe/rentalAvailability.d.ts.map +1 -0
  748. package/dist/server-safe/rentalAvailability.js +124 -0
  749. package/dist/server-safe/rentalAvailability.js.map +1 -0
  750. package/dist/server-safe/rentalAvailability.test.d.ts +2 -0
  751. package/dist/server-safe/rentalAvailability.test.d.ts.map +1 -0
  752. package/dist/server-safe/rentalAvailability.test.js +290 -0
  753. package/dist/server-safe/rentalAvailability.test.js.map +1 -0
  754. package/dist/server-safe/rentals.d.ts +95 -0
  755. package/dist/server-safe/rentals.d.ts.map +1 -0
  756. package/dist/server-safe/rentals.js +432 -0
  757. package/dist/server-safe/rentals.js.map +1 -0
  758. package/dist/server-safe/rentals.test.d.ts +2 -0
  759. package/dist/server-safe/rentals.test.d.ts.map +1 -0
  760. package/dist/server-safe/rentals.test.js +1034 -0
  761. package/dist/server-safe/rentals.test.js.map +1 -0
  762. package/dist/server-safe/routeOptimization.d.ts +155 -0
  763. package/dist/server-safe/routeOptimization.d.ts.map +1 -0
  764. package/dist/server-safe/routeOptimization.js +120 -0
  765. package/dist/server-safe/routeOptimization.js.map +1 -0
  766. package/dist/server-safe/routeOptimization.test.d.ts +2 -0
  767. package/dist/server-safe/routeOptimization.test.d.ts.map +1 -0
  768. package/dist/server-safe/routeOptimization.test.js +234 -0
  769. package/dist/server-safe/routeOptimization.test.js.map +1 -0
  770. package/dist/server-safe/routePlanFingerprint.d.ts +13 -0
  771. package/dist/server-safe/routePlanFingerprint.d.ts.map +1 -0
  772. package/dist/server-safe/routePlanFingerprint.js +49 -0
  773. package/dist/server-safe/routePlanFingerprint.js.map +1 -0
  774. package/dist/server-safe/routePlanFingerprint.test.d.ts +2 -0
  775. package/dist/server-safe/routePlanFingerprint.test.d.ts.map +1 -0
  776. package/dist/server-safe/routePlanFingerprint.test.js +68 -0
  777. package/dist/server-safe/routePlanFingerprint.test.js.map +1 -0
  778. package/dist/server-safe/scheduleListOrder.d.ts +18 -0
  779. package/dist/server-safe/scheduleListOrder.d.ts.map +1 -0
  780. package/dist/server-safe/scheduleListOrder.js +92 -0
  781. package/dist/server-safe/scheduleListOrder.js.map +1 -0
  782. package/dist/server-safe/scheduleListOrder.test.d.ts +2 -0
  783. package/dist/server-safe/scheduleListOrder.test.d.ts.map +1 -0
  784. package/dist/server-safe/scheduleListOrder.test.js +260 -0
  785. package/dist/server-safe/scheduleListOrder.test.js.map +1 -0
  786. package/dist/server-safe/serviceMinutes.d.ts +13 -0
  787. package/dist/server-safe/serviceMinutes.d.ts.map +1 -0
  788. package/dist/server-safe/serviceMinutes.js +38 -0
  789. package/dist/server-safe/serviceMinutes.js.map +1 -0
  790. package/dist/server-safe/serviceMinutes.test.d.ts +2 -0
  791. package/dist/server-safe/serviceMinutes.test.d.ts.map +1 -0
  792. package/dist/server-safe/serviceMinutes.test.js +86 -0
  793. package/dist/server-safe/serviceMinutes.test.js.map +1 -0
  794. package/dist/server-safe/settingsSearch.d.ts +24 -0
  795. package/dist/server-safe/settingsSearch.d.ts.map +1 -0
  796. package/dist/server-safe/settingsSearch.js +8 -0
  797. package/dist/server-safe/settingsSearch.js.map +1 -0
  798. package/dist/server-safe/supportChat.d.ts +59 -0
  799. package/dist/server-safe/supportChat.d.ts.map +1 -0
  800. package/dist/server-safe/supportChat.js +56 -0
  801. package/dist/server-safe/supportChat.js.map +1 -0
  802. package/dist/server-safe/templates.d.ts +15 -0
  803. package/dist/server-safe/templates.d.ts.map +1 -0
  804. package/dist/server-safe/templates.js +91 -0
  805. package/dist/server-safe/templates.js.map +1 -0
  806. package/dist/server-safe/templates.test.d.ts +2 -0
  807. package/dist/server-safe/templates.test.d.ts.map +1 -0
  808. package/dist/server-safe/templates.test.js +62 -0
  809. package/dist/server-safe/templates.test.js.map +1 -0
  810. package/dist/server-safe/trash.d.ts +50 -0
  811. package/dist/server-safe/trash.d.ts.map +1 -0
  812. package/dist/server-safe/trash.js +100 -0
  813. package/dist/server-safe/trash.js.map +1 -0
  814. package/dist/utils/LogHandler.d.ts +3 -0
  815. package/dist/utils/LogHandler.d.ts.map +1 -0
  816. package/dist/utils/LogHandler.js +16 -0
  817. package/dist/utils/LogHandler.js.map +1 -0
  818. package/dist/utils/convertSupabaseImagesToAssets.d.ts +28 -0
  819. package/dist/utils/convertSupabaseImagesToAssets.d.ts.map +1 -0
  820. package/dist/utils/convertSupabaseImagesToAssets.js +14 -0
  821. package/dist/utils/convertSupabaseImagesToAssets.js.map +1 -0
  822. package/package.json +37 -0
@@ -0,0 +1,703 @@
1
+ -- Facebook Messenger ingestion: conversation state, durable webhook receipt,
2
+ -- unified-inbox message rows, ad-referral lead creation, and the instant
3
+ -- greeting claim.
4
+ --
5
+ -- Mirrors the Meta Lead Ads ingestion architecture: everything in this
6
+ -- migration is additive and fail-closed. Messenger sync is disabled for
7
+ -- every existing company until a server route validates and enables the
8
+ -- configuration through set_facebook_messenger_settings(). The companion
9
+ -- RLS migration keeps the webhook receipt queue service-role only and makes
10
+ -- conversations read-only for company members (the unified inbox).
11
+ --
12
+ -- Message content itself lives in the existing public.message table, keyed
13
+ -- by a synthetic thread key ('fbm:<page_id>:<psid>') in client_number and a
14
+ -- synthetic line key ('fbm:<page_id>') in user_number, so the entire thread
15
+ -- stack (get_message_threads_page, get_messages_page, unread counts,
16
+ -- realtime, mark-read) works for Messenger without modification.
17
+
18
+ -- ============================================================
19
+ -- Existing-table additions
20
+ -- ============================================================
21
+
22
+ alter table "public"."settings_facebook_ads"
23
+ add column if not exists "messenger_sync_enabled" boolean
24
+ default false not null,
25
+ add column if not exists "messenger_greeting_enabled" boolean
26
+ default false not null,
27
+ -- Sent verbatim (no template variables) by the processor the moment an
28
+ -- ad-referral conversation receives its first message.
29
+ add column if not exists "messenger_greeting_template" text;
30
+
31
+ alter table "public"."settings_facebook_ads"
32
+ add constraint "settings_facebook_ads_messenger_sync_source_check"
33
+ check (not "messenger_sync_enabled" or "source_id" is not null),
34
+ add constraint "settings_facebook_ads_messenger_greeting_check"
35
+ check (
36
+ not "messenger_greeting_enabled"
37
+ or nullif(btrim("messenger_greeting_template"), '') is not null
38
+ );
39
+
40
+ -- Meta message id (mid) on the unified message table. Dedupes our own Send
41
+ -- API writes against their message_echoes webhook, and Business-Suite sends
42
+ -- against reprocessed webhook receipts.
43
+ -- A plain unique constraint (NULLs are distinct, so SMS rows never
44
+ -- conflict) rather than a partial index: PostgREST's upsert on_conflict
45
+ -- can only infer a full constraint.
46
+ alter table "public"."message"
47
+ add column if not exists "meta_message_id" text,
48
+ add constraint "message_meta_message_id_key" unique ("meta_message_id");
49
+
50
+ -- ============================================================
51
+ -- Conversation state
52
+ -- ============================================================
53
+
54
+ create table if not exists "public"."facebook_messenger_conversation" (
55
+ "id" uuid default gen_random_uuid() not null,
56
+ "created_at" timestamp with time zone default now() not null,
57
+ "updated_at" timestamp with time zone default now() not null,
58
+ "company_id" uuid not null,
59
+ -- Nullable so disconnecting a Page erases its token without erasing the
60
+ -- conversation history behind the inbox threads.
61
+ "page_id" uuid,
62
+ "meta_page_id" text not null,
63
+ -- Page-scoped user id: Meta's stable identity for this person on this
64
+ -- Page. Never a phone number.
65
+ "psid" text not null,
66
+ -- Snapshot so threads stay labeled after a Page disconnect.
67
+ "page_name" text not null,
68
+ -- The message.client_number value for this conversation's thread.
69
+ "thread_key" text not null,
70
+ "client_id" uuid,
71
+ "profile_name" text,
72
+ "profile_pic_url" text,
73
+ -- ad_referral = arrived from a click-to-Messenger ad (carries ad ids and
74
+ -- auto-creates a lead); organic = messaged the Page directly.
75
+ "source" text default 'organic' not null,
76
+ "meta_ad_id" text,
77
+ "meta_adset_id" text,
78
+ "meta_campaign_id" text,
79
+ "referral_ref" text,
80
+ -- Advances on every inbound customer message; the send routes compare it
81
+ -- against Meta's 24-hour standard messaging window.
82
+ "last_user_message_at" timestamp with time zone,
83
+ "last_page_message_at" timestamp with time zone,
84
+ -- The at-most-once claim for the instant greeting (set atomically by
85
+ -- finalize before the Send API call; a failed send never re-greets).
86
+ "greeting_sent_at" timestamp with time zone,
87
+ constraint "facebook_messenger_conversation_pkey" primary key ("id"),
88
+ constraint "facebook_messenger_conversation_company_id_id_key"
89
+ unique ("company_id", "id"),
90
+ constraint "facebook_messenger_conversation_page_psid_key"
91
+ unique ("meta_page_id", "psid"),
92
+ constraint "facebook_messenger_conversation_thread_key_key"
93
+ unique ("thread_key"),
94
+ constraint "facebook_messenger_conversation_company_id_fkey"
95
+ foreign key ("company_id") references "public"."company"("id")
96
+ on delete cascade,
97
+ constraint "facebook_messenger_conversation_company_page_fkey"
98
+ foreign key ("company_id", "page_id")
99
+ references "public"."facebook_ads_lead_page"("company_id", "id")
100
+ on delete set null ("page_id"),
101
+ constraint "facebook_messenger_conversation_client_id_fkey"
102
+ foreign key ("client_id") references "public"."client"("id")
103
+ on delete set null,
104
+ constraint "facebook_messenger_conversation_meta_page_id_check"
105
+ check ("meta_page_id" ~ '^[0-9]+$'),
106
+ constraint "facebook_messenger_conversation_psid_check"
107
+ check ("psid" ~ '^[0-9]+$'),
108
+ constraint "facebook_messenger_conversation_page_name_check"
109
+ check (nullif(btrim("page_name"), '') is not null),
110
+ constraint "facebook_messenger_conversation_thread_key_check"
111
+ check ("thread_key" = 'fbm:' || "meta_page_id" || ':' || "psid"),
112
+ constraint "facebook_messenger_conversation_source_check"
113
+ check ("source" in ('ad_referral', 'organic')),
114
+ constraint "facebook_messenger_conversation_meta_ad_id_check"
115
+ check ("meta_ad_id" is null or "meta_ad_id" ~ '^[0-9]+$'),
116
+ constraint "facebook_messenger_conversation_meta_adset_id_check"
117
+ check ("meta_adset_id" is null or "meta_adset_id" ~ '^[0-9]+$'),
118
+ constraint "facebook_messenger_conversation_meta_campaign_id_check"
119
+ check ("meta_campaign_id" is null or "meta_campaign_id" ~ '^[0-9]+$')
120
+ );
121
+
122
+ alter table "public"."facebook_messenger_conversation" owner to "postgres";
123
+
124
+ create index if not exists "facebook_messenger_conversation_company_idx"
125
+ on "public"."facebook_messenger_conversation"
126
+ ("company_id", "created_at" desc);
127
+
128
+ create index if not exists "facebook_messenger_conversation_client_idx"
129
+ on "public"."facebook_messenger_conversation" ("client_id")
130
+ where "client_id" is not null;
131
+
132
+ create or replace trigger "set_facebook_messenger_conversation_updated_at_trigger"
133
+ before update on "public"."facebook_messenger_conversation"
134
+ for each row execute function "public"."set_facebook_ads_updated_at"();
135
+
136
+ -- ============================================================
137
+ -- Durable webhook receipt queue
138
+ -- ============================================================
139
+
140
+ create table if not exists "public"."facebook_messenger_event" (
141
+ "id" uuid default gen_random_uuid() not null,
142
+ "created_at" timestamp with time zone default now() not null,
143
+ "updated_at" timestamp with time zone default now() not null,
144
+ "company_id" uuid not null,
145
+ "page_id" uuid,
146
+ "meta_page_id" text not null,
147
+ "psid" text not null,
148
+ -- message = inbound customer message; echo = a message the Page sent
149
+ -- (our Send API, Business Suite, or the mobile Pages app); postback =
150
+ -- button tap (Get Started); referral = ad/link attribution for an
151
+ -- existing conversation.
152
+ "event_kind" text not null,
153
+ -- Meta message id when the event carries one (message/echo).
154
+ "mid" text,
155
+ -- mid when present, otherwise a synthetic '<psid>:<timestamp>:<kind>'.
156
+ "dedupe_key" text not null,
157
+ "meta_timestamp" timestamp with time zone not null,
158
+ "webhook_payload" jsonb not null,
159
+ "conversation_id" uuid,
160
+ "message_id" uuid,
161
+ "status" text default 'pending' not null,
162
+ "skip_reason" text,
163
+ "received_count" integer default 1 not null,
164
+ "last_received_at" timestamp with time zone default now() not null,
165
+ "attempt_count" integer default 0 not null,
166
+ "next_attempt_at" timestamp with time zone default now() not null,
167
+ "last_attempt_at" timestamp with time zone,
168
+ "processed_at" timestamp with time zone,
169
+ "last_error" text,
170
+ constraint "facebook_messenger_event_pkey" primary key ("id"),
171
+ constraint "facebook_messenger_event_company_id_id_key"
172
+ unique ("company_id", "id"),
173
+ constraint "facebook_messenger_event_dedupe_key"
174
+ unique ("meta_page_id", "dedupe_key"),
175
+ constraint "facebook_messenger_event_company_id_fkey"
176
+ foreign key ("company_id") references "public"."company"("id")
177
+ on delete cascade,
178
+ constraint "facebook_messenger_event_company_page_fkey"
179
+ foreign key ("company_id", "page_id")
180
+ references "public"."facebook_ads_lead_page"("company_id", "id")
181
+ on delete set null ("page_id"),
182
+ constraint "facebook_messenger_event_conversation_fkey"
183
+ foreign key ("conversation_id")
184
+ references "public"."facebook_messenger_conversation"("id")
185
+ on delete set null,
186
+ constraint "facebook_messenger_event_message_fkey"
187
+ foreign key ("message_id") references "public"."message"("id")
188
+ on delete set null,
189
+ constraint "facebook_messenger_event_meta_page_id_check"
190
+ check ("meta_page_id" ~ '^[0-9]+$'),
191
+ constraint "facebook_messenger_event_psid_check"
192
+ check ("psid" ~ '^[0-9]+$'),
193
+ constraint "facebook_messenger_event_kind_check"
194
+ check ("event_kind" in ('message', 'echo', 'postback', 'referral')),
195
+ constraint "facebook_messenger_event_dedupe_key_check"
196
+ check (nullif(btrim("dedupe_key"), '') is not null),
197
+ constraint "facebook_messenger_event_webhook_payload_check"
198
+ check (jsonb_typeof("webhook_payload") = 'object'),
199
+ constraint "facebook_messenger_event_status_check"
200
+ check (
201
+ "status" in ('pending', 'processing', 'processed', 'skipped', 'dead')
202
+ ),
203
+ constraint "facebook_messenger_event_received_count_check"
204
+ check ("received_count" > 0),
205
+ constraint "facebook_messenger_event_attempt_count_check"
206
+ check ("attempt_count" >= 0),
207
+ constraint "facebook_messenger_event_processed_at_check"
208
+ check ("status" <> 'processed' or "processed_at" is not null)
209
+ );
210
+
211
+ alter table "public"."facebook_messenger_event" owner to "postgres";
212
+
213
+ create index if not exists "facebook_messenger_event_due_idx"
214
+ on "public"."facebook_messenger_event" ("next_attempt_at", "created_at")
215
+ where "status" = 'pending';
216
+
217
+ create index if not exists "facebook_messenger_event_company_history_idx"
218
+ on "public"."facebook_messenger_event" ("company_id", "created_at" desc);
219
+
220
+ create or replace trigger "set_facebook_messenger_event_updated_at_trigger"
221
+ before update on "public"."facebook_messenger_event"
222
+ for each row execute function "public"."set_facebook_ads_updated_at"();
223
+
224
+ -- ============================================================
225
+ -- Settings RPC
226
+ -- ============================================================
227
+
228
+ create or replace function "public"."set_facebook_messenger_settings"("p" jsonb)
229
+ returns void
230
+ language plpgsql
231
+ security definer
232
+ set search_path = ''
233
+ as $$
234
+ declare
235
+ "v_company_id" uuid := ("p" ->> 'company_id')::uuid;
236
+ "v_current" "public"."settings_facebook_ads"%rowtype;
237
+ "v_sync_enabled" boolean;
238
+ "v_greeting_enabled" boolean;
239
+ "v_greeting_template" text;
240
+ begin
241
+ if jsonb_typeof("p") <> 'object' or "v_company_id" is null then
242
+ raise exception 'company_id and an object payload are required'
243
+ using errcode = '22023';
244
+ end if;
245
+
246
+ if not exists (
247
+ select 1 from "public"."company" where "id" = "v_company_id"
248
+ ) then
249
+ raise exception 'Company does not exist' using errcode = '23503';
250
+ end if;
251
+
252
+ insert into "public"."settings_facebook_ads" ("company_id")
253
+ values ("v_company_id")
254
+ on conflict ("company_id") do nothing;
255
+
256
+ select * into "v_current"
257
+ from "public"."settings_facebook_ads"
258
+ where "company_id" = "v_company_id"
259
+ for update;
260
+
261
+ "v_sync_enabled" := case when "p" ? 'messenger_sync_enabled'
262
+ then coalesce(("p" ->> 'messenger_sync_enabled')::boolean, false)
263
+ else "v_current"."messenger_sync_enabled" end;
264
+ "v_greeting_enabled" := case when "p" ? 'messenger_greeting_enabled'
265
+ then coalesce(("p" ->> 'messenger_greeting_enabled')::boolean, false)
266
+ else "v_current"."messenger_greeting_enabled" end;
267
+ "v_greeting_template" := case when "p" ? 'messenger_greeting_template'
268
+ then nullif(btrim("p" ->> 'messenger_greeting_template'), '')
269
+ else "v_current"."messenger_greeting_template" end;
270
+
271
+ if "v_sync_enabled" and "v_current"."source_id" is null then
272
+ raise exception 'A Facebook Ads lead source is required before enabling Messenger sync'
273
+ using errcode = '23514';
274
+ end if;
275
+
276
+ if "v_greeting_enabled" and "v_greeting_template" is null then
277
+ raise exception 'The instant greeting requires a message'
278
+ using errcode = '23514';
279
+ end if;
280
+
281
+ update "public"."settings_facebook_ads"
282
+ set
283
+ "messenger_sync_enabled" = "v_sync_enabled",
284
+ "messenger_greeting_enabled" = "v_greeting_enabled",
285
+ "messenger_greeting_template" = "v_greeting_template"
286
+ where "company_id" = "v_company_id";
287
+ end;
288
+ $$;
289
+
290
+ alter function "public"."set_facebook_messenger_settings"(jsonb)
291
+ owner to "postgres";
292
+
293
+ -- ============================================================
294
+ -- Receipt, claim, and finalization RPCs
295
+ -- ============================================================
296
+
297
+ create or replace function "public"."enqueue_facebook_messenger_event"("p" jsonb)
298
+ returns jsonb
299
+ language plpgsql
300
+ security definer
301
+ set search_path = ''
302
+ as $$
303
+ declare
304
+ "v_page" "public"."facebook_ads_lead_page"%rowtype;
305
+ "v_settings" "public"."settings_facebook_ads"%rowtype;
306
+ "v_accepted" boolean := false;
307
+ "v_reason" text;
308
+ "v_event_id" uuid;
309
+ "v_received_count" integer;
310
+ "v_status" text;
311
+ "v_return_reason" text;
312
+ "v_webhook_payload" jsonb := coalesce("p" -> 'webhook_payload', '{}'::jsonb);
313
+ begin
314
+ if jsonb_typeof("p") <> 'object'
315
+ or jsonb_typeof("v_webhook_payload") <> 'object'
316
+ or coalesce("p" ->> 'meta_page_id', '') !~ '^[0-9]+$'
317
+ or coalesce("p" ->> 'psid', '') !~ '^[0-9]+$'
318
+ or coalesce("p" ->> 'event_kind', '')
319
+ not in ('message', 'echo', 'postback', 'referral')
320
+ or nullif(btrim(coalesce("p" ->> 'dedupe_key', '')), '') is null
321
+ or "p" ->> 'meta_timestamp' is null
322
+ then
323
+ raise exception 'Valid Meta Page, PSID, kind, dedupe key, timestamp, and payload are required'
324
+ using errcode = '22023';
325
+ end if;
326
+
327
+ select * into "v_page"
328
+ from "public"."facebook_ads_lead_page"
329
+ where "meta_page_id" = "p" ->> 'meta_page_id';
330
+
331
+ if not found then
332
+ return jsonb_build_object(
333
+ 'event_id', null,
334
+ 'accepted', false,
335
+ 'duplicate', false,
336
+ 'reason', 'page_not_configured'
337
+ );
338
+ end if;
339
+
340
+ select * into "v_settings"
341
+ from "public"."settings_facebook_ads"
342
+ where "company_id" = "v_page"."company_id";
343
+
344
+ "v_accepted" := "v_page"."is_enabled"
345
+ and "v_page"."subscription_status" = 'subscribed'
346
+ and coalesce("v_settings"."messenger_sync_enabled", false);
347
+
348
+ "v_reason" := case
349
+ when not "v_page"."is_enabled" then 'page_disabled'
350
+ when "v_page"."subscription_status" <> 'subscribed'
351
+ then 'page_not_subscribed'
352
+ when not coalesce("v_settings"."messenger_sync_enabled", false)
353
+ then 'messenger_sync_disabled'
354
+ else null
355
+ end;
356
+
357
+ insert into "public"."facebook_messenger_event" (
358
+ "company_id", "page_id", "meta_page_id", "psid", "event_kind",
359
+ "mid", "dedupe_key", "meta_timestamp", "webhook_payload",
360
+ "status", "skip_reason"
361
+ ) values (
362
+ "v_page"."company_id",
363
+ "v_page"."id",
364
+ "p" ->> 'meta_page_id',
365
+ "p" ->> 'psid',
366
+ "p" ->> 'event_kind',
367
+ nullif(btrim(coalesce("p" ->> 'mid', '')), ''),
368
+ btrim("p" ->> 'dedupe_key'),
369
+ ("p" ->> 'meta_timestamp')::timestamp with time zone,
370
+ "v_webhook_payload",
371
+ case when "v_accepted" then 'pending' else 'skipped' end,
372
+ "v_reason"
373
+ )
374
+ on conflict ("meta_page_id", "dedupe_key") do update
375
+ set
376
+ "received_count" = "facebook_messenger_event"."received_count" + 1,
377
+ "last_received_at" = now()
378
+ returning "id", "received_count", "status", "skip_reason"
379
+ into "v_event_id", "v_received_count", "v_status", "v_return_reason";
380
+
381
+ return jsonb_build_object(
382
+ 'event_id', "v_event_id",
383
+ 'accepted', "v_status" <> 'skipped',
384
+ 'duplicate', "v_received_count" > 1,
385
+ 'reason', "v_return_reason"
386
+ );
387
+ end;
388
+ $$;
389
+
390
+ alter function "public"."enqueue_facebook_messenger_event"(jsonb)
391
+ owner to "postgres";
392
+
393
+ create or replace function "public"."claim_facebook_messenger_events"(
394
+ "batch_size" integer
395
+ )
396
+ returns setof "public"."facebook_messenger_event"
397
+ language sql
398
+ security definer
399
+ set search_path = ''
400
+ as $$
401
+ update "public"."facebook_messenger_event"
402
+ set
403
+ "status" = 'processing',
404
+ "attempt_count" = "attempt_count" + 1,
405
+ "last_attempt_at" = now()
406
+ where "id" in (
407
+ select "id"
408
+ from "public"."facebook_messenger_event"
409
+ where "status" = 'pending' and "next_attempt_at" <= now()
410
+ order by "next_attempt_at", "created_at"
411
+ limit least(greatest(coalesce("batch_size", 0), 0), 100)
412
+ for update skip locked
413
+ )
414
+ returning *;
415
+ $$;
416
+
417
+ alter function "public"."claim_facebook_messenger_events"(integer)
418
+ owner to "postgres";
419
+
420
+ -- The atomic heart of ingestion. One call per claimed event: upsert the
421
+ -- conversation, create the ad-referral lead (with its automation events),
422
+ -- write the unified-inbox message row, claim the instant greeting, and mark
423
+ -- the event processed — all or nothing.
424
+ create or replace function "public"."finalize_facebook_messenger_event"("p" jsonb)
425
+ returns jsonb
426
+ language plpgsql
427
+ security definer
428
+ set search_path = ''
429
+ as $$
430
+ declare
431
+ "v_event" "public"."facebook_messenger_event"%rowtype;
432
+ "v_settings" "public"."settings_facebook_ads"%rowtype;
433
+ "v_page" "public"."facebook_ads_lead_page"%rowtype;
434
+ "v_conversation" "public"."facebook_messenger_conversation"%rowtype;
435
+ "v_is_new" boolean := false;
436
+ "v_client_created" boolean := false;
437
+ "v_greeting_claimed" boolean := false;
438
+ "v_owner_user_id" uuid;
439
+ "v_message_id" uuid;
440
+ "v_content" text := nullif(btrim(coalesce("p" ->> 'content', '')), '');
441
+ "v_image_url" text := nullif(btrim(coalesce("p" ->> 'image_url', '')), '');
442
+ "v_video_url" text := nullif(btrim(coalesce("p" ->> 'video_url', '')), '');
443
+ "v_profile_name" text :=
444
+ nullif(btrim(coalesce("p" ->> 'profile_name', '')), '');
445
+ "v_profile_pic_url" text :=
446
+ nullif(btrim(coalesce("p" ->> 'profile_pic_url', '')), '');
447
+ "v_referral_ad_id" text := nullif("p" ->> 'meta_ad_id', '');
448
+ "v_referral_adset_id" text := nullif("p" ->> 'meta_adset_id', '');
449
+ "v_referral_campaign_id" text := nullif("p" ->> 'meta_campaign_id', '');
450
+ "v_referral_ref" text := nullif(btrim(coalesce("p" ->> 'referral_ref', '')), '');
451
+ "v_has_referral" boolean := coalesce(("p" ->> 'has_referral')::boolean, false);
452
+ "v_first_name" text;
453
+ "v_last_name" text;
454
+ begin
455
+ if jsonb_typeof("p") <> 'object' or ("p" ->> 'event_id') is null then
456
+ raise exception 'event_id and an object payload are required'
457
+ using errcode = '22023';
458
+ end if;
459
+
460
+ select * into "v_event"
461
+ from "public"."facebook_messenger_event"
462
+ where "id" = ("p" ->> 'event_id')::uuid
463
+ for update;
464
+
465
+ if not found or "v_event"."status" <> 'processing' then
466
+ raise exception 'Messenger event is not claimed for processing'
467
+ using errcode = '22023';
468
+ end if;
469
+
470
+ select * into "v_settings"
471
+ from "public"."settings_facebook_ads"
472
+ where "company_id" = "v_event"."company_id";
473
+
474
+ select * into "v_page"
475
+ from "public"."facebook_ads_lead_page"
476
+ where "meta_page_id" = "v_event"."meta_page_id";
477
+
478
+ select * into "v_conversation"
479
+ from "public"."facebook_messenger_conversation"
480
+ where "meta_page_id" = "v_event"."meta_page_id"
481
+ and "psid" = "v_event"."psid"
482
+ for update;
483
+
484
+ if not found then
485
+ "v_is_new" := true;
486
+ insert into "public"."facebook_messenger_conversation" (
487
+ "company_id", "page_id", "meta_page_id", "psid", "page_name",
488
+ "thread_key", "profile_name", "profile_pic_url", "source",
489
+ "meta_ad_id", "meta_adset_id", "meta_campaign_id", "referral_ref"
490
+ ) values (
491
+ "v_event"."company_id",
492
+ "v_event"."page_id",
493
+ "v_event"."meta_page_id",
494
+ "v_event"."psid",
495
+ coalesce("v_page"."page_name", 'Facebook Page'),
496
+ 'fbm:' || "v_event"."meta_page_id" || ':' || "v_event"."psid",
497
+ "v_profile_name",
498
+ "v_profile_pic_url",
499
+ case when "v_has_referral" then 'ad_referral' else 'organic' end,
500
+ "v_referral_ad_id",
501
+ "v_referral_adset_id",
502
+ "v_referral_campaign_id",
503
+ "v_referral_ref"
504
+ ) returning * into "v_conversation";
505
+ else
506
+ update "public"."facebook_messenger_conversation"
507
+ set
508
+ "profile_name" = coalesce("v_profile_name", "profile_name"),
509
+ "profile_pic_url" =
510
+ coalesce("v_profile_pic_url", "profile_pic_url"),
511
+ -- A referral arriving later upgrades an organic conversation to
512
+ -- ad_referral; attribution is never downgraded or overwritten.
513
+ "source" = case
514
+ when "v_has_referral" and "source" = 'organic'
515
+ then 'ad_referral'
516
+ else "source"
517
+ end,
518
+ "meta_ad_id" = coalesce("meta_ad_id", "v_referral_ad_id"),
519
+ "meta_adset_id" = coalesce("meta_adset_id", "v_referral_adset_id"),
520
+ "meta_campaign_id" =
521
+ coalesce("meta_campaign_id", "v_referral_campaign_id"),
522
+ "referral_ref" = coalesce("referral_ref", "v_referral_ref")
523
+ where "id" = "v_conversation"."id"
524
+ returning * into "v_conversation";
525
+ end if;
526
+
527
+ if "v_event"."event_kind" = 'message' then
528
+ update "public"."facebook_messenger_conversation"
529
+ set "last_user_message_at" = greatest(
530
+ coalesce("last_user_message_at", "v_event"."meta_timestamp"),
531
+ "v_event"."meta_timestamp"
532
+ )
533
+ where "id" = "v_conversation"."id"
534
+ returning * into "v_conversation";
535
+ elsif "v_event"."event_kind" = 'echo' then
536
+ update "public"."facebook_messenger_conversation"
537
+ set "last_page_message_at" = greatest(
538
+ coalesce("last_page_message_at", "v_event"."meta_timestamp"),
539
+ "v_event"."meta_timestamp"
540
+ )
541
+ where "id" = "v_conversation"."id"
542
+ returning * into "v_conversation";
543
+ end if;
544
+
545
+ -- Ad-referral conversations become leads (Andrew's locked policy:
546
+ -- organic DMs stay inbox-only). The client insert fires the existing
547
+ -- capture_automation_lead_created trigger (generic branch), and the
548
+ -- dedicated messenger_conversation_started event below carries the
549
+ -- conversation for messenger_client automation actions.
550
+ if "v_conversation"."client_id" is null
551
+ and "v_conversation"."source" = 'ad_referral'
552
+ and "v_event"."event_kind" in ('message', 'postback')
553
+ and coalesce("v_settings"."messenger_sync_enabled", false)
554
+ and "v_settings"."source_id" is not null
555
+ then
556
+ "v_first_name" := nullif(
557
+ btrim(split_part(coalesce("v_conversation"."profile_name", ''), ' ', 1)),
558
+ ''
559
+ );
560
+ "v_last_name" := nullif(btrim(substr(
561
+ coalesce("v_conversation"."profile_name", ''),
562
+ length(split_part(coalesce("v_conversation"."profile_name", ''), ' ', 1)) + 1
563
+ )), '');
564
+
565
+ insert into "public"."client" (
566
+ "company_id", "first_name", "last_name", "client_or_lead",
567
+ "source_id", "created_via",
568
+ "is_do_not_marketing_sms", "is_do_not_marketing_email"
569
+ ) values (
570
+ "v_event"."company_id",
571
+ "v_first_name",
572
+ "v_last_name",
573
+ 'lead'::"public"."client_or_lead_enum",
574
+ "v_settings"."source_id",
575
+ 'facebook_messenger',
576
+ -- No consent evidence exists for a Messenger conversation, so
577
+ -- both marketing channels start suppressed.
578
+ true,
579
+ true
580
+ ) returning "id" into "v_conversation"."client_id";
581
+
582
+ update "public"."facebook_messenger_conversation"
583
+ set "client_id" = "v_conversation"."client_id"
584
+ where "id" = "v_conversation"."id";
585
+
586
+ if "v_settings"."lead_tag_id" is not null and exists (
587
+ select 1 from "public"."client_tag"
588
+ where "id" = "v_settings"."lead_tag_id"
589
+ and "company_id" = "v_event"."company_id"
590
+ ) then
591
+ insert into "public"."client_tag_link" (
592
+ "company_id", "client_id", "client_tag_id"
593
+ ) values (
594
+ "v_event"."company_id",
595
+ "v_conversation"."client_id",
596
+ "v_settings"."lead_tag_id"
597
+ );
598
+ end if;
599
+
600
+ insert into "public"."automation_event" (
601
+ "company_id", "event_type", "client_id", "payload"
602
+ ) values (
603
+ "v_event"."company_id",
604
+ 'messenger_conversation_started',
605
+ "v_conversation"."client_id",
606
+ jsonb_build_object(
607
+ 'created_via', 'facebook_messenger',
608
+ 'conversation_id', "v_conversation"."id",
609
+ 'thread_key', "v_conversation"."thread_key",
610
+ 'meta_ad_id', "v_conversation"."meta_ad_id",
611
+ 'meta_adset_id', "v_conversation"."meta_adset_id",
612
+ 'meta_campaign_id', "v_conversation"."meta_campaign_id"
613
+ )
614
+ );
615
+
616
+ "v_client_created" := true;
617
+ end if;
618
+
619
+ -- The unified-inbox row. message.user_id is NOT NULL, so a company with
620
+ -- no owner (role_id=1) gets no thread row rather than a constraint
621
+ -- violation — the same trade the automation SMS sender makes.
622
+ if "v_event"."event_kind" in ('message', 'echo')
623
+ and ("v_content" is not null
624
+ or "v_image_url" is not null
625
+ or "v_video_url" is not null)
626
+ then
627
+ select "user_id" into "v_owner_user_id"
628
+ from "public"."user_role"
629
+ where "company_id" = "v_event"."company_id" and "role_id" = 1
630
+ limit 1;
631
+
632
+ if "v_owner_user_id" is not null then
633
+ insert into "public"."message" (
634
+ "company_id", "user_id", "client_id", "client_number",
635
+ "user_number", "content", "image", "video", "inbound",
636
+ "sent", "received", "pending", "read", "system",
637
+ "meta_message_id"
638
+ ) values (
639
+ "v_event"."company_id",
640
+ "v_owner_user_id",
641
+ "v_conversation"."client_id",
642
+ "v_conversation"."thread_key",
643
+ 'fbm:' || "v_event"."meta_page_id",
644
+ coalesce("v_content", ''),
645
+ "v_image_url",
646
+ "v_video_url",
647
+ "v_event"."event_kind" = 'message',
648
+ true,
649
+ true,
650
+ false,
651
+ "v_event"."event_kind" = 'echo',
652
+ false,
653
+ "v_event"."mid"
654
+ )
655
+ on conflict ("meta_message_id") do nothing
656
+ returning "id" into "v_message_id";
657
+ end if;
658
+ end if;
659
+
660
+ -- Instant greeting: claimed atomically here (greeting_sent_at flips
661
+ -- exactly once), sent by the processor right after this call returns.
662
+ -- At-most-once by design — a failed Send API call never re-greets.
663
+ if "v_event"."event_kind" = 'message'
664
+ and "v_conversation"."source" = 'ad_referral'
665
+ and "v_conversation"."greeting_sent_at" is null
666
+ and coalesce("v_settings"."messenger_greeting_enabled", false)
667
+ and nullif(btrim(coalesce(
668
+ "v_settings"."messenger_greeting_template", '')), '') is not null
669
+ then
670
+ update "public"."facebook_messenger_conversation"
671
+ set "greeting_sent_at" = now()
672
+ where "id" = "v_conversation"."id"
673
+ and "greeting_sent_at" is null;
674
+ "v_greeting_claimed" := found;
675
+ end if;
676
+
677
+ update "public"."facebook_messenger_event"
678
+ set
679
+ "conversation_id" = "v_conversation"."id",
680
+ "message_id" = "v_message_id",
681
+ "processed_at" = now(),
682
+ "status" = 'processed',
683
+ "skip_reason" = null,
684
+ "last_error" = null
685
+ where "id" = "v_event"."id";
686
+
687
+ return jsonb_build_object(
688
+ 'conversation_id', "v_conversation"."id",
689
+ 'client_id', "v_conversation"."client_id",
690
+ 'message_id', "v_message_id",
691
+ 'is_new_conversation', "v_is_new",
692
+ 'client_created', "v_client_created",
693
+ 'greeting_claimed', "v_greeting_claimed",
694
+ 'greeting_template', case when "v_greeting_claimed"
695
+ then "v_settings"."messenger_greeting_template" else null end,
696
+ 'psid', "v_conversation"."psid",
697
+ 'thread_key', "v_conversation"."thread_key"
698
+ );
699
+ end;
700
+ $$;
701
+
702
+ alter function "public"."finalize_facebook_messenger_event"(jsonb)
703
+ owner to "postgres";