@flowselections/logistiek-engine 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist-lib/components/LogistiekEnginePage.d.ts.map +1 -1
  2. package/dist-lib/components/LogistiekEnginePage.js +19 -4
  3. package/dist-lib/components/RuleEnginePage.d.ts +1 -1
  4. package/dist-lib/components/RuleEnginePage.d.ts.map +1 -1
  5. package/dist-lib/components/RuleEnginePage.js +22 -2
  6. package/dist-lib/components/StrategieDialog.d.ts.map +1 -1
  7. package/dist-lib/components/StrategieDialog.js +1 -1
  8. package/dist-lib/hooks/useLogistiekStrategieen.d.ts +2 -1
  9. package/dist-lib/hooks/useLogistiekStrategieen.d.ts.map +1 -1
  10. package/dist-lib/hooks/useLogistiekStrategieen.js +72 -2
  11. package/dist-lib/hooks/useRuleEngine.d.ts.map +1 -1
  12. package/dist-lib/hooks/useRuleEngine.js +3 -1
  13. package/dist-lib/integrations/supabase/auth-middleware.d.ts +1092 -121
  14. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  15. package/dist-lib/integrations/supabase/client.d.ts +1092 -121
  16. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  17. package/dist-lib/integrations/supabase/client.server.d.ts +1092 -121
  18. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  19. package/dist-lib/integrations/supabase/types.d.ts +1122 -146
  20. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  21. package/dist-lib/lib/floridayDocuments.functions.d.ts +3270 -357
  22. package/dist-lib/lib/floridayDocuments.functions.d.ts.map +1 -1
  23. package/dist-lib/lib/floridayPush.functions.d.ts +1092 -121
  24. package/dist-lib/lib/floridayPush.functions.d.ts.map +1 -1
  25. package/dist-lib/lib/handlers/logistics-tick.server.d.ts.map +1 -1
  26. package/dist-lib/lib/handlers/logistics-tick.server.js +12 -1
  27. package/dist-lib/lib/loadCarrierPlanning.functions.d.ts +5450 -595
  28. package/dist-lib/lib/loadCarrierPlanning.functions.d.ts.map +1 -1
  29. package/dist-lib/lib/logisticsRecalcJob.functions.d.ts +2180 -238
  30. package/dist-lib/lib/logisticsRecalcJob.functions.d.ts.map +1 -1
  31. package/dist-lib/lib/logisticsRecalculate.functions.d.ts +1092 -121
  32. package/dist-lib/lib/logisticsRecalculate.functions.d.ts.map +1 -1
  33. package/dist-lib/lib/modulePrompts.d.ts.map +1 -1
  34. package/dist-lib/lib/modulePrompts.js +25 -0
  35. package/dist-lib/lib/planQueue.server.d.ts +17 -0
  36. package/dist-lib/lib/planQueue.server.d.ts.map +1 -0
  37. package/dist-lib/lib/planQueue.server.js +124 -0
  38. package/package.json +1 -1
@@ -895,6 +895,126 @@ export type Database = {
895
895
  };
896
896
  Relationships: [];
897
897
  };
