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,23 @@
|
|
|
1
|
+
create table if not exists "public"."email_spam_complaint" (
|
|
2
|
+
"id" uuid default gen_random_uuid() not null,
|
|
3
|
+
"created_at" timestamp with time zone default now() not null,
|
|
4
|
+
"recipient_email" text not null,
|
|
5
|
+
"company_id" uuid
|
|
6
|
+
);
|
|
7
|
+
|
|
8
|
+
alter table only "public"."email_spam_complaint"
|
|
9
|
+
add constraint "email_spam_complaint_pkey" primary key ("id");
|
|
10
|
+
|
|
11
|
+
alter table only "public"."email_spam_complaint"
|
|
12
|
+
add constraint "email_spam_complaint_recipient_email_key" unique ("recipient_email");
|
|
13
|
+
|
|
14
|
+
-- Suppression lookups compare lowercased addresses; enforce the invariant at
|
|
15
|
+
-- the database so a mixed-case insert can't silently bypass the unique
|
|
16
|
+
-- constraint and the send-time filter.
|
|
17
|
+
alter table only "public"."email_spam_complaint"
|
|
18
|
+
add constraint "email_spam_complaint_recipient_email_lower_check"
|
|
19
|
+
check (recipient_email = lower(recipient_email));
|
|
20
|
+
|
|
21
|
+
alter table only "public"."email_spam_complaint"
|
|
22
|
+
add constraint "email_spam_complaint_company_id_fkey"
|
|
23
|
+
foreign key ("company_id") references "public"."company"("id") on delete set null;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
alter table "public"."email_spam_complaint" enable row level security;
|
|
2
|
+
|
|
3
|
+
create policy "Read-only for matching companyId" on "public"."email_spam_complaint"
|
|
4
|
+
for select to "authenticated"
|
|
5
|
+
using (((NULLIF(TRIM(BOTH '"' FROM ("public"."get_my_claim"('autopilot_company_id'::"text"))::"text"), ''::"text"))::"uuid" = "company_id"));
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
-- email_unsubscribed has no unique constraint, so writers cannot upsert and
|
|
2
|
+
-- the same recipient can be recorded any number of times. The table is empty
|
|
3
|
+
-- in production (the insert path has been broken since launch), so tightening
|
|
4
|
+
-- retroactively is safe: no dedupe or case cleanup is needed first.
|
|
5
|
+
|
|
6
|
+
alter table only "public"."email_unsubscribed"
|
|
7
|
+
add constraint "email_unsubscribed_recipient_email_lower_check"
|
|
8
|
+
check (recipient_email = lower(recipient_email));
|
|
9
|
+
|
|
10
|
+
-- NULLS NOT DISTINCT so rows whose sender could not be parsed to a company
|
|
11
|
+
-- (company_id null) still dedupe on webhook retries.
|
|
12
|
+
alter table only "public"."email_unsubscribed"
|
|
13
|
+
add constraint "email_unsubscribed_company_recipient_key"
|
|
14
|
+
unique nulls not distinct ("company_id", "recipient_email");
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
-- Single-round-trip suppression lookup for the email send paths. Callers pass
|
|
2
|
+
-- the full candidate recipient list (already lowercased); returns the subset
|
|
3
|
+
-- that is globally suppressed. Replaces client-side chunked `in` filters,
|
|
4
|
+
-- which overflow PostgREST URL limits on large sequence/blast groups.
|
|
5
|
+
create or replace function "public"."get_suppressed_emails"("emails" "text"[])
|
|
6
|
+
returns table ("recipient_email" "text")
|
|
7
|
+
language "sql" stable
|
|
8
|
+
as $$
|
|
9
|
+
select recipient_email from public.email_hard_bounced
|
|
10
|
+
where recipient_email = any(emails)
|
|
11
|
+
union
|
|
12
|
+
select recipient_email from public.email_spam_complaint
|
|
13
|
+
where recipient_email = any(emails)
|
|
14
|
+
$$;
|
|
15
|
+
|
|
16
|
+
alter function "public"."get_suppressed_emails"("text"[]) owner to "postgres";
|
|
17
|
+
|
|
18
|
+
-- service_role-only: the sole callers are server routes/crons via
|
|
19
|
+
-- supabaseAdmin; no authenticated/anon path exists.
|
|
20
|
+
revoke all on function "public"."get_suppressed_emails"("text"[]) from public;
|
|
21
|
+
revoke all on function "public"."get_suppressed_emails"("text"[]) from "anon";
|
|
22
|
+
revoke all on function "public"."get_suppressed_emails"("text"[]) from "authenticated";
|
|
23
|
+
grant execute on function "public"."get_suppressed_emails"("text"[]) to "service_role";
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
-- Invariant check before the legacy is_deleted flag is retired from the
|
|
2
|
+
-- trash functions (next migration).
|
|
3
|
+
--
|
|
4
|
+
-- Nothing ever wrote is_deleted before the trash RPCs, and the RPCs always
|
|
5
|
+
-- stamp deleted_at in the same statement, so a row with is_deleted = true
|
|
6
|
+
-- and deleted_at null violates the trash invariant. Expected match count:
|
|
7
|
+
-- zero. If this ever raises, a human triages the rows (restore, hard-delete,
|
|
8
|
+
-- or stamp them into a deletion-ledger entry) — silently stamping deleted_at
|
|
9
|
+
-- here would manufacture zombie rows hidden from every list yet absent from
|
|
10
|
+
-- Recently Deleted and never auto-purged.
|
|
11
|
+
|
|
12
|
+
do $$
|
|
13
|
+
declare
|
|
14
|
+
v_table text;
|
|
15
|
+
v_count bigint;
|
|
16
|
+
begin
|
|
17
|
+
foreach v_table in array array['client', 'job', 'job_recurring', 'estimate', 'invoice'] loop
|
|
18
|
+
execute format(
|
|
19
|
+
'select count(*) from %I where is_deleted = true and deleted_at is null',
|
|
20
|
+
v_table
|
|
21
|
+
) into v_count;
|
|
22
|
+
if v_count > 0 then
|
|
23
|
+
raise exception
|
|
24
|
+
'legacy soft-deleted rows found in %: % row(s) have is_deleted = true with deleted_at null; triage before dropping is_deleted',
|
|
25
|
+
v_table, v_count;
|
|
26
|
+
end if;
|
|
27
|
+
end loop;
|
|
28
|
+
end;
|
|
29
|
+
$$;
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
-- Stop the trash RPCs' legacy is_deleted dual-write. trash_delete_entity
|
|
2
|
+
-- and trash_restore are restated verbatim from
|
|
3
|
+
-- 20260817221709_trash_functions.sql with only the is_deleted assignments
|
|
4
|
+
-- removed; deleted_at/deletion_id are the sole deletion markers.
|
|
5
|
+
-- trash_assert_company, trash_purge, the batch functions, and all grants
|
|
6
|
+
-- are unchanged and not restated.
|
|
7
|
+
--
|
|
8
|
+
-- NOTE for future readers (including AI agents): after this migration the
|
|
9
|
+
-- is_deleted columns on client/job/job_recurring/estimate/invoice — and the
|
|
10
|
+
-- misnamed timestamptz address.is_deleted — are DEAD. Always false/NULL,
|
|
11
|
+
-- zero readers, zero writers, in any repo. They were added long ago and
|
|
12
|
+
-- never used; they are deliberately left in the schema because dropping
|
|
13
|
+
-- them requires app-deploy sequencing that isn't worth scheduling. Do not
|
|
14
|
+
-- filter on them, write them, or build anything against them; deleted_at
|
|
15
|
+
-- is the only deletion signal. Dropping them stays safe any time after a
|
|
16
|
+
-- release in which no deployed bundle names the column.
|
|
17
|
+
|
|
18
|
+
-- MARK: trash_delete_entity
|
|
19
|
+
create or replace function "public"."trash_delete_entity"(
|
|
20
|
+
"p_entity_type" text,
|
|
21
|
+
"p_entity_id" uuid,
|
|
22
|
+
"p_mode" text default null
|
|
23
|
+
) returns uuid
|
|
24
|
+
language "plpgsql"
|
|
25
|
+
security definer
|
|
26
|
+
set search_path = 'public'
|
|
27
|
+
as $$
|
|
28
|
+
declare
|
|
29
|
+
v_now timestamptz := now();
|
|
30
|
+
v_company uuid;
|
|
31
|
+
v_deleted timestamptz;
|
|
32
|
+
v_deletion_id uuid;
|
|
33
|
+
v_display jsonb;
|
|
34
|
+
v_client_name text;
|
|
35
|
+
v_amount numeric;
|
|
36
|
+
v_recurring uuid;
|
|
37
|
+
v_cutoff timestamptz;
|
|
38
|
+
v_sibling_ids uuid[] := '{}';
|
|
39
|
+
begin
|
|
40
|
+
if p_entity_type not in ('client', 'job', 'estimate', 'invoice', 'event', 'payment', 'item', 'category') then
|
|
41
|
+
raise exception 'unknown entity type %', p_entity_type;
|
|
42
|
+
end if;
|
|
43
|
+
if p_mode is not null and (p_mode <> 'this_and_future' or p_entity_type <> 'job') then
|
|
44
|
+
raise exception 'invalid mode % for %', p_mode, p_entity_type;
|
|
45
|
+
end if;
|
|
46
|
+
|
|
47
|
+
-- lock the root row and read company/liveness in one per-type branch
|
|
48
|
+
case p_entity_type
|
|
49
|
+
when 'client' then
|
|
50
|
+
select company_id, deleted_at into v_company, v_deleted
|
|
51
|
+
from client where id = p_entity_id for update;
|
|
52
|
+
when 'job' then
|
|
53
|
+
select company_id, deleted_at, job_recurring_id into v_company, v_deleted, v_recurring
|
|
54
|
+
from job where id = p_entity_id for update;
|
|
55
|
+
when 'estimate' then
|
|
56
|
+
select company_id, deleted_at into v_company, v_deleted
|
|
57
|
+
from estimate where id = p_entity_id for update;
|
|
58
|
+
when 'invoice' then
|
|
59
|
+
select company_id, deleted_at into v_company, v_deleted
|
|
60
|
+
from invoice where id = p_entity_id for update;
|
|
61
|
+
when 'event' then
|
|
62
|
+
select company_id, deleted_at into v_company, v_deleted
|
|
63
|
+
from event where id = p_entity_id for update;
|
|
64
|
+
when 'payment' then
|
|
65
|
+
select company_id, deleted_at into v_company, v_deleted
|
|
66
|
+
from payment where id = p_entity_id for update;
|
|
67
|
+
when 'item' then
|
|
68
|
+
select company_id, deleted_at into v_company, v_deleted
|
|
69
|
+
from item where id = p_entity_id for update;
|
|
70
|
+
when 'category' then
|
|
71
|
+
select company_id, deleted_at into v_company, v_deleted
|
|
72
|
+
from category where id = p_entity_id for update;
|
|
73
|
+
end case;
|
|
74
|
+
|
|
75
|
+
if v_company is null then
|
|
76
|
+
raise exception '% not found', p_entity_type;
|
|
77
|
+
end if;
|
|
78
|
+
perform trash_assert_company(v_company);
|
|
79
|
+
|
|
80
|
+
if v_deleted is not null then
|
|
81
|
+
-- already trashed: idempotent success when it has its own entry;
|
|
82
|
+
-- otherwise it is a fan-out member of another deletion
|
|
83
|
+
select id into v_deletion_id from deletion
|
|
84
|
+
where entity_type = p_entity_type and entity_id = p_entity_id;
|
|
85
|
+
if v_deletion_id is not null then
|
|
86
|
+
return v_deletion_id;
|
|
87
|
+
end if;
|
|
88
|
+
raise exception '% is already deleted as part of another deletion', p_entity_type;
|
|
89
|
+
end if;
|
|
90
|
+
|
|
91
|
+
-- ---- display snapshot (read while everything is still live) ----
|
|
92
|
+
case p_entity_type
|
|
93
|
+
when 'client' then
|
|
94
|
+
select coalesce(nullif(trim(concat(coalesce(first_name, ''), ' ', coalesce(last_name, ''))), ''), client_company_name, '')
|
|
95
|
+
into v_client_name from client where id = p_entity_id;
|
|
96
|
+
v_display := jsonb_build_object('name', v_client_name);
|
|
97
|
+
when 'job' then
|
|
98
|
+
select coalesce(nullif(trim(concat(coalesce(c.first_name, ''), ' ', coalesce(c.last_name, ''))), ''), c.client_company_name, '')
|
|
99
|
+
into v_client_name
|
|
100
|
+
from job j join client c on c.id = j.client_id where j.id = p_entity_id;
|
|
101
|
+
select jsonb_build_object(
|
|
102
|
+
'job_number', j.job_number,
|
|
103
|
+
'client_name', v_client_name,
|
|
104
|
+
'start_date', (select min(js.start_time) from job_schedule js where js.job_id = j.id))
|
|
105
|
+
into v_display from job j where j.id = p_entity_id;
|
|
106
|
+
when 'estimate' then
|
|
107
|
+
select coalesce(nullif(trim(concat(coalesce(c.first_name, ''), ' ', coalesce(c.last_name, ''))), ''), c.client_company_name, '')
|
|
108
|
+
into v_client_name
|
|
109
|
+
from estimate e join client c on c.id = e.client_id where e.id = p_entity_id;
|
|
110
|
+
v_amount := coalesce((select sum(item_price * quantity) from estimate_item where estimate_id = p_entity_id), 0);
|
|
111
|
+
v_amount := v_amount - coalesce((select sum(case when discount_type = 'percentage'
|
|
112
|
+
then v_amount * discount_amount / 100.0 else discount_amount end)
|
|
113
|
+
from estimate_discount where estimate_id = p_entity_id), 0);
|
|
114
|
+
select jsonb_build_object(
|
|
115
|
+
'estimate_number', e.estimate_number,
|
|
116
|
+
'client_name', v_client_name,
|
|
117
|
+
'amount', round(v_amount, 2))
|
|
118
|
+
into v_display from estimate e where e.id = p_entity_id;
|
|
119
|
+
when 'invoice' then
|
|
120
|
+
select coalesce(nullif(trim(concat(coalesce(c.first_name, ''), ' ', coalesce(c.last_name, ''))), ''), c.client_company_name, '')
|
|
121
|
+
into v_client_name
|
|
122
|
+
from invoice i join client c on c.id = i.client_id where i.id = p_entity_id;
|
|
123
|
+
v_amount := coalesce((select sum(item_price * quantity) from job_item where invoice_id = p_entity_id), 0);
|
|
124
|
+
v_amount := v_amount - coalesce((select sum(case when discount_type = 'percentage'
|
|
125
|
+
then v_amount * discount_amount / 100.0 else discount_amount end)
|
|
126
|
+
from job_discount where invoice_id = p_entity_id), 0);
|
|
127
|
+
select jsonb_build_object(
|
|
128
|
+
'invoice_number', i.invoice_number,
|
|
129
|
+
'client_name', v_client_name,
|
|
130
|
+
'amount', round(v_amount, 2),
|
|
131
|
+
'status', i.status)
|
|
132
|
+
into v_display from invoice i where i.id = p_entity_id;
|
|
133
|
+
when 'event' then
|
|
134
|
+
select jsonb_build_object('title', title, 'start_date', start_date)
|
|
135
|
+
into v_display from event where id = p_entity_id;
|
|
136
|
+
when 'payment' then
|
|
137
|
+
select jsonb_build_object(
|
|
138
|
+
'amount_base', p.amount_base,
|
|
139
|
+
'amount_tip', p.amount_tip,
|
|
140
|
+
'payment_date', p.payment_date,
|
|
141
|
+
'payment_type', p.payment_type,
|
|
142
|
+
'invoice_number', (select invoice_number from invoice where id = p.invoice_id),
|
|
143
|
+
'client_name', (select coalesce(nullif(trim(concat(coalesce(c.first_name, ''), ' ', coalesce(c.last_name, ''))), ''), c.client_company_name, '')
|
|
144
|
+
from client c where c.id = coalesce(
|
|
145
|
+
(select client_id from invoice where id = p.invoice_id),
|
|
146
|
+
(select client_id from job where id = p.job_id))))
|
|
147
|
+
into v_display from payment p where p.id = p_entity_id;
|
|
148
|
+
when 'item' then
|
|
149
|
+
select jsonb_build_object('name', item_name, 'price', item_price)
|
|
150
|
+
into v_display from item where id = p_entity_id;
|
|
151
|
+
when 'category' then
|
|
152
|
+
select jsonb_build_object('name', name)
|
|
153
|
+
into v_display from category where id = p_entity_id;
|
|
154
|
+
end case;
|
|
155
|
+
|
|
156
|
+
-- this_and_future: siblings in the series with any visit strictly after
|
|
157
|
+
-- this job's earliest visit (SQL port of getFutureSchedules in
|
|
158
|
+
-- src/server-safe/helpers.ts). A schedule-less job (shouldn't exist)
|
|
159
|
+
-- degrades to a single-occurrence delete rather than failing.
|
|
160
|
+
if p_mode = 'this_and_future' and v_recurring is not null then
|
|
161
|
+
select min(start_time) into v_cutoff from job_schedule where job_id = p_entity_id;
|
|
162
|
+
if v_cutoff is not null then
|
|
163
|
+
select coalesce(array_agg(distinct j.id), '{}') into v_sibling_ids
|
|
164
|
+
from job j
|
|
165
|
+
join job_schedule js on js.job_id = j.id
|
|
166
|
+
where j.job_recurring_id = v_recurring
|
|
167
|
+
and j.id <> p_entity_id
|
|
168
|
+
and j.deleted_at is null
|
|
169
|
+
and js.start_time > v_cutoff;
|
|
170
|
+
end if;
|
|
171
|
+
v_display := v_display || jsonb_build_object('occurrence_count', 1 + coalesce(array_length(v_sibling_ids, 1), 0));
|
|
172
|
+
end if;
|
|
173
|
+
|
|
174
|
+
-- deleted_by via an existence check: reinvite email-drift can leave an
|
|
175
|
+
-- auth uid with no public.user row, and attribution must never block a
|
|
176
|
+
-- delete. null for service_role (public API) callers.
|
|
177
|
+
insert into deletion (company_id, entity_type, entity_id, deleted_at, deleted_by, mode, display)
|
|
178
|
+
values (v_company, p_entity_type, p_entity_id, v_now,
|
|
179
|
+
(select id from "user" where id = auth.uid()),
|
|
180
|
+
case when p_mode = 'this_and_future' and v_recurring is not null then p_mode end,
|
|
181
|
+
v_display)
|
|
182
|
+
returning id into v_deletion_id;
|
|
183
|
+
|
|
184
|
+
-- ---- stamping ----
|
|
185
|
+
case p_entity_type
|
|
186
|
+
when 'client' then
|
|
187
|
+
update client set deleted_at = v_now, deletion_id = v_deletion_id
|
|
188
|
+
where id = p_entity_id;
|
|
189
|
+
update job set deleted_at = v_now, deletion_id = v_deletion_id
|
|
190
|
+
where client_id = p_entity_id and deleted_at is null;
|
|
191
|
+
update job_recurring set deleted_at = v_now, deletion_id = v_deletion_id
|
|
192
|
+
where client_id = p_entity_id and deleted_at is null;
|
|
193
|
+
update estimate set deleted_at = v_now, deletion_id = v_deletion_id
|
|
194
|
+
where client_id = p_entity_id and deleted_at is null;
|
|
195
|
+
update invoice set deleted_at = v_now, deletion_id = v_deletion_id
|
|
196
|
+
where client_id = p_entity_id and deleted_at is null;
|
|
197
|
+
update payment set deleted_at = v_now, deletion_id = v_deletion_id
|
|
198
|
+
where deleted_at is null
|
|
199
|
+
and (job_id in (select id from job where deletion_id = v_deletion_id)
|
|
200
|
+
or invoice_id in (select id from invoice where deletion_id = v_deletion_id));
|
|
201
|
+
when 'job' then
|
|
202
|
+
update job set deleted_at = v_now, deletion_id = v_deletion_id
|
|
203
|
+
where (id = p_entity_id or id = any(v_sibling_ids)) and deleted_at is null;
|
|
204
|
+
if p_mode = 'this_and_future' and v_recurring is not null then
|
|
205
|
+
update job_recurring set deleted_at = v_now, deletion_id = v_deletion_id
|
|
206
|
+
where id = v_recurring and deleted_at is null;
|
|
207
|
+
end if;
|
|
208
|
+
update invoice set deleted_at = v_now, deletion_id = v_deletion_id
|
|
209
|
+
where deleted_at is null
|
|
210
|
+
and job_id in (select id from job where deletion_id = v_deletion_id);
|
|
211
|
+
update payment set deleted_at = v_now, deletion_id = v_deletion_id
|
|
212
|
+
where deleted_at is null
|
|
213
|
+
and (job_id in (select id from job where deletion_id = v_deletion_id)
|
|
214
|
+
or invoice_id in (select id from invoice where deletion_id = v_deletion_id));
|
|
215
|
+
when 'estimate' then
|
|
216
|
+
update estimate set deleted_at = v_now, deletion_id = v_deletion_id
|
|
217
|
+
where id = p_entity_id;
|
|
218
|
+
when 'invoice' then
|
|
219
|
+
update invoice set deleted_at = v_now, deletion_id = v_deletion_id
|
|
220
|
+
where id = p_entity_id;
|
|
221
|
+
update payment set deleted_at = v_now, deletion_id = v_deletion_id
|
|
222
|
+
where invoice_id = p_entity_id and deleted_at is null;
|
|
223
|
+
when 'event' then
|
|
224
|
+
update event set deleted_at = v_now, deletion_id = v_deletion_id
|
|
225
|
+
where id = p_entity_id;
|
|
226
|
+
when 'payment' then
|
|
227
|
+
update payment set deleted_at = v_now, deletion_id = v_deletion_id
|
|
228
|
+
where id = p_entity_id;
|
|
229
|
+
when 'item' then
|
|
230
|
+
update item set deleted_at = v_now, deletion_id = v_deletion_id
|
|
231
|
+
where id = p_entity_id;
|
|
232
|
+
when 'category' then
|
|
233
|
+
-- items are NOT stamped and item.category_id stays set: hard
|
|
234
|
+
-- delete was SET NULL (items survive), so trashing must not
|
|
235
|
+
-- hide items, and the intact pointer makes restore exact.
|
|
236
|
+
-- Category list queries filter deleted_at, so trashed
|
|
237
|
+
-- categories render as "Uncategorized" naturally.
|
|
238
|
+
update category set deleted_at = v_now, deletion_id = v_deletion_id
|
|
239
|
+
where id = p_entity_id;
|
|
240
|
+
end case;
|
|
241
|
+
|
|
242
|
+
return v_deletion_id;
|
|
243
|
+
end;
|
|
244
|
+
$$;
|
|
245
|
+
|
|
246
|
+
-- MARK: trash_restore
|
|
247
|
+
create or replace function "public"."trash_restore"("p_deletion_id" uuid)
|
|
248
|
+
returns void
|
|
249
|
+
language "plpgsql"
|
|
250
|
+
security definer
|
|
251
|
+
set search_path = 'public'
|
|
252
|
+
as $$
|
|
253
|
+
declare
|
|
254
|
+
v_entry record;
|
|
255
|
+
v_parent_type text;
|
|
256
|
+
v_parent_id uuid;
|
|
257
|
+
begin
|
|
258
|
+
select * into v_entry from deletion where id = p_deletion_id for update;
|
|
259
|
+
if v_entry.id is null then
|
|
260
|
+
raise exception 'trash entry not found';
|
|
261
|
+
end if;
|
|
262
|
+
perform trash_assert_company(v_entry.company_id);
|
|
263
|
+
|
|
264
|
+
-- Block restoring into a trashed parent: the row would be invisible
|
|
265
|
+
-- (hidden by the parent's deleted_at) yet no longer restorable. UIs
|
|
266
|
+
-- parse this errcode + message to offer "restore the parent too".
|
|
267
|
+
case v_entry.entity_type
|
|
268
|
+
when 'job' then
|
|
269
|
+
select 'client', c.id into v_parent_type, v_parent_id
|
|
270
|
+
from job j join client c on c.id = j.client_id
|
|
271
|
+
where j.id = v_entry.entity_id and c.deleted_at is not null;
|
|
272
|
+
when 'estimate' then
|
|
273
|
+
select 'client', c.id into v_parent_type, v_parent_id
|
|
274
|
+
from estimate e join client c on c.id = e.client_id
|
|
275
|
+
where e.id = v_entry.entity_id and c.deleted_at is not null;
|
|
276
|
+
when 'invoice' then
|
|
277
|
+
select 'client', c.id into v_parent_type, v_parent_id
|
|
278
|
+
from invoice i join client c on c.id = i.client_id
|
|
279
|
+
where i.id = v_entry.entity_id and c.deleted_at is not null;
|
|
280
|
+
when 'payment' then
|
|
281
|
+
select 'invoice', i.id into v_parent_type, v_parent_id
|
|
282
|
+
from payment p join invoice i on i.id = p.invoice_id
|
|
283
|
+
where p.id = v_entry.entity_id and i.deleted_at is not null;
|
|
284
|
+
if v_parent_type is null then
|
|
285
|
+
select 'job', j.id into v_parent_type, v_parent_id
|
|
286
|
+
from payment p join job j on j.id = p.job_id
|
|
287
|
+
where p.id = v_entry.entity_id and j.deleted_at is not null;
|
|
288
|
+
end if;
|
|
289
|
+
else
|
|
290
|
+
null; -- client, event, item, category: no trashable parent
|
|
291
|
+
end case;
|
|
292
|
+
|
|
293
|
+
if v_parent_type is not null then
|
|
294
|
+
raise exception 'restore blocked: % % is in the trash', v_parent_type, v_parent_id
|
|
295
|
+
using errcode = '23514';
|
|
296
|
+
end if;
|
|
297
|
+
|
|
298
|
+
update client set deleted_at = null, deletion_id = null
|
|
299
|
+
where deletion_id = p_deletion_id;
|
|
300
|
+
update job set deleted_at = null, deletion_id = null
|
|
301
|
+
where deletion_id = p_deletion_id;
|
|
302
|
+
update job_recurring set deleted_at = null, deletion_id = null
|
|
303
|
+
where deletion_id = p_deletion_id;
|
|
304
|
+
update estimate set deleted_at = null, deletion_id = null
|
|
305
|
+
where deletion_id = p_deletion_id;
|
|
306
|
+
update invoice set deleted_at = null, deletion_id = null
|
|
307
|
+
where deletion_id = p_deletion_id;
|
|
308
|
+
update event set deleted_at = null, deletion_id = null
|
|
309
|
+
where deletion_id = p_deletion_id;
|
|
310
|
+
update payment set deleted_at = null, deletion_id = null
|
|
311
|
+
where deletion_id = p_deletion_id;
|
|
312
|
+
update item set deleted_at = null, deletion_id = null
|
|
313
|
+
where deletion_id = p_deletion_id;
|
|
314
|
+
update category set deleted_at = null, deletion_id = null
|
|
315
|
+
where deletion_id = p_deletion_id;
|
|
316
|
+
|
|
317
|
+
delete from deletion where id = p_deletion_id;
|
|
318
|
+
end;
|
|
319
|
+
$$;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
-- Swap the last job-reading SQL function off the legacy is_deleted flag
|
|
2
|
+
-- (dead column; see the note in 20260819191144). Body restated from
|
|
3
|
+
-- 20260716194422_get_client_map_last_completed_jobs.sql with
|
|
4
|
+
-- `job.is_deleted is not true` replaced by `job.deleted_at is null`.
|
|
5
|
+
|
|
6
|
+
create or replace function public.get_client_map_last_completed_jobs(
|
|
7
|
+
company_id_param uuid
|
|
8
|
+
)
|
|
9
|
+
returns table (
|
|
10
|
+
client_id uuid,
|
|
11
|
+
last_completed_at timestamptz
|
|
12
|
+
)
|
|
13
|
+
language sql
|
|
14
|
+
stable
|
|
15
|
+
security invoker
|
|
16
|
+
set search_path = ''
|
|
17
|
+
as $$
|
|
18
|
+
select
|
|
19
|
+
job.client_id,
|
|
20
|
+
max(schedule.end_time) as last_completed_at
|
|
21
|
+
from public.job as job
|
|
22
|
+
inner join public.job_schedule as schedule
|
|
23
|
+
on schedule.job_id = job.id
|
|
24
|
+
where job.company_id = company_id_param
|
|
25
|
+
and schedule.company_id = company_id_param
|
|
26
|
+
and job.deleted_at is null
|
|
27
|
+
and schedule.status = 'Completed'::public.job_status_enum
|
|
28
|
+
and schedule.end_time <= now()
|
|
29
|
+
group by job.client_id;
|
|
30
|
+
$$;
|
|
31
|
+
|
|
32
|
+
comment on function public.get_client_map_last_completed_jobs(uuid) is
|
|
33
|
+
'Returns each client''s most recent completed job schedule for the map.';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
-- Drop the redundant legacy is_deleted term from the decline-on-schedule-
|
|
2
|
+
-- delete capture (dead column; see the note in 20260819191144). Body
|
|
3
|
+
-- restated from 20260817221711_automation_soft_delete_events.sql; deleted_at
|
|
4
|
+
-- alone carries the liveness semantics (the trash RPCs stamped both flags
|
|
5
|
+
-- together, so the coalesce(is_deleted, ...) term never changed the result).
|
|
6
|
+
|
|
7
|
+
create or replace function "public"."capture_automation_booking_declined_delete"()
|
|
8
|
+
returns trigger
|
|
9
|
+
language "plpgsql"
|
|
10
|
+
security definer
|
|
11
|
+
set search_path = 'public'
|
|
12
|
+
as $$
|
|
13
|
+
begin
|
|
14
|
+
if current_setting('autopilot.trash_purging', true) = 'true' then
|
|
15
|
+
return null; -- purge of a trashed job: booking_declined already fired at soft-delete time
|
|
16
|
+
end if;
|
|
17
|
+
if exists (
|
|
18
|
+
select 1 from job
|
|
19
|
+
where id = OLD.job_id
|
|
20
|
+
and deleted_at is null
|
|
21
|
+
) then
|
|
22
|
+
return null; -- schedule edit churn: parent job still live, not a decline
|
|
23
|
+
end if;
|
|
24
|
+
insert into automation_event (company_id, event_type, job_id, schedule_id, payload)
|
|
25
|
+
values (OLD.company_id, 'booking_declined', OLD.job_id, OLD.id, to_jsonb(OLD));
|
|
26
|
+
return null;
|
|
27
|
+
end;
|
|
28
|
+
$$;
|