@flowselections/admin-installatietechniek 1.0.4 → 1.0.6

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 (33) hide show
  1. package/dist-lib/components/AdminForInstallatieTechniek.d.ts.map +1 -1
  2. package/dist-lib/components/AdminForInstallatieTechniek.js +166 -9
  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 +10 -3
  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 +1126 -155
  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 +1126 -155
  18. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  19. package/dist-lib/integrations/supabase/client.server.d.ts +1126 -155
  20. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  21. package/dist-lib/integrations/supabase/types.d.ts +1148 -154
  22. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  23. package/dist-lib/integrations/supabase/types.js +3 -0
  24. package/dist-lib/lib/admin.functions.d.ts +171971 -2043
  25. package/dist-lib/lib/admin.functions.d.ts.map +1 -1
  26. package/dist-lib/lib/admin.functions.js +292 -16
  27. package/dist-lib/lib/permission-types.d.ts +7 -0
  28. package/dist-lib/lib/permission-types.d.ts.map +1 -0
  29. package/dist-lib/lib/permission-types.js +1 -0
  30. package/dist-lib/lib/permissions.server.d.ts +14 -0
  31. package/dist-lib/lib/permissions.server.d.ts.map +1 -0
  32. package/dist-lib/lib/permissions.server.js +26 -0
  33. 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;
@@ -5037,6 +5157,42 @@ export type Database = {
5037
5157
  };
5038
5158
  Relationships: [];
5039
5159
  };
