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,13 @@
|
|
|
1
|
+
-- Persist each chunk's recipient list at queue time. Recipient lists previously
|
|
2
|
+
-- lived only inside the QStash message payloads, which makes pause/resume
|
|
3
|
+
-- impossible: once a queued chunk is cancelled there is no record of who it was
|
|
4
|
+
-- going to reach. The resume path republishes chunks whose status is
|
|
5
|
+
-- 'cancelled' from this column. Minimal projection only (what the workers
|
|
6
|
+
-- actually use), not full client rows:
|
|
7
|
+
-- blast_email_chunk: [{ email, first_name, last_name }]
|
|
8
|
+
-- blast_sms_chunk: [{ id, first_name, last_name, primary_phone_number }]
|
|
9
|
+
-- Nullable: chunks queued before this feature deployed have no recipients and
|
|
10
|
+
-- can be paused/cancelled but not resumed.
|
|
11
|
+
alter table "public"."blast_email_chunk" add column "recipients" jsonb;
|
|
12
|
+
|
|
13
|
+
alter table "public"."blast_sms_chunk" add column "recipients" jsonb;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
-- Lifecycle bookkeeping for user-initiated pause/cancel of blasts.
|
|
2
|
+
-- paused_at: when the blast was paused (display + debugging; cleared on
|
|
3
|
+
-- resume/cancel).
|
|
4
|
+
alter table "public"."blast_email" add column "paused_at" timestamp with time zone;
|
|
5
|
+
|
|
6
|
+
alter table "public"."blast_sms" add column "paused_at" timestamp with time zone;
|
|
7
|
+
|
|
8
|
+
-- Parity with blast_email.aborted_reason: records why an SMS blast was stopped
|
|
9
|
+
-- ('cancelled_by_user', entitlement-loss reasons, etc.).
|
|
10
|
+
alter table "public"."blast_sms" add column "aborted_reason" text;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
-- Compute "job IDs whose earliest schedule falls in a date range" in the
|
|
2
|
+
-- database instead of downloading every schedule row of every candidate job
|
|
3
|
+
-- to the client. Replaces the paged-seed + chunked-.in() logic in core's
|
|
4
|
+
-- DashboardProvider.loadJobIdsInRange and web's fetchJobIdsInRangeAllStatuses
|
|
5
|
+
-- fork (p_include_canceled toggles between the two variants).
|
|
6
|
+
--
|
|
7
|
+
-- Callers must page the result via .order/.range: PostgREST's max_rows cap
|
|
8
|
+
-- applies to set-returning function responses as well.
|
|
9
|
+
|
|
10
|
+
create or replace function "public"."get_job_ids_in_range"(
|
|
11
|
+
"p_company_id" uuid,
|
|
12
|
+
"p_date_from" timestamp with time zone,
|
|
13
|
+
"p_date_to" timestamp with time zone,
|
|
14
|
+
"p_include_canceled" boolean default false
|
|
15
|
+
)
|
|
16
|
+
returns table ("job_id" uuid)
|
|
17
|
+
as $$
|
|
18
|
+
with candidates as (
|
|
19
|
+
select distinct js.job_id
|
|
20
|
+
from public.job_schedule js
|
|
21
|
+
where js.company_id = p_company_id
|
|
22
|
+
and js.start_time >= p_date_from
|
|
23
|
+
and js.start_time <= p_date_to
|
|
24
|
+
and (p_include_canceled or js.status <> 'Canceled')
|
|
25
|
+
)
|
|
26
|
+
select js.job_id
|
|
27
|
+
from public.job_schedule js
|
|
28
|
+
join candidates c on c.job_id = js.job_id
|
|
29
|
+
where js.company_id = p_company_id
|
|
30
|
+
and (p_include_canceled or js.status <> 'Canceled')
|
|
31
|
+
group by js.job_id
|
|
32
|
+
having min(js.start_time) >= p_date_from
|
|
33
|
+
and min(js.start_time) <= p_date_to
|
|
34
|
+
order by js.job_id
|
|
35
|
+
$$ language sql stable security invoker
|
|
36
|
+
set search_path = "public", "pg_temp";
|
|
37
|
+
|
|
38
|
+
-- idx_job_schedule_company_active_start is partial (status <> 'Canceled') and
|
|
39
|
+
-- only serves the exclude-canceled variant; this unfiltered companion serves
|
|
40
|
+
-- the all-statuses candidate scan.
|
|
41
|
+
create index if not exists idx_job_schedule_company_start
|
|
42
|
+
on public.job_schedule (company_id, start_time, job_id);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
-- Rentals rework R1: new 'Failed' status for rental tasks — the task could
|
|
2
|
+
-- not be completed for some reason (vs. Canceled = the customer or company
|
|
3
|
+
-- called it off). Route re-optimization plans around Failed rows.
|
|
4
|
+
--
|
|
5
|
+
-- job_status_enum is shared by job.status, job_schedule.status and
|
|
6
|
+
-- estimate.schedule_status. The product rule is that ONLY task-typed
|
|
7
|
+
-- job_schedule rows (task_type is not null) ever carry 'Failed'; clients
|
|
8
|
+
-- enforce this by offering it only in those dropdowns. A stray job-level
|
|
9
|
+
-- 'Failed' would be wrong data but not corruption, so no DB constraint.
|
|
10
|
+
--
|
|
11
|
+
-- This ALTER must be the ONLY statement in this migration: Postgres allows
|
|
12
|
+
-- ADD VALUE inside a transaction but forbids USING the new value in the
|
|
13
|
+
-- same transaction, and each migration file runs as one transaction.
|
|
14
|
+
|
|
15
|
+
alter type "public"."job_status_enum" add value 'Failed';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
-- Rentals rework R1: the take-to family (take_to_dump / take_to_lot /
|
|
2
|
+
-- take_to_other) leaves the task vocabulary. Hauls to landfills/lots are
|
|
3
|
+
-- route-optimizer legs (persisted route plans, R2), never job_schedule
|
|
4
|
+
-- tasks, so they can no longer be selected as task types.
|
|
5
|
+
--
|
|
6
|
+
-- DESTRUCTIVE: deletes take_to rows from rental_task_option. The rentals
|
|
7
|
+
-- feature has never been live (dark behind entitlement + rentals_enabled),
|
|
8
|
+
-- so only internal/QA companies can have such rows.
|
|
9
|
+
|
|
10
|
+
delete from "public"."rental_task_option"
|
|
11
|
+
where "preset_key" in ('take_to_dump', 'take_to_lot', 'take_to_other');
|
|
12
|
+
|
|
13
|
+
-- Mirrored by PRESET_TASK_KEYS in src/server-safe/rentals.ts — the two
|
|
14
|
+
-- lists must stay in sync.
|
|
15
|
+
alter table "public"."rental_task_option"
|
|
16
|
+
drop constraint "rental_task_option_preset_key_check";
|
|
17
|
+
|
|
18
|
+
alter table "public"."rental_task_option"
|
|
19
|
+
add constraint "rental_task_option_preset_key_check" check (
|
|
20
|
+
"preset_key" is null or "preset_key" in (
|
|
21
|
+
'drop_off', 'pick_up', 'swap', 'live_load', 'relocate',
|
|
22
|
+
'dump_and_return', 'repair', 'service'
|
|
23
|
+
)
|
|
24
|
+
);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
-- Rentals rework R1: delete existing take-to task rows. task_type is
|
|
2
|
+
-- unconstrained text (no FK/CHECK by design), so this is pure data
|
|
3
|
+
-- cleanup; job_user rows cascade via job_user_job_schedule_id_fkey
|
|
4
|
+
-- (ON DELETE CASCADE).
|
|
5
|
+
--
|
|
6
|
+
-- DESTRUCTIVE: deletes job_schedule rows. The rentals feature has never
|
|
7
|
+
-- been live, so only internal/QA companies can have take_to rows (created
|
|
8
|
+
-- by the C3 completion spawn flow or an approved route plan — both flows
|
|
9
|
+
-- are removed in this same release).
|
|
10
|
+
|
|
11
|
+
delete from "public"."job_schedule"
|
|
12
|
+
where "task_type" in ('take_to_dump', 'take_to_lot', 'take_to_other');
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
-- Rentals rework R1: apply_rental_route_plan loses its take_to row
|
|
2
|
+
-- creation (phase 4). take-to legs are no longer job_schedule tasks; R2
|
|
3
|
+
-- replaces this function wholesale with the persisted-route-plan version.
|
|
4
|
+
-- This interim rework exists so the function stops referencing the
|
|
5
|
+
-- target_* columns BEFORE the next migration drops them, and so a stale
|
|
6
|
+
-- deployed web bundle that still sends p_new_tasks fails loudly instead of
|
|
7
|
+
-- recreating take_to rows.
|
|
8
|
+
--
|
|
9
|
+
-- Phases 1–3 (lock+verify, list_sort_key/asset updates, job_user
|
|
10
|
+
-- replacement) are byte-identical to the previous version.
|
|
11
|
+
|
|
12
|
+
create or replace function "public"."apply_rental_route_plan"(
|
|
13
|
+
"p_company_id" uuid,
|
|
14
|
+
"p_expected" jsonb,
|
|
15
|
+
"p_task_updates" jsonb,
|
|
16
|
+
"p_assignments" jsonb,
|
|
17
|
+
"p_new_tasks" jsonb
|
|
18
|
+
) returns void
|
|
19
|
+
language plpgsql
|
|
20
|
+
security definer
|
|
21
|
+
set search_path = public
|
|
22
|
+
as $$
|
|
23
|
+
declare
|
|
24
|
+
v_item jsonb;
|
|
25
|
+
v_sched "public"."job_schedule"%rowtype;
|
|
26
|
+
v_expected_ids uuid[] := '{}';
|
|
27
|
+
v_schedule_id uuid;
|
|
28
|
+
v_current_users uuid[];
|
|
29
|
+
v_expected_users uuid[];
|
|
30
|
+
begin
|
|
31
|
+
if p_company_id is null then
|
|
32
|
+
raise exception 'company id is required'
|
|
33
|
+
using errcode = 'P0011';
|
|
34
|
+
end if;
|
|
35
|
+
|
|
36
|
+
if jsonb_array_length(coalesce(p_new_tasks, '[]'::jsonb)) > 0 then
|
|
37
|
+
raise exception
|
|
38
|
+
'optimizer task creation is disabled pending route-plan rework'
|
|
39
|
+
using errcode = 'P0012';
|
|
40
|
+
end if;
|
|
41
|
+
|
|
42
|
+
-- 1. Lock every planned row; verify tenancy and that its optimized
|
|
43
|
+
-- state — status, assets, ordering, assignees — is unchanged since
|
|
44
|
+
-- the plan was computed. Status alone is not enough: a dispatcher
|
|
45
|
+
-- can re-assign an asset or a driver without touching status, and a
|
|
46
|
+
-- stale plan must not overwrite that edit.
|
|
47
|
+
for v_item in
|
|
48
|
+
select * from jsonb_array_elements(coalesce(p_expected, '[]'::jsonb))
|
|
49
|
+
loop
|
|
50
|
+
v_schedule_id := (v_item->>'schedule_id')::uuid;
|
|
51
|
+
|
|
52
|
+
select * into v_sched
|
|
53
|
+
from "public"."job_schedule"
|
|
54
|
+
where "id" = v_schedule_id
|
|
55
|
+
for update;
|
|
56
|
+
|
|
57
|
+
if not found or v_sched."company_id" is distinct from p_company_id then
|
|
58
|
+
raise exception 'route plan references an unknown schedule row'
|
|
59
|
+
using errcode = 'P0011';
|
|
60
|
+
end if;
|
|
61
|
+
|
|
62
|
+
select coalesce(array_agg("user_id" order by "user_id"), '{}')
|
|
63
|
+
into v_current_users
|
|
64
|
+
from "public"."job_user"
|
|
65
|
+
where "job_schedule_id" = v_schedule_id;
|
|
66
|
+
|
|
67
|
+
select coalesce(array_agg(u.value::uuid order by u.value::uuid), '{}')
|
|
68
|
+
into v_expected_users
|
|
69
|
+
from jsonb_array_elements_text(
|
|
70
|
+
coalesce(v_item->'user_ids', '[]'::jsonb)) u;
|
|
71
|
+
|
|
72
|
+
if v_sched."status"::text is distinct from (v_item->>'status')
|
|
73
|
+
or v_sched."asset_id" is distinct from
|
|
74
|
+
(v_item->>'asset_id')::uuid
|
|
75
|
+
or v_sched."secondary_asset_id" is distinct from
|
|
76
|
+
(v_item->>'secondary_asset_id')::uuid
|
|
77
|
+
or v_sched."list_sort_key" is distinct from
|
|
78
|
+
(v_item->>'list_sort_key')::numeric
|
|
79
|
+
or v_current_users is distinct from v_expected_users
|
|
80
|
+
then
|
|
81
|
+
raise exception 'route plan is stale'
|
|
82
|
+
using errcode = 'P0010';
|
|
83
|
+
end if;
|
|
84
|
+
|
|
85
|
+
v_expected_ids := v_expected_ids || v_schedule_id;
|
|
86
|
+
end loop;
|
|
87
|
+
|
|
88
|
+
-- 2. Ordering / asset assignment updates. Every touched row must have
|
|
89
|
+
-- been locked and company-checked above.
|
|
90
|
+
for v_item in
|
|
91
|
+
select * from jsonb_array_elements(coalesce(p_task_updates, '[]'::jsonb))
|
|
92
|
+
loop
|
|
93
|
+
v_schedule_id := (v_item->>'schedule_id')::uuid;
|
|
94
|
+
|
|
95
|
+
if not (v_schedule_id = any (v_expected_ids)) then
|
|
96
|
+
raise exception 'task update outside the locked plan rows'
|
|
97
|
+
using errcode = 'P0011';
|
|
98
|
+
end if;
|
|
99
|
+
|
|
100
|
+
update "public"."job_schedule"
|
|
101
|
+
set "list_sort_key" = (v_item->>'list_sort_key')::numeric,
|
|
102
|
+
"asset_id" = case
|
|
103
|
+
when v_item ? 'asset_id' then (v_item->>'asset_id')::uuid
|
|
104
|
+
else "asset_id"
|
|
105
|
+
end
|
|
106
|
+
where "id" = v_schedule_id;
|
|
107
|
+
end loop;
|
|
108
|
+
|
|
109
|
+
-- 3. Full replacement of each planned row's assignments. job_id is read
|
|
110
|
+
-- from the schedule row itself, never from the payload, and every
|
|
111
|
+
-- assignee must belong to the company — user and company foreign
|
|
112
|
+
-- keys on job_user are enforced independently, so without this
|
|
113
|
+
-- check a crafted payload could create a cross-tenant assignment.
|
|
114
|
+
for v_item in
|
|
115
|
+
select * from jsonb_array_elements(coalesce(p_assignments, '[]'::jsonb))
|
|
116
|
+
loop
|
|
117
|
+
v_schedule_id := (v_item->>'schedule_id')::uuid;
|
|
118
|
+
|
|
119
|
+
if not (v_schedule_id = any (v_expected_ids)) then
|
|
120
|
+
raise exception 'assignment outside the locked plan rows'
|
|
121
|
+
using errcode = 'P0011';
|
|
122
|
+
end if;
|
|
123
|
+
|
|
124
|
+
perform 1
|
|
125
|
+
from jsonb_array_elements_text(
|
|
126
|
+
coalesce(v_item->'user_ids', '[]'::jsonb)) u
|
|
127
|
+
where not exists (
|
|
128
|
+
select 1 from "public"."user_role" ur
|
|
129
|
+
where ur."user_id" = u.value::uuid
|
|
130
|
+
and ur."company_id" = p_company_id
|
|
131
|
+
);
|
|
132
|
+
if found then
|
|
133
|
+
raise exception 'assignee outside the company'
|
|
134
|
+
using errcode = 'P0011';
|
|
135
|
+
end if;
|
|
136
|
+
|
|
137
|
+
delete from "public"."job_user"
|
|
138
|
+
where "job_schedule_id" = v_schedule_id;
|
|
139
|
+
|
|
140
|
+
insert into "public"."job_user"
|
|
141
|
+
("company_id", "job_id", "job_schedule_id", "user_id")
|
|
142
|
+
select p_company_id, js."job_id", v_schedule_id, u.value::uuid
|
|
143
|
+
from "public"."job_schedule" js
|
|
144
|
+
cross join jsonb_array_elements_text(
|
|
145
|
+
coalesce(v_item->'user_ids', '[]'::jsonb)) u
|
|
146
|
+
where js."id" = v_schedule_id;
|
|
147
|
+
end loop;
|
|
148
|
+
end;
|
|
149
|
+
$$;
|
|
150
|
+
|
|
151
|
+
alter function "public"."apply_rental_route_plan"(
|
|
152
|
+
uuid, jsonb, jsonb, jsonb, jsonb
|
|
153
|
+
) owner to "postgres";
|
|
154
|
+
|
|
155
|
+
-- security definer + service_role-only: /api/rental-routes/apply is the
|
|
156
|
+
-- sole caller; no authenticated/anon path exists.
|
|
157
|
+
revoke all on function "public"."apply_rental_route_plan"(
|
|
158
|
+
uuid, jsonb, jsonb, jsonb, jsonb
|
|
159
|
+
) from public;
|
|
160
|
+
revoke all on function "public"."apply_rental_route_plan"(
|
|
161
|
+
uuid, jsonb, jsonb, jsonb, jsonb
|
|
162
|
+
) from "anon";
|
|
163
|
+
revoke all on function "public"."apply_rental_route_plan"(
|
|
164
|
+
uuid, jsonb, jsonb, jsonb, jsonb
|
|
165
|
+
) from "authenticated";
|
|
166
|
+
grant execute on function "public"."apply_rental_route_plan"(
|
|
167
|
+
uuid, jsonb, jsonb, jsonb, jsonb
|
|
168
|
+
) to "service_role";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
-- Rentals rework R1: the take-to task family is gone (previous two
|
|
2
|
+
-- migrations), so its destination columns go too. Route-plan legs (R2)
|
|
3
|
+
-- carry their own destination data on route_plan_stop.
|
|
4
|
+
--
|
|
5
|
+
-- DESTRUCTIVE: drops four columns. Verified no deployed select string
|
|
6
|
+
-- names them (mobile fetches job_schedule(*); web's explicit-column embeds
|
|
7
|
+
-- name only status/time/task_type fields; the rentalRouting engine reads
|
|
8
|
+
-- them from wildcard selects in TS only, so post-drop it sees undefined,
|
|
9
|
+
-- not a 400). The only DB-side reader was apply_rental_route_plan,
|
|
10
|
+
-- reworked in the previous migration.
|
|
11
|
+
|
|
12
|
+
alter table "public"."job_schedule"
|
|
13
|
+
drop constraint "job_schedule_target_location_shape_check";
|
|
14
|
+
|
|
15
|
+
alter table "public"."job_schedule"
|
|
16
|
+
drop constraint "job_schedule_target_saved_location_id_fkey";
|
|
17
|
+
|
|
18
|
+
drop index "public"."job_schedule_target_saved_location_id_idx";
|
|
19
|
+
|
|
20
|
+
alter table "public"."job_schedule"
|
|
21
|
+
drop column "target_saved_location_id",
|
|
22
|
+
drop column "target_address",
|
|
23
|
+
drop column "target_latitude",
|
|
24
|
+
drop column "target_longitude";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
-- Rentals rework R1: rental tasks carry a SIZE instead of a pre-selected
|
|
2
|
+
-- asset. The exact unit isn't known until the driver loads the truck, so
|
|
3
|
+
-- the schedule card offers Type + Size; asset_id is recorded at execution
|
|
4
|
+
-- time (completion picker / driver mode).
|
|
5
|
+
--
|
|
6
|
+
-- Written by the schedule cards (web + mobile), online booking
|
|
7
|
+
-- (customer-create-job, from item.size) and ModalDuplicateJob. Read by the
|
|
8
|
+
-- route optimizer (replaces item-heuristic size inference, R2) and the
|
|
9
|
+
-- completion asset picker's default filter. Swap rows carry ONE size — the
|
|
10
|
+
-- delivered (swapped-in) asset's.
|
|
11
|
+
--
|
|
12
|
+
-- CHECK mirrors item_size_check (20260807014723): zero/negative yardage is
|
|
13
|
+
-- always a data error; both UIs coerce empty input to null.
|
|
14
|
+
|
|
15
|
+
alter table "public"."job_schedule"
|
|
16
|
+
add column "size" numeric
|
|
17
|
+
constraint "job_schedule_size_check" check ("size" > 0);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
-- Rentals rework R2: backing key for tenant-consistent composite FKs from
|
|
2
|
+
-- route_plan_stop (job_schedule_id / source_job_schedule_id + company_id).
|
|
3
|
+
-- id is already the primary key, so this adds no new uniqueness semantics —
|
|
4
|
+
-- it only gives composite FKs a target, matching the asset /
|
|
5
|
+
-- saved_location pattern.
|
|
6
|
+
--
|
|
7
|
+
-- ADD CONSTRAINT takes a brief ACCESS EXCLUSIVE lock on job_schedule —
|
|
8
|
+
-- apply off-peak.
|
|
9
|
+
|
|
10
|
+
alter table only "public"."job_schedule"
|
|
11
|
+
add constraint "job_schedule_id_company_id_key" unique ("id", "company_id");
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
-- Rentals rework R2: persisted route plans. One active plan per company
|
|
2
|
+
-- per day (unique (company_id, date)); re-optimizing the same day bumps
|
|
3
|
+
-- `run` in place instead of inserting a second plan. Superseded runs'
|
|
4
|
+
-- stops survive as history rows in route_plan_stop (next migration);
|
|
5
|
+
-- plans themselves are kept forever (Ryan's decision — volume is one row
|
|
6
|
+
-- per company-day, and the history is the dispatch audit trail).
|
|
7
|
+
--
|
|
8
|
+
-- structural_fingerprint is the shared core helper's hash over the day's
|
|
9
|
+
-- rental task rows AS PLANNED (computed at optimize time over the
|
|
10
|
+
-- post-apply state). Clients recompute it over the current day and a
|
|
11
|
+
-- mismatch means the plan is stale — completing tasks as planned does NOT
|
|
12
|
+
-- flip it; Failed/Canceled/add/remove/reorder/reassign/size changes do.
|
|
13
|
+
--
|
|
14
|
+
-- Plan creation/replacement goes only through the service-role
|
|
15
|
+
-- apply_rental_route_plan RPC — for atomicity with the schedule writes,
|
|
16
|
+
-- not security; staff read (and R3 driver-mode stop writes) are direct
|
|
17
|
+
-- RLS-scoped queries.
|
|
18
|
+
|
|
19
|
+
create table if not exists "public"."route_plan" (
|
|
20
|
+
"id" "uuid" default "gen_random_uuid"() not null,
|
|
21
|
+
"created_at" timestamp with time zone default "now"() not null,
|
|
22
|
+
"updated_at" timestamp with time zone,
|
|
23
|
+
"company_id" "uuid" not null,
|
|
24
|
+
-- YYYY-MM-DD company-calendar day the plan covers.
|
|
25
|
+
"date" "date" not null,
|
|
26
|
+
-- Bumped on every re-optimize apply; optimistic-concurrency token for
|
|
27
|
+
-- the preview -> approve flow.
|
|
28
|
+
"run" integer default 1 not null,
|
|
29
|
+
"structural_fingerprint" "text" not null,
|
|
30
|
+
"created_by" "uuid",
|
|
31
|
+
"total_miles" numeric default 0 not null,
|
|
32
|
+
"warnings" "jsonb" default '[]'::"jsonb" not null,
|
|
33
|
+
"unroutable" "jsonb" default '[]'::"jsonb" not null,
|
|
34
|
+
"distance_stats" "jsonb" default '{}'::"jsonb" not null,
|
|
35
|
+
constraint "route_plan_pkey" primary key ("id"),
|
|
36
|
+
constraint "route_plan_company_id_date_key" unique ("company_id", "date"),
|
|
37
|
+
-- Backing key for route_plan_stop's tenant-consistent composite FK.
|
|
38
|
+
constraint "route_plan_id_company_id_key" unique ("id", "company_id"),
|
|
39
|
+
constraint "route_plan_run_check" check ("run" > 0)
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
alter table "public"."route_plan" owner to "postgres";
|
|
43
|
+
|
|
44
|
+
alter table only "public"."route_plan"
|
|
45
|
+
add constraint "route_plan_company_id_fkey"
|
|
46
|
+
foreign key ("company_id") references "public"."company"("id") on delete cascade;
|
|
47
|
+
|
|
48
|
+
alter table only "public"."route_plan"
|
|
49
|
+
add constraint "route_plan_created_by_fkey"
|
|
50
|
+
foreign key ("created_by") references "public"."user"("id") on delete set null;
|
|
51
|
+
|
|
52
|
+
create index "route_plan_company_id_idx" on "public"."route_plan" ("company_id");
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
-- Rentals rework R2: the stops of a persisted route plan, ordered per
|
|
2
|
+
-- driver by (run, sort_key). Two kinds, enforced by
|
|
3
|
+
-- route_plan_stop_shape_check:
|
|
4
|
+
--
|
|
5
|
+
-- 'task' -> job_schedule_id set; the task's status/assets stay on the
|
|
6
|
+
-- job_schedule row (never duplicated here), so the implied-
|
|
7
|
+
-- only columns (implied_kind, status, completed_at/by) are
|
|
8
|
+
-- null.
|
|
9
|
+
-- 'implied' -> an optimizer-created leg with no job_schedule row:
|
|
10
|
+
-- haul_to_landfill, return_empty_to_lot, store_full_at_lot,
|
|
11
|
+
-- load_empty_at_lot, or collect_full_at_lot (mirrored by
|
|
12
|
+
-- the persisted subset of
|
|
13
|
+
-- ImpliedLegKind in src/server-safe/routeOptimization.ts;
|
|
14
|
+
-- 'reposition' — an empty-bed drive — is display-only and
|
|
15
|
+
-- never persisted). Carries its own status
|
|
16
|
+
-- pending|completed|failed, completed in R3's driver mode
|
|
17
|
+
-- via RentalsProvider.completeRoutePlanStop.
|
|
18
|
+
--
|
|
19
|
+
-- id is CLIENT-generated (by the optimizer engine) and inserted with
|
|
20
|
+
-- on-conflict-do-nothing so a retried approval never duplicates rows.
|
|
21
|
+
-- Re-optimizing deletes only re-plannable stops (pending implied stops,
|
|
22
|
+
-- and task stops whose schedule isn't Completed/Failed) and inserts the
|
|
23
|
+
-- new run's stops; terminal stops from earlier runs remain as history.
|
|
24
|
+
--
|
|
25
|
+
-- suggested_asset_id is the optimizer's suggestion (dumpsters are fungible
|
|
26
|
+
-- within a size); asset_id is the unit actually moved, recorded at
|
|
27
|
+
-- execution time only. label/address/lat/lng are denormalized so history
|
|
28
|
+
-- stays renderable after a saved_location is deleted (its FK is SET NULL).
|
|
29
|
+
|
|
30
|
+
create table if not exists "public"."route_plan_stop" (
|
|
31
|
+
"id" "uuid" not null,
|
|
32
|
+
"created_at" timestamp with time zone default "now"() not null,
|
|
33
|
+
"company_id" "uuid" not null,
|
|
34
|
+
"route_plan_id" "uuid" not null,
|
|
35
|
+
"run" integer not null,
|
|
36
|
+
"sort_key" numeric not null,
|
|
37
|
+
"driver_user_id" "uuid" not null,
|
|
38
|
+
"kind" "text" not null,
|
|
39
|
+
"job_schedule_id" "uuid",
|
|
40
|
+
"implied_kind" "text",
|
|
41
|
+
"status" "text",
|
|
42
|
+
"completed_at" timestamp with time zone,
|
|
43
|
+
"completed_by" "uuid",
|
|
44
|
+
"suggested_asset_id" "uuid",
|
|
45
|
+
"asset_id" "uuid",
|
|
46
|
+
"size" numeric,
|
|
47
|
+
"saved_location_id" "uuid",
|
|
48
|
+
"label" "text" not null,
|
|
49
|
+
"address" "text" not null,
|
|
50
|
+
"latitude" numeric not null,
|
|
51
|
+
"longitude" numeric not null,
|
|
52
|
+
"source_job_schedule_id" "uuid",
|
|
53
|
+
"leg_miles_from_prev" numeric default 0 not null,
|
|
54
|
+
constraint "route_plan_stop_pkey" primary key ("id"),
|
|
55
|
+
constraint "route_plan_stop_kind_check" check (
|
|
56
|
+
"kind" in ('task', 'implied')
|
|
57
|
+
),
|
|
58
|
+
constraint "route_plan_stop_implied_kind_check" check (
|
|
59
|
+
"implied_kind" in (
|
|
60
|
+
'haul_to_landfill',
|
|
61
|
+
'return_empty_to_lot',
|
|
62
|
+
'store_full_at_lot',
|
|
63
|
+
'load_empty_at_lot',
|
|
64
|
+
'collect_full_at_lot'
|
|
65
|
+
)
|
|
66
|
+
),
|
|
67
|
+
constraint "route_plan_stop_status_check" check (
|
|
68
|
+
"status" in ('pending', 'completed', 'failed')
|
|
69
|
+
),
|
|
70
|
+
constraint "route_plan_stop_size_check" check ("size" > 0),
|
|
71
|
+
constraint "route_plan_stop_run_check" check ("run" > 0),
|
|
72
|
+
constraint "route_plan_stop_shape_check" check (
|
|
73
|
+
("kind" = 'task'
|
|
74
|
+
and "job_schedule_id" is not null
|
|
75
|
+
and "implied_kind" is null
|
|
76
|
+
and "status" is null
|
|
77
|
+
and "completed_at" is null
|
|
78
|
+
and "completed_by" is null)
|
|
79
|
+
or ("kind" = 'implied'
|
|
80
|
+
and "job_schedule_id" is null
|
|
81
|
+
and "implied_kind" is not null
|
|
82
|
+
and "status" is not null)
|
|
83
|
+
)
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
alter table "public"."route_plan_stop" owner to "postgres";
|
|
87
|
+
|
|
88
|
+
alter table only "public"."route_plan_stop"
|
|
89
|
+
add constraint "route_plan_stop_company_id_fkey"
|
|
90
|
+
foreign key ("company_id") references "public"."company"("id") on delete cascade;
|
|
91
|
+
|
|
92
|
+
-- Tenant-consistent composite FKs (house pattern). The plan FK cascades:
|
|
93
|
+
-- a deleted plan takes its stops with it. A deleted task row takes its
|
|
94
|
+
-- stop rows with it (the stop is meaningless without the task's status).
|
|
95
|
+
-- Asset / location / source-task FKs SET NULL only their own column
|
|
96
|
+
-- (PG15 column-list form) so history rows survive out-of-band deletes.
|
|
97
|
+
alter table only "public"."route_plan_stop"
|
|
98
|
+
add constraint "route_plan_stop_route_plan_id_fkey"
|
|
99
|
+
foreign key ("route_plan_id", "company_id")
|
|
100
|
+
references "public"."route_plan"("id", "company_id")
|
|
101
|
+
on delete cascade;
|
|
102
|
+
|
|
103
|
+
alter table only "public"."route_plan_stop"
|
|
104
|
+
add constraint "route_plan_stop_job_schedule_id_fkey"
|
|
105
|
+
foreign key ("job_schedule_id", "company_id")
|
|
106
|
+
references "public"."job_schedule"("id", "company_id")
|
|
107
|
+
on delete cascade;
|
|
108
|
+
|
|
109
|
+
alter table only "public"."route_plan_stop"
|
|
110
|
+
add constraint "route_plan_stop_source_job_schedule_id_fkey"
|
|
111
|
+
foreign key ("source_job_schedule_id", "company_id")
|
|
112
|
+
references "public"."job_schedule"("id", "company_id")
|
|
113
|
+
on delete set null ("source_job_schedule_id");
|
|
114
|
+
|
|
115
|
+
alter table only "public"."route_plan_stop"
|
|
116
|
+
add constraint "route_plan_stop_suggested_asset_id_fkey"
|
|
117
|
+
foreign key ("suggested_asset_id", "company_id")
|
|
118
|
+
references "public"."asset"("id", "company_id")
|
|
119
|
+
on delete set null ("suggested_asset_id");
|
|
120
|
+
|
|
121
|
+
alter table only "public"."route_plan_stop"
|
|
122
|
+
add constraint "route_plan_stop_asset_id_fkey"
|
|
123
|
+
foreign key ("asset_id", "company_id")
|
|
124
|
+
references "public"."asset"("id", "company_id")
|
|
125
|
+
on delete set null ("asset_id");
|
|
126
|
+
|
|
127
|
+
alter table only "public"."route_plan_stop"
|
|
128
|
+
add constraint "route_plan_stop_saved_location_id_fkey"
|
|
129
|
+
foreign key ("saved_location_id", "company_id")
|
|
130
|
+
references "public"."saved_location"("id", "company_id")
|
|
131
|
+
on delete set null ("saved_location_id");
|
|
132
|
+
|
|
133
|
+
alter table only "public"."route_plan_stop"
|
|
134
|
+
add constraint "route_plan_stop_driver_user_id_fkey"
|
|
135
|
+
foreign key ("driver_user_id") references "public"."user"("id")
|
|
136
|
+
on delete cascade;
|
|
137
|
+
|
|
138
|
+
alter table only "public"."route_plan_stop"
|
|
139
|
+
add constraint "route_plan_stop_completed_by_fkey"
|
|
140
|
+
foreign key ("completed_by") references "public"."user"("id")
|
|
141
|
+
on delete set null;
|
|
142
|
+
|
|
143
|
+
create index "route_plan_stop_company_id_idx"
|
|
144
|
+
on "public"."route_plan_stop" ("company_id");
|
|
145
|
+
-- The read path: a plan's stops ordered for display.
|
|
146
|
+
create index "route_plan_stop_plan_run_sort_idx"
|
|
147
|
+
on "public"."route_plan_stop" ("route_plan_id", "run", "sort_key");
|
|
148
|
+
create index "route_plan_stop_job_schedule_id_idx"
|
|
149
|
+
on "public"."route_plan_stop" ("job_schedule_id");
|
|
150
|
+
create index "route_plan_stop_source_job_schedule_id_idx"
|
|
151
|
+
on "public"."route_plan_stop" ("source_job_schedule_id");
|
|
152
|
+
create index "route_plan_stop_driver_user_id_idx"
|
|
153
|
+
on "public"."route_plan_stop" ("driver_user_id");
|
|
154
|
+
create index "route_plan_stop_suggested_asset_id_idx"
|
|
155
|
+
on "public"."route_plan_stop" ("suggested_asset_id");
|
|
156
|
+
create index "route_plan_stop_asset_id_idx"
|
|
157
|
+
on "public"."route_plan_stop" ("asset_id");
|
|
158
|
+
create index "route_plan_stop_saved_location_id_idx"
|
|
159
|
+
on "public"."route_plan_stop" ("saved_location_id");
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
-- RLS for the persisted route-plan tables.
|
|
2
|
+
--
|
|
3
|
+
-- Affected tables: route_plan, route_plan_stop.
|
|
4
|
+
--
|
|
5
|
+
-- Standard house policy (contracts template): any authenticated staff
|
|
6
|
+
-- member of the owning company can CRUD. Staff need direct reads (web map
|
|
7
|
+
-- panel, R3 driver mode) and direct stop-row writes (driver mode completes
|
|
8
|
+
-- implied stops via RentalsProvider.completeRoutePlanStop). Plan
|
|
9
|
+
-- creation/replacement still goes only through the service-role
|
|
10
|
+
-- apply_rental_route_plan RPC — that's an atomicity choice, not a
|
|
11
|
+
-- security boundary. End customers never touch these tables — NO anon
|
|
12
|
+
-- policies or grants.
|
|
13
|
+
|
|
14
|
+
alter table "public"."route_plan" enable row level security;
|
|
15
|
+
alter table "public"."route_plan_stop" enable row level security;
|
|
16
|
+
|
|
17
|
+
grant all on table "public"."route_plan" to "authenticated";
|
|
18
|
+
grant all on table "public"."route_plan" to "service_role";
|
|
19
|
+
grant all on table "public"."route_plan_stop" to "authenticated";
|
|
20
|
+
grant all on table "public"."route_plan_stop" to "service_role";
|
|
21
|
+
|
|
22
|
+
create policy "Anyone with matching company_id can CRUD"
|
|
23
|
+
on "public"."route_plan"
|
|
24
|
+
to "authenticated"
|
|
25
|
+
using (((nullif(trim(both '"'::"text" from ("public"."get_my_claim"('autopilot_company_id'::"text"))::"text"), ''::"text"))::"uuid" = "company_id"))
|
|
26
|
+
with check (((nullif(trim(both '"'::"text" from ("public"."get_my_claim"('autopilot_company_id'::"text"))::"text"), ''::"text"))::"uuid" = "company_id"));
|
|
27
|
+
|
|
28
|
+
create policy "Anyone with matching company_id can CRUD"
|
|
29
|
+
on "public"."route_plan_stop"
|
|
30
|
+
to "authenticated"
|
|
31
|
+
using (((nullif(trim(both '"'::"text" from ("public"."get_my_claim"('autopilot_company_id'::"text"))::"text"), ''::"text"))::"uuid" = "company_id"))
|
|
32
|
+
with check (((nullif(trim(both '"'::"text" from ("public"."get_my_claim"('autopilot_company_id'::"text"))::"text"), ''::"text"))::"uuid" = "company_id"));
|