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.
- package/README.md +53 -0
- package/dist/Provider.d.ts +21 -0
- package/dist/Provider.d.ts.map +1 -0
- package/dist/Provider.js +61 -0
- package/dist/Provider.js.map +1 -0
- package/dist/dist/Provider.d.ts +21 -0
- package/dist/dist/Provider.d.ts.map +1 -0
- package/dist/dist/Provider.js +61 -0
- package/dist/dist/Provider.js.map +1 -0
- package/dist/dist/index.d.ts +45 -0
- package/dist/dist/index.d.ts.map +1 -0
- package/dist/dist/index.js +61 -0
- package/dist/dist/index.js.map +1 -0
- package/dist/dist/interfaces/index.d.ts +1238 -0
- package/dist/dist/interfaces/index.d.ts.map +1 -0
- package/dist/dist/interfaces/index.js +3 -0
- package/dist/dist/interfaces/index.js.map +1 -0
- package/dist/dist/migrations/20260608222757_remote_schema.sql +5666 -0
- package/dist/dist/migrations/20260611174826_add_job_item_recurring_id_to_job_item.sql +7 -0
- package/dist/dist/migrations/20260625224612_add_dashboard_guided_tour_dismissed_to_settings_user.sql +5 -0
- package/dist/dist/migrations/20260627031433_support_chat_tables.sql +115 -0
- package/dist/dist/migrations/20260627031434_support_chat_rls.sql +37 -0
- package/dist/dist/migrations/20260704170209_add_estimate_scheduling.sql +121 -0
- package/dist/dist/migrations/20260704170210_add_estimate_scheduling_rls.sql +42 -0
- package/dist/dist/migrations/20260704235034_add_estimate_reminder_settings.sql +11 -0
- package/dist/dist/migrations/20260707003825_blocked_number_table.sql +32 -0
- package/dist/dist/migrations/20260707003826_blocked_number_rls.sql +22 -0
- package/dist/dist/migrations/20260709191055_sms_opt_out_table.sql +38 -0
- package/dist/dist/migrations/20260709191056_sms_opt_out_rls.sql +21 -0
- package/dist/dist/migrations/20260709214507_job_time_entry_table.sql +70 -0
- package/dist/dist/migrations/20260709214508_job_time_entry_rls.sql +21 -0
- package/dist/dist/migrations/20260711185956_phone_call_table.sql +99 -0
- package/dist/dist/migrations/20260711185957_phone_call_rls.sql +25 -0
- package/dist/dist/migrations/20260712014705_ai_voice_assistant_settings.sql +71 -0
- package/dist/dist/migrations/20260712014706_ai_voice_assistant_settings_rls.sql +14 -0
- package/dist/dist/migrations/20260712014707_ai_prompt_templates.sql +28 -0
- package/dist/dist/migrations/20260712014708_ai_prompt_templates_rls.sql +5 -0
- package/dist/dist/migrations/20260712014709_ai_prompt_templates_seed.sql +77 -0
- package/dist/dist/migrations/20260715011550_reminder_dispatch_table.sql +47 -0
- package/dist/dist/migrations/20260715011551_reminder_dispatch_rls.sql +22 -0
- package/dist/dist/migrations/20260715192923_dedup_sequence_contact_add_unique_constraint.sql +27 -0
- package/dist/dist/migrations/20260716194420_add_employee_location_tracking.sql +146 -0
- package/dist/dist/migrations/20260716194421_add_employee_location_tracking_rls.sql +154 -0
- package/dist/dist/migrations/20260716194422_get_client_map_last_completed_jobs.sql +28 -0
- package/dist/dist/migrations/20260717144535_add_blast_email_invalid_skipped_count.sql +2 -0
- package/dist/dist/migrations/20260717162900_create_blast_email_chunk.sql +36 -0
- package/dist/dist/migrations/20260717162901_add_blast_email_chunk_rls.sql +5 -0
- package/dist/dist/migrations/20260717162902_add_blast_email_chunk_progress_columns.sql +3 -0
- package/dist/dist/migrations/20260717162903_add_blast_email_bounce_tracking_columns.sql +4 -0
- package/dist/dist/migrations/20260717162904_create_email_hard_bounced.sql +23 -0
- package/dist/dist/migrations/20260717162905_add_email_hard_bounced_rls.sql +5 -0
- package/dist/dist/migrations/20260717164837_add_sequence_contact_sent_at.sql +19 -0
- package/dist/dist/migrations/20260717170920_add_sequence_contact_claim_index.sql +12 -0
- package/dist/dist/migrations/20260719215139_create_outbound_event.sql +59 -0
- package/dist/dist/migrations/20260719215140_create_outbound_event_rls.sql +16 -0
- package/dist/dist/migrations/20260719215141_create_webhook_delivery.sql +99 -0
- package/dist/dist/migrations/20260719215142_create_webhook_delivery_rls.sql +11 -0
- package/dist/dist/migrations/20260719215143_outbound_event_triggers.sql +219 -0
- package/dist/dist/migrations/20260719215144_create_api_key.sql +34 -0
- package/dist/dist/migrations/20260719215146_create_api_key_rls.sql +12 -0
- package/dist/dist/migrations/20260719215147_webhook_subscription_add_secret_active.sql +28 -0
- package/dist/dist/migrations/20260719215148_api_aggregate_create_functions.sql +479 -0
- package/dist/dist/migrations/20260721174837_webhook_subscription_generic_endpoints.sql +41 -0
- package/dist/dist/migrations/20260721185631_webhook_outbox_retention.sql +87 -0
- package/dist/dist/migrations/20260721190304_create_qb_sync_task.sql +120 -0
- package/dist/dist/migrations/20260721190306_qb_sync_task_rls.sql +8 -0
- package/dist/dist/migrations/20260721190307_qb_mapping_orphan_fks.sql +29 -0
- package/dist/dist/migrations/20260721190308_qb_task_retention.sql +90 -0
- package/dist/dist/migrations/20260721234401_create_permission_role.sql +83 -0
- package/dist/dist/migrations/20260721234402_permission_role_rls.sql +22 -0
- package/dist/dist/migrations/20260721234403_user_role_add_permission_role_id.sql +12 -0
- package/dist/dist/migrations/20260721234404_seed_permission_roles.sql +100 -0
- package/dist/dist/migrations/20260721234405_backfill_user_role_permission_role_id.sql +20 -0
- package/dist/dist/migrations/20260722193800_permission_role_add_manage_employees.sql +56 -0
- package/dist/dist/migrations/20260723025606_staging_new_employee_company_read_rls.sql +10 -0
- package/dist/dist/migrations/20260723134328_create_google_lsa_integration.sql +1016 -0
- package/dist/dist/migrations/20260723134329_google_lsa_integration_rls.sql +205 -0
- package/dist/dist/migrations/20260723150640_google_lsa_hardening.sql +169 -0
- package/dist/dist/migrations/20260723150641_google_lsa_hardening_rls.sql +12 -0
- package/dist/dist/migrations/20260724230721_google_lsa_facebook_exclusivity_attach.sql +104 -0
- package/dist/dist/migrations/20260724230722_google_lsa_facebook_exclusivity_attach_rls.sql +20 -0
- package/dist/dist/migrations/20260725172630_add_message_pagination_and_search.sql +265 -0
- package/dist/dist/migrations/20260725172631_add_message_pagination_and_search_rls.sql +72 -0
- package/dist/dist/migrations/20260725172632_optimize_message_thread_pagination_search.sql +245 -0
- package/dist/dist/migrations/20260725172633_harden_message_search_and_photo_pagination.sql +256 -0
- package/dist/dist/migrations/20260725172634_fix_message_thread_line_filter.sql +250 -0
- package/dist/dist/migrations/20260725174948_google_lsa_attach_bing_exclusivity_guard.sql +23 -0
- package/dist/dist/migrations/20260725200430_client_portal_settings.sql +41 -0
- package/dist/dist/migrations/20260725200431_client_portal_settings_rls.sql +21 -0
- package/dist/dist/migrations/20260725200433_client_portal_auth_tables.sql +81 -0
- package/dist/dist/migrations/20260725200434_client_portal_auth_rls.sql +18 -0
- package/dist/dist/migrations/20260725200435_portal_claim_login_attempt.sql +36 -0
- package/dist/dist/migrations/20260725200436_portal_appointment_request.sql +39 -0
- package/dist/dist/migrations/20260725200437_portal_appointment_request_rls.sql +10 -0
- package/dist/dist/migrations/20260725210000_google_reserve_integration.sql +85 -0
- package/dist/dist/migrations/20260725210001_google_reserve_integration_rls.sql +10 -0
- package/dist/dist/migrations/20260725220000_add_analytics_query_indexes.sql +47 -0
- package/dist/dist/migrations/20260725230000_onboarding_preload_data.sql +1074 -0
- package/dist/dist/migrations/20260725230001_onboarding_preload_data_rls.sql +40 -0
- package/dist/dist/migrations/20260725230002_add_pricebook_query_indexes.sql +13 -0
- package/dist/dist/migrations/20260726000000_facebook_ads_integration.sql +1538 -0
- package/dist/dist/migrations/20260726000001_facebook_ads_integration_rls.sql +356 -0
- package/dist/dist/migrations/20260726000002_facebook_ads_attach_lsa_exclusivity_guard.sql +25 -0
- package/dist/dist/migrations/20260726000003_facebook_ads_attach_bing_exclusivity_guard.sql +22 -0
- package/dist/dist/migrations/20260726010000_create_bing_ads_integration.sql +1112 -0
- package/dist/dist/migrations/20260726010001_bing_ads_integration_rls.sql +227 -0
- package/dist/dist/migrations/20260726220000_add_document_theme_settings.sql +11 -0
- package/dist/dist/migrations/20260726220001_update_document_theme_comments.sql +7 -0
- package/dist/dist/migrations/20260727210319_evolve_tier_for_pricing.sql +68 -0
- package/dist/dist/migrations/20260727210320_create_billing_addon.sql +85 -0
- package/dist/dist/migrations/20260727210321_create_billing_addon_rls.sql +21 -0
- package/dist/dist/migrations/20260728213930_create_usage_metering.sql +189 -0
- package/dist/dist/migrations/20260728213931_create_usage_metering_rls.sql +32 -0
- package/dist/dist/migrations/20260729004305_marketing_charge_txn_functions.sql +242 -0
- package/dist/dist/migrations/20260729004306_marketing_charge_txn_functions_rls.sql +37 -0
- package/dist/dist/migrations/20260729005524_update_deduct_from_balance_errcode.sql +42 -0
- package/dist/dist/migrations/20260730193601_fix_deduct_from_balance_lost_update.sql +46 -0
- package/dist/dist/migrations/20260730193602_add_blast_sms_chunk_reaper_columns.sql +27 -0
- package/dist/dist/migrations/20260731011415_create_google_calendar_connection.sql +84 -0
- package/dist/dist/migrations/20260731011416_google_calendar_connection_rls.sql +23 -0
- package/dist/dist/migrations/20260731011417_create_google_calendar_sync.sql +157 -0
- package/dist/dist/migrations/20260731011418_google_calendar_sync_rls.sql +26 -0
- package/dist/dist/migrations/20260731011419_event_outbound_triggers.sql +28 -0
- package/dist/dist/migrations/20260731011420_add_google_calendar_addon_key.sql +24 -0
- package/dist/dist/migrations/20260731011421_gcal_task_retention.sql +109 -0
- package/dist/dist/migrations/20260731234245_create_estimate_proposal.sql +157 -0
- package/dist/dist/migrations/20260731234247_estimate_proposal_rls.sql +46 -0
- package/dist/dist/migrations/20260731234248_add_proposal_estimate_settings.sql +17 -0
- package/dist/dist/migrations/20260731234249_add_estimate_proposals_addon_key.sql +25 -0
- package/dist/dist/migrations/20260731234250_approve_estimate_proposal_function.sql +133 -0
- package/dist/dist/migrations/20260801010609_save_estimate_proposal_function.sql +154 -0
- package/dist/dist/migrations/20260801173554_add_hide_autopilot_branding_setting.sql +6 -0
- package/dist/dist/migrations/20260806230917_add_client_billing_address_columns.sql +9 -0
- package/dist/dist/migrations/20260806230944_api_create_client_billing_address.sql +93 -0
- package/dist/dist/migrations/20260807014702_create_parent_id_company_id_keys.sql +20 -0
- package/dist/dist/migrations/20260807014703_create_contract_template.sql +30 -0
- package/dist/dist/migrations/20260807014704_create_contract.sql +233 -0
- package/dist/dist/migrations/20260807014705_create_contract_signature.sql +39 -0
- package/dist/dist/migrations/20260807014706_create_item_contract_requirement.sql +38 -0
- package/dist/dist/migrations/20260807014707_create_settings_contract.sql +23 -0
- package/dist/dist/migrations/20260807014708_contract_rls.sql +74 -0
- package/dist/dist/migrations/20260807014709_sign_contract_function.sql +92 -0
- package/dist/dist/migrations/20260807014710_create_settings_rental.sql +34 -0
- package/dist/dist/migrations/20260807014711_create_saved_location.sql +56 -0
- package/dist/dist/migrations/20260807014712_create_rental_task_option.sql +52 -0
- package/dist/dist/migrations/20260807014713_create_asset.sql +90 -0
- package/dist/dist/migrations/20260807014714_add_job_schedule_asset_fkeys.sql +39 -0
- package/dist/dist/migrations/20260807014715_rental_rls.sql +48 -0
- package/dist/dist/migrations/20260807014716_add_job_schedule_any_time.sql +7 -0
- package/dist/dist/migrations/20260807014717_add_job_schedule_target_location.sql +48 -0
- package/dist/dist/migrations/20260807014718_job_schedule_completion_guard.sql +53 -0
- package/dist/dist/migrations/20260807014719_add_job_schedule_list_sort_key.sql +7 -0
- package/dist/dist/migrations/20260807014720_add_item_duration.sql +11 -0
- package/dist/dist/migrations/20260807014721_add_settings_booking_enforce_rental_availability.sql +9 -0
- package/dist/dist/migrations/20260807014722_add_job_unsigned_rental_agreement.sql +10 -0
- package/dist/dist/migrations/20260807014723_add_item_size.sql +12 -0
- package/dist/dist/migrations/20260809193533_add_booking_path_button_labels.sql +11 -0
- package/dist/dist/migrations/20260809231721_add_route_distance_cache.sql +37 -0
- package/dist/dist/migrations/20260809231722_route_distance_cache_rls.sql +15 -0
- package/dist/dist/migrations/20260809231723_apply_rental_route_plan_function.sql +275 -0
- package/dist/dist/migrations/20260810171550_add_settings_job_default_job_types.sql +9 -0
- package/dist/dist/migrations/20260810212430_backfill_rental_task_option_sort_order.sql +61 -0
- package/dist/dist/migrations/20260811224317_add_settings_user_dnd_hint_dismissed.sql +9 -0
- package/dist/dist/migrations/20260813174503_repair_user_role_email_drift.sql +59 -0
- package/dist/dist/migrations/20260813174504_sync_user_role_email_trigger.sql +30 -0
- package/dist/dist/migrations/20260813175210_add_event_list_sort_key.sql +5 -0
- package/dist/dist/migrations/20260814172222_add_client_auto_bill_on_completion.sql +6 -0
- package/dist/dist/migrations/20260816160252_create_automation_rule.sql +99 -0
- package/dist/dist/migrations/20260816160253_automation_rule_rls.sql +19 -0
- package/dist/dist/migrations/20260816160254_create_settings_automation.sql +36 -0
- package/dist/dist/migrations/20260816160255_settings_automation_rls.sql +18 -0
- package/dist/dist/migrations/20260816160256_create_automation_event.sql +71 -0
- package/dist/dist/migrations/20260816160257_automation_event_rls.sql +12 -0
- package/dist/dist/migrations/20260816160258_create_automation_run.sql +129 -0
- package/dist/dist/migrations/20260816160259_automation_run_rls.sql +19 -0
- package/dist/dist/migrations/20260816160300_add_client_created_via.sql +25 -0
- package/dist/dist/migrations/20260816160301_add_estimate_sent_at.sql +39 -0
- package/dist/dist/migrations/20260816160302_add_message_automation_ref.sql +10 -0
- package/dist/dist/migrations/20260816160303_automation_event_triggers.sql +236 -0
- package/dist/dist/migrations/20260816160304_automation_retention.sql +142 -0
- package/dist/dist/migrations/20260816202404_add_automation_center_addon_key.sql +26 -0
- package/dist/dist/migrations/20260816225501_widen_automation_rule_trigger_action_checks.sql +25 -0
- package/dist/dist/migrations/20260816225502_widen_automation_event_type_check.sql +18 -0
- package/dist/dist/migrations/20260816225503_add_invoice_id_to_automation_tables.sql +18 -0
- package/dist/dist/migrations/20260816225504_add_job_rescheduled_capture_trigger.sql +51 -0
- package/dist/dist/migrations/20260816225505_add_lead_converted_capture_trigger.sql +26 -0
- package/dist/dist/migrations/20260816225506_fix_booking_request_import_guard.sql +27 -0
- package/dist/dist/migrations/20260816225507_widen_outbound_event_for_automation.sql +38 -0
- package/dist/dist/migrations/20260817002626_add_user_last_login_platform_columns.sql +14 -0
- package/dist/dist/migrations/20260817221703_create_deletion.sql +34 -0
- package/dist/dist/migrations/20260817221707_deletion_rls.sql +21 -0
- package/dist/dist/migrations/20260817221708_add_soft_delete_columns.sql +82 -0
- package/dist/dist/migrations/20260817221709_trash_functions.sql +434 -0
- package/dist/dist/migrations/20260817221710_outbound_event_soft_delete.sql +55 -0
- package/dist/dist/migrations/20260817221711_automation_soft_delete_events.sql +77 -0
- package/dist/dist/migrations/20260817221712_fix_estimate_address_cascade.sql +14 -0
- package/dist/dist/migrations/20260817232630_trash_batch_function.sql +67 -0
- package/dist/dist/migrations/20260819170204_create_email_spam_complaint.sql +23 -0
- package/dist/dist/migrations/20260819170205_add_email_spam_complaint_rls.sql +5 -0
- package/dist/dist/migrations/20260819170206_email_unsubscribed_upsert_constraints.sql +14 -0
- package/dist/dist/migrations/20260819180151_get_suppressed_emails_function.sql +23 -0
- package/dist/dist/migrations/20260819191143_is_deleted_backfill_guard.sql +29 -0
- package/dist/dist/migrations/20260819191144_trash_functions_no_dual_write.sql +319 -0
- package/dist/dist/migrations/20260819191145_client_map_jobs_deleted_at.sql +33 -0
- package/dist/dist/migrations/20260819191147_booking_declined_deleted_at.sql +28 -0
- package/dist/dist/migrations/20260819191148_onboarding_preload_no_address_is_deleted.sql +1019 -0
- package/dist/dist/migrations/20260820222756_add_settings_job_hide_task_timer.sql +2 -0
- package/dist/dist/migrations/20260824234151_add_blast_chunk_recipients.sql +13 -0
- package/dist/dist/migrations/20260824234152_add_blast_pause_cancel_columns.sql +10 -0
- package/dist/dist/migrations/20260825014725_get_job_ids_in_range.sql +42 -0
- package/dist/dist/migrations/20260825194452_add_failed_job_status.sql +15 -0
- package/dist/dist/migrations/20260825194457_remove_take_to_rental_task_options.sql +24 -0
- package/dist/dist/migrations/20260825194458_remove_take_to_job_schedules.sql +12 -0
- package/dist/dist/migrations/20260825194459_rework_apply_rental_route_plan_no_take_to.sql +168 -0
- package/dist/dist/migrations/20260825194500_drop_job_schedule_target_location.sql +24 -0
- package/dist/dist/migrations/20260825194501_add_job_schedule_size.sql +17 -0
- package/dist/dist/migrations/20260825233001_add_job_schedule_id_company_id_key.sql +11 -0
- package/dist/dist/migrations/20260825233002_create_route_plan.sql +52 -0
- package/dist/dist/migrations/20260825233003_create_route_plan_stop.sql +159 -0
- package/dist/dist/migrations/20260825233004_route_plan_rls.sql +32 -0
- package/dist/dist/migrations/20260825233005_apply_rental_route_plan_v2.sql +351 -0
- package/dist/dist/migrations/20260826150934_facebook_ads_lead_ingestion.sql +1711 -0
- package/dist/dist/migrations/20260826151141_facebook_ads_lead_ingestion_rls_v2.sql +43 -0
- package/dist/dist/migrations/20260826234722_facebook_messenger_ingestion.sql +703 -0
- package/dist/dist/migrations/20260826234723_facebook_messenger_ingestion_rls.sql +80 -0
- package/dist/dist/migrations/20260826234724_widen_automations_messenger.sql +46 -0
- package/dist/dist/migrations/20260827100001_add_route_plan_minutes.sql +10 -0
- package/dist/dist/migrations/20260827100002_add_route_plan_stop_leg_minutes.sql +9 -0
- package/dist/dist/migrations/20260827100003_apply_rental_route_plan_v3.sql +341 -0
- package/dist/dist/migrations/20260827230346_apply_rental_route_plan_v4.sql +366 -0
- package/dist/dist/migrations/20260829090911_create_fleet_schema.sql +3698 -0
- package/dist/dist/migrations/20260829090912_fleet_rls.sql +1011 -0
- package/dist/dist/migrations/20260831102212_add_online_booking_address_display.sql +8 -0
- package/dist/dist/providers/AddressProvider.d.ts +9 -0
- package/dist/dist/providers/AddressProvider.d.ts.map +1 -0
- package/dist/dist/providers/AddressProvider.js +207 -0
- package/dist/dist/providers/AddressProvider.js.map +1 -0
- package/dist/dist/providers/AutomationsProvider.d.ts +11 -0
- package/dist/dist/providers/AutomationsProvider.d.ts.map +1 -0
- package/dist/dist/providers/AutomationsProvider.js +170 -0
- package/dist/dist/providers/AutomationsProvider.js.map +1 -0
- package/dist/dist/providers/BlockedNumbersProvider.d.ts +13 -0
- package/dist/dist/providers/BlockedNumbersProvider.d.ts.map +1 -0
- package/dist/dist/providers/BlockedNumbersProvider.js +71 -0
- package/dist/dist/providers/BlockedNumbersProvider.js.map +1 -0
- package/dist/dist/providers/CategoryProvider.d.ts +8 -0
- package/dist/dist/providers/CategoryProvider.d.ts.map +1 -0
- package/dist/dist/providers/CategoryProvider.js +95 -0
- package/dist/dist/providers/CategoryProvider.js.map +1 -0
- package/dist/dist/providers/ClientProvider.d.ts +39 -0
- package/dist/dist/providers/ClientProvider.d.ts.map +1 -0
- package/dist/dist/providers/ClientProvider.js +253 -0
- package/dist/dist/providers/ClientProvider.js.map +1 -0
- package/dist/dist/providers/CompanyProvider.d.ts +7 -0
- package/dist/dist/providers/CompanyProvider.d.ts.map +1 -0
- package/dist/dist/providers/CompanyProvider.js +114 -0
- package/dist/dist/providers/CompanyProvider.js.map +1 -0
- package/dist/dist/providers/DashboardProvider.d.ts +78 -0
- package/dist/dist/providers/DashboardProvider.d.ts.map +1 -0
- package/dist/dist/providers/DashboardProvider.js +568 -0
- package/dist/dist/providers/DashboardProvider.js.map +1 -0
- package/dist/dist/providers/DiscountProvider.d.ts +8 -0
- package/dist/dist/providers/DiscountProvider.d.ts.map +1 -0
- package/dist/dist/providers/DiscountProvider.js +92 -0
- package/dist/dist/providers/DiscountProvider.js.map +1 -0
- package/dist/dist/providers/EmployeesProvider.d.ts +6 -0
- package/dist/dist/providers/EmployeesProvider.d.ts.map +1 -0
- package/dist/dist/providers/EmployeesProvider.js +185 -0
- package/dist/dist/providers/EmployeesProvider.js.map +1 -0
- package/dist/dist/providers/EstimatesProvider.d.ts +16 -0
- package/dist/dist/providers/EstimatesProvider.d.ts.map +1 -0
- package/dist/dist/providers/EstimatesProvider.js +251 -0
- package/dist/dist/providers/EstimatesProvider.js.map +1 -0
- package/dist/dist/providers/EventsProvider.d.ts +4 -0
- package/dist/dist/providers/EventsProvider.d.ts.map +1 -0
- package/dist/dist/providers/EventsProvider.js +24 -0
- package/dist/dist/providers/EventsProvider.js.map +1 -0
- package/dist/dist/providers/FilesProvider.d.ts +17 -0
- package/dist/dist/providers/FilesProvider.d.ts.map +1 -0
- package/dist/dist/providers/FilesProvider.js +201 -0
- package/dist/dist/providers/FilesProvider.js.map +1 -0
- package/dist/dist/providers/InvoicesProvider.d.ts +13 -0
- package/dist/dist/providers/InvoicesProvider.d.ts.map +1 -0
- package/dist/dist/providers/InvoicesProvider.js +207 -0
- package/dist/dist/providers/InvoicesProvider.js.map +1 -0
- package/dist/dist/providers/ItemProvider.d.ts +9 -0
- package/dist/dist/providers/ItemProvider.d.ts.map +1 -0
- package/dist/dist/providers/ItemProvider.js +201 -0
- package/dist/dist/providers/ItemProvider.js.map +1 -0
- package/dist/dist/providers/JobSourceProvider.d.ts +8 -0
- package/dist/dist/providers/JobSourceProvider.d.ts.map +1 -0
- package/dist/dist/providers/JobSourceProvider.js +75 -0
- package/dist/dist/providers/JobSourceProvider.js.map +1 -0
- package/dist/dist/providers/JobTypeProvider.d.ts +8 -0
- package/dist/dist/providers/JobTypeProvider.d.ts.map +1 -0
- package/dist/dist/providers/JobTypeProvider.js +75 -0
- package/dist/dist/providers/JobTypeProvider.js.map +1 -0
- package/dist/dist/providers/JobsProvider.d.ts +35 -0
- package/dist/dist/providers/JobsProvider.d.ts.map +1 -0
- package/dist/dist/providers/JobsProvider.js +863 -0
- package/dist/dist/providers/JobsProvider.js.map +1 -0
- package/dist/dist/providers/MessagesProvider.d.ts +33 -0
- package/dist/dist/providers/MessagesProvider.d.ts.map +1 -0
- package/dist/dist/providers/MessagesProvider.js +415 -0
- package/dist/dist/providers/MessagesProvider.js.map +1 -0
- package/dist/dist/providers/PaymentProvider.d.ts +9 -0
- package/dist/dist/providers/PaymentProvider.d.ts.map +1 -0
- package/dist/dist/providers/PaymentProvider.js +48 -0
- package/dist/dist/providers/PaymentProvider.js.map +1 -0
- package/dist/dist/providers/PermissionRolesProvider.d.ts +5 -0
- package/dist/dist/providers/PermissionRolesProvider.d.ts.map +1 -0
- package/dist/dist/providers/PermissionRolesProvider.js +30 -0
- package/dist/dist/providers/PermissionRolesProvider.js.map +1 -0
- package/dist/dist/providers/PhoneNumberProvider.d.ts +12 -0
- package/dist/dist/providers/PhoneNumberProvider.d.ts.map +1 -0
- package/dist/dist/providers/PhoneNumberProvider.js +184 -0
- package/dist/dist/providers/PhoneNumberProvider.js.map +1 -0
- package/dist/dist/providers/ProfileProvider.d.ts +6 -0
- package/dist/dist/providers/ProfileProvider.d.ts.map +1 -0
- package/dist/dist/providers/ProfileProvider.js +71 -0
- package/dist/dist/providers/ProfileProvider.js.map +1 -0
- package/dist/dist/providers/RentalsProvider.d.ts +28 -0
- package/dist/dist/providers/RentalsProvider.d.ts.map +1 -0
- package/dist/dist/providers/RentalsProvider.js +438 -0
- package/dist/dist/providers/RentalsProvider.js.map +1 -0
- package/dist/dist/providers/SettingsBookingProvider.d.ts +9 -0
- package/dist/dist/providers/SettingsBookingProvider.d.ts.map +1 -0
- package/dist/dist/providers/SettingsBookingProvider.js +163 -0
- package/dist/dist/providers/SettingsBookingProvider.js.map +1 -0
- package/dist/dist/providers/SettingsProvider.d.ts +8 -0
- package/dist/dist/providers/SettingsProvider.d.ts.map +1 -0
- package/dist/dist/providers/SettingsProvider.js +86 -0
- package/dist/dist/providers/SettingsProvider.js.map +1 -0
- package/dist/dist/providers/TagsProvider.d.ts +12 -0
- package/dist/dist/providers/TagsProvider.d.ts.map +1 -0
- package/dist/dist/providers/TagsProvider.js +210 -0
- package/dist/dist/providers/TagsProvider.js.map +1 -0
- package/dist/dist/providers/TimeCardProvider.d.ts +8 -0
- package/dist/dist/providers/TimeCardProvider.d.ts.map +1 -0
- package/dist/dist/providers/TimeCardProvider.js +93 -0
- package/dist/dist/providers/TimeCardProvider.js.map +1 -0
- package/dist/dist/providers/TrashProvider.d.ts +13 -0
- package/dist/dist/providers/TrashProvider.d.ts.map +1 -0
- package/dist/dist/providers/TrashProvider.js +98 -0
- package/dist/dist/providers/TrashProvider.js.map +1 -0
- package/dist/dist/providers/dashboardAnalytics.d.ts +9 -0
- package/dist/dist/providers/dashboardAnalytics.d.ts.map +1 -0
- package/dist/dist/providers/dashboardAnalytics.js +41 -0
- package/dist/dist/providers/dashboardAnalytics.js.map +1 -0
- package/dist/dist/providers/dashboardAnalytics.test.d.ts +2 -0
- package/dist/dist/providers/dashboardAnalytics.test.d.ts.map +1 -0
- package/dist/dist/providers/dashboardAnalytics.test.js +111 -0
- package/dist/dist/providers/dashboardAnalytics.test.js.map +1 -0
- package/dist/dist/server-safe/BlockedNumberFunctions.d.ts +11 -0
- package/dist/dist/server-safe/BlockedNumberFunctions.d.ts.map +1 -0
- package/dist/dist/server-safe/BlockedNumberFunctions.js +16 -0
- package/dist/dist/server-safe/BlockedNumberFunctions.js.map +1 -0
- package/dist/dist/server-safe/EmployeeFunctions.d.ts +14 -0
- package/dist/dist/server-safe/EmployeeFunctions.d.ts.map +1 -0
- package/dist/dist/server-safe/EmployeeFunctions.js +70 -0
- package/dist/dist/server-safe/EmployeeFunctions.js.map +1 -0
- package/dist/dist/server-safe/EmployeeLocationFunctions.d.ts +7 -0
- package/dist/dist/server-safe/EmployeeLocationFunctions.d.ts.map +1 -0
- package/dist/dist/server-safe/EmployeeLocationFunctions.js +47 -0
- package/dist/dist/server-safe/EmployeeLocationFunctions.js.map +1 -0
- package/dist/dist/server-safe/EstimateFunctions.d.ts +15 -0
- package/dist/dist/server-safe/EstimateFunctions.d.ts.map +1 -0
- package/dist/dist/server-safe/EstimateFunctions.js +34 -0
- package/dist/dist/server-safe/EstimateFunctions.js.map +1 -0
- package/dist/dist/server-safe/InvoiceFunctions.d.ts +21 -0
- package/dist/dist/server-safe/InvoiceFunctions.d.ts.map +1 -0
- package/dist/dist/server-safe/InvoiceFunctions.js +124 -0
- package/dist/dist/server-safe/InvoiceFunctions.js.map +1 -0
- package/dist/dist/server-safe/JobFunctions.d.ts +15 -0
- package/dist/dist/server-safe/JobFunctions.d.ts.map +1 -0
- package/dist/dist/server-safe/JobFunctions.js +56 -0
- package/dist/dist/server-safe/JobFunctions.js.map +1 -0
- package/dist/dist/server-safe/PaymentFunctions.d.ts +16 -0
- package/dist/dist/server-safe/PaymentFunctions.d.ts.map +1 -0
- package/dist/dist/server-safe/PaymentFunctions.js +80 -0
- package/dist/dist/server-safe/PaymentFunctions.js.map +1 -0
- package/dist/dist/server-safe/PermissionFunctions.d.ts +7 -0
- package/dist/dist/server-safe/PermissionFunctions.d.ts.map +1 -0
- package/dist/dist/server-safe/PermissionFunctions.js +39 -0
- package/dist/dist/server-safe/PermissionFunctions.js.map +1 -0
- package/dist/dist/server-safe/TagFunctions.d.ts +18 -0
- package/dist/dist/server-safe/TagFunctions.d.ts.map +1 -0
- package/dist/dist/server-safe/TagFunctions.js +52 -0
- package/dist/dist/server-safe/TagFunctions.js.map +1 -0
- package/dist/dist/server-safe/autoJobType.d.ts +16 -0
- package/dist/dist/server-safe/autoJobType.d.ts.map +1 -0
- package/dist/dist/server-safe/autoJobType.js +39 -0
- package/dist/dist/server-safe/autoJobType.js.map +1 -0
- package/dist/dist/server-safe/autoJobType.test.d.ts +2 -0
- package/dist/dist/server-safe/autoJobType.test.d.ts.map +1 -0
- package/dist/dist/server-safe/autoJobType.test.js +83 -0
- package/dist/dist/server-safe/autoJobType.test.js.map +1 -0
- package/dist/dist/server-safe/automations.d.ts +197 -0
- package/dist/dist/server-safe/automations.d.ts.map +1 -0
- package/dist/dist/server-safe/automations.js +757 -0
- package/dist/dist/server-safe/automations.js.map +1 -0
- package/dist/dist/server-safe/automations.test.d.ts +2 -0
- package/dist/dist/server-safe/automations.test.d.ts.map +1 -0
- package/dist/dist/server-safe/automations.test.js +441 -0
- package/dist/dist/server-safe/automations.test.js.map +1 -0
- package/dist/dist/server-safe/constants.d.ts +156 -0
- package/dist/dist/server-safe/constants.d.ts.map +1 -0
- package/dist/dist/server-safe/constants.js +186 -0
- package/dist/dist/server-safe/constants.js.map +1 -0
- package/dist/dist/server-safe/contracts.d.ts +3 -0
- package/dist/dist/server-safe/contracts.d.ts.map +1 -0
- package/dist/dist/server-safe/contracts.js +15 -0
- package/dist/dist/server-safe/contracts.js.map +1 -0
- package/dist/dist/server-safe/database.types.d.ts +9510 -0
- package/dist/dist/server-safe/database.types.d.ts.map +1 -0
- package/dist/dist/server-safe/database.types.js +40 -0
- package/dist/dist/server-safe/database.types.js.map +1 -0
- package/dist/dist/server-safe/entitlements.d.ts +99 -0
- package/dist/dist/server-safe/entitlements.d.ts.map +1 -0
- package/dist/dist/server-safe/entitlements.js +487 -0
- package/dist/dist/server-safe/entitlements.js.map +1 -0
- package/dist/dist/server-safe/facebookAdsLeads.d.ts +225 -0
- package/dist/dist/server-safe/facebookAdsLeads.d.ts.map +1 -0
- package/dist/dist/server-safe/facebookAdsLeads.js +376 -0
- package/dist/dist/server-safe/facebookAdsLeads.js.map +1 -0
- package/dist/dist/server-safe/facebookAdsLeads.test.d.ts +2 -0
- package/dist/dist/server-safe/facebookAdsLeads.test.d.ts.map +1 -0
- package/dist/dist/server-safe/facebookAdsLeads.test.js +189 -0
- package/dist/dist/server-safe/facebookAdsLeads.test.js.map +1 -0
- package/dist/dist/server-safe/facebookAdsLeadsSql.test.d.ts +2 -0
- package/dist/dist/server-safe/facebookAdsLeadsSql.test.d.ts.map +1 -0
- package/dist/dist/server-safe/facebookAdsLeadsSql.test.js +32 -0
- package/dist/dist/server-safe/facebookAdsLeadsSql.test.js.map +1 -0
- package/dist/dist/server-safe/facebookMessenger.d.ts +20 -0
- package/dist/dist/server-safe/facebookMessenger.d.ts.map +1 -0
- package/dist/dist/server-safe/facebookMessenger.js +63 -0
- package/dist/dist/server-safe/facebookMessenger.js.map +1 -0
- package/dist/dist/server-safe/facebookMessenger.test.d.ts +2 -0
- package/dist/dist/server-safe/facebookMessenger.test.d.ts.map +1 -0
- package/dist/dist/server-safe/facebookMessenger.test.js +51 -0
- package/dist/dist/server-safe/facebookMessenger.test.js.map +1 -0
- package/dist/dist/server-safe/helpers.d.ts +78 -0
- package/dist/dist/server-safe/helpers.d.ts.map +1 -0
- package/dist/dist/server-safe/helpers.js +569 -0
- package/dist/dist/server-safe/helpers.js.map +1 -0
- package/dist/dist/server-safe/index.d.ts +30 -0
- package/dist/dist/server-safe/index.d.ts.map +1 -0
- package/dist/dist/server-safe/index.js +46 -0
- package/dist/dist/server-safe/index.js.map +1 -0
- package/dist/dist/server-safe/permissions.d.ts +29 -0
- package/dist/dist/server-safe/permissions.d.ts.map +1 -0
- package/dist/dist/server-safe/permissions.js +180 -0
- package/dist/dist/server-safe/permissions.js.map +1 -0
- package/dist/dist/server-safe/proposals.d.ts +6 -0
- package/dist/dist/server-safe/proposals.d.ts.map +1 -0
- package/dist/dist/server-safe/proposals.js +58 -0
- package/dist/dist/server-safe/proposals.js.map +1 -0
- package/dist/dist/server-safe/rentalAvailability.d.ts +56 -0
- package/dist/dist/server-safe/rentalAvailability.d.ts.map +1 -0
- package/dist/dist/server-safe/rentalAvailability.js +124 -0
- package/dist/dist/server-safe/rentalAvailability.js.map +1 -0
- package/dist/dist/server-safe/rentalAvailability.test.d.ts +2 -0
- package/dist/dist/server-safe/rentalAvailability.test.d.ts.map +1 -0
- package/dist/dist/server-safe/rentalAvailability.test.js +290 -0
- package/dist/dist/server-safe/rentalAvailability.test.js.map +1 -0
- package/dist/dist/server-safe/rentals.d.ts +95 -0
- package/dist/dist/server-safe/rentals.d.ts.map +1 -0
- package/dist/dist/server-safe/rentals.js +432 -0
- package/dist/dist/server-safe/rentals.js.map +1 -0
- package/dist/dist/server-safe/rentals.test.d.ts +2 -0
- package/dist/dist/server-safe/rentals.test.d.ts.map +1 -0
- package/dist/dist/server-safe/rentals.test.js +1034 -0
- package/dist/dist/server-safe/rentals.test.js.map +1 -0
- package/dist/dist/server-safe/routeOptimization.d.ts +155 -0
- package/dist/dist/server-safe/routeOptimization.d.ts.map +1 -0
- package/dist/dist/server-safe/routeOptimization.js +120 -0
- package/dist/dist/server-safe/routeOptimization.js.map +1 -0
- package/dist/dist/server-safe/routeOptimization.test.d.ts +2 -0
- package/dist/dist/server-safe/routeOptimization.test.d.ts.map +1 -0
- package/dist/dist/server-safe/routeOptimization.test.js +234 -0
- package/dist/dist/server-safe/routeOptimization.test.js.map +1 -0
- package/dist/dist/server-safe/routePlanFingerprint.d.ts +13 -0
- package/dist/dist/server-safe/routePlanFingerprint.d.ts.map +1 -0
- package/dist/dist/server-safe/routePlanFingerprint.js +49 -0
- package/dist/dist/server-safe/routePlanFingerprint.js.map +1 -0
- package/dist/dist/server-safe/routePlanFingerprint.test.d.ts +2 -0
- package/dist/dist/server-safe/routePlanFingerprint.test.d.ts.map +1 -0
- package/dist/dist/server-safe/routePlanFingerprint.test.js +68 -0
- package/dist/dist/server-safe/routePlanFingerprint.test.js.map +1 -0
- package/dist/dist/server-safe/scheduleListOrder.d.ts +18 -0
- package/dist/dist/server-safe/scheduleListOrder.d.ts.map +1 -0
- package/dist/dist/server-safe/scheduleListOrder.js +92 -0
- package/dist/dist/server-safe/scheduleListOrder.js.map +1 -0
- package/dist/dist/server-safe/scheduleListOrder.test.d.ts +2 -0
- package/dist/dist/server-safe/scheduleListOrder.test.d.ts.map +1 -0
- package/dist/dist/server-safe/scheduleListOrder.test.js +260 -0
- package/dist/dist/server-safe/scheduleListOrder.test.js.map +1 -0
- package/dist/dist/server-safe/serviceMinutes.d.ts +13 -0
- package/dist/dist/server-safe/serviceMinutes.d.ts.map +1 -0
- package/dist/dist/server-safe/serviceMinutes.js +38 -0
- package/dist/dist/server-safe/serviceMinutes.js.map +1 -0
- package/dist/dist/server-safe/serviceMinutes.test.d.ts +2 -0
- package/dist/dist/server-safe/serviceMinutes.test.d.ts.map +1 -0
- package/dist/dist/server-safe/serviceMinutes.test.js +86 -0
- package/dist/dist/server-safe/serviceMinutes.test.js.map +1 -0
- package/dist/dist/server-safe/settingsSearch.d.ts +24 -0
- package/dist/dist/server-safe/settingsSearch.d.ts.map +1 -0
- package/dist/dist/server-safe/settingsSearch.js +8 -0
- package/dist/dist/server-safe/settingsSearch.js.map +1 -0
- package/dist/dist/server-safe/supportChat.d.ts +59 -0
- package/dist/dist/server-safe/supportChat.d.ts.map +1 -0
- package/dist/dist/server-safe/supportChat.js +56 -0
- package/dist/dist/server-safe/supportChat.js.map +1 -0
- package/dist/dist/server-safe/templates.d.ts +15 -0
- package/dist/dist/server-safe/templates.d.ts.map +1 -0
- package/dist/dist/server-safe/templates.js +91 -0
- package/dist/dist/server-safe/templates.js.map +1 -0
- package/dist/dist/server-safe/templates.test.d.ts +2 -0
- package/dist/dist/server-safe/templates.test.d.ts.map +1 -0
- package/dist/dist/server-safe/templates.test.js +62 -0
- package/dist/dist/server-safe/templates.test.js.map +1 -0
- package/dist/dist/server-safe/trash.d.ts +50 -0
- package/dist/dist/server-safe/trash.d.ts.map +1 -0
- package/dist/dist/server-safe/trash.js +100 -0
- package/dist/dist/server-safe/trash.js.map +1 -0
- package/dist/dist/utils/LogHandler.d.ts +3 -0
- package/dist/dist/utils/LogHandler.d.ts.map +1 -0
- package/dist/dist/utils/LogHandler.js +16 -0
- package/dist/dist/utils/LogHandler.js.map +1 -0
- package/dist/dist/utils/convertSupabaseImagesToAssets.d.ts +28 -0
- package/dist/dist/utils/convertSupabaseImagesToAssets.d.ts.map +1 -0
- package/dist/dist/utils/convertSupabaseImagesToAssets.js +14 -0
- package/dist/dist/utils/convertSupabaseImagesToAssets.js.map +1 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/index.d.ts +1238 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +3 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/providers/AddressProvider.d.ts +9 -0
- package/dist/providers/AddressProvider.d.ts.map +1 -0
- package/dist/providers/AddressProvider.js +207 -0
- package/dist/providers/AddressProvider.js.map +1 -0
- package/dist/providers/AutomationsProvider.d.ts +11 -0
- package/dist/providers/AutomationsProvider.d.ts.map +1 -0
- package/dist/providers/AutomationsProvider.js +170 -0
- package/dist/providers/AutomationsProvider.js.map +1 -0
- package/dist/providers/BlockedNumbersProvider.d.ts +7 -0
- package/dist/providers/BlockedNumbersProvider.d.ts.map +1 -0
- package/dist/providers/BlockedNumbersProvider.js +71 -0
- package/dist/providers/BlockedNumbersProvider.js.map +1 -0
- package/dist/providers/CategoryProvider.d.ts +8 -0
- package/dist/providers/CategoryProvider.d.ts.map +1 -0
- package/dist/providers/CategoryProvider.js +95 -0
- package/dist/providers/CategoryProvider.js.map +1 -0
- package/dist/providers/ClientProvider.d.ts +39 -0
- package/dist/providers/ClientProvider.d.ts.map +1 -0
- package/dist/providers/ClientProvider.js +253 -0
- package/dist/providers/ClientProvider.js.map +1 -0
- package/dist/providers/CompanyProvider.d.ts +7 -0
- package/dist/providers/CompanyProvider.d.ts.map +1 -0
- package/dist/providers/CompanyProvider.js +114 -0
- package/dist/providers/CompanyProvider.js.map +1 -0
- package/dist/providers/DashboardProvider.d.ts +78 -0
- package/dist/providers/DashboardProvider.d.ts.map +1 -0
- package/dist/providers/DashboardProvider.js +568 -0
- package/dist/providers/DashboardProvider.js.map +1 -0
- package/dist/providers/DiscountProvider.d.ts +8 -0
- package/dist/providers/DiscountProvider.d.ts.map +1 -0
- package/dist/providers/DiscountProvider.js +92 -0
- package/dist/providers/DiscountProvider.js.map +1 -0
- package/dist/providers/EmployeesProvider.d.ts +6 -0
- package/dist/providers/EmployeesProvider.d.ts.map +1 -0
- package/dist/providers/EmployeesProvider.js +185 -0
- package/dist/providers/EmployeesProvider.js.map +1 -0
- package/dist/providers/EstimatesProvider.d.ts +16 -0
- package/dist/providers/EstimatesProvider.d.ts.map +1 -0
- package/dist/providers/EstimatesProvider.js +251 -0
- package/dist/providers/EstimatesProvider.js.map +1 -0
- package/dist/providers/EventsProvider.d.ts +4 -0
- package/dist/providers/EventsProvider.d.ts.map +1 -0
- package/dist/providers/EventsProvider.js +24 -0
- package/dist/providers/EventsProvider.js.map +1 -0
- package/dist/providers/FilesProvider.d.ts +17 -0
- package/dist/providers/FilesProvider.d.ts.map +1 -0
- package/dist/providers/FilesProvider.js +201 -0
- package/dist/providers/FilesProvider.js.map +1 -0
- package/dist/providers/InvoicesProvider.d.ts +13 -0
- package/dist/providers/InvoicesProvider.d.ts.map +1 -0
- package/dist/providers/InvoicesProvider.js +207 -0
- package/dist/providers/InvoicesProvider.js.map +1 -0
- package/dist/providers/ItemProvider.d.ts +9 -0
- package/dist/providers/ItemProvider.d.ts.map +1 -0
- package/dist/providers/ItemProvider.js +201 -0
- package/dist/providers/ItemProvider.js.map +1 -0
- package/dist/providers/JobSourceProvider.d.ts +8 -0
- package/dist/providers/JobSourceProvider.d.ts.map +1 -0
- package/dist/providers/JobSourceProvider.js +75 -0
- package/dist/providers/JobSourceProvider.js.map +1 -0
- package/dist/providers/JobTypeProvider.d.ts +8 -0
- package/dist/providers/JobTypeProvider.d.ts.map +1 -0
- package/dist/providers/JobTypeProvider.js +75 -0
- package/dist/providers/JobTypeProvider.js.map +1 -0
- package/dist/providers/JobsProvider.d.ts +20 -0
- package/dist/providers/JobsProvider.d.ts.map +1 -0
- package/dist/providers/JobsProvider.js +863 -0
- package/dist/providers/JobsProvider.js.map +1 -0
- package/dist/providers/MessagesProvider.d.ts +14 -0
- package/dist/providers/MessagesProvider.d.ts.map +1 -0
- package/dist/providers/MessagesProvider.js +415 -0
- package/dist/providers/MessagesProvider.js.map +1 -0
- package/dist/providers/PaymentProvider.d.ts +9 -0
- package/dist/providers/PaymentProvider.d.ts.map +1 -0
- package/dist/providers/PaymentProvider.js +48 -0
- package/dist/providers/PaymentProvider.js.map +1 -0
- package/dist/providers/PermissionRolesProvider.d.ts +5 -0
- package/dist/providers/PermissionRolesProvider.d.ts.map +1 -0
- package/dist/providers/PermissionRolesProvider.js +30 -0
- package/dist/providers/PermissionRolesProvider.js.map +1 -0
- package/dist/providers/PhoneNumberProvider.d.ts +12 -0
- package/dist/providers/PhoneNumberProvider.d.ts.map +1 -0
- package/dist/providers/PhoneNumberProvider.js +184 -0
- package/dist/providers/PhoneNumberProvider.js.map +1 -0
- package/dist/providers/ProfileProvider.d.ts +6 -0
- package/dist/providers/ProfileProvider.d.ts.map +1 -0
- package/dist/providers/ProfileProvider.js +71 -0
- package/dist/providers/ProfileProvider.js.map +1 -0
- package/dist/providers/RentalsProvider.d.ts +28 -0
- package/dist/providers/RentalsProvider.d.ts.map +1 -0
- package/dist/providers/RentalsProvider.js +438 -0
- package/dist/providers/RentalsProvider.js.map +1 -0
- package/dist/providers/SettingsBookingProvider.d.ts +9 -0
- package/dist/providers/SettingsBookingProvider.d.ts.map +1 -0
- package/dist/providers/SettingsBookingProvider.js +163 -0
- package/dist/providers/SettingsBookingProvider.js.map +1 -0
- package/dist/providers/SettingsProvider.d.ts +8 -0
- package/dist/providers/SettingsProvider.d.ts.map +1 -0
- package/dist/providers/SettingsProvider.js +86 -0
- package/dist/providers/SettingsProvider.js.map +1 -0
- package/dist/providers/TagsProvider.d.ts +12 -0
- package/dist/providers/TagsProvider.d.ts.map +1 -0
- package/dist/providers/TagsProvider.js +210 -0
- package/dist/providers/TagsProvider.js.map +1 -0
- package/dist/providers/TimeCardProvider.d.ts +8 -0
- package/dist/providers/TimeCardProvider.d.ts.map +1 -0
- package/dist/providers/TimeCardProvider.js +93 -0
- package/dist/providers/TimeCardProvider.js.map +1 -0
- package/dist/providers/TrashProvider.d.ts +13 -0
- package/dist/providers/TrashProvider.d.ts.map +1 -0
- package/dist/providers/TrashProvider.js +98 -0
- package/dist/providers/TrashProvider.js.map +1 -0
- package/dist/providers/dashboardAnalytics.d.ts +9 -0
- package/dist/providers/dashboardAnalytics.d.ts.map +1 -0
- package/dist/providers/dashboardAnalytics.js +41 -0
- package/dist/providers/dashboardAnalytics.js.map +1 -0
- package/dist/providers/dashboardAnalytics.test.d.ts +2 -0
- package/dist/providers/dashboardAnalytics.test.d.ts.map +1 -0
- package/dist/providers/dashboardAnalytics.test.js +111 -0
- package/dist/providers/dashboardAnalytics.test.js.map +1 -0
- package/dist/server-safe/BlockedNumberFunctions.d.ts +11 -0
- package/dist/server-safe/BlockedNumberFunctions.d.ts.map +1 -0
- package/dist/server-safe/BlockedNumberFunctions.js +16 -0
- package/dist/server-safe/BlockedNumberFunctions.js.map +1 -0
- package/dist/server-safe/EmployeeFunctions.d.ts +14 -0
- package/dist/server-safe/EmployeeFunctions.d.ts.map +1 -0
- package/dist/server-safe/EmployeeFunctions.js +70 -0
- package/dist/server-safe/EmployeeFunctions.js.map +1 -0
- package/dist/server-safe/EmployeeLocationFunctions.d.ts +7 -0
- package/dist/server-safe/EmployeeLocationFunctions.d.ts.map +1 -0
- package/dist/server-safe/EmployeeLocationFunctions.js +47 -0
- package/dist/server-safe/EmployeeLocationFunctions.js.map +1 -0
- package/dist/server-safe/EstimateFunctions.d.ts +15 -0
- package/dist/server-safe/EstimateFunctions.d.ts.map +1 -0
- package/dist/server-safe/EstimateFunctions.js +34 -0
- package/dist/server-safe/EstimateFunctions.js.map +1 -0
- package/dist/server-safe/InvoiceFunctions.d.ts +21 -0
- package/dist/server-safe/InvoiceFunctions.d.ts.map +1 -0
- package/dist/server-safe/InvoiceFunctions.js +124 -0
- package/dist/server-safe/InvoiceFunctions.js.map +1 -0
- package/dist/server-safe/JobFunctions.d.ts +15 -0
- package/dist/server-safe/JobFunctions.d.ts.map +1 -0
- package/dist/server-safe/JobFunctions.js +56 -0
- package/dist/server-safe/JobFunctions.js.map +1 -0
- package/dist/server-safe/PaymentFunctions.d.ts +16 -0
- package/dist/server-safe/PaymentFunctions.d.ts.map +1 -0
- package/dist/server-safe/PaymentFunctions.js +80 -0
- package/dist/server-safe/PaymentFunctions.js.map +1 -0
- package/dist/server-safe/PermissionFunctions.d.ts +7 -0
- package/dist/server-safe/PermissionFunctions.d.ts.map +1 -0
- package/dist/server-safe/PermissionFunctions.js +39 -0
- package/dist/server-safe/PermissionFunctions.js.map +1 -0
- package/dist/server-safe/TagFunctions.d.ts +18 -0
- package/dist/server-safe/TagFunctions.d.ts.map +1 -0
- package/dist/server-safe/TagFunctions.js +52 -0
- package/dist/server-safe/TagFunctions.js.map +1 -0
- package/dist/server-safe/autoJobType.d.ts +16 -0
- package/dist/server-safe/autoJobType.d.ts.map +1 -0
- package/dist/server-safe/autoJobType.js +39 -0
- package/dist/server-safe/autoJobType.js.map +1 -0
- package/dist/server-safe/autoJobType.test.d.ts +2 -0
- package/dist/server-safe/autoJobType.test.d.ts.map +1 -0
- package/dist/server-safe/autoJobType.test.js +83 -0
- package/dist/server-safe/autoJobType.test.js.map +1 -0
- package/dist/server-safe/automations.d.ts +197 -0
- package/dist/server-safe/automations.d.ts.map +1 -0
- package/dist/server-safe/automations.js +757 -0
- package/dist/server-safe/automations.js.map +1 -0
- package/dist/server-safe/automations.test.d.ts +2 -0
- package/dist/server-safe/automations.test.d.ts.map +1 -0
- package/dist/server-safe/automations.test.js +441 -0
- package/dist/server-safe/automations.test.js.map +1 -0
- package/dist/server-safe/constants.d.ts +156 -0
- package/dist/server-safe/constants.d.ts.map +1 -0
- package/dist/server-safe/constants.js +186 -0
- package/dist/server-safe/constants.js.map +1 -0
- package/dist/server-safe/contracts.d.ts +3 -0
- package/dist/server-safe/contracts.d.ts.map +1 -0
- package/dist/server-safe/contracts.js +15 -0
- package/dist/server-safe/contracts.js.map +1 -0
- package/dist/server-safe/database.types.d.ts +9510 -0
- package/dist/server-safe/database.types.d.ts.map +1 -0
- package/dist/server-safe/database.types.js +40 -0
- package/dist/server-safe/database.types.js.map +1 -0
- package/dist/server-safe/entitlements.d.ts +99 -0
- package/dist/server-safe/entitlements.d.ts.map +1 -0
- package/dist/server-safe/entitlements.js +487 -0
- package/dist/server-safe/entitlements.js.map +1 -0
- package/dist/server-safe/helpers.d.ts +78 -0
- package/dist/server-safe/helpers.d.ts.map +1 -0
- package/dist/server-safe/helpers.js +569 -0
- package/dist/server-safe/helpers.js.map +1 -0
- package/dist/server-safe/index.d.ts +30 -0
- package/dist/server-safe/index.d.ts.map +1 -0
- package/dist/server-safe/index.js +46 -0
- package/dist/server-safe/index.js.map +1 -0
- package/dist/server-safe/permissions.d.ts +29 -0
- package/dist/server-safe/permissions.d.ts.map +1 -0
- package/dist/server-safe/permissions.js +180 -0
- package/dist/server-safe/permissions.js.map +1 -0
- package/dist/server-safe/proposals.d.ts +6 -0
- package/dist/server-safe/proposals.d.ts.map +1 -0
- package/dist/server-safe/proposals.js +58 -0
- package/dist/server-safe/proposals.js.map +1 -0
- package/dist/server-safe/rentalAvailability.d.ts +56 -0
- package/dist/server-safe/rentalAvailability.d.ts.map +1 -0
- package/dist/server-safe/rentalAvailability.js +124 -0
- package/dist/server-safe/rentalAvailability.js.map +1 -0
- package/dist/server-safe/rentalAvailability.test.d.ts +2 -0
- package/dist/server-safe/rentalAvailability.test.d.ts.map +1 -0
- package/dist/server-safe/rentalAvailability.test.js +290 -0
- package/dist/server-safe/rentalAvailability.test.js.map +1 -0
- package/dist/server-safe/rentals.d.ts +95 -0
- package/dist/server-safe/rentals.d.ts.map +1 -0
- package/dist/server-safe/rentals.js +432 -0
- package/dist/server-safe/rentals.js.map +1 -0
- package/dist/server-safe/rentals.test.d.ts +2 -0
- package/dist/server-safe/rentals.test.d.ts.map +1 -0
- package/dist/server-safe/rentals.test.js +1034 -0
- package/dist/server-safe/rentals.test.js.map +1 -0
- package/dist/server-safe/routeOptimization.d.ts +155 -0
- package/dist/server-safe/routeOptimization.d.ts.map +1 -0
- package/dist/server-safe/routeOptimization.js +120 -0
- package/dist/server-safe/routeOptimization.js.map +1 -0
- package/dist/server-safe/routeOptimization.test.d.ts +2 -0
- package/dist/server-safe/routeOptimization.test.d.ts.map +1 -0
- package/dist/server-safe/routeOptimization.test.js +234 -0
- package/dist/server-safe/routeOptimization.test.js.map +1 -0
- package/dist/server-safe/routePlanFingerprint.d.ts +13 -0
- package/dist/server-safe/routePlanFingerprint.d.ts.map +1 -0
- package/dist/server-safe/routePlanFingerprint.js +49 -0
- package/dist/server-safe/routePlanFingerprint.js.map +1 -0
- package/dist/server-safe/routePlanFingerprint.test.d.ts +2 -0
- package/dist/server-safe/routePlanFingerprint.test.d.ts.map +1 -0
- package/dist/server-safe/routePlanFingerprint.test.js +68 -0
- package/dist/server-safe/routePlanFingerprint.test.js.map +1 -0
- package/dist/server-safe/scheduleListOrder.d.ts +18 -0
- package/dist/server-safe/scheduleListOrder.d.ts.map +1 -0
- package/dist/server-safe/scheduleListOrder.js +92 -0
- package/dist/server-safe/scheduleListOrder.js.map +1 -0
- package/dist/server-safe/scheduleListOrder.test.d.ts +2 -0
- package/dist/server-safe/scheduleListOrder.test.d.ts.map +1 -0
- package/dist/server-safe/scheduleListOrder.test.js +260 -0
- package/dist/server-safe/scheduleListOrder.test.js.map +1 -0
- package/dist/server-safe/serviceMinutes.d.ts +13 -0
- package/dist/server-safe/serviceMinutes.d.ts.map +1 -0
- package/dist/server-safe/serviceMinutes.js +38 -0
- package/dist/server-safe/serviceMinutes.js.map +1 -0
- package/dist/server-safe/serviceMinutes.test.d.ts +2 -0
- package/dist/server-safe/serviceMinutes.test.d.ts.map +1 -0
- package/dist/server-safe/serviceMinutes.test.js +86 -0
- package/dist/server-safe/serviceMinutes.test.js.map +1 -0
- package/dist/server-safe/settingsSearch.d.ts +24 -0
- package/dist/server-safe/settingsSearch.d.ts.map +1 -0
- package/dist/server-safe/settingsSearch.js +8 -0
- package/dist/server-safe/settingsSearch.js.map +1 -0
- package/dist/server-safe/supportChat.d.ts +59 -0
- package/dist/server-safe/supportChat.d.ts.map +1 -0
- package/dist/server-safe/supportChat.js +56 -0
- package/dist/server-safe/supportChat.js.map +1 -0
- package/dist/server-safe/templates.d.ts +15 -0
- package/dist/server-safe/templates.d.ts.map +1 -0
- package/dist/server-safe/templates.js +91 -0
- package/dist/server-safe/templates.js.map +1 -0
- package/dist/server-safe/templates.test.d.ts +2 -0
- package/dist/server-safe/templates.test.d.ts.map +1 -0
- package/dist/server-safe/templates.test.js +62 -0
- package/dist/server-safe/templates.test.js.map +1 -0
- package/dist/server-safe/trash.d.ts +50 -0
- package/dist/server-safe/trash.d.ts.map +1 -0
- package/dist/server-safe/trash.js +100 -0
- package/dist/server-safe/trash.js.map +1 -0
- package/dist/utils/LogHandler.d.ts +3 -0
- package/dist/utils/LogHandler.d.ts.map +1 -0
- package/dist/utils/LogHandler.js +16 -0
- package/dist/utils/LogHandler.js.map +1 -0
- package/dist/utils/convertSupabaseImagesToAssets.d.ts +28 -0
- package/dist/utils/convertSupabaseImagesToAssets.d.ts.map +1 -0
- package/dist/utils/convertSupabaseImagesToAssets.js +14 -0
- package/dist/utils/convertSupabaseImagesToAssets.js.map +1 -0
- package/package.json +37 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
-- Extend cleanup_webhook_outbox (20260731011421) to also purge the
|
|
2
|
+
-- automations engine's tables on the same nightly sweep. Same signature and
|
|
3
|
+
-- behavior as before, plus two result columns.
|
|
4
|
+
--
|
|
5
|
+
-- Windows (hardcoded like the qb/gcal arms):
|
|
6
|
+
-- * automation_event: processed rows older than 90 days (matches the
|
|
7
|
+
-- outbox event window's spirit; unprocessed rows are never touched).
|
|
8
|
+
-- * automation_run: terminal rows older than 400 days. Long on purpose —
|
|
9
|
+
-- these rows ARE the user-visible per-rule run history. The window is a
|
|
10
|
+
-- product decision; shorten it here if history this long proves
|
|
11
|
+
-- unnecessary. Pending/processing rows are never touched.
|
|
12
|
+
|
|
13
|
+
drop function if exists "public"."cleanup_webhook_outbox"(integer, integer, integer);
|
|
14
|
+
|
|
15
|
+
create or replace function "public"."cleanup_webhook_outbox"(
|
|
16
|
+
"event_retention_days" integer,
|
|
17
|
+
"delivery_retention_days" integer,
|
|
18
|
+
"batch_size" integer
|
|
19
|
+
)
|
|
20
|
+
returns table (
|
|
21
|
+
"deliveries_deleted" integer,
|
|
22
|
+
"events_deleted" integer,
|
|
23
|
+
"qb_tasks_deleted" integer,
|
|
24
|
+
"gcal_tasks_deleted" integer,
|
|
25
|
+
"automation_events_deleted" integer,
|
|
26
|
+
"automation_runs_deleted" integer
|
|
27
|
+
)
|
|
28
|
+
language "plpgsql"
|
|
29
|
+
security definer
|
|
30
|
+
set search_path = 'public'
|
|
31
|
+
as $$
|
|
32
|
+
declare
|
|
33
|
+
-- floor of 7 days: a miscalled 0 must never purge fresh history
|
|
34
|
+
event_cutoff timestamptz :=
|
|
35
|
+
now() - make_interval(days => greatest(event_retention_days, 7));
|
|
36
|
+
delivery_cutoff timestamptz :=
|
|
37
|
+
now() - make_interval(days => greatest(delivery_retention_days, 7));
|
|
38
|
+
automation_event_cutoff timestamptz := now() - make_interval(days => 90);
|
|
39
|
+
automation_run_cutoff timestamptz := now() - make_interval(days => 400);
|
|
40
|
+
-- floor of 1: a caller-supplied 0 would otherwise LIMIT 0 into a silent
|
|
41
|
+
-- no-op, and a negative value is a runtime error
|
|
42
|
+
capped_batch integer := least(greatest(batch_size, 1), 5000);
|
|
43
|
+
del_count integer;
|
|
44
|
+
evt_count integer;
|
|
45
|
+
qb_count integer;
|
|
46
|
+
gcal_count integer;
|
|
47
|
+
auto_evt_count integer;
|
|
48
|
+
auto_run_count integer;
|
|
49
|
+
begin
|
|
50
|
+
-- Deleting an event cascades its deliveries regardless of delivery_cutoff,
|
|
51
|
+
-- so the event window must never be the shorter one.
|
|
52
|
+
if greatest(event_retention_days, 7) < greatest(delivery_retention_days, 7) then
|
|
53
|
+
raise exception 'event_retention_days (%) must be >= delivery_retention_days (%)',
|
|
54
|
+
event_retention_days, delivery_retention_days;
|
|
55
|
+
end if;
|
|
56
|
+
|
|
57
|
+
-- Terminal deliveries first, so the outbound_event cascade below touches
|
|
58
|
+
-- almost nothing and each statement's row count stays bounded.
|
|
59
|
+
delete from webhook_delivery
|
|
60
|
+
where id in (
|
|
61
|
+
select id from webhook_delivery
|
|
62
|
+
where status in ('delivered', 'skipped', 'dead')
|
|
63
|
+
and created_at < delivery_cutoff
|
|
64
|
+
order by created_at
|
|
65
|
+
limit capped_batch
|
|
66
|
+
);
|
|
67
|
+
get diagnostics del_count = row_count;
|
|
68
|
+
|
|
69
|
+
delete from outbound_event
|
|
70
|
+
where id in (
|
|
71
|
+
select id from outbound_event
|
|
72
|
+
where processed_at is not null
|
|
73
|
+
and created_at < event_cutoff
|
|
74
|
+
-- belt-and-suspenders: never cascade away a live delivery (retries
|
|
75
|
+
-- terminate ~1.6 days after creation, so this should match nothing)
|
|
76
|
+
and not exists (
|
|
77
|
+
select 1 from webhook_delivery d
|
|
78
|
+
where d.event_id = outbound_event.id
|
|
79
|
+
and d.status in ('pending', 'delivering')
|
|
80
|
+
)
|
|
81
|
+
order by created_at
|
|
82
|
+
limit capped_batch
|
|
83
|
+
);
|
|
84
|
+
get diagnostics evt_count = row_count;
|
|
85
|
+
|
|
86
|
+
-- Terminal QB sync tasks share the event window; pending/processing rows
|
|
87
|
+
-- are never touched.
|
|
88
|
+
delete from qb_sync_task
|
|
89
|
+
where id in (
|
|
90
|
+
select id from qb_sync_task
|
|
91
|
+
where status in ('done', 'skipped', 'dead')
|
|
92
|
+
and created_at < event_cutoff
|
|
93
|
+
order by created_at
|
|
94
|
+
limit capped_batch
|
|
95
|
+
);
|
|
96
|
+
get diagnostics qb_count = row_count;
|
|
97
|
+
|
|
98
|
+
-- Terminal Google Calendar sync tasks, same window; pending/processing
|
|
99
|
+
-- rows are never touched (tasks are self-contained, no FK to events).
|
|
100
|
+
delete from google_calendar_sync_task
|
|
101
|
+
where id in (
|
|
102
|
+
select id from google_calendar_sync_task
|
|
103
|
+
where status in ('done', 'skipped', 'dead')
|
|
104
|
+
and created_at < event_cutoff
|
|
105
|
+
order by created_at
|
|
106
|
+
limit capped_batch
|
|
107
|
+
);
|
|
108
|
+
get diagnostics gcal_count = row_count;
|
|
109
|
+
|
|
110
|
+
-- Processed automation events; unprocessed rows are never touched (the
|
|
111
|
+
-- automations cron owns them).
|
|
112
|
+
delete from automation_event
|
|
113
|
+
where id in (
|
|
114
|
+
select id from automation_event
|
|
115
|
+
where processed_at is not null
|
|
116
|
+
and created_at < automation_event_cutoff
|
|
117
|
+
order by created_at
|
|
118
|
+
limit capped_batch
|
|
119
|
+
);
|
|
120
|
+
get diagnostics auto_evt_count = row_count;
|
|
121
|
+
|
|
122
|
+
-- Terminal automation runs (= the visible run history) past the long
|
|
123
|
+
-- window; pending/processing rows are never touched.
|
|
124
|
+
delete from automation_run
|
|
125
|
+
where id in (
|
|
126
|
+
select id from automation_run
|
|
127
|
+
where status in ('sent', 'skipped', 'failed', 'dead')
|
|
128
|
+
and created_at < automation_run_cutoff
|
|
129
|
+
order by created_at
|
|
130
|
+
limit capped_batch
|
|
131
|
+
);
|
|
132
|
+
get diagnostics auto_run_count = row_count;
|
|
133
|
+
|
|
134
|
+
return query select del_count, evt_count, qb_count, gcal_count,
|
|
135
|
+
auto_evt_count, auto_run_count;
|
|
136
|
+
end;
|
|
137
|
+
$$;
|
|
138
|
+
|
|
139
|
+
revoke all on function "public"."cleanup_webhook_outbox"(integer, integer, integer) from public;
|
|
140
|
+
revoke all on function "public"."cleanup_webhook_outbox"(integer, integer, integer) from "anon";
|
|
141
|
+
revoke all on function "public"."cleanup_webhook_outbox"(integer, integer, integer) from "authenticated";
|
|
142
|
+
grant execute on function "public"."cleanup_webhook_outbox"(integer, integer, integer) to "service_role";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
-- New purchasable add-on: Automation Center (the automations rules engine).
|
|
2
|
+
-- Mirrors the automation_center entry added to ADDON_KEYS in src/server-safe/
|
|
3
|
+
-- entitlements.ts; the two lists must stay in sync. Included with Scale like
|
|
4
|
+
-- every add-on (Scale resolves to FULL_ENTITLEMENTS and has no billing_addon
|
|
5
|
+
-- rows); purchasable on Grow for $99/mo.
|
|
6
|
+
alter table "public"."billing_addon"
|
|
7
|
+
drop constraint "billing_addon_addon_key_check";
|
|
8
|
+
alter table "public"."billing_addon"
|
|
9
|
+
add constraint "billing_addon_addon_key_check"
|
|
10
|
+
check ("addon_key" in (
|
|
11
|
+
'ai_voice_assistant',
|
|
12
|
+
'dumpster_asset_tracking',
|
|
13
|
+
'marketing_tools',
|
|
14
|
+
'open_api',
|
|
15
|
+
'quickbooks',
|
|
16
|
+
'gps_tracking',
|
|
17
|
+
'client_portal',
|
|
18
|
+
'google_reserve',
|
|
19
|
+
'employee_permissions',
|
|
20
|
+
'google_ads',
|
|
21
|
+
'facebook_ads',
|
|
22
|
+
'bing_ads',
|
|
23
|
+
'google_calendar',
|
|
24
|
+
'estimate_proposals',
|
|
25
|
+
'automation_center'
|
|
26
|
+
));
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
-- Automations P1: three new trigger types (job_rescheduled,
|
|
2
|
+
-- invoice_due_relative, lead_converted) and two new action types
|
|
3
|
+
-- (apply_tag, webhook). Mirrors AUTOMATION_TRIGGER_TYPES and
|
|
4
|
+
-- AUTOMATION_ACTION_TYPES in src/server-safe/automations.ts; the lists
|
|
5
|
+
-- must stay in sync.
|
|
6
|
+
alter table "public"."automation_rule"
|
|
7
|
+
drop constraint "automation_rule_trigger_type_check";
|
|
8
|
+
alter table "public"."automation_rule"
|
|
9
|
+
add constraint "automation_rule_trigger_type_check"
|
|
10
|
+
check ("trigger_type" in (
|
|
11
|
+
'job_created', 'job_status_changed', 'job_rescheduled',
|
|
12
|
+
'schedule_time_relative',
|
|
13
|
+
'rental_date_relative', 'rental_task_completed',
|
|
14
|
+
'estimate_sent', 'estimate_approved', 'estimate_declined',
|
|
15
|
+
'estimate_pending',
|
|
16
|
+
'invoice_due_relative',
|
|
17
|
+
'lead_created', 'lead_converted',
|
|
18
|
+
'booking_request_received', 'booking_confirmed', 'booking_declined'));
|
|
19
|
+
|
|
20
|
+
alter table "public"."automation_rule"
|
|
21
|
+
drop constraint "automation_rule_action_type_check";
|
|
22
|
+
alter table "public"."automation_rule"
|
|
23
|
+
add constraint "automation_rule_action_type_check"
|
|
24
|
+
check ("action_type" in (
|
|
25
|
+
'sms_client', 'email_client', 'notify_team', 'apply_tag', 'webhook'));
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
-- Automations P1: two new captured event types. job_rescheduled and
|
|
2
|
+
-- lead_converted get DB capture triggers in the following migrations;
|
|
3
|
+
-- invoice_due_relative is timer-scanned (Phase B) and emits no events.
|
|
4
|
+
-- Mirrors AUTOMATION_EVENT_TYPES in src/server-safe/automations.ts.
|
|
5
|
+
--
|
|
6
|
+
-- Safe to apply in any order relative to the web deploy: the engine's
|
|
7
|
+
-- fan-out only fetches event types it knows, so rows with types from a
|
|
8
|
+
-- newer schema wait unprocessed instead of being swallowed.
|
|
9
|
+
alter table "public"."automation_event"
|
|
10
|
+
drop constraint "automation_event_event_type_check";
|
|
11
|
+
alter table "public"."automation_event"
|
|
12
|
+
add constraint "automation_event_event_type_check"
|
|
13
|
+
check ("event_type" in (
|
|
14
|
+
'job_created', 'job_deleted', 'job_status_changed', 'job_rescheduled',
|
|
15
|
+
'rental_task_completed',
|
|
16
|
+
'booking_request_received', 'booking_confirmed', 'booking_declined',
|
|
17
|
+
'estimate_sent', 'estimate_approved', 'estimate_declined',
|
|
18
|
+
'lead_created', 'lead_converted'));
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
-- Automations P1: the invoice_due_relative trigger anchors runs to
|
|
2
|
+
-- invoices, so both automation tables gain an invoice ref. Like the other
|
|
3
|
+
-- entity refs: deliberately NO foreign key — runs must survive invoice
|
|
4
|
+
-- deletion (revalidation tolerates dangling ids).
|
|
5
|
+
alter table "public"."automation_event"
|
|
6
|
+
add column if not exists "invoice_id" uuid;
|
|
7
|
+
|
|
8
|
+
alter table "public"."automation_run"
|
|
9
|
+
add column if not exists "invoice_id" uuid;
|
|
10
|
+
|
|
11
|
+
-- mirrors automation_event_job_idx / automation_run history lookups
|
|
12
|
+
create index if not exists "automation_event_invoice_idx"
|
|
13
|
+
on "public"."automation_event" ("invoice_id", "event_type")
|
|
14
|
+
where "invoice_id" is not null;
|
|
15
|
+
|
|
16
|
+
create index if not exists "automation_run_invoice_idx"
|
|
17
|
+
on "public"."automation_run" ("invoice_id")
|
|
18
|
+
where "invoice_id" is not null;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
-- Automations P1: job_rescheduled capture.
|
|
2
|
+
--
|
|
3
|
+
-- Both platforms reschedule by UPDATEing job_schedule.start_time in place
|
|
4
|
+
-- (core JobsProvider.updateJobSchedule is the shared write path; web edit
|
|
5
|
+
-- forms and mobile drag both call it with the existing schedule id), so an
|
|
6
|
+
-- AFTER UPDATE trigger sees every real reschedule. Adding or removing a
|
|
7
|
+
-- day is an INSERT/DELETE and deliberately does not fire — that is a
|
|
8
|
+
-- schedule shape change, not a reschedule of an existing visit.
|
|
9
|
+
--
|
|
10
|
+
-- Guards:
|
|
11
|
+
-- * task_type IS NULL: job visits only. Rental drop_off/pick_up rows are
|
|
12
|
+
-- served by rental_date_relative, which re-anchors on its own scan.
|
|
13
|
+
-- * status: no reschedule notices for visits the customer never
|
|
14
|
+
-- confirmed (Pending Confirmation), canceled ones, or completed ones.
|
|
15
|
+
--
|
|
16
|
+
-- A recurring "this and future" edit propagates one UPDATE per future row,
|
|
17
|
+
-- so one user action emits N events; the resched:{job_id}:{edit-date}
|
|
18
|
+
-- dedupe key collapses them into a single run per rule.
|
|
19
|
+
create or replace function "public"."capture_automation_schedule_time"()
|
|
20
|
+
returns trigger
|
|
21
|
+
language "plpgsql"
|
|
22
|
+
security definer
|
|
23
|
+
set search_path = 'public'
|
|
24
|
+
as $$
|
|
25
|
+
declare
|
|
26
|
+
v_client uuid;
|
|
27
|
+
begin
|
|
28
|
+
if NEW.task_type is not null then
|
|
29
|
+
return null;
|
|
30
|
+
end if;
|
|
31
|
+
if NEW.status in ('Pending Confirmation', 'Canceled', 'Completed') then
|
|
32
|
+
return null;
|
|
33
|
+
end if;
|
|
34
|
+
|
|
35
|
+
select client_id into v_client from job where id = NEW.job_id;
|
|
36
|
+
|
|
37
|
+
insert into automation_event (company_id, event_type, job_id, schedule_id, client_id, payload)
|
|
38
|
+
values (NEW.company_id, 'job_rescheduled', NEW.job_id, NEW.id, v_client,
|
|
39
|
+
jsonb_build_object(
|
|
40
|
+
'old_start_time', OLD.start_time,
|
|
41
|
+
'new_start_time', NEW.start_time,
|
|
42
|
+
'any_time', NEW.any_time,
|
|
43
|
+
'status', NEW.status));
|
|
44
|
+
return null;
|
|
45
|
+
end;
|
|
46
|
+
$$;
|
|
47
|
+
|
|
48
|
+
create or replace trigger "automation_schedule_time_u" after update on "public"."job_schedule"
|
|
49
|
+
for each row when (old.start_time is distinct from new.start_time
|
|
50
|
+
or old.any_time is distinct from new.any_time)
|
|
51
|
+
execute function "public"."capture_automation_schedule_time"();
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
-- Automations P1: lead_converted capture.
|
|
2
|
+
--
|
|
3
|
+
-- Conversion is a plain UPDATE client_or_lead 'lead' -> 'client' issued
|
|
4
|
+
-- from many call sites (web job/estimate/invoice create hooks, the client
|
|
5
|
+
-- form, mobile promoteLeadToClient, the public API PATCH); the DB trigger
|
|
6
|
+
-- is the one chokepoint that sees them all. Exact-transition WHEN clause
|
|
7
|
+
-- mirrors the long-standing update_date_became_client_trigger.
|
|
8
|
+
--
|
|
9
|
+
-- No created_via guard needed: imports insert rows with their final
|
|
10
|
+
-- client_or_lead value, so an imported client never makes this transition.
|
|
11
|
+
create or replace function "public"."capture_automation_lead_converted"()
|
|
12
|
+
returns trigger
|
|
13
|
+
language "plpgsql"
|
|
14
|
+
security definer
|
|
15
|
+
set search_path = 'public'
|
|
16
|
+
as $$
|
|
17
|
+
begin
|
|
18
|
+
insert into automation_event (company_id, event_type, client_id)
|
|
19
|
+
values (NEW.company_id, 'lead_converted', NEW.id);
|
|
20
|
+
return null;
|
|
21
|
+
end;
|
|
22
|
+
$$;
|
|
23
|
+
|
|
24
|
+
create or replace trigger "automation_lead_converted" after update on "public"."client"
|
|
25
|
+
for each row when (old.client_or_lead = 'lead' and new.client_or_lead = 'client')
|
|
26
|
+
execute function "public"."capture_automation_lead_converted"();
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
-- Automations P1 (P0 review cut-list): booking_request_received used to
|
|
2
|
+
-- fire for bulk-imported jobs whose schedule rows carry the Pending
|
|
3
|
+
-- Confirmation status — job_schedule has no provenance marker, but the
|
|
4
|
+
-- parent job does. Replaces the P0 capture function body (from
|
|
5
|
+
-- 20260816160303) adding the parent-job created_via guard; the trigger
|
|
6
|
+
-- itself (automation_booking_received) is unchanged.
|
|
7
|
+
create or replace function "public"."capture_automation_booking_received"()
|
|
8
|
+
returns trigger
|
|
9
|
+
language "plpgsql"
|
|
10
|
+
security definer
|
|
11
|
+
set search_path = 'public'
|
|
12
|
+
as $$
|
|
13
|
+
declare
|
|
14
|
+
v_client uuid;
|
|
15
|
+
begin
|
|
16
|
+
if exists (
|
|
17
|
+
select 1 from job
|
|
18
|
+
where id = NEW.job_id and coalesce(created_via, '') = 'import'
|
|
19
|
+
) then
|
|
20
|
+
return null; -- imported historical booking, not a live request
|
|
21
|
+
end if;
|
|
22
|
+
select client_id into v_client from job where id = NEW.job_id;
|
|
23
|
+
insert into automation_event (company_id, event_type, job_id, schedule_id, client_id)
|
|
24
|
+
values (NEW.company_id, 'booking_request_received', NEW.job_id, NEW.id, v_client);
|
|
25
|
+
return null;
|
|
26
|
+
end;
|
|
27
|
+
$$;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
-- Automations P1: the webhook action delivers through the existing
|
|
2
|
+
-- outbound_event outbox (one webhook sender in the product) as a new
|
|
3
|
+
-- 'automation.rule_fired' event type.
|
|
4
|
+
--
|
|
5
|
+
-- Unlike entity events, automation events carry their payload verbatim
|
|
6
|
+
-- (the engine renders it at enqueue time; composePayload forwards it
|
|
7
|
+
-- instead of re-reading an entity) and target a single user-configured
|
|
8
|
+
-- endpoint (endpoint_id) rather than fanning out to every subscription of
|
|
9
|
+
-- the event type. entity_id holds the automation_run id for traceability.
|
|
10
|
+
--
|
|
11
|
+
-- Entity webhooks keep the open_api entitlement gate; automation
|
|
12
|
+
-- deliveries gate on automation_center instead (split in deliverBatch).
|
|
13
|
+
-- NOTE: the live constraints come from 20260731011419 (which added the
|
|
14
|
+
-- 'event' calendar entity), NOT the original 20260719215139 - 'event' must
|
|
15
|
+
-- survive this rewrite or every calendar-block write starts failing inside
|
|
16
|
+
-- its outbox trigger.
|
|
17
|
+
alter table "public"."outbound_event"
|
|
18
|
+
drop constraint "outbound_event_entity_type_check";
|
|
19
|
+
alter table "public"."outbound_event"
|
|
20
|
+
add constraint "outbound_event_entity_type_check"
|
|
21
|
+
check ("entity_type" in ('client', 'job', 'invoice', 'estimate', 'event', 'automation'));
|
|
22
|
+
|
|
23
|
+
alter table "public"."outbound_event"
|
|
24
|
+
drop constraint "outbound_event_event_type_check";
|
|
25
|
+
alter table "public"."outbound_event"
|
|
26
|
+
add constraint "outbound_event_event_type_check"
|
|
27
|
+
check ("event_type" ~ '^(client|job|invoice|estimate|event)\.(created|updated|deleted)$'
|
|
28
|
+
or "event_type" = 'automation.rule_fired');
|
|
29
|
+
|
|
30
|
+
-- verbatim delivery body for automation events; null for entity events
|
|
31
|
+
alter table "public"."outbound_event"
|
|
32
|
+
add column if not exists "payload" jsonb;
|
|
33
|
+
|
|
34
|
+
-- routing target for automation events: the webhook endpoint (group of
|
|
35
|
+
-- webhook_subscription rows sharing endpoint_id) chosen in the rule's
|
|
36
|
+
-- action_config. null for entity events, which fan out by subscription.
|
|
37
|
+
alter table "public"."outbound_event"
|
|
38
|
+
add column if not exists "endpoint_id" uuid;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
-- Track which platform(s) each user actually uses.
|
|
2
|
+
-- Adds per-platform "last opened the app" timestamps to public.user:
|
|
3
|
+
-- - last_login_ios_at / last_login_android_at are stamped by the web API's
|
|
4
|
+
-- /api/record-mobile-version route (called once per mobile app session,
|
|
5
|
+
-- platform taken from the x-platform-info request header).
|
|
6
|
+
-- - last_login_web_at is stamped client-side once per web page load.
|
|
7
|
+
-- The user's current platform is derived at read time as the most recent
|
|
8
|
+
-- non-null timestamp; no separate platform column is stored.
|
|
9
|
+
-- Writes are covered by the existing self-CRUD RLS policy on public.user,
|
|
10
|
+
-- so no policy changes are needed.
|
|
11
|
+
|
|
12
|
+
alter table "public"."user" add column if not exists "last_login_ios_at" timestamptz;
|
|
13
|
+
alter table "public"."user" add column if not exists "last_login_android_at" timestamptz;
|
|
14
|
+
alter table "public"."user" add column if not exists "last_login_web_at" timestamptz;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
-- Soft-delete ledger: one row = one user-visible "Recently Deleted" entry =
|
|
2
|
+
-- one restore/purge unit. Deleting an entity stamps the entity row (and its
|
|
3
|
+
-- fan-out members, e.g. a client's jobs/invoices) with deleted_at plus this
|
|
4
|
+
-- row's id; the trash settings page is a single paginated select on this
|
|
5
|
+
-- table, so no 8-way union across entity tables is ever needed.
|
|
6
|
+
--
|
|
7
|
+
-- display is a delete-time snapshot of what the trash row shows (name,
|
|
8
|
+
-- number, client, amount, date). It is display-grade only — immune to later
|
|
9
|
+
-- edits of child rows and never used as an authoritative total.
|
|
10
|
+
--
|
|
11
|
+
-- Rows whose deletion_id points here but whose entity has no own deletion
|
|
12
|
+
-- row (fan-out members) intentionally do not appear in the trash: they
|
|
13
|
+
-- restore and purge with their root. unique(entity_type, entity_id)
|
|
14
|
+
-- prevents double-trash races; restore removes the row, so a later
|
|
15
|
+
-- re-deletion inserts cleanly.
|
|
16
|
+
|
|
17
|
+
create table "public"."deletion" (
|
|
18
|
+
"id" uuid primary key default gen_random_uuid(),
|
|
19
|
+
"company_id" uuid not null references "public"."company"("id") on delete cascade,
|
|
20
|
+
"entity_type" text not null check ("entity_type" in
|
|
21
|
+
('client', 'job', 'estimate', 'invoice', 'event', 'payment', 'item', 'category')),
|
|
22
|
+
"entity_id" uuid not null,
|
|
23
|
+
"deleted_at" timestamp with time zone not null default now(),
|
|
24
|
+
"deleted_by" uuid references "public"."user"("id") on delete set null,
|
|
25
|
+
-- 'this_and_future' when a recurring-series delete rooted at a job also
|
|
26
|
+
-- trashed the future occurrences and the series template; null otherwise
|
|
27
|
+
"mode" text check ("mode" in ('this_and_future')),
|
|
28
|
+
"display" jsonb not null default '{}'::jsonb,
|
|
29
|
+
unique ("entity_type", "entity_id")
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
-- powers the trash page: newest deletions first, per company
|
|
33
|
+
create index "deletion_company_deleted_at_idx"
|
|
34
|
+
on "public"."deletion" ("company_id", "deleted_at" desc);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
-- RLS for the deletion ledger (see 20260817221703_create_deletion.sql).
|
|
2
|
+
--
|
|
3
|
+
-- Read-only for authenticated company members: the trash page selects rows
|
|
4
|
+
-- directly via PostgREST. All writes go through the security-definer trash
|
|
5
|
+
-- functions (20260817221709_trash_functions.sql), so authenticated gets no
|
|
6
|
+
-- insert/update/delete — a client cannot forge a trash entry or vanish one
|
|
7
|
+
-- without going through the fan-out logic. Mirrors the outbound_event RLS
|
|
8
|
+
-- shape (definer-function writers, locked table).
|
|
9
|
+
|
|
10
|
+
alter table "public"."deletion" enable row level security;
|
|
11
|
+
|
|
12
|
+
grant select on table "public"."deletion" to "authenticated";
|
|
13
|
+
grant all on table "public"."deletion" to "service_role";
|
|
14
|
+
revoke all on table "public"."deletion" from "anon";
|
|
15
|
+
revoke insert, update, delete on table "public"."deletion" from "authenticated";
|
|
16
|
+
|
|
17
|
+
create policy "Company members can view their trash"
|
|
18
|
+
on "public"."deletion"
|
|
19
|
+
for select
|
|
20
|
+
to "authenticated"
|
|
21
|
+
using (((nullif(trim(both '"'::"text" from ("public"."get_my_claim"('autopilot_company_id'::"text"))::"text"), ''::"text"))::"uuid" = "company_id"));
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
-- Soft-delete columns for the 9 trash-scoped tables. deleted_at is the
|
|
2
|
+
-- per-row liveness flag (null = live) so list queries can filter without a
|
|
3
|
+
-- join; deletion_id groups every row hidden by one delete into its ledger
|
|
4
|
+
-- entry (20260817221703_create_deletion.sql) for atomic restore/purge.
|
|
5
|
+
--
|
|
6
|
+
-- ON DELETE SET NULL on deletion_id is a backstop only: the trash functions
|
|
7
|
+
-- always clear members before removing the ledger row, but a company
|
|
8
|
+
-- CASCADE delete (or out-of-band ledger surgery) must not be blocked by
|
|
9
|
+
-- these references.
|
|
10
|
+
--
|
|
11
|
+
-- The legacy is_deleted booleans on client/estimate/invoice/job (nullable)
|
|
12
|
+
-- and job_recurring (not null) become write-only dual-write targets of the
|
|
13
|
+
-- trash functions: deployed readers (portal, softphone, automations,
|
|
14
|
+
-- Google Calendar visibility, recurring-jobs-cron, mobile schedule fetches)
|
|
15
|
+
-- already filter them, so keeping them in sync makes soft deletes correct
|
|
16
|
+
-- on old deploys with zero coupling. New code filters only deleted_at.
|
|
17
|
+
-- address.is_deleted (a misnamed vestigial timestamptz) is intentionally
|
|
18
|
+
-- untouched: addresses are not a trash entity — they hide behind their
|
|
19
|
+
-- client and are cleaned up by CASCADE at purge time.
|
|
20
|
+
--
|
|
21
|
+
-- Child tables (job_schedule, job_item, estimate_item, address, client_job,
|
|
22
|
+
-- tags, messages, ...) are deliberately NOT stamped: they are hidden by
|
|
23
|
+
-- their parent's deleted_at and come back for free on restore.
|
|
24
|
+
--
|
|
25
|
+
-- No index on deleted_at: "deleted_at is null" matches ~all rows and rides
|
|
26
|
+
-- the existing company_id-leading indexes as a residual filter. The partial
|
|
27
|
+
-- deletion_id indexes power restore/purge ("where deletion_id = $1") at
|
|
28
|
+
-- near-zero size since live rows are excluded.
|
|
29
|
+
|
|
30
|
+
alter table "public"."client"
|
|
31
|
+
add column "deleted_at" timestamp with time zone,
|
|
32
|
+
add column "deletion_id" uuid references "public"."deletion"("id") on delete set null;
|
|
33
|
+
create index "client_deletion_id_idx" on "public"."client" ("deletion_id")
|
|
34
|
+
where "deletion_id" is not null;
|
|
35
|
+
|
|
36
|
+
alter table "public"."job"
|
|
37
|
+
add column "deleted_at" timestamp with time zone,
|
|
38
|
+
add column "deletion_id" uuid references "public"."deletion"("id") on delete set null;
|
|
39
|
+
create index "job_deletion_id_idx" on "public"."job" ("deletion_id")
|
|
40
|
+
where "deletion_id" is not null;
|
|
41
|
+
|
|
42
|
+
alter table "public"."job_recurring"
|
|
43
|
+
add column "deleted_at" timestamp with time zone,
|
|
44
|
+
add column "deletion_id" uuid references "public"."deletion"("id") on delete set null;
|
|
45
|
+
create index "job_recurring_deletion_id_idx" on "public"."job_recurring" ("deletion_id")
|
|
46
|
+
where "deletion_id" is not null;
|
|
47
|
+
|
|
48
|
+
alter table "public"."estimate"
|
|
49
|
+
add column "deleted_at" timestamp with time zone,
|
|
50
|
+
add column "deletion_id" uuid references "public"."deletion"("id") on delete set null;
|
|
51
|
+
create index "estimate_deletion_id_idx" on "public"."estimate" ("deletion_id")
|
|
52
|
+
where "deletion_id" is not null;
|
|
53
|
+
|
|
54
|
+
alter table "public"."invoice"
|
|
55
|
+
add column "deleted_at" timestamp with time zone,
|
|
56
|
+
add column "deletion_id" uuid references "public"."deletion"("id") on delete set null;
|
|
57
|
+
create index "invoice_deletion_id_idx" on "public"."invoice" ("deletion_id")
|
|
58
|
+
where "deletion_id" is not null;
|
|
59
|
+
|
|
60
|
+
alter table "public"."event"
|
|
61
|
+
add column "deleted_at" timestamp with time zone,
|
|
62
|
+
add column "deletion_id" uuid references "public"."deletion"("id") on delete set null;
|
|
63
|
+
create index "event_deletion_id_idx" on "public"."event" ("deletion_id")
|
|
64
|
+
where "deletion_id" is not null;
|
|
65
|
+
|
|
66
|
+
alter table "public"."payment"
|
|
67
|
+
add column "deleted_at" timestamp with time zone,
|
|
68
|
+
add column "deletion_id" uuid references "public"."deletion"("id") on delete set null;
|
|
69
|
+
create index "payment_deletion_id_idx" on "public"."payment" ("deletion_id")
|
|
70
|
+
where "deletion_id" is not null;
|
|
71
|
+
|
|
72
|
+
alter table "public"."item"
|
|
73
|
+
add column "deleted_at" timestamp with time zone,
|
|
74
|
+
add column "deletion_id" uuid references "public"."deletion"("id") on delete set null;
|
|
75
|
+
create index "item_deletion_id_idx" on "public"."item" ("deletion_id")
|
|
76
|
+
where "deletion_id" is not null;
|
|
77
|
+
|
|
78
|
+
alter table "public"."category"
|
|
79
|
+
add column "deleted_at" timestamp with time zone,
|
|
80
|
+
add column "deletion_id" uuid references "public"."deletion"("id") on delete set null;
|
|
81
|
+
create index "category_deletion_id_idx" on "public"."category" ("deletion_id")
|
|
82
|
+
where "deletion_id" is not null;
|