@flowselections/admin-installatietechniek 1.0.4 → 1.0.5

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 (29) hide show
  1. package/dist-lib/components/AdminForInstallatieTechniek.d.ts.map +1 -1
  2. package/dist-lib/components/AdminForInstallatieTechniek.js +15 -4
  3. package/dist-lib/components/ModuleAccessGuard.d.ts +15 -0
  4. package/dist-lib/components/ModuleAccessGuard.d.ts.map +1 -0
  5. package/dist-lib/components/ModuleAccessGuard.js +40 -0
  6. package/dist-lib/hooks/useModulePermission.d.ts +8 -2
  7. package/dist-lib/hooks/useModulePermission.d.ts.map +1 -1
  8. package/dist-lib/hooks/useModulePermission.js +26 -23
  9. package/dist-lib/index.d.ts +2 -0
  10. package/dist-lib/index.d.ts.map +1 -1
  11. package/dist-lib/index.js +2 -0
  12. package/dist-lib/integrations/supabase/auth-attacher.d.ts.map +1 -1
  13. package/dist-lib/integrations/supabase/auth-attacher.js +5 -1
  14. package/dist-lib/integrations/supabase/auth-middleware.d.ts +555 -117
  15. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  16. package/dist-lib/integrations/supabase/auth-middleware.js +21 -7
  17. package/dist-lib/integrations/supabase/client.d.ts +555 -117
  18. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  19. package/dist-lib/integrations/supabase/client.server.d.ts +555 -117
  20. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  21. package/dist-lib/integrations/supabase/types.d.ts +567 -128
  22. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  23. package/dist-lib/lib/admin.functions.d.ts +30013 -1785
  24. package/dist-lib/lib/admin.functions.d.ts.map +1 -1
  25. package/dist-lib/lib/admin.functions.js +19 -1
  26. package/dist-lib/lib/permissions.server.d.ts +14 -0
  27. package/dist-lib/lib/permissions.server.d.ts.map +1 -0
  28. package/dist-lib/lib/permissions.server.js +26 -0
  29. package/package.json +87 -87
@@ -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;
@@ -7975,7 +8095,6 @@ export type Database = {
7975
8095
  start_date: string;
7976
8096
  start_time: string | null;
7977
8097
  status: string;
7978
- tenant_id: string;
7979
8098
  updated_at: string;
7980
8099
  user_id: string;
7981
8100
  };
@@ -7993,7 +8112,6 @@ export type Database = {
7993
8112
  start_date: string;
7994
8113
  start_time?: string | null;
7995
8114
  status?: string;
7996
- tenant_id?: string;
7997
8115
  updated_at?: string;
7998
8116
  user_id: string;
7999
8117
  };
@@ -8011,7 +8129,6 @@ export type Database = {
8011
8129
  start_date?: string;
8012
8130
  start_time?: string | null;
8013
8131
  status?: string;
8014
- tenant_id?: string;
8015
8132
  updated_at?: string;
8016
8133
  user_id?: string;
8017
8134
  };
@@ -8020,14 +8137,14 @@ export type Database = {
8020
8137
  foreignKeyName: "leave_requests_monteur_id_fkey";
8021
8138
  columns: ["monteur_id"];
8022
8139
  isOneToOne: false;
8023
- referencedRelation: "monteurs";
8140
+ referencedRelation: "profiles";
8024
8141
  referencedColumns: ["id"];
8025
8142
  },
8026
8143
  {
8027
8144
  foreignKeyName: "leave_requests_user_id_fkey";
8028
8145
  columns: ["user_id"];
8029
8146
  isOneToOne: false;
8030
- referencedRelation: "monteurs";
8147
+ referencedRelation: "profiles";
8031
8148
  referencedColumns: ["id"];
8032
8149
  }
8033
8150
  ];
@@ -10235,6 +10352,64 @@ export type Database = {
10235
10352
  };
10236
10353
  Relationships: [];