5160
+ facturen: {
5161
+ Row: {
5162
+ bedrag_incl_btw: number;
5163
+ created_at: string;
5164
+ datum: string;
5165
+ factuurnummer: string;
5166
+ id: string;
5167
+ klantnaam: string;
5168
+ status: string;
5169
+ updated_at: string;
5170
+ user_id: string;
5171
+ };
5172
+ Insert: {
5173
+ bedrag_incl_btw: number;
5174
+ created_at?: string;
5175
+ datum?: string;
5176
+ factuurnummer: string;
5177
+ id?: string;
5178
+ klantnaam: string;
5179
+ status?: string;
5180
+ updated_at?: string;
5181
+ user_id?: string;
5182
+ };
5183
+ Update: {
5184
+ bedrag_incl_btw?: number;
5185
+ created_at?: string;
5186
+ datum?: string;
5187
+ factuurnummer?: string;
5188
+ id?: string;
5189
+ klantnaam?: string;
5190
+ status?: string;
5191
+ updated_at?: string;
5192
+ user_id?: string;
5193
+ };
5194
+ Relationships: [];
5195
+ };
5040
5196
  floricode_connection_settings: {
5041
5197
  Row: {
5042
5198
  catalog_key: string | null;
@@ -7856,6 +8012,269 @@ export type Database = {
7856
8012
  };
7857
8013
  Relationships: [];
7858
8014
  };
8015
+ itk_offerte_events: {
8016
+ Row: {
8017
+ created_at: string;
8018
+ event_type: string;
8019
+ id: string;
8020
+ metadata: Json;
8021
+ offerte_id: string;
8022
+ omschrijving: string | null;
8023
+ user_id: string | null;
8024
+ };
8025
+ Insert: {
8026
+ created_at?: string;
8027
+ event_type: string;
8028
+ id?: string;
8029
+ metadata?: Json;
8030
+ offerte_id: string;
8031
+ omschrijving?: string | null;
8032
+ user_id?: string | null;
8033
+ };
8034
+ Update: {
8035
+ created_at?: string;
8036
+ event_type?: string;
8037
+ id?: string;
8038
+ metadata?: Json;
8039
+ offerte_id?: string;
8040
+ omschrijving?: string | null;
8041
+ user_id?: string | null;
8042
+ };
8043
+ Relationships: [
8044
+ {
8045
+ foreignKeyName: "itk_offerte_events_offerte_id_fkey";
8046
+ columns: ["offerte_id"];
8047
+ isOneToOne: false;
8048
+ referencedRelation: "itk_offertes";
8049
+ referencedColumns: ["id"];
8050
+ }
8051
+ ];
8052
+ };
8053
+ itk_offerte_regels: {
8054
+ Row: {
8055
+ created_at: string;
8056
+ id: string;
8057
+ line_total_cents: number;
8058
+ offerte_id: string;
8059
+ omschrijving: string;
8060
+ package_id: string | null;
8061
+ quantity: number;
8062
+ sort_order: number;
8063
+ source: string;
8064
+ unit_price_cents: number;
8065
+ updated_at: string;
8066
+ };
8067
+ Insert: {
8068
+ created_at?: string;
8069
+ id?: string;
8070
+ line_total_cents?: number;
8071
+ offerte_id: string;
8072
+ omschrijving?: string;
8073
+ package_id?: string | null;
8074
+ quantity?: number;
8075
+ sort_order?: number;
8076
+ source?: string;
8077
+ unit_price_cents?: number;
8078
+ updated_at?: string;
8079
+ };
8080
+ Update: {
8081
+ created_at?: string;
8082
+ id?: string;
8083
+ line_total_cents?: number;
8084
+ offerte_id?: string;
8085
+ omschrijving?: string;
8086
+ package_id?: string | null;
8087
+ quantity?: number;
8088
+ sort_order?: number;
8089
+ source?: string;
8090
+ unit_price_cents?: number;
8091
+ updated_at?: string;
8092
+ };
8093
+ Relationships: [
8094
+ {
8095
+ foreignKeyName: "itk_offerte_regels_offerte_id_fkey";
8096
+ columns: ["offerte_id"];
8097
+ isOneToOne: false;
8098
+ referencedRelation: "itk_offertes";
8099
+ referencedColumns: ["id"];
8100
+ },
8101
+ {
8102
+ foreignKeyName: "itk_offerte_regels_package_id_fkey";
8103
+ columns: ["package_id"];
8104
+ isOneToOne: false;
8105
+ referencedRelation: "werkbon_packages";
8106
+ referencedColumns: ["id"];
8107
+ }
8108
+ ];
8109
+ };
8110
+ itk_offerte_settings: {
8111
+ Row: {
8112
+ auto_convert_binnen_mandaat: boolean;
8113
+ created_at: string;
8114
+ default_geldigheid_dagen: number;
8115
+ default_vat_rate: number;
8116
+ id: string;
8117
+ singleton: boolean;
8118
+ updated_at: string;
8119
+ };
8120
+ Insert: {
8121
+ auto_convert_binnen_mandaat?: boolean;
8122
+ created_at?: string;
8123
+ default_geldigheid_dagen?: number;
8124
+ default_vat_rate?: number;
8125
+ id?: string;
8126
+ singleton?: boolean;
8127
+ updated_at?: string;
8128
+ };
8129
+ Update: {
8130
+ auto_convert_binnen_mandaat?: boolean;
8131
+ created_at?: string;
8132
+ default_geldigheid_dagen?: number;
8133
+ default_vat_rate?: number;
8134
+ id?: string;
8135
+ singleton?: boolean;
8136
+ updated_at?: string;
8137
+ };
8138
+ Relationships: [];
8139
+ };
8140
+ itk_offertes: {
8141
+ Row: {
8142
+ ai_generated: boolean;
8143
+ approved_at: string | null;
8144
+ binnen_mandaat: boolean;
8145
+ contact_id: string | null;
8146
+ converted_at: string | null;
8147
+ created_at: string;
8148
+ created_by: string | null;
8149
+ customer_id: string | null;
8150
+ follow_up_werkbon_id: string | null;
8151
+ id: string;
8152
+ jaar: number;
8153
+ mandaat_restant_cents: number;
8154
+ notities: string | null;
8155
+ offerte_number: string | null;
8156
+ omschrijving: string;
8157
+ rejected_at: string | null;
8158
+ sent_at: string | null;
8159
+ source_number: string | null;
8160
+ source_ref: string | null;
8161
+ source_type: string;
8162
+ status: string;
8163
+ subtotal_cents: number;
8164
+ total_cents: number;
8165
+ updated_at: string;
8166
+ valid_until: string | null;
8167
+ vat_cents: number;
8168
+ vat_rate: number;
8169
+ viewed_at: string | null;
8170
+ volgnummer: number | null;
8171
+ werkbon_id: string | null;
8172
+ work_location_id: string | null;
8173
+ };
8174
+ Insert: {
8175
+ ai_generated?: boolean;
8176
+ approved_at?: string | null;
8177
+ binnen_mandaat?: boolean;
8178
+ contact_id?: string | null;
8179
+ converted_at?: string | null;
8180
+ created_at?: string;
8181
+ created_by?: string | null;
8182
+ customer_id?: string | null;
8183
+ follow_up_werkbon_id?: string | null;
8184
+ id?: string;
8185
+ jaar?: number;
8186
+ mandaat_restant_cents?: number;
8187
+ notities?: string | null;
8188
+ offerte_number?: string | null;
8189
+ omschrijving?: string;
8190
+ rejected_at?: string | null;
8191
+ sent_at?: string | null;
8192
+ source_number?: string | null;
8193
+ source_ref?: string | null;
8194
+ source_type?: string;
8195
+ status?: string;
8196
+ subtotal_cents?: number;
8197
+ total_cents?: number;
8198
+ updated_at?: string;
8199
+ valid_until?: string | null;
8200
+ vat_cents?: number;
8201
+ vat_rate?: number;
8202
+ viewed_at?: string | null;
8203
+ volgnummer?: number | null;
8204
+ werkbon_id?: string | null;
8205
+ work_location_id?: string | null;
8206
+ };
8207
+ Update: {
8208
+ ai_generated?: boolean;
8209
+ approved_at?: string | null;
8210
+ binnen_mandaat?: boolean;
8211
+ contact_id?: string | null;
8212
+ converted_at?: string | null;
8213
+ created_at?: string;
8214
+ created_by?: string | null;
8215
+ customer_id?: string | null;
8216
+ follow_up_werkbon_id?: string | null;
8217
+ id?: string;
8218
+ jaar?: number;
8219
+ mandaat_restant_cents?: number;
8220
+ notities?: string | null;
8221
+ offerte_number?: string | null;
8222
+ omschrijving?: string;
8223
+ rejected_at?: string | null;
8224
+ sent_at?: string | null;
8225
+ source_number?: string | null;
8226
+ source_ref?: string | null;
8227
+ source_type?: string;
8228
+ status?: string;
8229
+ subtotal_cents?: number;
8230
+ total_cents?: number;
8231
+ updated_at?: string;
8232
+ valid_until?: string | null;
8233
+ vat_cents?: number;
8234
+ vat_rate?: number;
8235
+ viewed_at?: string | null;
8236
+ volgnummer?: number | null;
8237
+ werkbon_id?: string | null;
8238
+ work_location_id?: string | null;
8239
+ };
8240
+ Relationships: [
8241
+ {
8242
+ foreignKeyName: "itk_offertes_contact_id_fkey";
8243
+ columns: ["contact_id"];
8244
+ isOneToOne: false;
8245
+ referencedRelation: "itk_contact_persons";
8246
+ referencedColumns: ["id"];
8247
+ },
8248
+ {
8249
+ foreignKeyName: "itk_offertes_customer_id_fkey";
8250
+ columns: ["customer_id"];
8251
+ isOneToOne: false;
8252
+ referencedRelation: "itk_customers";
8253
+ referencedColumns: ["id"];
8254
+ },
8255
+ {
8256
+ foreignKeyName: "itk_offertes_follow_up_werkbon_id_fkey";
8257
+ columns: ["follow_up_werkbon_id"];
8258
+ isOneToOne: false;
8259
+ referencedRelation: "werkbonnen";
8260
+ referencedColumns: ["id"];
8261
+ },
8262
+ {
8263
+ foreignKeyName: "itk_offertes_werkbon_id_fkey";
8264
+ columns: ["werkbon_id"];
8265
+ isOneToOne: false;
8266
+ referencedRelation: "werkbonnen";
8267
+ referencedColumns: ["id"];
8268
+ },
8269
+ {
8270
+ foreignKeyName: "itk_offertes_work_location_id_fkey";
8271
+ columns: ["work_location_id"];
8272
+ isOneToOne: false;
8273
+ referencedRelation: "itk_work_locations";
8274
+ referencedColumns: ["id"];
8275
+ }
8276
+ ];
8277
+ };
7859
8278
  itk_work_locations: {
7860
8279
  Row: {
7861
8280
  city: string | null;
@@ -7975,7 +8394,6 @@ export type Database = {
7975
8394
  start_date: string;
7976
8395
  start_time: string | null;
7977
8396
  status: string;
7978
- tenant_id: string;
7979
8397
  updated_at: string;
7980
8398
  user_id: string;
7981
8399
  };
@@ -7993,7 +8411,6 @@ export type Database = {
7993
8411
  start_date: string;
7994
8412
  start_time?: string | null;
7995
8413
  status?: string;
7996
- tenant_id?: string;
7997
8414
  updated_at?: string;
7998
8415
  user_id: string;
7999
8416
  };
@@ -8011,7 +8428,6 @@ export type Database = {
8011
8428
  start_date?: string;
8012
8429
  start_time?: string | null;
8013
8430
  status?: string;
8014
- tenant_id?: string;
8015
8431
  updated_at?: string;
8016
8432
  user_id?: string;
8017
8433
  };
@@ -8020,14 +8436,14 @@ export type Database = {
8020
8436
  foreignKeyName: "leave_requests_monteur_id_fkey";
8021
8437
  columns: ["monteur_id"];
8022
8438
  isOneToOne: false;
8023
- referencedRelation: "monteurs";
8439
+ referencedRelation: "profiles";
8024
8440
  referencedColumns: ["id"];
8025
8441
  },
8026
8442
  {
8027
8443
  foreignKeyName: "leave_requests_user_id_fkey";
8028
8444
  columns: ["user_id"];
8029
8445
  isOneToOne: false;
8030
- referencedRelation: "monteurs";
8446
+ referencedRelation: "profiles";
8031
8447
  referencedColumns: ["id"];
8032
8448
  }
8033
8449
  ];
@@ -10235,14 +10651,131 @@ export type Database = {
10235
10651
  };
10236
10652
  Relationships: [];
10237
10653
  };
10238
- module_features: {
10654
+ material_usage: {
10239
10655
  Row: {
10240
10656
  created_at: string;
10241
- feature_id: string;
10242
10657
  id: string;
10243
- is_active: boolean;
10244
- last_seen_at: string;
10245
- module_id: string;
10658
+ material_name: string;
10659
+ monteur_id: string | null;
10660
+ price_at_time: number;
10661
+ quantity_used: number;
10662
+ updated_at: string;
10663
+ van_inventory_id: string | null;
10664
+ work_order_id: string;
10665
+ };
10666
+ Insert: {
10667
+ created_at?: string;
10668
+ id?: string;
10669
+ material_name: string;
10670
+ monteur_id?: string | null;
10671
+ price_at_time?: number;
10672
+ quantity_used?: number;
10673
+ updated_at?: string;
10674
+ van_inventory_id?: string | null;
10675
+ work_order_id: string;
10676
+ };
10677
+ Update: {
10678
+ created_at?: string;
10679
+ id?: string;
10680
+ material_name?: string;
10681
+ monteur_id?: string | null;
10682
+ price_at_time?: number;
10683
+ quantity_used?: number;
10684
+ updated_at?: string;
10685
+ van_inventory_id?: string | null;
10686
+ work_order_id?: string;
10687
+ };
10688
+ Relationships: [
10689
+ {
10690
+ foreignKeyName: "material_usage_monteur_id_fkey";
10691
+ columns: ["monteur_id"];
10692
+ isOneToOne: false;
10693
+ referencedRelation: "profiles";
10694
+ referencedColumns: ["id"];
10695
+ },
10696
+ {
10697
+ foreignKeyName: "material_usage_van_inventory_id_fkey";
10698
+ columns: ["van_inventory_id"];
10699
+ isOneToOne: false;
10700
+ referencedRelation: "van_inventories";
10701
+ referencedColumns: ["id"];
10702
+ },
10703
+ {
10704
+ foreignKeyName: "material_usage_work_order_id_fkey";
10705
+ columns: ["work_order_id"];
10706
+ isOneToOne: false;
10707
+ referencedRelation: "work_orders";
10708
+ referencedColumns: ["id"];
10709
+ }
10710
+ ];
10711
+ };
10712
+ medewerker_details: {
10713
+ Row: {
10714
+ color: string | null;
10715
+ created_at: string;
10716
+ hours_fri: number | null;
10717
+ hours_mon: number | null;
10718
+ hours_thu: number | null;
10719
+ hours_tue: number | null;
10720
+ hours_wed: number | null;
10721
+ id: string;
10722
+ is_active: boolean;
10723
+ leave_balance_hours: number;
10724
+ persnr: string | null;
10725
+ phone: string | null;
10726
+ profile_id: string;
10727
+ updated_at: string;
10728
+ };
10729
+ Insert: {
10730
+ color?: string | null;
10731
+ created_at?: string;
10732
+ hours_fri?: number | null;
10733
+ hours_mon?: number | null;
10734
+ hours_thu?: number | null;
10735
+ hours_tue?: number | null;
10736
+ hours_wed?: number | null;
10737
+ id?: string;
10738
+ is_active?: boolean;
10739
+ leave_balance_hours?: number;
10740
+ persnr?: string | null;
10741
+ phone?: string | null;
10742
+ profile_id: string;
10743
+ updated_at?: string;
10744
+ };
10745
+ Update: {
10746
+ color?: string | null;
10747
+ created_at?: string;
10748
+ hours_fri?: number | null;
10749
+ hours_mon?: number | null;
10750
+ hours_thu?: number | null;
10751
+ hours_tue?: number | null;
10752
+ hours_wed?: number | null;
10753
+ id?: string;
10754
+ is_active?: boolean;
10755
+ leave_balance_hours?: number;
10756
+ persnr?: string | null;
10757
+ phone?: string | null;
10758
+ profile_id?: string;
10759
+ updated_at?: string;
10760
+ };
10761
+ Relationships: [
10762
+ {
10763
+ foreignKeyName: "medewerker_details_profile_id_fkey";
10764
+ columns: ["profile_id"];
10765
+ isOneToOne: true;
10766
+ referencedRelation: "profiles";
10767
+ referencedColumns: ["id"];
10768
+ }
10769
+ ];
10770
+ };
10771
+ module_features: {
10772
+ Row: {
10773
+ created_at: string;
10774
+ feature_id: string;
10775
+ id: string;
10776
+ is_active: boolean;
10777
+ last_seen_at: string;
10778
+ module_id: string;
10246
10779
  name: string;
10247
10780
  };
10248
10781
  Insert: {
@@ -10295,6 +10828,7 @@ export type Database = {
10295
10828
  module_registry: {
10296
10829
  Row: {
10297
10830
  created_at: string;
10831
+ enforce: boolean;
10298
10832
  is_active: boolean;
10299
10833
  last_seen_at: string;
10300
10834
  module_id: string;
@@ -10304,6 +10838,7 @@ export type Database = {
10304
10838
  };
10305
10839
  Insert: {
10306
10840
  created_at?: string;
10841
+ enforce?: boolean;
10307
10842
  is_active?: boolean;
10308
10843
  last_seen_at?: string;
10309
10844
  module_id: string;
@@ -10313,6 +10848,7 @@ export type Database = {
10313
10848
  };
10314
10849
  Update: {
10315
10850
  created_at?: string;
10851
+ enforce?: boolean;
10316
10852
  is_active?: boolean;
10317
10853
  last_seen_at?: string;
10318
10854
  module_id?: string;
@@ -10373,65 +10909,6 @@ export type Database = {
10373
10909
  };
10374
10910
  Relationships: [];
10375
10911
  };
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
10912
  nmbrs_component_mapping: {
10436
10913
  Row: {
10437
10914
  created_at: string;
@@ -10504,15 +10981,7 @@ export type Database = {
10504
10981
  nmbrs_employee_number?: string;
10505
10982
  updated_at?: string;
10506
10983
  };
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
- ];
10984
+ Relationships: [];
10516
10985
  };
10517
10986
  nmbrs_export_lines: {
10518
10987
  Row: {
@@ -10561,13 +11030,6 @@ export type Database = {
10561
11030
  wage_code?: string;
10562
11031
  };
10563
11032
  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
11033
  {
10572
11034
  foreignKeyName: "nmbrs_export_lines_run_id_fkey";
10573
11035
  columns: ["run_id"];
@@ -13818,6 +14280,71 @@ export type Database = {
13818
14280
  };
13819
14281
  Relationships: [];
13820
14282
  };
14283
+ profile_modules: {
14284
+ Row: {
14285
+ created_at: string;
14286
+ id: string;
14287
+ module_id: string;
14288
+ profile_id: string;
14289
+ };
14290
+ Insert: {
14291
+ created_at?: string;
14292
+ id?: string;
14293
+ module_id: string;
14294
+ profile_id: string;
14295
+ };
14296
+ Update: {
14297
+ created_at?: string;
14298
+ id?: string;
14299
+ module_id?: string;
14300
+ profile_id?: string;
14301
+ };
14302
+ Relationships: [
14303
+ {
14304
+ foreignKeyName: "profile_modules_profile_id_fkey";
14305
+ columns: ["profile_id"];
14306
+ isOneToOne: false;
14307
+ referencedRelation: "profiles_org";
14308
+ referencedColumns: ["id"];
14309
+ }
14310
+ ];
14311
+ };
14312
+ profile_roles: {
14313
+ Row: {
14314
+ created_at: string;
14315
+ id: string;
14316
+ profile_id: string;
14317
+ role_id: string;
14318
+ };
14319
+ Insert: {
14320
+ created_at?: string;
14321
+ id?: string;
14322
+ profile_id: string;
14323
+ role_id: string;
14324
+ };
14325
+ Update: {
14326
+ created_at?: string;
14327
+ id?: string;
14328
+ profile_id?: string;
14329
+ role_id?: string;
14330
+ };
14331
+ Relationships: [
14332
+ {
14333
+ foreignKeyName: "profile_roles_profile_id_fkey";
14334
+ columns: ["profile_id"];
14335
+ isOneToOne: false;
14336
+ referencedRelation: "profiles_org";
14337
+ referencedColumns: ["id"];
14338
+ },
14339
+ {
14340
+ foreignKeyName: "profile_roles_role_id_fkey";
14341
+ columns: ["role_id"];
14342
+ isOneToOne: false;
14343
+ referencedRelation: "roles";
14344
+ referencedColumns: ["id"];
14345
+ }
14346
+ ];
14347
+ };
13821
14348
  profiles: {
13822
14349
  Row: {
13823
14350
  address: string | null;
@@ -13865,6 +14392,41 @@ export type Database = {
13865
14392
  }
13866
14393
  ];
13867
14394
  };
14395
+ profiles_org: {
14396
+ Row: {
14397
+ created_at: string;
14398
+ id: string;
14399
+ is_default: boolean;
14400
+ name: string;
14401
+ tenant_id: string | null;
14402
+ updated_at: string;
14403
+ };
14404
+ Insert: {
14405
+ created_at?: string;
14406
+ id?: string;
14407
+ is_default?: boolean;
14408
+ name: string;
14409
+ tenant_id?: string | null;
14410
+ updated_at?: string;
14411
+ };
14412
+ Update: {
14413
+ created_at?: string;
14414
+ id?: string;
14415
+ is_default?: boolean;
14416
+ name?: string;
14417
+ tenant_id?: string | null;
14418
+ updated_at?: string;
14419
+ };
14420
+ Relationships: [
14421
+ {
14422
+ foreignKeyName: "profiles_org_tenant_id_fkey";
14423
+ columns: ["tenant_id"];
14424
+ isOneToOne: false;
14425
+ referencedRelation: "tenants";
14426
+ referencedColumns: ["id"];
14427
+ }
14428
+ ];
14429
+ };
13868
14430
  projects: {
13869
14431
  Row: {
13870
14432
  contact_name: string | null;
@@ -15082,6 +15644,7 @@ export type Database = {
15082
15644
  type: string;
15083
15645
  updated_at: string;
15084
15646
  vereist_medewerker: boolean;
15647
+ werkplek: string | null;
15085
15648
  };
15086
15649
  Insert: {
15087
15650
  actief?: boolean;
@@ -15095,6 +15658,7 @@ export type Database = {
15095
15658
  type?: string;
15096
15659
  updated_at?: string;
15097
15660
  vereist_medewerker?: boolean;
15661
+ werkplek?: string | null;
15098
15662
  };
15099
15663
  Update: {
15100
15664
  actief?: boolean;
@@ -15108,9 +15672,48 @@ export type Database = {
15108
15672
  type?: string;
15109
15673
  updated_at?: string;
15110
15674
  vereist_medewerker?: boolean;
15675
+ werkplek?: string | null;
15111
15676
  };
15112
15677
  Relationships: [];
15113
15678
  };
15679
+ sick_periods: {
15680
+ Row: {
15681
+ created_at: string;
15682
+ employee_id: string;
15683
+ end_date: string | null;
15684
+ id: string;
15685
+ notes: string | null;
15686
+ start_date: string;
15687
+ updated_at: string;
15688
+ };
15689
+ Insert: {
15690
+ created_at?: string;
15691
+ employee_id: string;
15692
+ end_date?: string | null;
15693
+ id?: string;
15694
+ notes?: string | null;
15695
+ start_date: string;
15696
+ updated_at?: string;
15697
+ };
15698
+ Update: {
15699
+ created_at?: string;
15700
+ employee_id?: string;
15701
+ end_date?: string | null;
15702
+ id?: string;
15703
+ notes?: string | null;
15704
+ start_date?: string;
15705
+ updated_at?: string;
15706
+ };
15707
+ Relationships: [
15708
+ {
15709
+ foreignKeyName: "sick_periods_employee_id_fkey";
15710
+ columns: ["employee_id"];
15711
+ isOneToOne: false;
15712
+ referencedRelation: "profiles";
15713
+ referencedColumns: ["id"];
15714
+ }
15715
+ ];
15716
+ };
15114
15717
  sidebar_config: {
15115
15718
  Row: {
15116
15719
  id: string;
@@ -15410,6 +16013,56 @@ export type Database = {
15410
16013
  };
15411
16014
  Relationships: [];
15412
16015
  };
16016
+ time_compensation_entries: {
16017
+ Row: {
16018
+ created_at: string;
16019
+ employee_id: string;
16020
+ entry_date: string;
16021
+ id: string;
16022
+ km: number;
16023
+ meal_allowance: number;
16024
+ notes: string | null;
16025
+ standby_evening: number;
16026
+ standby_weekend: number;
16027
+ tvt_change: number;
16028
+ updated_at: string;
16029
+ };
16030
+ Insert: {
16031
+ created_at?: string;
16032
+ employee_id: string;
16033
+ entry_date: string;
16034
+ id?: string;
16035
+ km?: number;
16036
+ meal_allowance?: number;
16037
+ notes?: string | null;
16038
+ standby_evening?: number;
16039
+ standby_weekend?: number;
16040
+ tvt_change?: number;
16041
+ updated_at?: string;
16042
+ };
16043
+ Update: {
16044
+ created_at?: string;
16045
+ employee_id?: string;
16046
+ entry_date?: string;
16047
+ id?: string;
16048
+ km?: number;
16049
+ meal_allowance?: number;
16050
+ notes?: string | null;
16051
+ standby_evening?: number;
16052
+ standby_weekend?: number;
16053
+ tvt_change?: number;
16054
+ updated_at?: string;
16055
+ };
16056
+ Relationships: [
16057
+ {
16058
+ foreignKeyName: "time_compensation_entries_employee_id_fkey";
16059
+ columns: ["employee_id"];
16060
+ isOneToOne: false;
16061
+ referencedRelation: "profiles";
16062
+ referencedColumns: ["id"];
16063
+ }
16064
+ ];
16065
+ };
15413
16066
  time_entries: {
15414
16067
  Row: {
15415
16068
  created_at: string;
@@ -15425,87 +16078,193 @@ export type Database = {
15425
16078
  Insert: {
15426
16079
  created_at?: string;
15427
16080
  employee_id: string;
15428
- entry_date: string;
15429
- hours?: number;
16081
+ entry_date: string;
16082
+ hours?: number;
16083
+ id?: string;
16084
+ notes?: string | null;
16085
+ overtime?: number;
16086
+ undertime?: number;
16087
+ updated_at?: string;
16088
+ };
16089
+ Update: {
16090
+ created_at?: string;
16091
+ employee_id?: string;
16092
+ entry_date?: string;
16093
+ hours?: number;
16094
+ id?: string;
16095
+ notes?: string | null;
16096
+ overtime?: number;
16097
+ undertime?: number;
16098
+ updated_at?: string;
16099
+ };
16100
+ Relationships: [];
16101
+ };
16102
+ time_log_week_approvals: {
16103
+ Row: {
16104
+ approved_at: string | null;
16105
+ approved_by: string | null;
16106
+ created_at: string;
16107
+ employee_id: string;
16108
+ id: string;
16109
+ locked: boolean;
16110
+ notes: string | null;
16111
+ status: string;
16112
+ submitted_at: string | null;
16113
+ updated_at: string;
16114
+ week_start: string;
16115
+ };
16116
+ Insert: {
16117
+ approved_at?: string | null;
16118
+ approved_by?: string | null;
16119
+ created_at?: string;
16120
+ employee_id: string;
15430
16121
  id?: string;
16122
+ locked?: boolean;
15431
16123
  notes?: string | null;
15432
- overtime?: number;
15433
- undertime?: number;
16124
+ status?: string;
16125
+ submitted_at?: string | null;
15434
16126
  updated_at?: string;
16127
+ week_start: string;
15435
16128
  };
15436
16129
  Update: {
16130
+ approved_at?: string | null;
16131
+ approved_by?: string | null;
15437
16132
  created_at?: string;
15438
16133
  employee_id?: string;
15439
- entry_date?: string;
15440
- hours?: number;
15441
16134
  id?: string;
16135
+ locked?: boolean;
15442
16136
  notes?: string | null;
15443
- overtime?: number;
15444
- undertime?: number;
16137
+ status?: string;
16138
+ submitted_at?: string | null;
15445
16139
  updated_at?: string;
16140
+ week_start?: string;
15446
16141
  };
15447
16142
  Relationships: [
15448
16143
  {
15449
- foreignKeyName: "time_entries_employee_id_fkey";
16144
+ foreignKeyName: "time_log_week_approvals_employee_id_fkey";
15450
16145
  columns: ["employee_id"];
15451
16146
  isOneToOne: false;
15452
- referencedRelation: "monteurs";
16147
+ referencedRelation: "profiles";
15453
16148
  referencedColumns: ["id"];
15454
16149
  }
15455
16150
  ];
15456
16151
  };
15457
16152
  time_logs: {
15458
16153
  Row: {
16154
+ auto_stop_reason: string | null;
16155
+ auto_stopped: boolean;
15459
16156
  created_at: string;
16157
+ current_latitude: number | null;
16158
+ current_longitude: number | null;
16159
+ current_position_updated_at: string | null;
15460
16160
  employee_id: string;
16161
+ end_latitude: number | null;
16162
+ end_longitude: number | null;
15461
16163
  end_time: string | null;
16164
+ eta_distance_km: number | null;
16165
+ eta_minutes: number | null;
16166
+ eta_updated_at: string | null;
16167
+ hour_category: string | null;
15462
16168
  id: string;
16169
+ last_reminder_at: string | null;
15463
16170
  notes: string | null;
15464
16171
  overtime_hours: number;
15465
16172
  overtime_type: string | null;
15466
16173
  regular_hours: number;
16174
+ reminder_count: number;
16175
+ requires_review: boolean;
16176
+ start_latitude: number | null;
16177
+ start_longitude: number | null;
15467
16178
  start_time: string;
15468
16179
  travel_cost: number | null;
15469
16180
  travel_distance_km: number | null;
16181
+ travel_duration_min: number | null;
16182
+ travel_time_minutes: number | null;
15470
16183
  type: string;
15471
16184
  updated_at: string;
16185
+ work_order_id: string | null;
15472
16186
  };
15473
16187
  Insert: {
16188
+ auto_stop_reason?: string | null;
16189
+ auto_stopped?: boolean;
15474
16190
  created_at?: string;
16191
+ current_latitude?: number | null;
16192
+ current_longitude?: number | null;
16193
+ current_position_updated_at?: string | null;
15475
16194
  employee_id: string;
16195
+ end_latitude?: number | null;
16196
+ end_longitude?: number | null;
15476
16197
  end_time?: string | null;
16198
+ eta_distance_km?: number | null;
16199
+ eta_minutes?: number | null;
16200
+ eta_updated_at?: string | null;
16201
+ hour_category?: string | null;
15477
16202
  id?: string;
16203
+ last_reminder_at?: string | null;
15478
16204
  notes?: string | null;
15479
16205
  overtime_hours?: number;
15480
16206
  overtime_type?: string | null;
15481
16207
  regular_hours?: number;
16208
+ reminder_count?: number;
16209
+ requires_review?: boolean;
16210
+ start_latitude?: number | null;
16211
+ start_longitude?: number | null;
15482
16212
  start_time?: string;
15483
16213
  travel_cost?: number | null;
15484
16214
  travel_distance_km?: number | null;
16215
+ travel_duration_min?: number | null;
16216
+ travel_time_minutes?: number | null;
15485
16217
  type: string;
15486
16218
  updated_at?: string;
16219
+ work_order_id?: string | null;
15487
16220
  };
15488
16221
  Update: {
16222
+ auto_stop_reason?: string | null;
16223
+ auto_stopped?: boolean;
15489
16224
  created_at?: string;
16225
+ current_latitude?: number | null;
16226
+ current_longitude?: number | null;
16227
+ current_position_updated_at?: string | null;
15490
16228
  employee_id?: string;
16229
+ end_latitude?: number | null;
16230
+ end_longitude?: number | null;
15491
16231
  end_time?: string | null;
16232
+ eta_distance_km?: number | null;
16233
+ eta_minutes?: number | null;
16234
+ eta_updated_at?: string | null;
16235
+ hour_category?: string | null;
15492
16236
  id?: string;
16237
+ last_reminder_at?: string | null;
15493
16238
  notes?: string | null;
15494
16239
  overtime_hours?: number;
15495
16240
  overtime_type?: string | null;
15496
16241
  regular_hours?: number;
16242
+ reminder_count?: number;
16243
+ requires_review?: boolean;
16244
+ start_latitude?: number | null;
16245
+ start_longitude?: number | null;
15497
16246
  start_time?: string;
15498
16247
  travel_cost?: number | null;
15499
16248
  travel_distance_km?: number | null;
16249
+ travel_duration_min?: number | null;
16250
+ travel_time_minutes?: number | null;
15500
16251
  type?: string;
15501
16252
  updated_at?: string;
16253
+ work_order_id?: string | null;
15502
16254
  };
15503
16255
  Relationships: [
15504
16256
  {
15505
16257
  foreignKeyName: "time_logs_employee_id_fkey";
15506
16258
  columns: ["employee_id"];
15507
16259
  isOneToOne: false;
15508
- referencedRelation: "monteurs";
16260
+ referencedRelation: "profiles";
16261
+ referencedColumns: ["id"];
16262
+ },
16263
+ {
16264
+ foreignKeyName: "time_logs_work_order_id_fkey";
16265
+ columns: ["work_order_id"];
16266
+ isOneToOne: false;
16267
+ referencedRelation: "work_orders";
15509
16268
  referencedColumns: ["id"];
15510
16269
  }
15511
16270
  ];
@@ -15546,7 +16305,7 @@ export type Database = {
15546
16305
  foreignKeyName: "time_off_entries_employee_id_fkey";
15547
16306
  columns: ["employee_id"];
15548
16307
  isOneToOne: false;
15549
- referencedRelation: "monteurs";
16308
+ referencedRelation: "profiles";
15550
16309
  referencedColumns: ["id"];
15551
16310
  }
15552
16311
  ];
@@ -15859,6 +16618,39 @@ export type Database = {
15859
16618
  };
15860
16619
  Relationships: [];
15861
16620
  };
16621
+ twinfield_cron_locks: {
16622
+ Row: {
16623
+ created_at: string;
16624
+ heartbeat_at: string;
16625
+ job_name: string;
16626
+ last_error: string | null;
16627
+ last_finished_at: string | null;
16628
+ locked_at: string;
16629
+ run_id: string;
16630
+ updated_at: string;
16631
+ };
16632
+ Insert: {
16633
+ created_at?: string;
16634
+ heartbeat_at?: string;
16635
+ job_name: string;
16636
+ last_error?: string | null;
16637
+ last_finished_at?: string | null;
16638
+ locked_at?: string;
16639
+ run_id?: string;
16640
+ updated_at?: string;
16641
+ };
16642
+ Update: {
16643
+ created_at?: string;
16644
+ heartbeat_at?: string;
16645
+ job_name?: string;
16646
+ last_error?: string | null;
16647
+ last_finished_at?: string | null;
16648
+ locked_at?: string;
16649
+ run_id?: string;
16650
+ updated_at?: string;
16651
+ };
16652
+ Relationships: [];
16653
+ };
15862
16654
  twinfield_customers: {
15863
16655
  Row: {
15864
16656
  address: string | null;
@@ -16469,6 +17261,7 @@ export type Database = {
16469
17261
  twinfield_push_queue: {
16470
17262
  Row: {
16471
17263
  action: string;
17264
+ attempt_started_at: string | null;
16472
17265
  attempts: number;
16473
17266
  connection_id: string | null;
16474
17267
  created_at: string;
@@ -16485,6 +17278,7 @@ export type Database = {
16485
17278
  };
16486
17279
  Insert: {
16487
17280
  action?: string;
17281
+ attempt_started_at?: string | null;
16488
17282
  attempts?: number;
16489
17283
  connection_id?: string | null;
16490
17284
  created_at?: string;
@@ -16501,6 +17295,7 @@ export type Database = {
16501
17295
  };
16502
17296
  Update: {
16503
17297
  action?: string;
17298
+ attempt_started_at?: string | null;
16504
17299
  attempts?: number;
16505
17300
  connection_id?: string | null;
16506
17301
  created_at?: string;
@@ -16703,15 +17498,7 @@ export type Database = {
16703
17498
  workday_end?: string | null;
16704
17499
  workday_start?: string | null;
16705
17500
  };
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
- ];
17501
+ Relationships: [];
16715
17502
  };
16716
17503
  uren_entries: {
16717
17504
  Row: {
@@ -16757,13 +17544,6 @@ export type Database = {
16757
17544
  werkbon_id?: string | null;
16758
17545
  };
16759
17546
  Relationships: [
16760
- {
16761
- foreignKeyName: "uren_entries_monteur_id_fkey";
16762
- columns: ["monteur_id"];
16763
- isOneToOne: false;
16764
- referencedRelation: "monteurs";
16765
- referencedColumns: ["id"];
16766
- },
16767
17547
  {
16768
17548
  foreignKeyName: "uren_entries_werkbon_id_fkey";
16769
17549
  columns: ["werkbon_id"];
@@ -17245,15 +18025,7 @@ export type Database = {
17245
18025
  submitted_at?: string | null;
17246
18026
  updated_at?: string;
17247
18027
  };
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
- ];
18028
+ Relationships: [];
17257
18029
  };
17258
18030
  user_module_permissions: {
17259
18031
  Row: {
@@ -17314,6 +18086,53 @@ export type Database = {
17314
18086
  }
17315
18087
  ];
17316
18088
  };
18089
+ van_inventories: {
18090
+ Row: {
18091
+ barcode: string | null;
18092
+ created_at: string;
18093
+ id: string;
18094
+ monteur_id: string | null;
18095
+ price_per_unit: number;
18096
+ product_name: string;
18097
+ quantity_current: number;
18098
+ quantity_min: number;
18099
+ unit: string;
18100
+ updated_at: string;
18101
+ };
18102
+ Insert: {
18103
+ barcode?: string | null;
18104
+ created_at?: string;
18105
+ id?: string;
18106
+ monteur_id?: string | null;
18107
+ price_per_unit?: number;
18108
+ product_name: string;
18109
+ quantity_current?: number;
18110
+ quantity_min?: number;
18111
+ unit?: string;
18112
+ updated_at?: string;
18113
+ };
18114
+ Update: {
18115
+ barcode?: string | null;
18116
+ created_at?: string;
18117
+ id?: string;
18118
+ monteur_id?: string | null;
18119
+ price_per_unit?: number;
18120
+ product_name?: string;
18121
+ quantity_current?: number;
18122
+ quantity_min?: number;
18123
+ unit?: string;
18124
+ updated_at?: string;
18125
+ };
18126
+ Relationships: [
18127
+ {
18128
+ foreignKeyName: "van_inventories_monteur_id_fkey";
18129
+ columns: ["monteur_id"];
18130
+ isOneToOne: false;
18131
+ referencedRelation: "profiles";
18132
+ referencedColumns: ["id"];
18133
+ }
18134
+ ];
18135
+ };
17317
18136
  voorraad_custom_fields: {
17318
18137
  Row: {
17319
18138
  created_at: string;
@@ -18287,7 +19106,7 @@ export type Database = {
18287
19106
  foreignKeyName: "work_order_monteurs_monteur_id_fkey";
18288
19107
  columns: ["monteur_id"];
18289
19108
  isOneToOne: false;
18290
- referencedRelation: "monteurs";
19109
+ referencedRelation: "profiles";
18291
19110
  referencedColumns: ["id"];
18292
19111
  },
18293
19112
  {
@@ -18299,6 +19118,63 @@ export type Database = {
18299
19118
  }
18300
19119
  ];
18301
19120
  };
19121
+ work_order_photos: {
19122
+ Row: {
19123
+ ai_caption: string | null;
19124
+ ai_categorized_at: string | null;
19125
+ ai_labels: Json | null;
19126
+ caption: string | null;
19127
+ created_at: string;
19128
+ id: string;
19129
+ monteur_id: string | null;
19130
+ photo_type: string;
19131
+ storage_path: string;
19132
+ updated_at: string;
19133
+ work_order_id: string;
19134
+ };
19135
+ Insert: {
19136
+ ai_caption?: string | null;
19137
+ ai_categorized_at?: string | null;
19138
+ ai_labels?: Json | null;
19139
+ caption?: string | null;
19140
+ created_at?: string;
19141
+ id?: string;
19142
+ monteur_id?: string | null;
19143
+ photo_type?: string;
19144
+ storage_path: string;
19145
+ updated_at?: string;
19146
+ work_order_id: string;
19147
+ };
19148
+ Update: {
19149
+ ai_caption?: string | null;
19150
+ ai_categorized_at?: string | null;
19151
+ ai_labels?: Json | null;
19152
+ caption?: string | null;
19153
+ created_at?: string;
19154
+ id?: string;
19155
+ monteur_id?: string | null;
19156
+ photo_type?: string;
19157
+ storage_path?: string;
19158
+ updated_at?: string;
19159
+ work_order_id?: string;
19160
+ };
19161
+ Relationships: [
19162
+ {
19163
+ foreignKeyName: "work_order_photos_monteur_id_fkey";
19164
+ columns: ["monteur_id"];
19165
+ isOneToOne: false;
19166
+ referencedRelation: "profiles";
19167
+ referencedColumns: ["id"];
19168
+ },
19169
+ {
19170
+ foreignKeyName: "work_order_photos_work_order_id_fkey";
19171
+ columns: ["work_order_id"];
19172
+ isOneToOne: false;
19173
+ referencedRelation: "work_orders";
19174
+ referencedColumns: ["id"];
19175
+ }
19176
+ ];
19177
+ };
18302
19178
  work_orders: {
18303
19179
  Row: {
18304
19180
  assigned_to: string | null;
@@ -18330,7 +19206,6 @@ export type Database = {
18330
19206
  scheduled_end_time: string | null;
18331
19207
  scheduled_start_time: string | null;
18332
19208
  status: string;
18333
- tenant_id: string;
18334
19209
  total_hours_worked: number | null;
18335
19210
  total_price: number | null;
18336
19211
  travel_time_minutes: number | null;
@@ -18368,7 +19243,6 @@ export type Database = {
18368
19243
  scheduled_end_time?: string | null;
18369
19244
  scheduled_start_time?: string | null;
18370
19245
  status?: string;
18371
- tenant_id: string;
18372
19246
  total_hours_worked?: number | null;
18373
19247
  total_price?: number | null;
18374
19248
  travel_time_minutes?: number | null;
@@ -18406,7 +19280,6 @@ export type Database = {
18406
19280
  scheduled_end_time?: string | null;
18407
19281
  scheduled_start_time?: string | null;
18408
19282
  status?: string;
18409
- tenant_id?: string;
18410
19283
  total_hours_worked?: number | null;
18411
19284
  total_price?: number | null;
18412
19285
  travel_time_minutes?: number | null;
@@ -18421,13 +19294,6 @@ export type Database = {
18421
19294
  isOneToOne: false;
18422
19295
  referencedRelation: "work_orders";
18423
19296
  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
19297
  }
18432
19298
  ];
18433
19299
  };
@@ -19125,6 +19991,19 @@ export type Database = {
19125
19991
  };
19126
19992
  Returns: undefined;
19127
19993
  };
19994
+ approve_mailbox_order_proposal: {
19995
+ Args: {
19996
+ p_custom_fields: Json;
19997
+ p_customer_id: string;
19998
+ p_delivery_date: string;
19999
+ p_field_values?: Json;
20000
+ p_lines: Json;
20001
+ p_notes: string;
20002
+ p_proposal_id: string;
20003
+ p_reviewed_by: string;
20004
+ };
20005
+ Returns: Json;
20006
+ };
19128
20007
  assign_cart_numbers: {
19129
20008
  Args: {
19130
20009
  p_carts: Json;
@@ -19176,6 +20055,10 @@ export type Database = {
19176
20055
  };
19177
20056
  Returns: number;
19178
20057
  };
20058
+ can_manage_hours: {
20059
+ Args: never;
20060
+ Returns: boolean;
20061
+ };
19179
20062
  check_offer_product_available_stock: {
19180
20063
  Args: {
19181
20064
  p_campaign_product_id: string;
@@ -19365,6 +20248,7 @@ export type Database = {
19365
20248
  };
19366
20249
  Returns: {
19367
20250
  action: string;
20251
+ attempt_started_at: string | null;
19368
20252
  attempts: number;
19369
20253
  connection_id: string | null;
19370
20254
  created_at: string;
@@ -19452,6 +20336,30 @@ export type Database = {
19452
20336
  agent_naam: string;
19453
20337
  }[];
19454
20338
  };
20339
+ consume_van_inventory: {
20340
+ Args: {
20341
+ p_inventory_id: string;
20342
+ p_quantity: number;
20343
+ };
20344
+ Returns: {
20345
+ barcode: string | null;
20346
+ created_at: string;
20347
+ id: string;
20348
+ monteur_id: string | null;
20349
+ price_per_unit: number;
20350
+ product_name: string;
20351
+ quantity_current: number;
20352
+ quantity_min: number;
20353
+ unit: string;
20354
+ updated_at: string;
20355
+ };
20356
+ SetofOptions: {
20357
+ from: "*";
20358
+ to: "van_inventories";
20359
+ isOneToOne: true;
20360
+ isSetofReturn: false;
20361
+ };
20362
+ };
19455
20363
  control_get_todays_carts: {
19456
20364
  Args: never;
19457
20365
  Returns: {
@@ -19527,7 +20435,7 @@ export type Database = {
19527
20435
  Returns: string;
19528
20436
  } | {
19529
20437
  Args: {
19530
- _feature_id?: string;
20438
+ _feature_id: string;
19531
20439
  _module_id: string;
19532
20440
  _user_id: string;
19533
20441
  };
@@ -19578,6 +20486,13 @@ export type Database = {
19578
20486
  };
19579
20487
  Returns: string;
19580
20488
  };
20489
+ employee_day_hours: {
20490
+ Args: {
20491
+ _day: string;
20492
+ _employee_id: string;
20493
+ };
20494
+ Returns: number;
20495
+ };
19581
20496
  enqueue_cart_replan_if_unlocked: {
19582
20497
  Args: {
19583
20498
  p_order_id: string;
@@ -19883,12 +20798,6 @@ export type Database = {
19883
20798
  Args: never;
19884
20799
  Returns: string;
19885
20800
  };
19886
- get_work_order_tenant_id: {
19887
- Args: {
19888
- wo_id: string;
19889
- };
19890
- Returns: string;
19891
- };
19892
20801
  has_module_permission: {
19893
20802
  Args: {
19894
20803
  _min: string;
@@ -19922,6 +20831,13 @@ export type Database = {
19922
20831
  };
19923
20832
  Returns: boolean;
19924
20833
  };
20834
+ is_time_log_week_locked: {
20835
+ Args: {
20836
+ p_employee_id: string;
20837
+ p_start_time: string;
20838
+ };
20839
+ Returns: boolean;
20840
+ };
19925
20841
  is_user_admin: {
19926
20842
  Args: never;
19927
20843
  Returns: boolean;
@@ -19930,19 +20846,43 @@ export type Database = {
19930
20846
  Args: never;
19931
20847
  Returns: boolean;
19932
20848
  };
20849
+ itk_offerte_naar_werkbon: {
20850
+ Args: {
20851
+ _offerte_id: string;
20852
+ };
20853
+ Returns: string;
20854
+ };
20855
+ itk_offerte_restant_mandaat: {
20856
+ Args: {
20857
+ _exclude_offerte_id?: string;
20858
+ _werkbon_id: string;
20859
+ };
20860
+ Returns: number;
20861
+ };
19933
20862
  jwt_has_role: {
19934
20863
  Args: {
19935
20864
  _role: Database["public"]["Enums"]["app_role"];
19936
20865
  };
19937
20866
  Returns: boolean;
19938
20867
  };
19939
- list_monteurs: {
20868
+ list_medewerkers: {
19940
20869
  Args: never;
19941
20870
  Returns: {
19942
20871
  avatar_url: string;
20872
+ color: string;
19943
20873
  display_name: string;
19944
20874
  email: string;
20875
+ hours_fri: number;
20876
+ hours_mon: number;
20877
+ hours_thu: number;
20878
+ hours_tue: number;
20879
+ hours_wed: number;
19945
20880
  id: string;
20881
+ is_active: boolean;
20882
+ leave_balance_hours: number;
20883
+ persnr: string;
20884
+ phone: string;
20885
+ roles: string[];
19946
20886
  }[];
19947
20887
  };
19948
20888
  list_my_planning_items: {
@@ -20268,17 +21208,6 @@ export type Database = {
20268
21208
  Returns: string;
20269
21209
  };
20270
21210
  logistics_emit_event: {
20271
- Args: {
20272
- p_event_type: string;
20273
- p_idempotency_key?: string;
20274
- p_order_ref: string;
20275
- p_payload?: Json;
20276
- p_shadow?: boolean;
20277
- p_source_module: string;
20278
- p_strategy_id?: string;
20279
- };
20280
- Returns: Json;
20281
- } | {
20282
21211
  Args: {
20283
21212
  p_event_type: string;
20284
21213
  p_idempotency_key?: string;
@@ -21123,6 +22052,37 @@ export type Database = {
21123
22052
  };
21124
22053
  Returns: undefined;
21125
22054
  };
22055
+ quote_create_from_source: {
22056
+ Args: {
22057
+ _payload?: Json;
22058
+ _source_id: string;
22059
+ _source_type: string;
22060
+ };
22061
+ Returns: string;
22062
+ };
22063
+ quote_get_billable_lines: {
22064
+ Args: {
22065
+ _quotation_id: string;
22066
+ };
22067
+ Returns: Json;
22068
+ };
22069
+ quote_get_summary: {
22070
+ Args: {
22071
+ _quotation_id: string;
22072
+ };
22073
+ Returns: Json;
22074
+ };
22075
+ quote_list_packages: {
22076
+ Args: never;
22077
+ Returns: Json;
22078
+ };
22079
+ quote_list_sources: {
22080
+ Args: {
22081
+ _limit?: number;
22082
+ _source_type?: string;
22083
+ };
22084
+ Returns: Json;
22085
+ };
21126
22086
  recompute_all_reserved_stock: {
21127
22087
  Args: never;
21128
22088
  Returns: undefined;
@@ -21614,6 +22574,16 @@ export type Database = {
21614
22574
  };
21615
22575
  Returns: string[];
21616
22576
  };
22577
+ switch_time_log: {
22578
+ Args: {
22579
+ p_employee_id: string;
22580
+ p_start_lat?: number;
22581
+ p_start_lng?: number;
22582
+ p_type: string;
22583
+ p_work_order_id?: string;
22584
+ };
22585
+ Returns: Json;
22586
+ };
21617
22587
  sync_all_layer_stocks: {
21618
22588
  Args: never;
21619
22589
  Returns: undefined;
@@ -21648,6 +22618,12 @@ export type Database = {
21648
22618
  };
21649
22619
  Returns: undefined;
21650
22620
  };
22621
+ sync_sick_time_off: {
22622
+ Args: {
22623
+ _period_id: string;
22624
+ };
22625
+ Returns: number;
22626
+ };
21651
22627
  trade_item_stock_duplicates: {
21652
22628
  Args: never;
21653
22629
  Returns: {
@@ -21664,6 +22640,24 @@ export type Database = {
21664
22640
  };
21665
22641
  Returns: boolean;
21666
22642
  };
22643
+ twinfield_cron_lock_acquire: {
22644
+ Args: {
22645
+ _job_name: string;
22646
+ _stale_seconds?: number;
22647
+ };
22648
+ Returns: boolean;
22649
+ };
22650
+ twinfield_cron_lock_release: {
22651
+ Args: {
22652
+ _error?: string;
22653
+ _job_name: string;
22654
+ };
22655
+ Returns: undefined;
22656
+ };
22657
+ twinfield_prune_push_queue: {
22658
+ Args: never;
22659
+ Returns: number;
22660
+ };
21667
22661
  twinfield_register_cron: {
21668
22662
  Args: {
21669
22663
  apikey?: string;
@@ -21707,7 +22701,7 @@ export type Database = {
21707
22701
  Enums: {
21708
22702
  ai_import_status: "nieuw" | "verwerken" | "bevestigen" | "klaar" | "mislukt";
21709
22703
  app_role: "admin" | "planner" | "monteur" | "administratie" | "ai_admin" | "manager" | "warehouse" | "sales" | "developer" | "receptie";
21710
- doc_layout_type: "pakbon" | "factuur" | "offerte" | "orderbevestiging" | "etiket" | "verzendlabel" | "productlabel" | "barcode_label" | "magazijnlijst" | "controlelijst" | "transportdocument" | "vrij" | "sticker" | "productiebon";
22704
+ doc_layout_type: "pakbon" | "factuur" | "offerte" | "orderbevestiging" | "etiket" | "verzendlabel" | "productlabel" | "barcode_label" | "magazijnlijst" | "controlelijst" | "transportdocument" | "vrij" | "sticker" | "productiebon" | "veilingbon" | "afleverbrief" | "veilingbrief";
21711
22705
  doc_orientation: "portrait" | "landscape";
21712
22706
  exact_env: "staging" | "live";
21713
22707
  exact_push_status: "pending" | "sent" | "error";
@@ -21778,7 +22772,7 @@ export declare const Constants: {
21778
22772
  readonly Enums: {
21779
22773
  readonly ai_import_status: readonly ["nieuw", "verwerken", "bevestigen", "klaar", "mislukt"];
21780
22774
  readonly app_role: readonly ["admin", "planner", "monteur", "administratie", "ai_admin", "manager", "warehouse", "sales", "developer", "receptie"];
21781
- readonly doc_layout_type: readonly ["pakbon", "factuur", "offerte", "orderbevestiging", "etiket", "verzendlabel", "productlabel", "barcode_label", "magazijnlijst", "controlelijst", "transportdocument", "vrij", "sticker", "productiebon"];
22775
+ readonly doc_layout_type: readonly ["pakbon", "factuur", "offerte", "orderbevestiging", "etiket", "verzendlabel", "productlabel", "barcode_label", "magazijnlijst", "controlelijst", "transportdocument", "vrij", "sticker", "productiebon", "veilingbon", "afleverbrief", "veilingbrief"];
21782
22776
  readonly doc_orientation: readonly ["portrait", "landscape"];
21783
22777
  readonly exact_env: readonly ["staging", "live"];
21784
22778
  readonly exact_push_status: readonly ["pending", "sent", "error"];