898
+ cao_holidays: {
899
+ Row: {
900
+ created_at: string;
901
+ description: string | null;
902
+ holiday_date: string;
903
+ id: string;
904
+ updated_at: string;
905
+ };
906
+ Insert: {
907
+ created_at?: string;
908
+ description?: string | null;
909
+ holiday_date: string;
910
+ id?: string;
911
+ updated_at?: string;
912
+ };
913
+ Update: {
914
+ created_at?: string;
915
+ description?: string | null;
916
+ holiday_date?: string;
917
+ id?: string;
918
+ updated_at?: string;
919
+ };
920
+ Relationships: [];
921
+ };
922
+ cao_settings: {
923
+ Row: {
924
+ auto_break_after_hours: number;
925
+ auto_break_minutes: number;
926
+ auto_break_unpaid: boolean;
927
+ auto_stop_after_hours: number;
928
+ callout_fee: number;
929
+ created_at: string;
930
+ daily_regular_hours: number;
931
+ default_hourly_rate: number;
932
+ id: string;
933
+ materials_markup_percent: number;
934
+ max_daily_hours: number;
935
+ max_weekly_hours: number;
936
+ meal_allowance_amount: number;
937
+ overtime_pct_178: number;
938
+ overtime_pct_189: number;
939
+ overtime_pct_212: number;
940
+ reminder_after_hours: number;
941
+ standby_evening_amount: number;
942
+ standby_weekend_amount: number;
943
+ travel_cost_per_km: number | null;
944
+ travel_cost_threshold_km: number | null;
945
+ travel_counts_as_work: boolean;
946
+ travel_hourly_rate: number;
947
+ travel_rate_per_hour: number;
948
+ travel_threshold_minutes: number;
949
+ updated_at: string;
950
+ weekend_always_212: boolean;
951
+ window_end: string;
952
+ window_start: string;
953
+ };
954
+ Insert: {
955
+ auto_break_after_hours?: number;
956
+ auto_break_minutes?: number;
957
+ auto_break_unpaid?: boolean;
958
+ auto_stop_after_hours?: number;
959
+ callout_fee?: number;
960
+ created_at?: string;
961
+ daily_regular_hours?: number;
962
+ default_hourly_rate?: number;
963
+ id?: string;
964
+ materials_markup_percent?: number;
965
+ max_daily_hours?: number;
966
+ max_weekly_hours?: number;
967
+ meal_allowance_amount?: number;
968
+ overtime_pct_178?: number;
969
+ overtime_pct_189?: number;
970
+ overtime_pct_212?: number;
971
+ reminder_after_hours?: number;
972
+ standby_evening_amount?: number;
973
+ standby_weekend_amount?: number;
974
+ travel_cost_per_km?: number | null;
975
+ travel_cost_threshold_km?: number | null;
976
+ travel_counts_as_work?: boolean;
977
+ travel_hourly_rate?: number;
978
+ travel_rate_per_hour?: number;
979
+ travel_threshold_minutes?: number;
980
+ updated_at?: string;
981
+ weekend_always_212?: boolean;
982
+ window_end?: string;
983
+ window_start?: string;
984
+ };
985
+ Update: {
986
+ auto_break_after_hours?: number;
987
+ auto_break_minutes?: number;
988
+ auto_break_unpaid?: boolean;
989
+ auto_stop_after_hours?: number;
990
+ callout_fee?: number;
991
+ created_at?: string;
992
+ daily_regular_hours?: number;
993
+ default_hourly_rate?: number;
994
+ id?: string;
995
+ materials_markup_percent?: number;
996
+ max_daily_hours?: number;
997
+ max_weekly_hours?: number;
998
+ meal_allowance_amount?: number;
999
+ overtime_pct_178?: number;
1000
+ overtime_pct_189?: number;
1001
+ overtime_pct_212?: number;
1002
+ reminder_after_hours?: number;
1003
+ standby_evening_amount?: number;
1004
+ standby_weekend_amount?: number;
1005
+ travel_cost_per_km?: number | null;
1006
+ travel_cost_threshold_km?: number | null;
1007
+ travel_counts_as_work?: boolean;
1008
+ travel_hourly_rate?: number;
1009
+ travel_rate_per_hour?: number;
1010
+ travel_threshold_minutes?: number;
1011
+ updated_at?: string;
1012
+ weekend_always_212?: boolean;
1013
+ window_end?: string;
1014
+ window_start?: string;
1015
+ };
1016
+ Relationships: [];
1017
+ };
898
1018
  carrier_shipping_rates: {
899
1019
  Row: {
900
1020
  carrier_id: string;
@@ -1719,7 +1839,7 @@ export type Database = {
1719
1839
  city: string | null;
1720
1840
  country: string | null;
1721
1841
  created_at: string;
1722
- customer_id: string | null;
1842
+ customer_id: string;
1723
1843
  external_key: string | null;
1724
1844
  external_provider: string | null;
1725
1845
  floriday_location_id: string | null;
@@ -1743,7 +1863,7 @@ export type Database = {
1743
1863
  city?: string | null;
1744
1864
  country?: string | null;
1745
1865
  created_at?: string;
1746
- customer_id?: string | null;
1866
+ customer_id: string;
1747
1867
  external_key?: string | null;
1748
1868
  external_provider?: string | null;
1749
1869
  floriday_location_id?: string | null;
@@ -1767,7 +1887,7 @@ export type Database = {
1767
1887
  city?: string | null;
1768
1888
  country?: string | null;
1769
1889
  created_at?: string;
1770
- customer_id?: string | null;
1890
+ customer_id?: string;
1771
1891
  external_key?: string | null;
1772
1892
  external_provider?: string | null;
1773
1893
  floriday_location_id?: string | null;
@@ -6646,6 +6766,7 @@ export type Database = {
6646
6766
  Row: {
6647
6767
  buyer_organization_id: string | null;
6648
6768
  connection_id: string;
6769
+ controlled_at: string | null;
6649
6770
  created_at: string;
6650
6771
  data: Json;
6651
6772
  floriday_id: string;
@@ -6657,6 +6778,7 @@ export type Database = {
6657
6778
  Insert: {
6658
6779
  buyer_organization_id?: string | null;
6659
6780
  connection_id: string;
6781
+ controlled_at?: string | null;
6660
6782
  created_at?: string;
6661
6783
  data: Json;
6662
6784
  floriday_id: string;
@@ -6668,6 +6790,7 @@ export type Database = {
6668
6790
  Update: {
6669
6791
  buyer_organization_id?: string | null;
6670
6792
  connection_id?: string;
6793
+ controlled_at?: string | null;
6671
6794
  created_at?: string;
6672
6795
  data?: Json;
6673
6796
  floriday_id?: string;
@@ -7601,6 +7724,54 @@ export type Database = {
7601
7724
  };
7602
7725
  Relationships: [];
7603
7726
  };
7727
+ invoice_timing_settings: {
7728
+ Row: {
7729
+ anchor: string;
7730
+ business_days_only: boolean;
7731
+ created_at: string;
7732
+ enabled: boolean;
7733
+ id: string;
7734
+ offset_days: number;
7735
+ pickup_anchor: string;
7736
+ pickup_business_days_only: boolean;
7737
+ pickup_offset_days: number;
7738
+ pickup_time_of_day: string;
7739
+ singleton: boolean;
7740
+ time_of_day: string;
7741
+ updated_at: string;
7742
+ };
7743
+ Insert: {
7744
+ anchor?: string;
7745
+ business_days_only?: boolean;
7746
+ created_at?: string;
7747
+ enabled?: boolean;
7748
+ id?: string;
7749
+ offset_days?: number;
7750
+ pickup_anchor?: string;
7751
+ pickup_business_days_only?: boolean;
7752
+ pickup_offset_days?: number;
7753
+ pickup_time_of_day?: string;
7754
+ singleton?: boolean;
7755
+ time_of_day?: string;
7756
+ updated_at?: string;
7757
+ };
7758
+ Update: {
7759
+ anchor?: string;
7760
+ business_days_only?: boolean;
7761
+ created_at?: string;
7762
+ enabled?: boolean;
7763
+ id?: string;
7764
+ offset_days?: number;
7765
+ pickup_anchor?: string;
7766
+ pickup_business_days_only?: boolean;
7767
+ pickup_offset_days?: number;
7768
+ pickup_time_of_day?: string;
7769
+ singleton?: boolean;
7770
+ time_of_day?: string;
7771
+ updated_at?: string;
7772
+ };
7773
+ Relationships: [];
7774
+ };
7604
7775
  itk_contact_persons: {
7605
7776
  Row: {
7606
7777
  created_at: string;
@@ -7924,7 +8095,6 @@ export type Database = {
7924
8095
  start_date: string;
7925
8096
  start_time: string | null;
7926
8097
  status: string;
7927
- tenant_id: string;
7928
8098
  updated_at: string;
7929
8099
  user_id: string;
7930
8100
  };
@@ -7942,7 +8112,6 @@ export type Database = {
7942
8112
  start_date: string;
7943
8113
  start_time?: string | null;
7944
8114
  status?: string;
7945
- tenant_id?: string;
7946
8115
  updated_at?: string;
7947
8116
  user_id: string;
7948
8117
  };
@@ -7960,7 +8129,6 @@ export type Database = {
7960
8129
  start_date?: string;
7961
8130
  start_time?: string | null;
7962
8131
  status?: string;
7963
- tenant_id?: string;
7964
8132
  updated_at?: string;
7965
8133
  user_id?: string;
7966
8134
  };
@@ -7969,14 +8137,14 @@ export type Database = {
7969
8137
  foreignKeyName: "leave_requests_monteur_id_fkey";
7970
8138
  columns: ["monteur_id"];
7971
8139
  isOneToOne: false;
7972
- referencedRelation: "monteurs";
8140
+ referencedRelation: "profiles";
7973
8141
  referencedColumns: ["id"];
7974
8142
  },
7975
8143
  {
7976
8144
  foreignKeyName: "leave_requests_user_id_fkey";
7977
8145
  columns: ["user_id"];
7978
8146
  isOneToOne: false;
7979
- referencedRelation: "monteurs";
8147
+ referencedRelation: "profiles";
7980
8148
  referencedColumns: ["id"];
7981
8149
  }
7982
8150
  ];
@@ -8867,6 +9035,45 @@ export type Database = {
8867
9035
  };
8868
9036
  Relationships: [];
8869
9037
  };
9038
+ logistics_plan_queue: {
9039
+ Row: {
9040
+ attempts: number;
9041
+ claimed_at: string | null;
9042
+ enqueued_at: string;
9043
+ error: string | null;
9044
+ id: string;
9045
+ next_attempt_at: string;
9046
+ order_id: string;
9047
+ reason: string;
9048
+ status: string;
9049
+ updated_at: string;
9050
+ };
9051
+ Insert: {
9052
+ attempts?: number;
9053
+ claimed_at?: string | null;
9054
+ enqueued_at?: string;
9055
+ error?: string | null;
9056
+ id?: string;
9057
+ next_attempt_at?: string;
9058
+ order_id: string;
9059
+ reason?: string;
9060
+ status?: string;
9061
+ updated_at?: string;
9062
+ };
9063
+ Update: {
9064
+ attempts?: number;
9065
+ claimed_at?: string | null;
9066
+ enqueued_at?: string;
9067
+ error?: string | null;
9068
+ id?: string;
9069
+ next_attempt_at?: string;
9070
+ order_id?: string;
9071
+ reason?: string;
9072
+ status?: string;
9073
+ updated_at?: string;
9074
+ };
9075
+ Relationships: [];
9076
+ };
8870
9077
  logistics_plan_runs: {
8871
9078
  Row: {
8872
9079
  created_at: string;
@@ -8945,6 +9152,24 @@ export type Database = {
8945
9152
  }
8946
9153
  ];
8947
9154
  };
9155
+ logistics_plan_settings: {
9156
+ Row: {
9157
+ key: string;
9158
+ updated_at: string;
9159
+ value: string;
9160
+ };
9161
+ Insert: {
9162
+ key: string;
9163
+ updated_at?: string;
9164
+ value: string;
9165
+ };
9166
+ Update: {
9167
+ key?: string;
9168
+ updated_at?: string;
9169
+ value?: string;
9170
+ };
9171
+ Relationships: [];
9172
+ };
8948
9173
  logistics_rebuffer_state: {
8949
9174
  Row: {
8950
9175
  created_at: string;
@@ -9665,14 +9890,17 @@ export type Database = {
9665
9890
  };
9666
9891
  mailbox_messages: {
9667
9892
  Row: {
9893
+ attachments: Json;
9668
9894
  body_html: string | null;
9669
9895
  body_text: string | null;
9896
+ cc_recipients: Json;
9670
9897
  connection_id: string | null;
9671
9898
  created_at: string;
9672
9899
  error_message: string | null;
9673
9900
  external_id: string | null;
9674
9901
  from_email: string | null;
9675
9902
  from_name: string | null;
9903
+ has_attachments: boolean;
9676
9904
  id: string;
9677
9905
  message_id: string | null;
9678
9906
  profile_id: string | null;
@@ -9680,18 +9908,22 @@ export type Database = {
9680
9908
  received_at: string | null;
9681
9909
  status: string;
9682
9910
  subject: string | null;
9911
+ to_recipients: Json;
9683
9912
  uid: number | null;
9684
9913
  updated_at: string;
9685
9914
  };
9686
9915
  Insert: {
9916
+ attachments?: Json;
9687
9917
  body_html?: string | null;
9688
9918
  body_text?: string | null;
9919
+ cc_recipients?: Json;
9689
9920
  connection_id?: string | null;
9690
9921
  created_at?: string;
9691
9922
  error_message?: string | null;
9692
9923
  external_id?: string | null;
9693
9924
  from_email?: string | null;
9694
9925
  from_name?: string | null;
9926
+ has_attachments?: boolean;
9695
9927
  id?: string;
9696
9928
  message_id?: string | null;
9697
9929
  profile_id?: string | null;
@@ -9699,18 +9931,22 @@ export type Database = {
9699
9931
  received_at?: string | null;
9700
9932
  status?: string;
9701
9933
  subject?: string | null;
9934
+ to_recipients?: Json;
9702
9935
  uid?: number | null;
9703
9936
  updated_at?: string;
9704
9937
  };
9705
9938
  Update: {
9939
+ attachments?: Json;
9706
9940
  body_html?: string | null;
9707
9941
  body_text?: string | null;
9942
+ cc_recipients?: Json;
9708
9943
  connection_id?: string | null;
9709
9944
  created_at?: string;
9710
9945
  error_message?: string | null;
9711
9946
  external_id?: string | null;
9712
9947
  from_email?: string | null;
9713
9948
  from_name?: string | null;
9949
+ has_attachments?: boolean;
9714
9950
  id?: string;
9715
9951
  message_id?: string | null;
9716
9952
  profile_id?: string | null;
@@ -9718,6 +9954,7 @@ export type Database = {
9718
9954
  received_at?: string | null;
9719
9955
  status?: string;
9720
9956
  subject?: string | null;
9957
+ to_recipients?: Json;
9721
9958
  uid?: number | null;
9722
9959
  updated_at?: string;
9723
9960
  };
@@ -10115,6 +10352,94 @@ export type Database = {
10115
10352
  };
10116
10353
  Relationships: [];
10117
10354
  };
10355
+ material_usage: {
10356
+ Row: {
10357
+ created_at: string;
10358
+ id: string;
10359
+ material_name: string;
10360
+ monteur_id: string | null;
10361
+ price_at_time: number;
10362
+ quantity_used: number;
10363
+ updated_at: string;
10364
+ van_inventory_id: string | null;
10365
+ work_order_id: string;
10366
+ };
10367
+ Insert: {
10368
+ created_at?: string;
10369
+ id?: string;
10370
+ material_name: string;
10371
+ monteur_id?: string | null;
10372
+ price_at_time?: number;
10373
+ quantity_used?: number;
10374
+ updated_at?: string;
10375
+ van_inventory_id?: string | null;
10376
+ work_order_id: string;
10377
+ };
10378
+ Update: {
10379
+ created_at?: string;
10380
+ id?: string;
10381
+ material_name?: string;
10382
+ monteur_id?: string | null;
10383
+ price_at_time?: number;
10384
+ quantity_used?: number;
10385
+ updated_at?: string;
10386
+ van_inventory_id?: string | null;
10387
+ work_order_id?: string;
10388
+ };
10389
+ Relationships: [
10390
+ {
10391
+ foreignKeyName: "material_usage_monteur_id_fkey";
10392
+ columns: ["monteur_id"];
10393
+ isOneToOne: false;
10394
+ referencedRelation: "profiles";
10395
+ referencedColumns: ["id"];
10396
+ },
10397
+ {
10398
+ foreignKeyName: "material_usage_van_inventory_id_fkey";
10399
+ columns: ["van_inventory_id"];
10400
+ isOneToOne: false;
10401
+ referencedRelation: "van_inventories";
10402
+ referencedColumns: ["id"];
10403
+ },
10404
+ {
10405
+ foreignKeyName: "material_usage_work_order_id_fkey";
10406
+ columns: ["work_order_id"];
10407
+ isOneToOne: false;
10408
+ referencedRelation: "work_orders";
10409
+ referencedColumns: ["id"];
10410
+ }
10411
+ ];
10412
+ };
10413
+ module_features: {
10414
+ Row: {
10415
+ created_at: string;
10416
+ feature_id: string;
10417
+ id: string;
10418
+ is_active: boolean;
10419
+ last_seen_at: string;
10420
+ module_id: string;
10421
+ name: string;
10422
+ };
10423
+ Insert: {
10424
+ created_at?: string;
10425
+ feature_id: string;
10426
+ id?: string;
10427
+ is_active?: boolean;
10428
+ last_seen_at?: string;
10429
+ module_id: string;
10430
+ name: string;
10431
+ };
10432
+ Update: {
10433
+ created_at?: string;
10434
+ feature_id?: string;
10435
+ id?: string;
10436
+ is_active?: boolean;
10437
+ last_seen_at?: string;
10438
+ module_id?: string;
10439
+ name?: string;
10440
+ };
10441
+ Relationships: [];
10442
+ };
10118
10443
  module_permissions: {
10119
10444
  Row: {
10120
10445
  created_at: string;
@@ -10142,6 +10467,39 @@ export type Database = {
10142
10467
  };
10143
10468
  Relationships: [];
10144
10469
  };
10470
+ module_registry: {
10471
+ Row: {
10472
+ created_at: string;
10473
+ enforce: boolean;
10474
+ is_active: boolean;
10475
+ last_seen_at: string;
10476
+ module_id: string;
10477
+ name: string;
10478
+ shell_id: string | null;
10479
+ sort_order: number | null;
10480
+ };
10481
+ Insert: {
10482
+ created_at?: string;
10483
+ enforce?: boolean;
10484
+ is_active?: boolean;
10485
+ last_seen_at?: string;
10486
+ module_id: string;
10487
+ name: string;
10488
+ shell_id?: string | null;
10489
+ sort_order?: number | null;
10490
+ };
10491
+ Update: {
10492
+ created_at?: string;
10493
+ enforce?: boolean;
10494
+ is_active?: boolean;
10495
+ last_seen_at?: string;
10496
+ module_id?: string;
10497
+ name?: string;
10498
+ shell_id?: string | null;
10499
+ sort_order?: number | null;
10500
+ };
10501
+ Relationships: [];
10502
+ };
10145
10503
  module_runtime_config: {
10146
10504
  Row: {
10147
10505
  key: string;
@@ -10193,65 +10551,6 @@ export type Database = {
10193
10551
  };
10194
10552
  Relationships: [];
10195
10553
  };
10196
- monteurs: {
10197
- Row: {
10198
- avatar_url: string | null;
10199
- color: string | null;
10200
- created_at: string;
10201
- email: string | null;
10202
- id: string;
10203
- is_active: boolean;
10204
- leave_balance_hours: number;
10205
- name: string;
10206
- persnr: number | null;
10207
- phone: string | null;
10208
- role: string;
10209
- tenant_id: string;
10210
- updated_at: string;
10211
- user_id: string | null;
10212
- };
10213
- Insert: {
10214
- avatar_url?: string | null;
10215
- color?: string | null;
10216
- created_at?: string;
10217
- email?: string | null;
10218
- id?: string;
10219
- is_active?: boolean;
10220
- leave_balance_hours?: number;
10221
- name: string;
10222
- persnr?: number | null;
10223
- phone?: string | null;
10224
- role?: string;
10225
- tenant_id: string;
10226
- updated_at?: string;
10227
- user_id?: string | null;
10228
- };
10229
- Update: {
10230
- avatar_url?: string | null;
10231
- color?: string | null;
10232
- created_at?: string;
10233
- email?: string | null;
10234
- id?: string;
10235
- is_active?: boolean;
10236
- leave_balance_hours?: number;
10237
- name?: string;
10238
- persnr?: number | null;
10239
- phone?: string | null;
10240
- role?: string;
10241
- tenant_id?: string;
10242
- updated_at?: string;
10243
- user_id?: string | null;
10244
- };
10245
- Relationships: [
10246
- {
10247
- foreignKeyName: "monteurs_tenant_id_fkey";
10248
- columns: ["tenant_id"];
10249
- isOneToOne: false;
10250
- referencedRelation: "tenants";
10251
- referencedColumns: ["id"];
10252
- }
10253
- ];
10254
- };
10255
10554
  nmbrs_component_mapping: {
10256
10555
  Row: {
10257
10556
  created_at: string;
@@ -10324,15 +10623,7 @@ export type Database = {
10324
10623
  nmbrs_employee_number?: string;
10325
10624
  updated_at?: string;
10326
10625
  };
10327
- Relationships: [
10328
- {
10329
- foreignKeyName: "nmbrs_employee_mapping_monteur_id_fkey";
10330
- columns: ["monteur_id"];
10331
- isOneToOne: true;
10332
- referencedRelation: "monteurs";
10333
- referencedColumns: ["id"];
10334
- }
10335
- ];
10626
+ Relationships: [];
10336
10627
  };
10337
10628
  nmbrs_export_lines: {
10338
10629
  Row: {
@@ -10381,13 +10672,6 @@ export type Database = {
10381
10672
  wage_code?: string;
10382
10673
  };
10383
10674
  Relationships: [
10384
- {
10385
- foreignKeyName: "nmbrs_export_lines_monteur_id_fkey";
10386
- columns: ["monteur_id"];
10387
- isOneToOne: false;
10388
- referencedRelation: "monteurs";
10389
- referencedColumns: ["id"];
10390
- },
10391
10675
  {
10392
10676
  foreignKeyName: "nmbrs_export_lines_run_id_fkey";
10393
10677
  columns: ["run_id"];
@@ -11238,6 +11522,45 @@ export type Database = {
11238
11522
  };
11239
11523
  Relationships: [];
11240
11524
  };
11525
+ order_invoice_links: {
11526
+ Row: {
11527
+ attempts: number;
11528
+ created_at: string;
11529
+ error_message: string | null;
11530
+ id: string;
11531
+ invoice_number: string | null;
11532
+ next_attempt_at: string;
11533
+ order_id: string;
11534
+ processed_at: string | null;
11535
+ status: string;
11536
+ updated_at: string;
11537
+ };
11538
+ Insert: {
11539
+ attempts?: number;
11540
+ created_at?: string;
11541
+ error_message?: string | null;
11542
+ id?: string;
11543
+ invoice_number?: string | null;
11544
+ next_attempt_at?: string;
11545
+ order_id: string;
11546
+ processed_at?: string | null;
11547
+ status?: string;
11548
+ updated_at?: string;
11549
+ };
11550
+ Update: {
11551
+ attempts?: number;
11552
+ created_at?: string;
11553
+ error_message?: string | null;
11554
+ id?: string;
11555
+ invoice_number?: string | null;
11556
+ next_attempt_at?: string;
11557
+ order_id?: string;
11558
+ processed_at?: string | null;
11559
+ status?: string;
11560
+ updated_at?: string;
11561
+ };
11562
+ Relationships: [];
11563
+ };
11241
11564
  order_items: {
11242
11565
  Row: {
11243
11566
  crates_per_layer: number | null;
@@ -11429,6 +11752,7 @@ export type Database = {
11429
11752
  delivery_date: string | null;
11430
11753
  floriday_sales_order_id: string | null;
11431
11754
  id: string;
11755
+ invoice_due_at: string | null;
11432
11756
  is_reservation: boolean;
11433
11757
  notes: string | null;
11434
11758
  order_date: string;
@@ -11450,6 +11774,7 @@ export type Database = {
11450
11774
  delivery_date?: string | null;
11451
11775
  floriday_sales_order_id?: string | null;
11452
11776
  id?: string;
11777
+ invoice_due_at?: string | null;
11453
11778
  is_reservation?: boolean;
11454
11779
  notes?: string | null;
11455
11780
  order_date?: string;
@@ -11471,6 +11796,7 @@ export type Database = {
11471
11796
  delivery_date?: string | null;
11472
11797
  floriday_sales_order_id?: string | null;
11473
11798
  id?: string;
11799
+ invoice_due_at?: string | null;
11474
11800
  is_reservation?: boolean;
11475
11801
  notes?: string | null;
11476
11802
  order_date?: string;
@@ -12816,6 +13142,72 @@ export type Database = {
12816
13142
  }
12817
13143
  ];
12818
13144
  };
13145
+ print_queue_runners: {
13146
+ Row: {
13147
+ actief: boolean;
13148
+ basis_url: string;
13149
+ created_at: string;
13150
+ id: string;
13151
+ laatst_gezien: string;
13152
+ laatste_fout: string | null;
13153
+ laatste_request_id: number | null;
13154
+ mislukte_posts: number;
13155
+ tick_sleutel: string;
13156
+ updated_at: string;
13157
+ };
13158
+ Insert: {
13159
+ actief?: boolean;
13160
+ basis_url: string;
13161
+ created_at?: string;
13162
+ id?: string;
13163
+ laatst_gezien?: string;
13164
+ laatste_fout?: string | null;
13165
+ laatste_request_id?: number | null;
13166
+ mislukte_posts?: number;
13167
+ tick_sleutel?: string;
13168
+ updated_at?: string;
13169
+ };
13170
+ Update: {
13171
+ actief?: boolean;
13172
+ basis_url?: string;
13173
+ created_at?: string;
13174
+ id?: string;
13175
+ laatst_gezien?: string;
13176
+ laatste_fout?: string | null;
13177
+ laatste_request_id?: number | null;
13178
+ mislukte_posts?: number;
13179
+ tick_sleutel?: string;
13180
+ updated_at?: string;
13181
+ };
13182
+ Relationships: [];
13183
+ };
13184
+ print_queue_settings: {
13185
+ Row: {
13186
+ bewaar_bestanden_dagen: number;
13187
+ bewaar_opdrachten_dagen: number;
13188
+ created_at: string;
13189
+ dubbel_venster_minuten: number;
13190
+ id: string;
13191
+ updated_at: string;
13192
+ };
13193
+ Insert: {
13194
+ bewaar_bestanden_dagen?: number;
13195
+ bewaar_opdrachten_dagen?: number;
13196
+ created_at?: string;
13197
+ dubbel_venster_minuten?: number;
13198
+ id?: string;
13199
+ updated_at?: string;
13200
+ };
13201
+ Update: {
13202
+ bewaar_bestanden_dagen?: number;
13203
+ bewaar_opdrachten_dagen?: number;
13204
+ created_at?: string;
13205
+ dubbel_venster_minuten?: number;
13206
+ id?: string;
13207
+ updated_at?: string;
13208
+ };
13209
+ Relationships: [];
13210
+ };
12819
13211
  print_rules: {
12820
13212
  Row: {
12821
13213
  actief: boolean;
@@ -14348,6 +14740,100 @@ export type Database = {
14348
14740
  }
14349
14741
  ];
14350
14742
  };
14743
+ role_assignments: {
14744
+ Row: {
14745
+ created_at: string;
14746
+ id: string;
14747
+ role_id: string;
14748
+ user_id: string;
14749
+ };
14750
+ Insert: {
14751
+ created_at?: string;
14752
+ id?: string;
14753
+ role_id: string;
14754
+ user_id: string;
14755
+ };
14756
+ Update: {
14757
+ created_at?: string;
14758
+ id?: string;
14759
+ role_id?: string;
14760
+ user_id?: string;
14761
+ };
14762
+ Relationships: [
14763
+ {
14764
+ foreignKeyName: "role_assignments_role_id_fkey";
14765
+ columns: ["role_id"];
14766
+ isOneToOne: false;
14767
+ referencedRelation: "roles";
14768
+ referencedColumns: ["id"];
14769
+ }
14770
+ ];
14771
+ };
14772
+ role_permissions: {
14773
+ Row: {
14774
+ can_edit: boolean;
14775
+ can_view: boolean;
14776
+ feature_id: string;
14777
+ id: string;
14778
+ module_id: string;
14779
+ role_id: string;
14780
+ updated_at: string;
14781
+ };
14782
+ Insert: {
14783
+ can_edit?: boolean;
14784
+ can_view?: boolean;
14785
+ feature_id?: string;
14786
+ id?: string;
14787
+ module_id: string;
14788
+ role_id: string;
14789
+ updated_at?: string;
14790
+ };
14791
+ Update: {
14792
+ can_edit?: boolean;
14793
+ can_view?: boolean;
14794
+ feature_id?: string;
14795
+ id?: string;
14796
+ module_id?: string;
14797
+ role_id?: string;
14798
+ updated_at?: string;
14799
+ };
14800
+ Relationships: [
14801
+ {
14802
+ foreignKeyName: "role_permissions_role_id_fkey";
14803
+ columns: ["role_id"];
14804
+ isOneToOne: false;
14805
+ referencedRelation: "roles";
14806
+ referencedColumns: ["id"];
14807
+ }
14808
+ ];
14809
+ };
14810
+ roles: {
14811
+ Row: {
14812
+ created_at: string;
14813
+ id: string;
14814
+ is_protected: boolean;
14815
+ key: string;
14816
+ name: string;
14817
+ updated_at: string;
14818
+ };
14819
+ Insert: {
14820
+ created_at?: string;
14821
+ id?: string;
14822
+ is_protected?: boolean;
14823
+ key: string;
14824
+ name: string;
14825
+ updated_at?: string;
14826
+ };
14827
+ Update: {
14828
+ created_at?: string;
14829
+ id?: string;
14830
+ is_protected?: boolean;
14831
+ key?: string;
14832
+ name?: string;
14833
+ updated_at?: string;
14834
+ };
14835
+ Relationships: [];
14836
+ };
14351
14837
  rooms: {
14352
14838
  Row: {
14353
14839
  capacity: number;
@@ -15028,6 +15514,56 @@ export type Database = {
15028
15514
  };
15029
15515
  Relationships: [];
15030
15516
  };
15517
+ time_compensation_entries: {
15518
+ Row: {
15519
+ created_at: string;
15520
+ employee_id: string;
15521
+ entry_date: string;
15522
+ id: string;
15523
+ km: number;
15524
+ meal_allowance: number;
15525
+ notes: string | null;
15526
+ standby_evening: number;
15527
+ standby_weekend: number;
15528
+ tvt_change: number;
15529
+ updated_at: string;
15530
+ };
15531
+ Insert: {
15532
+ created_at?: string;
15533
+ employee_id: string;
15534
+ entry_date: string;
15535
+ id?: string;
15536
+ km?: number;
15537
+ meal_allowance?: number;
15538
+ notes?: string | null;
15539
+ standby_evening?: number;
15540
+ standby_weekend?: number;
15541
+ tvt_change?: number;
15542
+ updated_at?: string;
15543
+ };
15544
+ Update: {
15545
+ created_at?: string;
15546
+ employee_id?: string;
15547
+ entry_date?: string;
15548
+ id?: string;
15549
+ km?: number;
15550
+ meal_allowance?: number;
15551
+ notes?: string | null;
15552
+ standby_evening?: number;
15553
+ standby_weekend?: number;
15554
+ tvt_change?: number;
15555
+ updated_at?: string;
15556
+ };
15557
+ Relationships: [
15558
+ {
15559
+ foreignKeyName: "time_compensation_entries_employee_id_fkey";
15560
+ columns: ["employee_id"];
15561
+ isOneToOne: false;
15562
+ referencedRelation: "profiles";
15563
+ referencedColumns: ["id"];
15564
+ }
15565
+ ];
15566
+ };
15031
15567
  time_entries: {
15032
15568
  Row: {
15033
15569
  created_at: string;
@@ -15062,68 +15598,174 @@ export type Database = {
15062
15598
  undertime?: number;
15063
15599
  updated_at?: string;
15064
15600
  };
15601
+ Relationships: [];
15602
+ };
15603
+ time_log_week_approvals: {
15604
+ Row: {
15605
+ approved_at: string | null;
15606
+ approved_by: string | null;
15607
+ created_at: string;
15608
+ employee_id: string;
15609
+ id: string;
15610
+ locked: boolean;
15611
+ notes: string | null;
15612
+ status: string;
15613
+ submitted_at: string | null;
15614
+ updated_at: string;
15615
+ week_start: string;
15616
+ };
15617
+ Insert: {
15618
+ approved_at?: string | null;
15619
+ approved_by?: string | null;
15620
+ created_at?: string;
15621
+ employee_id: string;
15622
+ id?: string;
15623
+ locked?: boolean;
15624
+ notes?: string | null;
15625
+ status?: string;
15626
+ submitted_at?: string | null;
15627
+ updated_at?: string;
15628
+ week_start: string;
15629
+ };
15630
+ Update: {
15631
+ approved_at?: string | null;
15632
+ approved_by?: string | null;
15633
+ created_at?: string;
15634
+ employee_id?: string;
15635
+ id?: string;
15636
+ locked?: boolean;
15637
+ notes?: string | null;
15638
+ status?: string;
15639
+ submitted_at?: string | null;
15640
+ updated_at?: string;
15641
+ week_start?: string;
15642
+ };
15065
15643
  Relationships: [
15066
15644
  {
15067
- foreignKeyName: "time_entries_employee_id_fkey";
15645
+ foreignKeyName: "time_log_week_approvals_employee_id_fkey";
15068
15646
  columns: ["employee_id"];
15069
15647
  isOneToOne: false;
15070
- referencedRelation: "monteurs";
15648
+ referencedRelation: "profiles";
15071
15649
  referencedColumns: ["id"];
15072
15650
  }
15073
15651
  ];
15074
15652
  };
15075
15653
  time_logs: {
15076
15654
  Row: {
15655
+ auto_stop_reason: string | null;
15656
+ auto_stopped: boolean;
15077
15657
  created_at: string;
15658
+ current_latitude: number | null;
15659
+ current_longitude: number | null;
15660
+ current_position_updated_at: string | null;
15078
15661
  employee_id: string;
15662
+ end_latitude: number | null;
15663
+ end_longitude: number | null;
15079
15664
  end_time: string | null;
15665
+ eta_distance_km: number | null;
15666
+ eta_minutes: number | null;
15667
+ eta_updated_at: string | null;
15668
+ hour_category: string | null;
15080
15669
  id: string;
15670
+ last_reminder_at: string | null;
15081
15671
  notes: string | null;
15082
15672
  overtime_hours: number;
15083
15673
  overtime_type: string | null;
15084
15674
  regular_hours: number;
15675
+ reminder_count: number;
15676
+ requires_review: boolean;
15677
+ start_latitude: number | null;
15678
+ start_longitude: number | null;
15085
15679
  start_time: string;
15086
15680
  travel_cost: number | null;
15087
15681
  travel_distance_km: number | null;
15682
+ travel_duration_min: number | null;
15683
+ travel_time_minutes: number | null;
15088
15684
  type: string;
15089
15685
  updated_at: string;
15686
+ work_order_id: string | null;
15090
15687
  };
15091
15688
  Insert: {
15689
+ auto_stop_reason?: string | null;
15690
+ auto_stopped?: boolean;
15092
15691
  created_at?: string;
15692
+ current_latitude?: number | null;
15693
+ current_longitude?: number | null;
15694
+ current_position_updated_at?: string | null;
15093
15695
  employee_id: string;
15696
+ end_latitude?: number | null;
15697
+ end_longitude?: number | null;
15094
15698
  end_time?: string | null;
15699
+ eta_distance_km?: number | null;
15700
+ eta_minutes?: number | null;
15701
+ eta_updated_at?: string | null;
15702
+ hour_category?: string | null;
15095
15703
  id?: string;
15704
+ last_reminder_at?: string | null;
15096
15705
  notes?: string | null;
15097
15706
  overtime_hours?: number;
15098
15707
  overtime_type?: string | null;
15099
15708
  regular_hours?: number;
15709
+ reminder_count?: number;
15710
+ requires_review?: boolean;
15711
+ start_latitude?: number | null;
15712
+ start_longitude?: number | null;
15100
15713
  start_time?: string;
15101
15714
  travel_cost?: number | null;
15102
15715
  travel_distance_km?: number | null;
15716
+ travel_duration_min?: number | null;
15717
+ travel_time_minutes?: number | null;
15103
15718
  type: string;
15104
15719
  updated_at?: string;
15720
+ work_order_id?: string | null;
15105
15721
  };
15106
15722
  Update: {
15723
+ auto_stop_reason?: string | null;
15724
+ auto_stopped?: boolean;
15107
15725
  created_at?: string;
15726
+ current_latitude?: number | null;
15727
+ current_longitude?: number | null;
15728
+ current_position_updated_at?: string | null;
15108
15729
  employee_id?: string;
15730
+ end_latitude?: number | null;
15731
+ end_longitude?: number | null;
15109
15732
  end_time?: string | null;
15733
+ eta_distance_km?: number | null;
15734
+ eta_minutes?: number | null;
15735
+ eta_updated_at?: string | null;
15736
+ hour_category?: string | null;
15110
15737
  id?: string;
15738
+ last_reminder_at?: string | null;
15111
15739
  notes?: string | null;
15112
15740
  overtime_hours?: number;
15113
15741
  overtime_type?: string | null;
15114
15742
  regular_hours?: number;
15743
+ reminder_count?: number;
15744
+ requires_review?: boolean;
15745
+ start_latitude?: number | null;
15746
+ start_longitude?: number | null;
15115
15747
  start_time?: string;
15116
15748
  travel_cost?: number | null;
15117
15749
  travel_distance_km?: number | null;
15750
+ travel_duration_min?: number | null;
15751
+ travel_time_minutes?: number | null;
15118
15752
  type?: string;
15119
15753
  updated_at?: string;
15754
+ work_order_id?: string | null;
15120
15755
  };
15121
15756
  Relationships: [
15122
15757
  {
15123
15758
  foreignKeyName: "time_logs_employee_id_fkey";
15124
15759
  columns: ["employee_id"];
15125
15760
  isOneToOne: false;
15126
- referencedRelation: "monteurs";
15761
+ referencedRelation: "profiles";
15762
+ referencedColumns: ["id"];
15763
+ },
15764
+ {
15765
+ foreignKeyName: "time_logs_work_order_id_fkey";
15766
+ columns: ["work_order_id"];
15767
+ isOneToOne: false;
15768
+ referencedRelation: "work_orders";
15127
15769
  referencedColumns: ["id"];
15128
15770
  }
15129
15771
  ];
@@ -15164,7 +15806,7 @@ export type Database = {
15164
15806
  foreignKeyName: "time_off_entries_employee_id_fkey";
15165
15807
  columns: ["employee_id"];
15166
15808
  isOneToOne: false;
15167
- referencedRelation: "monteurs";
15809
+ referencedRelation: "profiles";
15168
15810
  referencedColumns: ["id"];
15169
15811
  }
15170
15812
  ];
@@ -15477,24 +16119,57 @@ export type Database = {
15477
16119
  };
15478
16120
  Relationships: [];
15479
16121
  };
15480
- twinfield_customers: {
16122
+ twinfield_cron_locks: {
15481
16123
  Row: {
15482
- address: string | null;
15483
- city: string | null;
15484
- country: string | null;
15485
16124
  created_at: string;
15486
- email: string | null;
15487
- external_group_key: string | null;
15488
- id: string;
15489
- last_synced_at: string | null;
15490
- name: string;
15491
- phone: string | null;
15492
- postal_code: string | null;
15493
- status: string;
15494
- sync_error: string | null;
15495
- sync_status: string;
15496
- twinfield_code: string | null;
15497
- updated_at: string;
16125
+ heartbeat_at: string;
16126
+ job_name: string;
16127
+ last_error: string | null;
16128
+ last_finished_at: string | null;
16129
+ locked_at: string;
16130
+ run_id: string;
16131
+ updated_at: string;
16132
+ };
16133
+ Insert: {
16134
+ created_at?: string;
16135
+ heartbeat_at?: string;
16136
+ job_name: string;
16137
+ last_error?: string | null;
16138
+ last_finished_at?: string | null;
16139
+ locked_at?: string;
16140
+ run_id?: string;
16141
+ updated_at?: string;
16142
+ };
16143
+ Update: {
16144
+ created_at?: string;
16145
+ heartbeat_at?: string;
16146
+ job_name?: string;
16147
+ last_error?: string | null;
16148
+ last_finished_at?: string | null;
16149
+ locked_at?: string;
16150
+ run_id?: string;
16151
+ updated_at?: string;
16152
+ };
16153
+ Relationships: [];
16154
+ };
16155
+ twinfield_customers: {
16156
+ Row: {
16157
+ address: string | null;
16158
+ city: string | null;
16159
+ country: string | null;
16160
+ created_at: string;
16161
+ email: string | null;
16162
+ external_group_key: string | null;
16163
+ id: string;
16164
+ last_synced_at: string | null;
16165
+ name: string;
16166
+ phone: string | null;
16167
+ postal_code: string | null;
16168
+ status: string;
16169
+ sync_error: string | null;
16170
+ sync_status: string;
16171
+ twinfield_code: string | null;
16172
+ updated_at: string;
15498
16173
  user_id: string;
15499
16174
  };
15500
16175
  Insert: {
@@ -15739,6 +16414,8 @@ export type Database = {
15739
16414
  };
15740
16415
  twinfield_invoice_settings: {
15741
16416
  Row: {
16417
+ auto_invoice_enabled: boolean;
16418
+ auto_invoice_trigger_statuses: string[];
15742
16419
  created_at: string;
15743
16420
  debtor_gl_account: string;
15744
16421
  default_credit_invoice_type: string | null;
@@ -15759,6 +16436,8 @@ export type Database = {
15759
16436
  vat_code_export: string | null;
15760
16437
  };
15761
16438
  Insert: {
16439
+ auto_invoice_enabled?: boolean;
16440
+ auto_invoice_trigger_statuses?: string[];
15762
16441
  created_at?: string;
15763
16442
  debtor_gl_account?: string;
15764
16443
  default_credit_invoice_type?: string | null;
@@ -15779,6 +16458,8 @@ export type Database = {
15779
16458
  vat_code_export?: string | null;
15780
16459
  };
15781
16460
  Update: {
16461
+ auto_invoice_enabled?: boolean;
16462
+ auto_invoice_trigger_statuses?: string[];
15782
16463
  created_at?: string;
15783
16464
  debtor_gl_account?: string;
15784
16465
  default_credit_invoice_type?: string | null;
@@ -16081,6 +16762,7 @@ export type Database = {
16081
16762
  twinfield_push_queue: {
16082
16763
  Row: {
16083
16764
  action: string;
16765
+ attempt_started_at: string | null;
16084
16766
  attempts: number;
16085
16767
  connection_id: string | null;
16086
16768
  created_at: string;
@@ -16097,6 +16779,7 @@ export type Database = {
16097
16779
  };
16098
16780
  Insert: {
16099
16781
  action?: string;
16782
+ attempt_started_at?: string | null;
16100
16783
  attempts?: number;
16101
16784
  connection_id?: string | null;
16102
16785
  created_at?: string;
@@ -16113,6 +16796,7 @@ export type Database = {
16113
16796
  };
16114
16797
  Update: {
16115
16798
  action?: string;
16799
+ attempt_started_at?: string | null;
16116
16800
  attempts?: number;
16117
16801
  connection_id?: string | null;
16118
16802
  created_at?: string;
@@ -16315,15 +16999,7 @@ export type Database = {
16315
16999
  workday_end?: string | null;
16316
17000
  workday_start?: string | null;
16317
17001
  };
16318
- Relationships: [
16319
- {
16320
- foreignKeyName: "uren_cao_profiles_monteur_id_fkey";
16321
- columns: ["monteur_id"];
16322
- isOneToOne: true;
16323
- referencedRelation: "monteurs";
16324
- referencedColumns: ["id"];
16325
- }
16326
- ];
17002
+ Relationships: [];
16327
17003
  };
16328
17004
  uren_entries: {
16329
17005
  Row: {
@@ -16369,13 +17045,6 @@ export type Database = {
16369
17045
  werkbon_id?: string | null;
16370
17046
  };
16371
17047
  Relationships: [
16372
- {
16373
- foreignKeyName: "uren_entries_monteur_id_fkey";
16374
- columns: ["monteur_id"];
16375
- isOneToOne: false;
16376
- referencedRelation: "monteurs";
16377
- referencedColumns: ["id"];
16378
- },
16379
17048
  {
16380
17049
  foreignKeyName: "uren_entries_werkbon_id_fkey";
16381
17050
  columns: ["werkbon_id"];
@@ -16857,15 +17526,37 @@ export type Database = {
16857
17526
  submitted_at?: string | null;
16858
17527
  updated_at?: string;
16859
17528
  };
16860
- Relationships: [
16861
- {
16862
- foreignKeyName: "uren_weekstaten_monteur_id_fkey";
16863
- columns: ["monteur_id"];
16864
- isOneToOne: false;
16865
- referencedRelation: "monteurs";
16866
- referencedColumns: ["id"];
16867
- }
16868
- ];
17529
+ Relationships: [];
17530
+ };
17531
+ user_module_permissions: {
17532
+ Row: {
17533
+ created_at: string;
17534
+ feature_id: string;
17535
+ id: string;
17536
+ module_id: string;
17537
+ permission: string;
17538
+ updated_at: string;
17539
+ user_id: string;
17540
+ };
17541
+ Insert: {
17542
+ created_at?: string;
17543
+ feature_id?: string;
17544
+ id?: string;
17545
+ module_id: string;
17546
+ permission: string;
17547
+ updated_at?: string;
17548
+ user_id: string;
17549
+ };
17550
+ Update: {
17551
+ created_at?: string;
17552
+ feature_id?: string;
17553
+ id?: string;
17554
+ module_id?: string;
17555
+ permission?: string;
17556
+ updated_at?: string;
17557
+ user_id?: string;
17558
+ };
17559
+ Relationships: [];
16869
17560
  };
16870
17561
  user_roles: {
16871
17562
  Row: {
@@ -16896,6 +17587,53 @@ export type Database = {
16896
17587
  }
16897
17588
  ];
16898
17589
  };
17590
+ van_inventories: {
17591
+ Row: {
17592
+ barcode: string | null;
17593
+ created_at: string;
17594
+ id: string;
17595
+ monteur_id: string | null;
17596
+ price_per_unit: number;
17597
+ product_name: string;
17598
+ quantity_current: number;
17599
+ quantity_min: number;
17600
+ unit: string;
17601
+ updated_at: string;
17602
+ };
17603
+ Insert: {
17604
+ barcode?: string | null;
17605
+ created_at?: string;
17606
+ id?: string;
17607
+ monteur_id?: string | null;
17608
+ price_per_unit?: number;
17609
+ product_name: string;
17610
+ quantity_current?: number;
17611
+ quantity_min?: number;
17612
+ unit?: string;
17613
+ updated_at?: string;
17614
+ };
17615
+ Update: {
17616
+ barcode?: string | null;
17617
+ created_at?: string;
17618
+ id?: string;
17619
+ monteur_id?: string | null;
17620
+ price_per_unit?: number;
17621
+ product_name?: string;
17622
+ quantity_current?: number;
17623
+ quantity_min?: number;
17624
+ unit?: string;
17625
+ updated_at?: string;
17626
+ };
17627
+ Relationships: [
17628
+ {
17629
+ foreignKeyName: "van_inventories_monteur_id_fkey";
17630
+ columns: ["monteur_id"];
17631
+ isOneToOne: false;
17632
+ referencedRelation: "profiles";
17633
+ referencedColumns: ["id"];
17634
+ }
17635
+ ];
17636
+ };
16899
17637
  voorraad_custom_fields: {
16900
17638
  Row: {
16901
17639
  created_at: string;
@@ -17869,7 +18607,7 @@ export type Database = {
17869
18607
  foreignKeyName: "work_order_monteurs_monteur_id_fkey";
17870
18608
  columns: ["monteur_id"];
17871
18609
  isOneToOne: false;
17872
- referencedRelation: "monteurs";
18610
+ referencedRelation: "profiles";
17873
18611
  referencedColumns: ["id"];
17874
18612
  },
17875
18613
  {
@@ -17881,6 +18619,63 @@ export type Database = {
17881
18619
  }
17882
18620
  ];
17883
18621
  };
18622
+ work_order_photos: {
18623
+ Row: {
18624
+ ai_caption: string | null;
18625
+ ai_categorized_at: string | null;
18626
+ ai_labels: Json | null;
18627
+ caption: string | null;
18628
+ created_at: string;
18629
+ id: string;
18630
+ monteur_id: string | null;
18631
+ photo_type: string;
18632
+ storage_path: string;
18633
+ updated_at: string;
18634
+ work_order_id: string;
18635
+ };
18636
+ Insert: {
18637
+ ai_caption?: string | null;
18638
+ ai_categorized_at?: string | null;
18639
+ ai_labels?: Json | null;
18640
+ caption?: string | null;
18641
+ created_at?: string;
18642
+ id?: string;
18643
+ monteur_id?: string | null;
18644
+ photo_type?: string;
18645
+ storage_path: string;
18646
+ updated_at?: string;
18647
+ work_order_id: string;
18648
+ };
18649
+ Update: {
18650
+ ai_caption?: string | null;
18651
+ ai_categorized_at?: string | null;
18652
+ ai_labels?: Json | null;
18653
+ caption?: string | null;
18654
+ created_at?: string;
18655
+ id?: string;
18656
+ monteur_id?: string | null;
18657
+ photo_type?: string;
18658
+ storage_path?: string;
18659
+ updated_at?: string;
18660
+ work_order_id?: string;
18661
+ };
18662
+ Relationships: [
18663
+ {
18664
+ foreignKeyName: "work_order_photos_monteur_id_fkey";
18665
+ columns: ["monteur_id"];
18666
+ isOneToOne: false;
18667
+ referencedRelation: "profiles";
18668
+ referencedColumns: ["id"];
18669
+ },
18670
+ {
18671
+ foreignKeyName: "work_order_photos_work_order_id_fkey";
18672
+ columns: ["work_order_id"];
18673
+ isOneToOne: false;
18674
+ referencedRelation: "work_orders";
18675
+ referencedColumns: ["id"];
18676
+ }
18677
+ ];
18678
+ };
17884
18679
  work_orders: {
17885
18680
  Row: {
17886
18681
  assigned_to: string | null;
@@ -17912,7 +18707,6 @@ export type Database = {
17912
18707
  scheduled_end_time: string | null;
17913
18708
  scheduled_start_time: string | null;
17914
18709
  status: string;
17915
- tenant_id: string;
17916
18710
  total_hours_worked: number | null;
17917
18711
  total_price: number | null;
17918
18712
  travel_time_minutes: number | null;
@@ -17950,7 +18744,6 @@ export type Database = {
17950
18744
  scheduled_end_time?: string | null;
17951
18745
  scheduled_start_time?: string | null;
17952
18746
  status?: string;
17953
- tenant_id: string;
17954
18747
  total_hours_worked?: number | null;
17955
18748
  total_price?: number | null;
17956
18749
  travel_time_minutes?: number | null;
@@ -17988,7 +18781,6 @@ export type Database = {
17988
18781
  scheduled_end_time?: string | null;
17989
18782
  scheduled_start_time?: string | null;
17990
18783
  status?: string;
17991
- tenant_id?: string;
17992
18784
  total_hours_worked?: number | null;
17993
18785
  total_price?: number | null;
17994
18786
  travel_time_minutes?: number | null;
@@ -18003,13 +18795,6 @@ export type Database = {
18003
18795
  isOneToOne: false;
18004
18796
  referencedRelation: "work_orders";
18005
18797
  referencedColumns: ["id"];
18006
- },
18007
- {
18008
- foreignKeyName: "work_orders_tenant_id_fkey";
18009
- columns: ["tenant_id"];
18010
- isOneToOne: false;
18011
- referencedRelation: "tenants";
18012
- referencedColumns: ["id"];
18013
18798
  }
18014
18799
  ];
18015
18800
  };
@@ -18707,6 +19492,19 @@ export type Database = {
18707
19492
  };
18708
19493
  Returns: undefined;
18709
19494
  };
19495
+ approve_mailbox_order_proposal: {
19496
+ Args: {
19497
+ p_custom_fields: Json;
19498
+ p_customer_id: string;
19499
+ p_delivery_date: string;
19500
+ p_field_values?: Json;
19501
+ p_lines: Json;
19502
+ p_notes: string;
19503
+ p_proposal_id: string;
19504
+ p_reviewed_by: string;
19505
+ };
19506
+ Returns: Json;
19507
+ };
18710
19508
  assign_cart_numbers: {
18711
19509
  Args: {
18712
19510
  p_carts: Json;
@@ -18742,6 +19540,10 @@ export type Database = {
18742
19540
  processed_items: number;
18743
19541
  }[];
18744
19542
  };
19543
+ backfill_order_auto_invoice_queue: {
19544
+ Args: never;
19545
+ Returns: number;
19546
+ };
18745
19547
  calculate_layer_stock: {
18746
19548
  Args: {
18747
19549
  p_product_id: string;
@@ -18754,6 +19556,10 @@ export type Database = {
18754
19556
  };
18755
19557
  Returns: number;
18756
19558
  };
19559
+ can_manage_hours: {
19560
+ Args: never;
19561
+ Returns: boolean;
19562
+ };
18757
19563
  check_offer_product_available_stock: {
18758
19564
  Args: {
18759
19565
  p_campaign_product_id: string;
@@ -18943,6 +19749,7 @@ export type Database = {
18943
19749
  };
18944
19750
  Returns: {
18945
19751
  action: string;
19752
+ attempt_started_at: string | null;
18946
19753
  attempts: number;
18947
19754
  connection_id: string | null;
18948
19755
  created_at: string;
@@ -18972,6 +19779,10 @@ export type Database = {
18972
19779
  Args: never;
18973
19780
  Returns: undefined;
18974
19781
  };
19782
+ cleanup_voorraad_module_history: {
19783
+ Args: never;
19784
+ Returns: undefined;
19785
+ };
18975
19786
  complete_floriday_stock_queue: {
18976
19787
  Args: {
18977
19788
  p_attempt_id?: string;
@@ -19026,6 +19837,30 @@ export type Database = {
19026
19837
  agent_naam: string;
19027
19838
  }[];
19028
19839
  };
19840
+ consume_van_inventory: {
19841
+ Args: {
19842
+ p_inventory_id: string;
19843
+ p_quantity: number;
19844
+ };
19845
+ Returns: {
19846
+ barcode: string | null;
19847
+ created_at: string;
19848
+ id: string;
19849
+ monteur_id: string | null;
19850
+ price_per_unit: number;
19851
+ product_name: string;
19852
+ quantity_current: number;
19853
+ quantity_min: number;
19854
+ unit: string;
19855
+ updated_at: string;
19856
+ };
19857
+ SetofOptions: {
19858
+ from: "*";
19859
+ to: "van_inventories";
19860
+ isOneToOne: true;
19861
+ isSetofReturn: false;
19862
+ };
19863
+ };
19029
19864
  control_get_todays_carts: {
19030
19865
  Args: never;
19031
19866
  Returns: {
@@ -19093,6 +19928,20 @@ export type Database = {
19093
19928
  };
19094
19929
  Returns: Json;
19095
19930
  };
19931
+ effective_module_permission: {
19932
+ Args: {
19933
+ _module_id: string;
19934
+ _user_id: string;
19935
+ };
19936
+ Returns: string;
19937
+ } | {
19938
+ Args: {
19939
+ _feature_id: string;
19940
+ _module_id: string;
19941
+ _user_id: string;
19942
+ };
19943
+ Returns: string;
19944
+ };
19096
19945
  email_auth_decrypt: {
19097
19946
  Args: {
19098
19947
  cipher: string;
@@ -19443,12 +20292,6 @@ export type Database = {
19443
20292
  Args: never;
19444
20293
  Returns: string;
19445
20294
  };
19446
- get_work_order_tenant_id: {
19447
- Args: {
19448
- wo_id: string;
19449
- };
19450
- Returns: string;
19451
- };
19452
20295
  has_module_permission: {
19453
20296
  Args: {
19454
20297
  _min: string;
@@ -19482,6 +20325,13 @@ export type Database = {
19482
20325
  };
19483
20326
  Returns: boolean;
19484
20327
  };
20328
+ is_time_log_week_locked: {
20329
+ Args: {
20330
+ p_employee_id: string;
20331
+ p_start_time: string;
20332
+ };
20333
+ Returns: boolean;
20334
+ };
19485
20335
  is_user_admin: {
19486
20336
  Args: never;
19487
20337
  Returns: boolean;
@@ -19496,13 +20346,14 @@ export type Database = {
19496
20346
  };
19497
20347
  Returns: boolean;
19498
20348
  };
19499
- list_monteurs: {
20349
+ list_medewerkers: {
19500
20350
  Args: never;
19501
20351
  Returns: {
19502
20352
  avatar_url: string;
19503
20353
  display_name: string;
19504
20354
  email: string;
19505
20355
  id: string;
20356
+ roles: string[];
19506
20357
  }[];
19507
20358
  };
19508
20359
  list_my_planning_items: {
@@ -19993,6 +20844,65 @@ export type Database = {
19993
20844
  };
19994
20845
  Returns: number;
19995
20846
  };
20847
+ logistics_plan_claim: {
20848
+ Args: {
20849
+ p_limit?: number;
20850
+ };
20851
+ Returns: {
20852
+ attempts: number;
20853
+ id: string;
20854
+ order_id: string;
20855
+ }[];
20856
+ };
20857
+ logistics_plan_enqueue: {
20858
+ Args: {
20859
+ p_order_id: string;
20860
+ p_reason?: string;
20861
+ };
20862
+ Returns: undefined;
20863
+ };
20864
+ logistics_plan_ensure_event: {
20865
+ Args: {
20866
+ p_order_id: string;
20867
+ };
20868
+ Returns: boolean;
20869
+ };
20870
+ logistics_plan_finish: {
20871
+ Args: {
20872
+ p_error?: string;
20873
+ p_id: string;
20874
+ };
20875
+ Returns: undefined;
20876
+ };
20877
+ logistics_plan_impact_orders: {
20878
+ Args: {
20879
+ p_order_id: string;
20880
+ };
20881
+ Returns: {
20882
+ buffer_id: string;
20883
+ order_id: string;
20884
+ plan_date: string;
20885
+ }[];
20886
+ };
20887
+ logistics_plan_kick: {
20888
+ Args: never;
20889
+ Returns: undefined;
20890
+ };
20891
+ logistics_plan_prune: {
20892
+ Args: never;
20893
+ Returns: number;
20894
+ };
20895
+ logistics_plan_release_stale: {
20896
+ Args: never;
20897
+ Returns: number;
20898
+ };
20899
+ logistics_plan_setting: {
20900
+ Args: {
20901
+ p_default: number;
20902
+ p_key: string;
20903
+ };
20904
+ Returns: number;
20905
+ };
19996
20906
  logistics_queue_capacity_email: {
19997
20907
  Args: {
19998
20908
  p_alert_id: string;
@@ -20231,6 +21141,14 @@ export type Database = {
20231
21141
  };
20232
21142
  Returns: undefined;
20233
21143
  };
21144
+ my_module_permissions: {
21145
+ Args: never;
21146
+ Returns: {
21147
+ feature_id: string;
21148
+ module_id: string;
21149
+ permission: string;
21150
+ }[];
21151
+ };
20234
21152
  next_manufacture_partij: {
20235
21153
  Args: {
20236
21154
  _tenant_id: string;
@@ -20281,6 +21199,13 @@ export type Database = {
20281
21199
  };
20282
21200
  Returns: boolean;
20283
21201
  };
21202
+ opruim_print_historie: {
21203
+ Args: never;
21204
+ Returns: {
21205
+ ontdaan: number;
21206
+ verwijderd: number;
21207
+ }[];
21208
+ };
20284
21209
  order_number_prefix: {
20285
21210
  Args: {
20286
21211
  p_custom_fields?: Json;
@@ -20675,6 +21600,12 @@ export type Database = {
20675
21600
  };
20676
21601
  Returns: undefined;
20677
21602
  };
21603
+ reset_stalled_floriday_stock_queue: {
21604
+ Args: {
21605
+ p_include_failed?: boolean;
21606
+ };
21607
+ Returns: number;
21608
+ };
20678
21609
  resolve_group_allocation: {
20679
21610
  Args: {
20680
21611
  _needed: number;
@@ -20729,10 +21660,18 @@ export type Database = {
20729
21660
  Args: never;
20730
21661
  Returns: undefined;
20731
21662
  };
21663
+ run_floriday_stock_queue_process: {
21664
+ Args: never;
21665
+ Returns: undefined;
21666
+ };
20732
21667
  run_logistics_tasks_dispatch: {
20733
21668
  Args: never;
20734
21669
  Returns: undefined;
20735
21670
  };
21671
+ run_print_queue_ticks: {
21672
+ Args: never;
21673
+ Returns: number;
21674
+ };
20736
21675
  run_twinfield_queue_tick: {
20737
21676
  Args: never;
20738
21677
  Returns: undefined;
@@ -21086,6 +22025,16 @@ export type Database = {
21086
22025
  };
21087
22026
  Returns: string[];
21088
22027
  };
22028
+ switch_time_log: {
22029
+ Args: {
22030
+ p_employee_id: string;
22031
+ p_start_lat?: number;
22032
+ p_start_lng?: number;
22033
+ p_type: string;
22034
+ p_work_order_id?: string;
22035
+ };
22036
+ Returns: Json;
22037
+ };
21089
22038
  sync_all_layer_stocks: {
21090
22039
  Args: never;
21091
22040
  Returns: undefined;
@@ -21120,6 +22069,15 @@ export type Database = {
21120
22069
  };
21121
22070
  Returns: undefined;
21122
22071
  };
22072
+ trade_item_stock_duplicates: {
22073
+ Args: never;
22074
+ Returns: {
22075
+ keys: string[];
22076
+ product_id: string;
22077
+ product_name: string;
22078
+ row_count: number;
22079
+ }[];
22080
+ };
21123
22081
  try_debtor_lock: {
21124
22082
  Args: {
21125
22083
  _group_key: string;
@@ -21127,6 +22085,24 @@ export type Database = {
21127
22085
  };
21128
22086
  Returns: boolean;
21129
22087
  };
22088
+ twinfield_cron_lock_acquire: {
22089
+ Args: {
22090
+ _job_name: string;
22091
+ _stale_seconds?: number;
22092
+ };
22093
+ Returns: boolean;
22094
+ };
22095
+ twinfield_cron_lock_release: {
22096
+ Args: {
22097
+ _error?: string;
22098
+ _job_name: string;
22099
+ };
22100
+ Returns: undefined;
22101
+ };
22102
+ twinfield_prune_push_queue: {
22103
+ Args: never;
22104
+ Returns: number;
22105
+ };
21130
22106
  twinfield_register_cron: {
21131
22107
  Args: {
21132
22108
  apikey?: string;