10237
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
+ };
10238
10413
  module_features: {
10239
10414
  Row: {
10240
10415
  created_at: string;
@@ -10295,6 +10470,7 @@ export type Database = {
10295
10470
  module_registry: {
10296
10471
  Row: {
10297
10472
  created_at: string;
10473
+ enforce: boolean;
10298
10474
  is_active: boolean;
10299
10475
  last_seen_at: string;
10300
10476
  module_id: string;
@@ -10304,6 +10480,7 @@ export type Database = {
10304
10480
  };
10305
10481
  Insert: {
10306
10482
  created_at?: string;
10483
+ enforce?: boolean;
10307
10484
  is_active?: boolean;
10308
10485
  last_seen_at?: string;
10309
10486
  module_id: string;
@@ -10313,6 +10490,7 @@ export type Database = {
10313
10490
  };
10314
10491
  Update: {
10315
10492
  created_at?: string;
10493
+ enforce?: boolean;
10316
10494
  is_active?: boolean;
10317
10495
  last_seen_at?: string;
10318
10496
  module_id?: string;
@@ -10373,65 +10551,6 @@ export type Database = {
10373
10551
  };
10374
10552
  Relationships: [];
10375
10553
  };
10376
- monteurs: {
10377
- Row: {
10378
- avatar_url: string | null;
10379
- color: string | null;
10380
- created_at: string;
10381
- email: string | null;
10382
- id: string;
10383
- is_active: boolean;
10384
- leave_balance_hours: number;
10385
- name: string;
10386
- persnr: number | null;
10387
- phone: string | null;
10388
- role: string;
10389
- tenant_id: string;
10390
- updated_at: string;
10391
- user_id: string | null;
10392
- };
10393
- Insert: {
10394
- avatar_url?: string | null;
10395
- color?: string | null;
10396
- created_at?: string;
10397
- email?: string | null;
10398
- id?: string;
10399
- is_active?: boolean;
10400
- leave_balance_hours?: number;
10401
- name: string;
10402
- persnr?: number | null;
10403
- phone?: string | null;
10404
- role?: string;
10405
- tenant_id: string;
10406
- updated_at?: string;
10407
- user_id?: string | null;
10408
- };
10409
- Update: {
10410
- avatar_url?: string | null;
10411
- color?: string | null;
10412
- created_at?: string;
10413
- email?: string | null;
10414
- id?: string;
10415
- is_active?: boolean;
10416
- leave_balance_hours?: number;
10417
- name?: string;
10418
- persnr?: number | null;
10419
- phone?: string | null;
10420
- role?: string;
10421
- tenant_id?: string;
10422
- updated_at?: string;
10423
- user_id?: string | null;
10424
- };
10425
- Relationships: [
10426
- {
10427
- foreignKeyName: "monteurs_tenant_id_fkey";
10428
- columns: ["tenant_id"];
10429
- isOneToOne: false;
10430
- referencedRelation: "tenants";
10431
- referencedColumns: ["id"];
10432
- }
10433
- ];
10434
- };
10435
10554
  nmbrs_component_mapping: {
10436
10555
  Row: {
10437
10556
  created_at: string;
@@ -10504,15 +10623,7 @@ export type Database = {
10504
10623
  nmbrs_employee_number?: string;
10505
10624
  updated_at?: string;
10506
10625
  };
10507
- Relationships: [
10508
- {
10509
- foreignKeyName: "nmbrs_employee_mapping_monteur_id_fkey";
10510
- columns: ["monteur_id"];
10511
- isOneToOne: true;
10512
- referencedRelation: "monteurs";
10513
- referencedColumns: ["id"];
10514
- }
10515
- ];
10626
+ Relationships: [];
10516
10627
  };
10517
10628
  nmbrs_export_lines: {
10518
10629
  Row: {
@@ -10561,13 +10672,6 @@ export type Database = {
10561
10672
  wage_code?: string;
10562
10673
  };
10563
10674
  Relationships: [
10564
- {
10565
- foreignKeyName: "nmbrs_export_lines_monteur_id_fkey";
10566
- columns: ["monteur_id"];
10567
- isOneToOne: false;
10568
- referencedRelation: "monteurs";
10569
- referencedColumns: ["id"];
10570
- },
10571
10675
  {
10572
10676
  foreignKeyName: "nmbrs_export_lines_run_id_fkey";
10573
10677
  columns: ["run_id"];
@@ -15410,6 +15514,56 @@ export type Database = {
15410
15514
  };
15411
15515
  Relationships: [];
15412
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
+ };
15413
15567
  time_entries: {
15414
15568
  Row: {
15415
15569
  created_at: string;
@@ -15444,68 +15598,174 @@ export type Database = {
15444
15598
  undertime?: number;
15445
15599
  updated_at?: string;
15446
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
+ };
15447
15643
  Relationships: [
15448
15644
  {
15449
- foreignKeyName: "time_entries_employee_id_fkey";
15645
+ foreignKeyName: "time_log_week_approvals_employee_id_fkey";
15450
15646
  columns: ["employee_id"];
15451
15647
  isOneToOne: false;
15452
- referencedRelation: "monteurs";
15648
+ referencedRelation: "profiles";
15453
15649
  referencedColumns: ["id"];
15454
15650
  }
15455
15651
  ];
15456
15652
  };
15457
15653
  time_logs: {
15458
15654
  Row: {
15655
+ auto_stop_reason: string | null;
15656
+ auto_stopped: boolean;
15459
15657
  created_at: string;
15658
+ current_latitude: number | null;
15659
+ current_longitude: number | null;
15660
+ current_position_updated_at: string | null;
15460
15661
  employee_id: string;
15662
+ end_latitude: number | null;
15663
+ end_longitude: number | null;
15461
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;
15462
15669
  id: string;
15670
+ last_reminder_at: string | null;
15463
15671
  notes: string | null;
15464
15672
  overtime_hours: number;
15465
15673
  overtime_type: string | null;
15466
15674
  regular_hours: number;
15675
+ reminder_count: number;
15676
+ requires_review: boolean;
15677
+ start_latitude: number | null;
15678
+ start_longitude: number | null;
15467
15679
  start_time: string;
15468
15680
  travel_cost: number | null;
15469
15681
  travel_distance_km: number | null;
15682
+ travel_duration_min: number | null;
15683
+ travel_time_minutes: number | null;
15470
15684
  type: string;
15471
15685
  updated_at: string;
15686
+ work_order_id: string | null;
15472
15687
  };
15473
15688
  Insert: {
15689
+ auto_stop_reason?: string | null;
15690
+ auto_stopped?: boolean;
15474
15691
  created_at?: string;
15692
+ current_latitude?: number | null;
15693
+ current_longitude?: number | null;
15694
+ current_position_updated_at?: string | null;
15475
15695
  employee_id: string;
15696
+ end_latitude?: number | null;
15697
+ end_longitude?: number | null;
15476
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;
15477
15703
  id?: string;
15704
+ last_reminder_at?: string | null;
15478
15705
  notes?: string | null;
15479
15706
  overtime_hours?: number;
15480
15707
  overtime_type?: string | null;
15481
15708
  regular_hours?: number;
15709
+ reminder_count?: number;
15710
+ requires_review?: boolean;
15711
+ start_latitude?: number | null;
15712
+ start_longitude?: number | null;
15482
15713
  start_time?: string;
15483
15714
  travel_cost?: number | null;
15484
15715
  travel_distance_km?: number | null;
15716
+ travel_duration_min?: number | null;
15717
+ travel_time_minutes?: number | null;
15485
15718
  type: string;
15486
15719
  updated_at?: string;
15720
+ work_order_id?: string | null;
15487
15721
  };
15488
15722
  Update: {
15723
+ auto_stop_reason?: string | null;
15724
+ auto_stopped?: boolean;
15489
15725
  created_at?: string;
15726
+ current_latitude?: number | null;
15727
+ current_longitude?: number | null;
15728
+ current_position_updated_at?: string | null;
15490
15729
  employee_id?: string;
15730
+ end_latitude?: number | null;
15731
+ end_longitude?: number | null;
15491
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;
15492
15737
  id?: string;
15738
+ last_reminder_at?: string | null;
15493
15739
  notes?: string | null;
15494
15740
  overtime_hours?: number;
15495
15741
  overtime_type?: string | null;
15496
15742
  regular_hours?: number;
15743
+ reminder_count?: number;
15744
+ requires_review?: boolean;
15745
+ start_latitude?: number | null;
15746
+ start_longitude?: number | null;
15497
15747
  start_time?: string;
15498
15748
  travel_cost?: number | null;
15499
15749
  travel_distance_km?: number | null;
15750
+ travel_duration_min?: number | null;
15751
+ travel_time_minutes?: number | null;
15500
15752
  type?: string;
15501
15753
  updated_at?: string;
15754
+ work_order_id?: string | null;
15502
15755
  };
15503
15756
  Relationships: [
15504
15757
  {
15505
15758
  foreignKeyName: "time_logs_employee_id_fkey";
15506
15759
  columns: ["employee_id"];
15507
15760
  isOneToOne: false;
15508
- 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";
15509
15769
  referencedColumns: ["id"];
15510
15770
  }
15511
15771
  ];
@@ -15546,7 +15806,7 @@ export type Database = {
15546
15806
  foreignKeyName: "time_off_entries_employee_id_fkey";
15547
15807
  columns: ["employee_id"];
15548
15808
  isOneToOne: false;
15549
- referencedRelation: "monteurs";
15809
+ referencedRelation: "profiles";
15550
15810
  referencedColumns: ["id"];
15551
15811
  }
15552
15812
  ];
@@ -15859,6 +16119,39 @@ export type Database = {
15859
16119
  };
15860
16120
  Relationships: [];
15861
16121
  };
16122
+ twinfield_cron_locks: {
16123
+ Row: {
16124
+ created_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
+ };
15862
16155
  twinfield_customers: {
15863
16156
  Row: {
15864
16157
  address: string | null;
@@ -16469,6 +16762,7 @@ export type Database = {
16469
16762
  twinfield_push_queue: {
16470
16763
  Row: {
16471
16764
  action: string;
16765
+ attempt_started_at: string | null;
16472
16766
  attempts: number;
16473
16767
  connection_id: string | null;
16474
16768
  created_at: string;
@@ -16485,6 +16779,7 @@ export type Database = {
16485
16779
  };
16486
16780
  Insert: {
16487
16781
  action?: string;
16782
+ attempt_started_at?: string | null;
16488
16783
  attempts?: number;
16489
16784
  connection_id?: string | null;
16490
16785
  created_at?: string;
@@ -16501,6 +16796,7 @@ export type Database = {
16501
16796
  };
16502
16797
  Update: {
16503
16798
  action?: string;
16799
+ attempt_started_at?: string | null;
16504
16800
  attempts?: number;
16505
16801
  connection_id?: string | null;
16506
16802
  created_at?: string;
@@ -16703,15 +16999,7 @@ export type Database = {
16703
16999
  workday_end?: string | null;
16704
17000
  workday_start?: string | null;
16705
17001
  };
16706
- Relationships: [
16707
- {
16708
- foreignKeyName: "uren_cao_profiles_monteur_id_fkey";
16709
- columns: ["monteur_id"];
16710
- isOneToOne: true;
16711
- referencedRelation: "monteurs";
16712
- referencedColumns: ["id"];
16713
- }
16714
- ];
17002
+ Relationships: [];
16715
17003
  };
16716
17004
  uren_entries: {
16717
17005
  Row: {
@@ -16757,13 +17045,6 @@ export type Database = {
16757
17045
  werkbon_id?: string | null;
16758
17046
  };
16759
17047
  Relationships: [
16760
- {
16761
- foreignKeyName: "uren_entries_monteur_id_fkey";
16762
- columns: ["monteur_id"];
16763
- isOneToOne: false;
16764
- referencedRelation: "monteurs";
16765
- referencedColumns: ["id"];
16766
- },
16767
17048
  {
16768
17049
  foreignKeyName: "uren_entries_werkbon_id_fkey";
16769
17050
  columns: ["werkbon_id"];
@@ -17245,15 +17526,7 @@ export type Database = {
17245
17526
  submitted_at?: string | null;
17246
17527
  updated_at?: string;
17247
17528
  };
17248
- Relationships: [
17249
- {
17250
- foreignKeyName: "uren_weekstaten_monteur_id_fkey";
17251
- columns: ["monteur_id"];
17252
- isOneToOne: false;
17253
- referencedRelation: "monteurs";
17254
- referencedColumns: ["id"];
17255
- }
17256
- ];
17529
+ Relationships: [];
17257
17530
  };
17258
17531
  user_module_permissions: {
17259
17532
  Row: {
@@ -17314,6 +17587,53 @@ export type Database = {
17314
17587
  }
17315
17588
  ];
17316
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
+ };
17317
17637
  voorraad_custom_fields: {
17318
17638
  Row: {
17319
17639
  created_at: string;
@@ -18287,7 +18607,7 @@ export type Database = {
18287
18607
  foreignKeyName: "work_order_monteurs_monteur_id_fkey";
18288
18608
  columns: ["monteur_id"];
18289
18609
  isOneToOne: false;
18290
- referencedRelation: "monteurs";
18610
+ referencedRelation: "profiles";
18291
18611
  referencedColumns: ["id"];
18292
18612
  },
18293
18613
  {
@@ -18299,6 +18619,63 @@ export type Database = {
18299
18619
  }
18300
18620
  ];
18301
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
+ };
18302
18679
  work_orders: {
18303
18680
  Row: {
18304
18681
  assigned_to: string | null;
@@ -18330,7 +18707,6 @@ export type Database = {
18330
18707
  scheduled_end_time: string | null;
18331
18708
  scheduled_start_time: string | null;
18332
18709
  status: string;
18333
- tenant_id: string;
18334
18710
  total_hours_worked: number | null;
18335
18711
  total_price: number | null;
18336
18712
  travel_time_minutes: number | null;
@@ -18368,7 +18744,6 @@ export type Database = {
18368
18744
  scheduled_end_time?: string | null;
18369
18745
  scheduled_start_time?: string | null;
18370
18746
  status?: string;
18371
- tenant_id: string;
18372
18747
  total_hours_worked?: number | null;
18373
18748
  total_price?: number | null;
18374
18749
  travel_time_minutes?: number | null;
@@ -18406,7 +18781,6 @@ export type Database = {
18406
18781
  scheduled_end_time?: string | null;
18407
18782
  scheduled_start_time?: string | null;
18408
18783
  status?: string;
18409
- tenant_id?: string;
18410
18784
  total_hours_worked?: number | null;
18411
18785
  total_price?: number | null;
18412
18786
  travel_time_minutes?: number | null;
@@ -18421,13 +18795,6 @@ export type Database = {
18421
18795
  isOneToOne: false;
18422
18796
  referencedRelation: "work_orders";
18423
18797
  referencedColumns: ["id"];
18424
- },
18425
- {
18426
- foreignKeyName: "work_orders_tenant_id_fkey";
18427
- columns: ["tenant_id"];
18428
- isOneToOne: false;
18429
- referencedRelation: "tenants";
18430
- referencedColumns: ["id"];
18431
18798
  }
18432
18799
  ];
18433
18800
  };
@@ -19125,6 +19492,19 @@ export type Database = {
19125
19492
  };
19126
19493
  Returns: undefined;
19127
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
+ };
19128
19508
  assign_cart_numbers: {
19129
19509
  Args: {
19130
19510
  p_carts: Json;
@@ -19176,6 +19556,10 @@ export type Database = {
19176
19556
  };
19177
19557
  Returns: number;
19178
19558
  };
19559
+ can_manage_hours: {
19560
+ Args: never;
19561
+ Returns: boolean;
19562
+ };
19179
19563
  check_offer_product_available_stock: {
19180
19564
  Args: {
19181
19565
  p_campaign_product_id: string;
@@ -19365,6 +19749,7 @@ export type Database = {
19365
19749
  };
19366
19750
  Returns: {
19367
19751
  action: string;
19752
+ attempt_started_at: string | null;
19368
19753
  attempts: number;
19369
19754
  connection_id: string | null;
19370
19755
  created_at: string;
@@ -19452,6 +19837,30 @@ export type Database = {
19452
19837
  agent_naam: string;
19453
19838
  }[];
19454
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
+ };
19455
19864
  control_get_todays_carts: {
19456
19865
  Args: never;
19457
19866
  Returns: {
@@ -19527,7 +19936,7 @@ export type Database = {
19527
19936
  Returns: string;
19528
19937
  } | {
19529
19938
  Args: {
19530
- _feature_id?: string;
19939
+ _feature_id: string;
19531
19940
  _module_id: string;
19532
19941
  _user_id: string;
19533
19942
  };
@@ -19883,12 +20292,6 @@ export type Database = {
19883
20292
  Args: never;
19884
20293
  Returns: string;
19885
20294
  };
19886
- get_work_order_tenant_id: {
19887
- Args: {
19888
- wo_id: string;
19889
- };
19890
- Returns: string;
19891
- };
19892
20295
  has_module_permission: {
19893
20296
  Args: {
19894
20297
  _min: string;
@@ -19922,6 +20325,13 @@ export type Database = {
19922
20325
  };
19923
20326
  Returns: boolean;
19924
20327
  };
20328
+ is_time_log_week_locked: {
20329
+ Args: {
20330
+ p_employee_id: string;
20331
+ p_start_time: string;
20332
+ };
20333
+ Returns: boolean;
20334
+ };
19925
20335
  is_user_admin: {
19926
20336
  Args: never;
19927
20337
  Returns: boolean;
@@ -19936,13 +20346,14 @@ export type Database = {
19936
20346
  };
19937
20347
  Returns: boolean;
19938
20348
  };
19939
- list_monteurs: {
20349
+ list_medewerkers: {
19940
20350
  Args: never;
19941
20351
  Returns: {
19942
20352
  avatar_url: string;
19943
20353
  display_name: string;
19944
20354
  email: string;
19945
20355
  id: string;
20356
+ roles: string[];
19946
20357
  }[];
19947
20358
  };
19948
20359
  list_my_planning_items: {
@@ -21614,6 +22025,16 @@ export type Database = {
21614
22025
  };
21615
22026
  Returns: string[];
21616
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
+ };
21617
22038
  sync_all_layer_stocks: {
21618
22039
  Args: never;
21619
22040
  Returns: undefined;
@@ -21664,6 +22085,24 @@ export type Database = {
21664
22085
  };
21665
22086
  Returns: boolean;
21666
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
+ };
21667
22106
  twinfield_register_cron: {
21668
22107
  Args: {
21669
22108
  apikey?: string;