@flowselections/floriday-klanten-module 1.0.16 → 1.0.17

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 (42) hide show
  1. package/dist-lib/components/klanten/FloridayDeeplinkButton.d.ts.map +1 -1
  2. package/dist-lib/components/klanten/FloridayDeeplinkButton.js +2 -2
  3. package/dist-lib/components/klanten/KlantenOverzicht.js +3 -3
  4. package/dist-lib/integrations/supabase/auth-middleware.d.ts +886 -54
  5. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  6. package/dist-lib/integrations/supabase/client.d.ts +886 -54
  7. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  8. package/dist-lib/integrations/supabase/client.server.d.ts +886 -54
  9. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  10. package/dist-lib/integrations/supabase/types.d.ts +904 -45
  11. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  12. package/dist-lib/integrations/supabase/types.js +3 -9
  13. package/dist-lib/lib/accounting/twinfield/mapping.d.ts.map +1 -1
  14. package/dist-lib/lib/accounting/twinfield/mapping.js +14 -2
  15. package/dist-lib/lib/accounting/twinfield/worker.functions.d.ts +2538 -42
  16. package/dist-lib/lib/accounting/twinfield/worker.functions.d.ts.map +1 -1
  17. package/dist-lib/lib/accounting.functions.d.ts +2538 -42
  18. package/dist-lib/lib/accounting.functions.d.ts.map +1 -1
  19. package/dist-lib/lib/customer-analytics.functions.d.ts +886 -54
  20. package/dist-lib/lib/customer-analytics.functions.d.ts.map +1 -1
  21. package/dist-lib/lib/customers.functions.d.ts +7614 -126
  22. package/dist-lib/lib/customers.functions.d.ts.map +1 -1
  23. package/dist-lib/lib/delivery-locations.functions.d.ts +3384 -56
  24. package/dist-lib/lib/delivery-locations.functions.d.ts.map +1 -1
  25. package/dist-lib/lib/external-customers.functions.d.ts +3384 -56
  26. package/dist-lib/lib/external-customers.functions.d.ts.map +1 -1
  27. package/dist-lib/lib/floriday-assortment.functions.d.ts +886 -54
  28. package/dist-lib/lib/floriday-assortment.functions.d.ts.map +1 -1
  29. package/dist-lib/lib/floriday-discounts.functions.d.ts +1834 -170
  30. package/dist-lib/lib/floriday-discounts.functions.d.ts.map +1 -1
  31. package/dist-lib/lib/floriday-trade-items.functions.d.ts +886 -54
  32. package/dist-lib/lib/floriday-trade-items.functions.d.ts.map +1 -1
  33. package/dist-lib/lib/local-discounts.functions.d.ts +5922 -98
  34. package/dist-lib/lib/local-discounts.functions.d.ts.map +1 -1
  35. package/dist-lib/lib/overdue-invoices.functions.d.ts +886 -54
  36. package/dist-lib/lib/overdue-invoices.functions.d.ts.map +1 -1
  37. package/dist-lib/lib/price-groups-local.functions.d.ts +5922 -98
  38. package/dist-lib/lib/price-groups-local.functions.d.ts.map +1 -1
  39. package/dist-lib/lib/price-groups.functions.d.ts +886 -54
  40. package/dist-lib/lib/price-groups.functions.d.ts.map +1 -1
  41. package/package.json +3 -2
  42. package/public/flowselections-assets/Klanten/floriday-logo.png +0 -0
@@ -277,6 +277,57 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
277
277
  referencedColumns: ["id"];
278
278
  }];
279
279
  };
280
+ ai_call_log: {
281
+ Row: {
282
+ consumer_module_id: string;
283
+ cost_usd: number | null;
284
+ created_at: string;
285
+ created_by: string | null;
286
+ duration_ms: number | null;
287
+ error_code: string | null;
288
+ error_message: string | null;
289
+ id: string;
290
+ input_tokens: number;
291
+ model_slug: string | null;
292
+ output_tokens: number;
293
+ provider_slug: string | null;
294
+ status: string;
295
+ total_tokens: number;
296
+ };
297
+ Insert: {
298
+ consumer_module_id: string;
299
+ cost_usd?: number | null;
300
+ created_at?: string;
301
+ created_by?: string | null;
302
+ duration_ms?: number | null;
303
+ error_code?: string | null;
304
+ error_message?: string | null;
305
+ id?: string;
306
+ input_tokens?: number;
307
+ model_slug?: string | null;
308
+ output_tokens?: number;
309
+ provider_slug?: string | null;
310
+ status: string;
311
+ total_tokens?: number;
312
+ };
313
+ Update: {
314
+ consumer_module_id?: string;
315
+ cost_usd?: number | null;
316
+ created_at?: string;
317
+ created_by?: string | null;
318
+ duration_ms?: number | null;
319
+ error_code?: string | null;
320
+ error_message?: string | null;
321
+ id?: string;
322
+ input_tokens?: number;
323
+ model_slug?: string | null;
324
+ output_tokens?: number;
325
+ provider_slug?: string | null;
326
+ status?: string;
327
+ total_tokens?: number;
328
+ };
329
+ Relationships: [];
330
+ };
280
331
  ai_credentials: {
281
332
  Row: {
282
333
  active: boolean;
@@ -313,6 +364,36 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
313
364
  referencedColumns: ["id"];
314
365
  }];
315
366
  };
367
+ ai_goals: {
368
+ Row: {
369
+ active: boolean;
370
+ created_at: string;
371
+ description: string | null;
372
+ key: string;
373
+ label: string;
374
+ sort_order: number;
375
+ updated_at: string;
376
+ };
377
+ Insert: {
378
+ active?: boolean;
379
+ created_at?: string;
380
+ description?: string | null;
381
+ key: string;
382
+ label: string;
383
+ sort_order?: number;
384
+ updated_at?: string;
385
+ };
386
+ Update: {
387
+ active?: boolean;
388
+ created_at?: string;
389
+ description?: string | null;
390
+ key?: string;
391
+ label?: string;
392
+ sort_order?: number;
393
+ updated_at?: string;
394
+ };
395
+ Relationships: [];
396
+ };
316
397
  ai_model_pricing: {
317
398
  Row: {
318
399
  created_at: string;
@@ -1099,6 +1180,141 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
1099
1180
  };
1100
1181
  Relationships: [];
1101
1182
  };
1183
+ cart_planning_pick_times: {
1184
+ Row: {
1185
+ created_at: string;
1186
+ id: string;
1187
+ pot_size: string;
1188
+ seconds_per_cart: number;
1189
+ updated_at: string;
1190
+ };
1191
+ Insert: {
1192
+ created_at?: string;
1193
+ id?: string;
1194
+ pot_size: string;
1195
+ seconds_per_cart: number;
1196
+ updated_at?: string;
1197
+ };
1198
+ Update: {
1199
+ created_at?: string;
1200
+ id?: string;
1201
+ pot_size?: string;
1202
+ seconds_per_cart?: number;
1203
+ updated_at?: string;
1204
+ };
1205
+ Relationships: [];
1206
+ };
1207
+ cart_planning_product_overrides: {
1208
+ Row: {
1209
+ created_at: string;
1210
+ id: string;
1211
+ max_party_share_per_layer_pct_override: number | null;
1212
+ never_mix: boolean;
1213
+ notes: string | null;
1214
+ product_id: string;
1215
+ updated_at: string;
1216
+ };
1217
+ Insert: {
1218
+ created_at?: string;
1219
+ id?: string;
1220
+ max_party_share_per_layer_pct_override?: number | null;
1221
+ never_mix?: boolean;
1222
+ notes?: string | null;
1223
+ product_id: string;
1224
+ updated_at?: string;
1225
+ };
1226
+ Update: {
1227
+ created_at?: string;
1228
+ id?: string;
1229
+ max_party_share_per_layer_pct_override?: number | null;
1230
+ never_mix?: boolean;
1231
+ notes?: string | null;
1232
+ product_id?: string;
1233
+ updated_at?: string;
1234
+ };
1235
+ Relationships: [{
1236
+ foreignKeyName: "cart_planning_product_overrides_product_id_fkey";
1237
+ columns: ["product_id"];
1238
+ isOneToOne: true;
1239
+ referencedRelation: "products";
1240
+ referencedColumns: ["id"];
1241
+ }];
1242
+ };
1243
+ cart_planning_settings: {
1244
+ Row: {
1245
+ allow_editing_after_pickstation_send: boolean;
1246
+ buffer_grouping_mode: string;
1247
+ combine_floriday_orders: boolean;
1248
+ combine_floriday_orders_window: string;
1249
+ combine_orders_scope: string;
1250
+ default_workers: number;
1251
+ id: number;
1252
+ max_beladingen_per_layer: number;
1253
+ max_customers_per_cart: number;
1254
+ max_one_customer_per_layer: boolean;
1255
+ max_party_share_per_layer_pct: number;
1256
+ optimization_strategy: string;
1257
+ own_cart_from_layers: number;
1258
+ pick_time_mode: string;
1259
+ plants_per_day: number;
1260
+ plants_per_hour: number;
1261
+ require_same_carrier: boolean;
1262
+ require_same_crate_type: boolean;
1263
+ require_same_delivery_date: boolean;
1264
+ require_same_delivery_location: boolean;
1265
+ updated_at: string;
1266
+ updated_by: string | null;
1267
+ };
1268
+ Insert: {
1269
+ allow_editing_after_pickstation_send?: boolean;
1270
+ buffer_grouping_mode?: string;
1271
+ combine_floriday_orders?: boolean;
1272
+ combine_floriday_orders_window?: string;
1273
+ combine_orders_scope?: string;
1274
+ default_workers?: number;
1275
+ id?: number;
1276
+ max_beladingen_per_layer?: number;
1277
+ max_customers_per_cart?: number;
1278
+ max_one_customer_per_layer?: boolean;
1279
+ max_party_share_per_layer_pct?: number;
1280
+ optimization_strategy?: string;
1281
+ own_cart_from_layers?: number;
1282
+ pick_time_mode?: string;
1283
+ plants_per_day?: number;
1284
+ plants_per_hour?: number;
1285
+ require_same_carrier?: boolean;
1286
+ require_same_crate_type?: boolean;
1287
+ require_same_delivery_date?: boolean;
1288
+ require_same_delivery_location?: boolean;
1289
+ updated_at?: string;
1290
+ updated_by?: string | null;
1291
+ };
1292
+ Update: {
1293
+ allow_editing_after_pickstation_send?: boolean;
1294
+ buffer_grouping_mode?: string;
1295
+ combine_floriday_orders?: boolean;
1296
+ combine_floriday_orders_window?: string;
1297
+ combine_orders_scope?: string;
1298
+ default_workers?: number;
1299
+ id?: number;
1300
+ max_beladingen_per_layer?: number;
1301
+ max_customers_per_cart?: number;
1302
+ max_one_customer_per_layer?: boolean;
1303
+ max_party_share_per_layer_pct?: number;
1304
+ optimization_strategy?: string;
1305
+ own_cart_from_layers?: number;
1306
+ pick_time_mode?: string;
1307
+ plants_per_day?: number;
1308
+ plants_per_hour?: number;
1309
+ require_same_carrier?: boolean;
1310
+ require_same_crate_type?: boolean;
1311
+ require_same_delivery_date?: boolean;
1312
+ require_same_delivery_location?: boolean;
1313
+ updated_at?: string;
1314
+ updated_by?: string | null;
1315
+ };
1316
+ Relationships: [];
1317
+ };
1102
1318
  cart_replan_queue: {
1103
1319
  Row: {
1104
1320
  attempts: number;
@@ -1129,6 +1345,39 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
1129
1345
  referencedColumns: ["id"];
1130
1346
  }];
1131
1347
  };
1348
+ cart_types: {
1349
+ Row: {
1350
+ created_at: string;
1351
+ id: string;
1352
+ is_default: boolean;
1353
+ layer_length_cm: number;
1354
+ layer_width_cm: number;
1355
+ layers_per_cart: number;
1356
+ name: string;
1357
+ updated_at: string;
1358
+ };
1359
+ Insert: {
1360
+ created_at?: string;
1361
+ id?: string;
1362
+ is_default?: boolean;
1363
+ layer_length_cm: number;
1364
+ layer_width_cm: number;
1365
+ layers_per_cart?: number;
1366
+ name: string;
1367
+ updated_at?: string;
1368
+ };
1369
+ Update: {
1370
+ created_at?: string;
1371
+ id?: string;
1372
+ is_default?: boolean;
1373
+ layer_length_cm?: number;
1374
+ layer_width_cm?: number;
1375
+ layers_per_cart?: number;
1376
+ name?: string;
1377
+ updated_at?: string;
1378
+ };
1379
+ Relationships: [];
1380
+ };
1132
1381
  catalog_articles_cache: {
1133
1382
  Row: {
1134
1383
  created_at: string;
@@ -1216,6 +1465,36 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
1216
1465
  };
1217
1466
  Relationships: [];
1218
1467
  };
1468
+ crate_types: {
1469
+ Row: {
1470
+ created_at: string;
1471
+ id: string;
1472
+ length_cm: number;
1473
+ name: string;
1474
+ plants_per_crate: number;
1475
+ updated_at: string;
1476
+ width_cm: number;
1477
+ };
1478
+ Insert: {
1479
+ created_at?: string;
1480
+ id?: string;
1481
+ length_cm: number;
1482
+ name: string;
1483
+ plants_per_crate?: number;
1484
+ updated_at?: string;
1485
+ width_cm: number;
1486
+ };
1487
+ Update: {
1488
+ created_at?: string;
1489
+ id?: string;
1490
+ length_cm?: number;
1491
+ name?: string;
1492
+ plants_per_crate?: number;
1493
+ updated_at?: string;
1494
+ width_cm?: number;
1495
+ };
1496
+ Relationships: [];
1497
+ };
1219
1498
  customer_audit_log: {
1220
1499
  Row: {
1221
1500
  action: string;
@@ -5755,6 +6034,288 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
5755
6034
  };
5756
6035
  Relationships: [];
5757
6036
  };
6037
+ itk_contact_persons: {
6038
+ Row: {
6039
+ created_at: string;
6040
+ customer_id: string;
6041
+ email: string | null;
6042
+ id: string;
6043
+ name: string;
6044
+ phone: string | null;
6045
+ role: string | null;
6046
+ updated_at: string;
6047
+ };
6048
+ Insert: {
6049
+ created_at?: string;
6050
+ customer_id: string;
6051
+ email?: string | null;
6052
+ id?: string;
6053
+ name: string;
6054
+ phone?: string | null;
6055
+ role?: string | null;
6056
+ updated_at?: string;
6057
+ };
6058
+ Update: {
6059
+ created_at?: string;
6060
+ customer_id?: string;
6061
+ email?: string | null;
6062
+ id?: string;
6063
+ name?: string;
6064
+ phone?: string | null;
6065
+ role?: string | null;
6066
+ updated_at?: string;
6067
+ };
6068
+ Relationships: [{
6069
+ foreignKeyName: "itk_contact_persons_customer_id_fkey";
6070
+ columns: ["customer_id"];
6071
+ isOneToOne: false;
6072
+ referencedRelation: "itk_customers";
6073
+ referencedColumns: ["id"];
6074
+ }];
6075
+ };
6076
+ itk_customer_dynamic_values: {
6077
+ Row: {
6078
+ created_at: string;
6079
+ customer_id: string;
6080
+ field_id: string;
6081
+ id: string;
6082
+ updated_at: string;
6083
+ value: string | null;
6084
+ };
6085
+ Insert: {
6086
+ created_at?: string;
6087
+ customer_id: string;
6088
+ field_id: string;
6089
+ id?: string;
6090
+ updated_at?: string;
6091
+ value?: string | null;
6092
+ };
6093
+ Update: {
6094
+ created_at?: string;
6095
+ customer_id?: string;
6096
+ field_id?: string;
6097
+ id?: string;
6098
+ updated_at?: string;
6099
+ value?: string | null;
6100
+ };
6101
+ Relationships: [{
6102
+ foreignKeyName: "itk_customer_dynamic_values_customer_id_fkey";
6103
+ columns: ["customer_id"];
6104
+ isOneToOne: false;
6105
+ referencedRelation: "itk_customers";
6106
+ referencedColumns: ["id"];
6107
+ }, {
6108
+ foreignKeyName: "itk_customer_dynamic_values_field_id_fkey";
6109
+ columns: ["field_id"];
6110
+ isOneToOne: false;
6111
+ referencedRelation: "itk_dynamic_fields";
6112
+ referencedColumns: ["id"];
6113
+ }];
6114
+ };
6115
+ itk_customer_notes: {
6116
+ Row: {
6117
+ body: string;
6118
+ created_at: string;
6119
+ created_by: string | null;
6120
+ customer_id: string;
6121
+ id: string;
6122
+ note_type: string;
6123
+ updated_at: string;
6124
+ };
6125
+ Insert: {
6126
+ body: string;
6127
+ created_at?: string;
6128
+ created_by?: string | null;
6129
+ customer_id: string;
6130
+ id?: string;
6131
+ note_type?: string;
6132
+ updated_at?: string;
6133
+ };
6134
+ Update: {
6135
+ body?: string;
6136
+ created_at?: string;
6137
+ created_by?: string | null;
6138
+ customer_id?: string;
6139
+ id?: string;
6140
+ note_type?: string;
6141
+ updated_at?: string;
6142
+ };
6143
+ Relationships: [{
6144
+ foreignKeyName: "itk_customer_notes_customer_id_fkey";
6145
+ columns: ["customer_id"];
6146
+ isOneToOne: false;
6147
+ referencedRelation: "itk_customers";
6148
+ referencedColumns: ["id"];
6149
+ }];
6150
+ };
6151
+ itk_customers: {
6152
+ Row: {
6153
+ billing_city: string | null;
6154
+ billing_postcode: string | null;
6155
+ billing_street: string | null;
6156
+ created_at: string;
6157
+ general_email: string | null;
6158
+ general_phone: string | null;
6159
+ id: string;
6160
+ legacy_customer_id: string | null;
6161
+ name: string;
6162
+ segment: import("../../../integrations/supabase/types").Database["public"]["Enums"]["itk_customer_segment"];
6163
+ updated_at: string;
6164
+ };
6165
+ Insert: {
6166
+ billing_city?: string | null;
6167
+ billing_postcode?: string | null;
6168
+ billing_street?: string | null;
6169
+ created_at?: string;
6170
+ general_email?: string | null;
6171
+ general_phone?: string | null;
6172
+ id?: string;
6173
+ legacy_customer_id?: string | null;
6174
+ name: string;
6175
+ segment?: import("../../../integrations/supabase/types").Database["public"]["Enums"]["itk_customer_segment"];
6176
+ updated_at?: string;
6177
+ };
6178
+ Update: {
6179
+ billing_city?: string | null;
6180
+ billing_postcode?: string | null;
6181
+ billing_street?: string | null;
6182
+ created_at?: string;
6183
+ general_email?: string | null;
6184
+ general_phone?: string | null;
6185
+ id?: string;
6186
+ legacy_customer_id?: string | null;
6187
+ name?: string;
6188
+ segment?: import("../../../integrations/supabase/types").Database["public"]["Enums"]["itk_customer_segment"];
6189
+ updated_at?: string;
6190
+ };
6191
+ Relationships: [{
6192
+ foreignKeyName: "itk_customers_legacy_customer_id_fkey";
6193
+ columns: ["legacy_customer_id"];
6194
+ isOneToOne: false;
6195
+ referencedRelation: "customers";
6196
+ referencedColumns: ["id"];
6197
+ }];
6198
+ };
6199
+ itk_dynamic_fields: {
6200
+ Row: {
6201
+ created_at: string;
6202
+ field_name: string;
6203
+ field_type: import("../../../integrations/supabase/types").Database["public"]["Enums"]["itk_dynamic_field_type"];
6204
+ id: string;
6205
+ options: import("../../../integrations/supabase/types").Json;
6206
+ sort_order: number;
6207
+ updated_at: string;
6208
+ };
6209
+ Insert: {
6210
+ created_at?: string;
6211
+ field_name: string;
6212
+ field_type?: import("../../../integrations/supabase/types").Database["public"]["Enums"]["itk_dynamic_field_type"];
6213
+ id?: string;
6214
+ options?: import("../../../integrations/supabase/types").Json;
6215
+ sort_order?: number;
6216
+ updated_at?: string;
6217
+ };
6218
+ Update: {
6219
+ created_at?: string;
6220
+ field_name?: string;
6221
+ field_type?: import("../../../integrations/supabase/types").Database["public"]["Enums"]["itk_dynamic_field_type"];
6222
+ id?: string;
6223
+ options?: import("../../../integrations/supabase/types").Json;
6224
+ sort_order?: number;
6225
+ updated_at?: string;
6226
+ };
6227
+ Relationships: [];
6228
+ };
6229
+ itk_work_locations: {
6230
+ Row: {
6231
+ city: string | null;
6232
+ created_at: string;
6233
+ customer_id: string;
6234
+ id: string;
6235
+ instructions: string | null;
6236
+ label: string;
6237
+ latitude: number | null;
6238
+ longitude: number | null;
6239
+ postcode: string | null;
6240
+ street: string | null;
6241
+ updated_at: string;
6242
+ };
6243
+ Insert: {
6244
+ city?: string | null;
6245
+ created_at?: string;
6246
+ customer_id: string;
6247
+ id?: string;
6248
+ instructions?: string | null;
6249
+ label: string;
6250
+ latitude?: number | null;
6251
+ longitude?: number | null;
6252
+ postcode?: string | null;
6253
+ street?: string | null;
6254
+ updated_at?: string;
6255
+ };
6256
+ Update: {
6257
+ city?: string | null;
6258
+ created_at?: string;
6259
+ customer_id?: string;
6260
+ id?: string;
6261
+ instructions?: string | null;
6262
+ label?: string;
6263
+ latitude?: number | null;
6264
+ longitude?: number | null;
6265
+ postcode?: string | null;
6266
+ street?: string | null;
6267
+ updated_at?: string;
6268
+ };
6269
+ Relationships: [{
6270
+ foreignKeyName: "itk_work_locations_customer_id_fkey";
6271
+ columns: ["customer_id"];
6272
+ isOneToOne: false;
6273
+ referencedRelation: "itk_customers";
6274
+ referencedColumns: ["id"];
6275
+ }];
6276
+ };
6277
+ leave_requests: {
6278
+ Row: {
6279
+ created_at: string;
6280
+ end_date: string;
6281
+ id: string;
6282
+ reason: string | null;
6283
+ start_date: string;
6284
+ status: string;
6285
+ tenant_id: string;
6286
+ updated_at: string;
6287
+ user_id: string;
6288
+ };
6289
+ Insert: {
6290
+ created_at?: string;
6291
+ end_date: string;
6292
+ id?: string;
6293
+ reason?: string | null;
6294
+ start_date: string;
6295
+ status?: string;
6296
+ tenant_id?: string;
6297
+ updated_at?: string;
6298
+ user_id: string;
6299
+ };
6300
+ Update: {
6301
+ created_at?: string;
6302
+ end_date?: string;
6303
+ id?: string;
6304
+ reason?: string | null;
6305
+ start_date?: string;
6306
+ status?: string;
6307
+ tenant_id?: string;
6308
+ updated_at?: string;
6309
+ user_id?: string;
6310
+ };
6311
+ Relationships: [{
6312
+ foreignKeyName: "leave_requests_user_id_fkey";
6313
+ columns: ["user_id"];
6314
+ isOneToOne: false;
6315
+ referencedRelation: "monteurs";
6316
+ referencedColumns: ["id"];
6317
+ }];
6318
+ };
5758
6319
  local_customer_agreements: {
5759
6320
  Row: {
5760
6321
  base_price: number | null;
@@ -6406,6 +6967,33 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
6406
6967
  };
6407
6968
  Relationships: [];
6408
6969
  };
6970
+ module_permissions: {
6971
+ Row: {
6972
+ created_at: string;
6973
+ id: string;
6974
+ module_id: string;
6975
+ permission: string;
6976
+ role: import("../../../integrations/supabase/types").Database["public"]["Enums"]["app_role"];
6977
+ updated_at: string;
6978
+ };
6979
+ Insert: {
6980
+ created_at?: string;
6981
+ id?: string;
6982
+ module_id: string;
6983
+ permission: string;
6984
+ role: import("../../../integrations/supabase/types").Database["public"]["Enums"]["app_role"];
6985
+ updated_at?: string;
6986
+ };
6987
+ Update: {
6988
+ created_at?: string;
6989
+ id?: string;
6990
+ module_id?: string;
6991
+ permission?: string;
6992
+ role?: import("../../../integrations/supabase/types").Database["public"]["Enums"]["app_role"];
6993
+ updated_at?: string;
6994
+ };
6995
+ Relationships: [];
6996
+ };
6409
6997
  monteurs: {
6410
6998
  Row: {
6411
6999
  avatar_url: string | null;
@@ -7135,6 +7723,42 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
7135
7723
  };
7136
7724
  Relationships: [];
7137
7725
  };
7726
+ order_buffers: {
7727
+ Row: {
7728
+ buffer_key: string;
7729
+ created_at: string;
7730
+ customer_id: string | null;
7731
+ grouping_mode: string;
7732
+ id: string;
7733
+ pickup_date: string | null;
7734
+ pickup_location: string | null;
7735
+ plan_locked_at: string | null;
7736
+ updated_at: string;
7737
+ };
7738
+ Insert: {
7739
+ buffer_key: string;
7740
+ created_at?: string;
7741
+ customer_id?: string | null;
7742
+ grouping_mode: string;
7743
+ id?: string;
7744
+ pickup_date?: string | null;
7745
+ pickup_location?: string | null;
7746
+ plan_locked_at?: string | null;
7747
+ updated_at?: string;
7748
+ };
7749
+ Update: {
7750
+ buffer_key?: string;
7751
+ created_at?: string;
7752
+ customer_id?: string | null;
7753
+ grouping_mode?: string;
7754
+ id?: string;
7755
+ pickup_date?: string | null;
7756
+ pickup_location?: string | null;
7757
+ plan_locked_at?: string | null;
7758
+ updated_at?: string;
7759
+ };
7760
+ Relationships: [];
7761
+ };
7138
7762
  order_cart_items: {
7139
7763
  Row: {
7140
7764
  cart_id: string;
@@ -7201,6 +7825,7 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
7201
7825
  order_carts: {
7202
7826
  Row: {
7203
7827
  algorithm_version: number;
7828
+ buffer_id: string | null;
7204
7829
  cart_number: number;
7205
7830
  created_at: string;
7206
7831
  id: string;
@@ -7208,13 +7833,14 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
7208
7833
  is_complete: boolean;
7209
7834
  notes: string | null;
7210
7835
  occupancy_pct: number;
7211
- order_id: string;
7836
+ order_id: string | null;
7212
7837
  source: string;
7213
7838
  total_layers_used: number;
7214
7839
  updated_at: string;
7215
7840
  };
7216
7841
  Insert: {
7217
7842
  algorithm_version?: number;
7843
+ buffer_id?: string | null;
7218
7844
  cart_number: number;
7219
7845
  created_at?: string;
7220
7846
  id?: string;
@@ -7222,13 +7848,14 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
7222
7848
  is_complete?: boolean;
7223
7849
  notes?: string | null;
7224
7850
  occupancy_pct?: number;
7225
- order_id: string;
7851
+ order_id?: string | null;
7226
7852
  source?: string;
7227
7853
  total_layers_used?: number;
7228
7854
  updated_at?: string;
7229
7855
  };
7230
7856
  Update: {
7231
7857
  algorithm_version?: number;
7858
+ buffer_id?: string | null;
7232
7859
  cart_number?: number;
7233
7860
  created_at?: string;
7234
7861
  id?: string;
@@ -7236,12 +7863,18 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
7236
7863
  is_complete?: boolean;
7237
7864
  notes?: string | null;
7238
7865
  occupancy_pct?: number;
7239
- order_id?: string;
7866
+ order_id?: string | null;
7240
7867
  source?: string;
7241
7868
  total_layers_used?: number;
7242
7869
  updated_at?: string;
7243
7870
  };
7244
7871
  Relationships: [{
7872
+ foreignKeyName: "order_carts_buffer_id_fkey";
7873
+ columns: ["buffer_id"];
7874
+ isOneToOne: false;
7875
+ referencedRelation: "order_buffers";
7876
+ referencedColumns: ["id"];
7877
+ }, {
7245
7878
  foreignKeyName: "order_carts_order_id_fkey";
7246
7879
  columns: ["order_id"];
7247
7880
  isOneToOne: false;
@@ -7378,15 +8011,117 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
7378
8011
  };
7379
8012
  Relationships: [];
7380
8013
  };
8014
+ order_shipment_items: {
8015
+ Row: {
8016
+ created_at: string;
8017
+ id: string;
8018
+ order_item_id: string;
8019
+ product_id: string | null;
8020
+ product_name: string;
8021
+ quantity: number;
8022
+ shipment_id: string;
8023
+ updated_at: string;
8024
+ };
8025
+ Insert: {
8026
+ created_at?: string;
8027
+ id?: string;
8028
+ order_item_id: string;
8029
+ product_id?: string | null;
8030
+ product_name: string;
8031
+ quantity: number;
8032
+ shipment_id: string;
8033
+ updated_at?: string;
8034
+ };
8035
+ Update: {
8036
+ created_at?: string;
8037
+ id?: string;
8038
+ order_item_id?: string;
8039
+ product_id?: string | null;
8040
+ product_name?: string;
8041
+ quantity?: number;
8042
+ shipment_id?: string;
8043
+ updated_at?: string;
8044
+ };
8045
+ Relationships: [{
8046
+ foreignKeyName: "order_shipment_items_order_item_id_fkey";
8047
+ columns: ["order_item_id"];
8048
+ isOneToOne: false;
8049
+ referencedRelation: "order_items";
8050
+ referencedColumns: ["id"];
8051
+ }, {
8052
+ foreignKeyName: "order_shipment_items_shipment_id_fkey";
8053
+ columns: ["shipment_id"];
8054
+ isOneToOne: false;
8055
+ referencedRelation: "order_shipments";
8056
+ referencedColumns: ["id"];
8057
+ }];
8058
+ };
8059
+ order_shipments: {
8060
+ Row: {
8061
+ carrier_id: string | null;
8062
+ created_at: string;
8063
+ delivery_date: string | null;
8064
+ delivery_location_id: string | null;
8065
+ id: string;
8066
+ notes: string | null;
8067
+ order_id: string;
8068
+ shipment_number: number;
8069
+ shipped_at: string | null;
8070
+ status: string;
8071
+ updated_at: string;
8072
+ };
8073
+ Insert: {
8074
+ carrier_id?: string | null;
8075
+ created_at?: string;
8076
+ delivery_date?: string | null;
8077
+ delivery_location_id?: string | null;
8078
+ id?: string;
8079
+ notes?: string | null;
8080
+ order_id: string;
8081
+ shipment_number: number;
8082
+ shipped_at?: string | null;
8083
+ status?: string;
8084
+ updated_at?: string;
8085
+ };
8086
+ Update: {
8087
+ carrier_id?: string | null;
8088
+ created_at?: string;
8089
+ delivery_date?: string | null;
8090
+ delivery_location_id?: string | null;
8091
+ id?: string;
8092
+ notes?: string | null;
8093
+ order_id?: string;
8094
+ shipment_number?: number;
8095
+ shipped_at?: string | null;
8096
+ status?: string;
8097
+ updated_at?: string;
8098
+ };
8099
+ Relationships: [{
8100
+ foreignKeyName: "order_shipments_carrier_id_fkey";
8101
+ columns: ["carrier_id"];
8102
+ isOneToOne: false;
8103
+ referencedRelation: "carriers";
8104
+ referencedColumns: ["id"];
8105
+ }, {
8106
+ foreignKeyName: "order_shipments_order_id_fkey";
8107
+ columns: ["order_id"];
8108
+ isOneToOne: false;
8109
+ referencedRelation: "orders";
8110
+ referencedColumns: ["id"];
8111
+ }];
8112
+ };
7381
8113
  orders: {
7382
8114
  Row: {
8115
+ buffer_id: string | null;
7383
8116
  created_at: string;
7384
8117
  custom_fields: import("../../../integrations/supabase/types").Json;
7385
8118
  customer_id: string | null;
7386
8119
  customer_name: string;
7387
8120
  deleted_at: string | null;
7388
- delivery_date: string;
8121
+ delivery_date: string | null;
8122
+ floriday_sales_order_id: string | null;
7389
8123
  id: string;
8124
+ is_reservation: boolean;
7390
8125
  notes: string | null;
7391
8126
  order_date: string;
7392
8127
  order_number: string;
@@ -7398,13 +8133,16 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
7398
8133
  updated_at: string;
7399
8134
  };
7400
8135
  Insert: {
8136
+ buffer_id?: string | null;
7401
8137
  created_at?: string;
7402
8138
  custom_fields?: import("../../../integrations/supabase/types").Json;
7403
8139
  customer_id?: string | null;
7404
8140
  customer_name?: string;
7405
8141
  deleted_at?: string | null;
7406
- delivery_date: string;
8142
+ delivery_date?: string | null;
8143
+ floriday_sales_order_id?: string | null;
7407
8144
  id?: string;
8145
+ is_reservation?: boolean;
7408
8146
  notes?: string | null;
7409
8147
  order_date?: string;
7410
8148
  order_number: string;
@@ -7416,13 +8154,16 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
7416
8154
  updated_at?: string;
7417
8155
  };
7418
8156
  Update: {
8157
+ buffer_id?: string | null;
7419
8158
  created_at?: string;
7420
8159
  custom_fields?: import("../../../integrations/supabase/types").Json;
7421
8160
  customer_id?: string | null;
7422
8161
  customer_name?: string;
7423
8162
  deleted_at?: string | null;
7424
- delivery_date?: string;
8163
+ delivery_date?: string | null;
8164
+ floriday_sales_order_id?: string | null;
7425
8165
  id?: string;
8166
+ is_reservation?: boolean;
7426
8167
  notes?: string | null;
7427
8168
  order_date?: string;
7428
8169
  order_number?: string;
@@ -7434,6 +8175,12 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
7434
8175
  updated_at?: string;
7435
8176
  };
7436
8177
  Relationships: [{
8178
+ foreignKeyName: "orders_buffer_id_fkey";
8179
+ columns: ["buffer_id"];
8180
+ isOneToOne: false;
8181
+ referencedRelation: "order_buffers";
8182
+ referencedColumns: ["id"];
8183
+ }, {
7437
8184
  foreignKeyName: "orders_customer_id_fkey";
7438
8185
  columns: ["customer_id"];
7439
8186
  isOneToOne: false;
@@ -7697,6 +8444,8 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
7697
8444
  Row: {
7698
8445
  created_at: string;
7699
8446
  description: string | null;
8447
+ head_product_id: string | null;
8448
+ head_trade_item_floriday_id: string | null;
7700
8449
  id: string;
7701
8450
  is_active: boolean;
7702
8451
  name: string;
@@ -7706,6 +8455,8 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
7706
8455
  Insert: {
7707
8456
  created_at?: string;
7708
8457
  description?: string | null;
8458
+ head_product_id?: string | null;
8459
+ head_trade_item_floriday_id?: string | null;
7709
8460
  id?: string;
7710
8461
  is_active?: boolean;
7711
8462
  name: string;
@@ -7715,13 +8466,21 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
7715
8466
  Update: {
7716
8467
  created_at?: string;
7717
8468
  description?: string | null;
8469
+ head_product_id?: string | null;
8470
+ head_trade_item_floriday_id?: string | null;
7718
8471
  id?: string;
7719
8472
  is_active?: boolean;
7720
8473
  name?: string;
7721
8474
  tenant_id?: string;
7722
8475
  updated_at?: string;
7723
8476
  };
7724
- Relationships: [];
8477
+ Relationships: [{
8478
+ foreignKeyName: "product_groups_head_product_id_fkey";
8479
+ columns: ["head_product_id"];
8480
+ isOneToOne: false;
8481
+ referencedRelation: "products";
8482
+ referencedColumns: ["id"];
8483
+ }];
7725
8484
  };
7726
8485
  products: {
7727
8486
  Row: {
@@ -10272,6 +11031,7 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
10272
11031
  internal_notes: string | null;
10273
11032
  parent_werkbon_id: string | null;
10274
11033
  parsed_payload: import("../../../integrations/supabase/types").Json | null;
11034
+ planning_status: string;
10275
11035
  project_number: string | null;
10276
11036
  room_number: string | null;
10277
11037
  scheduled_end_time: string | null;
@@ -10279,6 +11039,7 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
10279
11039
  sequence_number: number;
10280
11040
  source_pdf_path: string | null;
10281
11041
  status: string;
11042
+ technician_id: string | null;
10282
11043
  technician_notes: string | null;
10283
11044
  technician_notes_raw: string | null;
10284
11045
  technician_task_description: string | null;
@@ -10299,6 +11060,7 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
10299
11060
  internal_notes?: string | null;
10300
11061
  parent_werkbon_id?: string | null;
10301
11062
  parsed_payload?: import("../../../integrations/supabase/types").Json | null;
11063
+ planning_status?: string;
10302
11064
  project_number?: string | null;
10303
11065
  room_number?: string | null;
10304
11066
  scheduled_end_time?: string | null;
@@ -10306,6 +11068,7 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
10306
11068
  sequence_number: number;
10307
11069
  source_pdf_path?: string | null;
10308
11070
  status?: string;
11071
+ technician_id?: string | null;
10309
11072
  technician_notes?: string | null;
10310
11073
  technician_notes_raw?: string | null;
10311
11074
  technician_task_description?: string | null;
@@ -10326,6 +11089,7 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
10326
11089
  internal_notes?: string | null;
10327
11090
  parent_werkbon_id?: string | null;
10328
11091
  parsed_payload?: import("../../../integrations/supabase/types").Json | null;
11092
+ planning_status?: string;
10329
11093
  project_number?: string | null;
10330
11094
  room_number?: string | null;
10331
11095
  scheduled_end_time?: string | null;
@@ -10333,6 +11097,7 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
10333
11097
  sequence_number?: number;
10334
11098
  source_pdf_path?: string | null;
10335
11099
  status?: string;
11100
+ technician_id?: string | null;
10336
11101
  technician_notes?: string | null;
10337
11102
  technician_notes_raw?: string | null;
10338
11103
  technician_task_description?: string | null;
@@ -10341,17 +11106,17 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
10341
11106
  work_address?: string | null;
10342
11107
  };
10343
11108
  Relationships: [{
10344
- foreignKeyName: "werkbonnen_customer_id_fkey";
10345
- columns: ["customer_id"];
10346
- isOneToOne: false;
10347
- referencedRelation: "customers";
10348
- referencedColumns: ["id"];
10349
- }, {
10350
11109
  foreignKeyName: "werkbonnen_parent_werkbon_id_fkey";
10351
11110
  columns: ["parent_werkbon_id"];
10352
11111
  isOneToOne: false;
10353
11112
  referencedRelation: "werkbonnen";
10354
11113
  referencedColumns: ["id"];
11114
+ }, {
11115
+ foreignKeyName: "werkbonnen_technician_id_fkey";
11116
+ columns: ["technician_id"];
11117
+ isOneToOne: false;
11118
+ referencedRelation: "monteurs";
11119
+ referencedColumns: ["id"];
10355
11120
  }];
10356
11121
  };
10357
11122
  work_order_monteurs: {
@@ -11070,6 +11835,21 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
11070
11835
  };
11071
11836
  Returns: string;
11072
11837
  };
11838
+ ai_usage_by_module: {
11839
+ Args: {
11840
+ _from: string;
11841
+ _to: string;
11842
+ };
11843
+ Returns: {
11844
+ calls: number;
11845
+ consumer_module_id: string;
11846
+ cost_usd: number;
11847
+ errors: number;
11848
+ input_tokens: number;
11849
+ output_tokens: number;
11850
+ total_tokens: number;
11851
+ }[];
11852
+ };
11073
11853
  apply_stock_consumption: {
11074
11854
  Args: {
11075
11855
  p_order_id: string;
@@ -11218,6 +11998,12 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
11218
11998
  Args: never;
11219
11999
  Returns: string;
11220
12000
  };
12001
+ custom_access_token_hook: {
12002
+ Args: {
12003
+ event: import("../../../integrations/supabase/types").Json;
12004
+ };
12005
+ Returns: import("../../../integrations/supabase/types").Json;
12006
+ };
11221
12007
  dashboard_alert_counts: {
11222
12008
  Args: never;
11223
12009
  Returns: import("../../../integrations/supabase/types").Json;
@@ -11553,6 +12339,14 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
11553
12339
  };
11554
12340
  Returns: string;
11555
12341
  };
12342
+ has_module_permission: {
12343
+ Args: {
12344
+ _min: string;
12345
+ _module_id: string;
12346
+ _user_id: string;
12347
+ };
12348
+ Returns: boolean;
12349
+ };
11556
12350
  has_role: {
11557
12351
  Args: {
11558
12352
  _role: import("../../../integrations/supabase/types").Database["public"]["Enums"]["app_role"];
@@ -11578,6 +12372,20 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
11578
12372
  };
11579
12373
  Returns: boolean;
11580
12374
  };
12375
+ jwt_has_role: {
12376
+ Args: {
12377
+ _role: import("../../../integrations/supabase/types").Database["public"]["Enums"]["app_role"];
12378
+ };
12379
+ Returns: boolean;
12380
+ };
12381
+ list_monteurs: {
12382
+ Args: never;
12383
+ Returns: {
12384
+ display_name: string;
12385
+ email: string;
12386
+ user_id: string;
12387
+ }[];
12388
+ };
11581
12389
  local_effective_price: {
11582
12390
  Args: {
11583
12391
  _customer_id: string;
@@ -11594,6 +12402,22 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
11594
12402
  source_id: string;
11595
12403
  }[];
11596
12404
  };
12405
+ log_ai_call: {
12406
+ Args: {
12407
+ _consumer_module_id: string;
12408
+ _cost_usd: number;
12409
+ _duration_ms: number;
12410
+ _error_code: string;
12411
+ _error_message: string;
12412
+ _input_tokens: number;
12413
+ _model_slug: string;
12414
+ _output_tokens: number;
12415
+ _provider_slug: string;
12416
+ _status: string;
12417
+ _total_tokens: number;
12418
+ };
12419
+ Returns: string;
12420
+ };
11597
12421
  mark_offer_clicked: {
11598
12422
  Args: {
11599
12423
  p_code: string;
@@ -11606,6 +12430,12 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
11606
12430
  };
11607
12431
  Returns: undefined;
11608
12432
  };
12433
+ mark_shipment_shipped: {
12434
+ Args: {
12435
+ p_shipment_id: string;
12436
+ };
12437
+ Returns: undefined;
12438
+ };
11609
12439
  next_order_number: {
11610
12440
  Args: {
11611
12441
  p_prefix: string;
@@ -12082,9 +12912,11 @@ export declare const processTwinfieldPushQueue: import("@tanstack/start-client-c
12082
12912
  };
12083
12913
  };
12084
12914
  Enums: {
12085
- app_role: "admin" | "manager" | "warehouse" | "sales" | "developer" | "receptie" | "monteur";
12915
+ app_role: "admin" | "planner" | "monteur" | "administratie" | "ai_admin";
12086
12916
  exact_env: "staging" | "live";
12087
12917
  exact_push_status: "pending" | "sent" | "error";
12918
+ itk_customer_segment: "Business" | "Private";
12919
+ itk_dynamic_field_type: "text" | "select" | "date" | "checkbox";
12088
12920
  quote_status: "concept" | "verzonden" | "bekeken" | "in_behandeling" | "geaccepteerd" | "afgewezen" | "verlopen" | "gearchiveerd";
12089
12921
  };
12090
12922
  CompositeTypes: { [_ in never]: never; };
@@ -12377,6 +13209,57 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
12377
13209
  referencedColumns: ["id"];
12378
13210
  }];
12379
13211
  };
13212
+ ai_call_log: {
13213
+ Row: {
13214
+ consumer_module_id: string;
13215
+ cost_usd: number | null;
13216
+ created_at: string;
13217
+ created_by: string | null;
13218
+ duration_ms: number | null;
13219
+ error_code: string | null;
13220
+ error_message: string | null;
13221
+ id: string;
13222
+ input_tokens: number;
13223
+ model_slug: string | null;
13224
+ output_tokens: number;
13225
+ provider_slug: string | null;
13226
+ status: string;
13227
+ total_tokens: number;
13228
+ };
13229
+ Insert: {
13230
+ consumer_module_id: string;
13231
+ cost_usd?: number | null;
13232
+ created_at?: string;
13233
+ created_by?: string | null;
13234
+ duration_ms?: number | null;
13235
+ error_code?: string | null;
13236
+ error_message?: string | null;
13237
+ id?: string;
13238
+ input_tokens?: number;
13239
+ model_slug?: string | null;
13240
+ output_tokens?: number;
13241
+ provider_slug?: string | null;
13242
+ status: string;
13243
+ total_tokens?: number;
13244
+ };
13245
+ Update: {
13246
+ consumer_module_id?: string;
13247
+ cost_usd?: number | null;
13248
+ created_at?: string;
13249
+ created_by?: string | null;
13250
+ duration_ms?: number | null;
13251
+ error_code?: string | null;
13252
+ error_message?: string | null;
13253
+ id?: string;
13254
+ input_tokens?: number;
13255
+ model_slug?: string | null;
13256
+ output_tokens?: number;
13257
+ provider_slug?: string | null;
13258
+ status?: string;
13259
+ total_tokens?: number;
13260
+ };
13261
+ Relationships: [];
13262
+ };
12380
13263
  ai_credentials: {
12381
13264
  Row: {
12382
13265
  active: boolean;
@@ -12413,6 +13296,36 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
12413
13296
  referencedColumns: ["id"];
12414
13297
  }];
12415
13298
  };
13299
+ ai_goals: {
13300
+ Row: {
13301
+ active: boolean;
13302
+ created_at: string;
13303
+ description: string | null;
13304
+ key: string;
13305
+ label: string;
13306
+ sort_order: number;
13307
+ updated_at: string;
13308
+ };
13309
+ Insert: {
13310
+ active?: boolean;
13311
+ created_at?: string;
13312
+ description?: string | null;
13313
+ key: string;
13314
+ label: string;
13315
+ sort_order?: number;
13316
+ updated_at?: string;
13317
+ };
13318
+ Update: {
13319
+ active?: boolean;
13320
+ created_at?: string;
13321
+ description?: string | null;
13322
+ key?: string;
13323
+ label?: string;
13324
+ sort_order?: number;
13325
+ updated_at?: string;
13326
+ };
13327
+ Relationships: [];
13328
+ };
12416
13329
  ai_model_pricing: {
12417
13330
  Row: {
12418
13331
  created_at: string;
@@ -13199,6 +14112,141 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
13199
14112
  };
13200
14113
  Relationships: [];
13201
14114
  };
14115
+ cart_planning_pick_times: {
14116
+ Row: {
14117
+ created_at: string;
14118
+ id: string;
14119
+ pot_size: string;
14120
+ seconds_per_cart: number;
14121
+ updated_at: string;
14122
+ };
14123
+ Insert: {
14124
+ created_at?: string;
14125
+ id?: string;
14126
+ pot_size: string;
14127
+ seconds_per_cart: number;
14128
+ updated_at?: string;
14129
+ };
14130
+ Update: {
14131
+ created_at?: string;
14132
+ id?: string;
14133
+ pot_size?: string;
14134
+ seconds_per_cart?: number;
14135
+ updated_at?: string;
14136
+ };
14137
+ Relationships: [];
14138
+ };
14139
+ cart_planning_product_overrides: {
14140
+ Row: {
14141
+ created_at: string;
14142
+ id: string;
14143
+ max_party_share_per_layer_pct_override: number | null;
14144
+ never_mix: boolean;
14145
+ notes: string | null;
14146
+ product_id: string;
14147
+ updated_at: string;
14148
+ };
14149
+ Insert: {
14150
+ created_at?: string;
14151
+ id?: string;
14152
+ max_party_share_per_layer_pct_override?: number | null;
14153
+ never_mix?: boolean;
14154
+ notes?: string | null;
14155
+ product_id: string;
14156
+ updated_at?: string;
14157
+ };
14158
+ Update: {
14159
+ created_at?: string;
14160
+ id?: string;
14161
+ max_party_share_per_layer_pct_override?: number | null;
14162
+ never_mix?: boolean;
14163
+ notes?: string | null;
14164
+ product_id?: string;
14165
+ updated_at?: string;
14166
+ };
14167
+ Relationships: [{
14168
+ foreignKeyName: "cart_planning_product_overrides_product_id_fkey";
14169
+ columns: ["product_id"];
14170
+ isOneToOne: true;
14171
+ referencedRelation: "products";
14172
+ referencedColumns: ["id"];
14173
+ }];
14174
+ };
14175
+ cart_planning_settings: {
14176
+ Row: {
14177
+ allow_editing_after_pickstation_send: boolean;
14178
+ buffer_grouping_mode: string;
14179
+ combine_floriday_orders: boolean;
14180
+ combine_floriday_orders_window: string;
14181
+ combine_orders_scope: string;
14182
+ default_workers: number;
14183
+ id: number;
14184
+ max_beladingen_per_layer: number;
14185
+ max_customers_per_cart: number;
14186
+ max_one_customer_per_layer: boolean;
14187
+ max_party_share_per_layer_pct: number;
14188
+ optimization_strategy: string;
14189
+ own_cart_from_layers: number;
14190
+ pick_time_mode: string;
14191
+ plants_per_day: number;
14192
+ plants_per_hour: number;
14193
+ require_same_carrier: boolean;
14194
+ require_same_crate_type: boolean;
14195
+ require_same_delivery_date: boolean;
14196
+ require_same_delivery_location: boolean;
14197
+ updated_at: string;
14198
+ updated_by: string | null;
14199
+ };
14200
+ Insert: {
14201
+ allow_editing_after_pickstation_send?: boolean;
14202
+ buffer_grouping_mode?: string;
14203
+ combine_floriday_orders?: boolean;
14204
+ combine_floriday_orders_window?: string;
14205
+ combine_orders_scope?: string;
14206
+ default_workers?: number;
14207
+ id?: number;
14208
+ max_beladingen_per_layer?: number;
14209
+ max_customers_per_cart?: number;
14210
+ max_one_customer_per_layer?: boolean;
14211
+ max_party_share_per_layer_pct?: number;
14212
+ optimization_strategy?: string;
14213
+ own_cart_from_layers?: number;
14214
+ pick_time_mode?: string;
14215
+ plants_per_day?: number;
14216
+ plants_per_hour?: number;
14217
+ require_same_carrier?: boolean;
14218
+ require_same_crate_type?: boolean;
14219
+ require_same_delivery_date?: boolean;
14220
+ require_same_delivery_location?: boolean;
14221
+ updated_at?: string;
14222
+ updated_by?: string | null;
14223
+ };
14224
+ Update: {
14225
+ allow_editing_after_pickstation_send?: boolean;
14226
+ buffer_grouping_mode?: string;
14227
+ combine_floriday_orders?: boolean;
14228
+ combine_floriday_orders_window?: string;
14229
+ combine_orders_scope?: string;
14230
+ default_workers?: number;
14231
+ id?: number;
14232
+ max_beladingen_per_layer?: number;
14233
+ max_customers_per_cart?: number;
14234
+ max_one_customer_per_layer?: boolean;
14235
+ max_party_share_per_layer_pct?: number;
14236
+ optimization_strategy?: string;
14237
+ own_cart_from_layers?: number;
14238
+ pick_time_mode?: string;
14239
+ plants_per_day?: number;
14240
+ plants_per_hour?: number;
14241
+ require_same_carrier?: boolean;
14242
+ require_same_crate_type?: boolean;
14243
+ require_same_delivery_date?: boolean;
14244
+ require_same_delivery_location?: boolean;
14245
+ updated_at?: string;
14246
+ updated_by?: string | null;
14247
+ };
14248
+ Relationships: [];
14249
+ };
13202
14250
  cart_replan_queue: {
13203
14251
  Row: {
13204
14252
  attempts: number;
@@ -13229,6 +14277,39 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
13229
14277
  referencedColumns: ["id"];
13230
14278
  }];
13231
14279
  };
14280
+ cart_types: {
14281
+ Row: {
14282
+ created_at: string;
14283
+ id: string;
14284
+ is_default: boolean;
14285
+ layer_length_cm: number;
14286
+ layer_width_cm: number;
14287
+ layers_per_cart: number;
14288
+ name: string;
14289
+ updated_at: string;
14290
+ };
14291
+ Insert: {
14292
+ created_at?: string;
14293
+ id?: string;
14294
+ is_default?: boolean;
14295
+ layer_length_cm: number;
14296
+ layer_width_cm: number;
14297
+ layers_per_cart?: number;
14298
+ name: string;
14299
+ updated_at?: string;
14300
+ };
14301
+ Update: {
14302
+ created_at?: string;
14303
+ id?: string;
14304
+ is_default?: boolean;
14305
+ layer_length_cm?: number;
14306
+ layer_width_cm?: number;
14307
+ layers_per_cart?: number;
14308
+ name?: string;
14309
+ updated_at?: string;
14310
+ };
14311
+ Relationships: [];
14312
+ };
13232
14313
  catalog_articles_cache: {
13233
14314
  Row: {
13234
14315
  created_at: string;
@@ -13316,6 +14397,36 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
13316
14397
  };
13317
14398
  Relationships: [];
13318
14399
  };
14400
+ crate_types: {
14401
+ Row: {
14402
+ created_at: string;
14403
+ id: string;
14404
+ length_cm: number;
14405
+ name: string;
14406
+ plants_per_crate: number;
14407
+ updated_at: string;
14408
+ width_cm: number;
14409
+ };
14410
+ Insert: {
14411
+ created_at?: string;
14412
+ id?: string;
14413
+ length_cm: number;
14414
+ name: string;
14415
+ plants_per_crate?: number;
14416
+ updated_at?: string;
14417
+ width_cm: number;
14418
+ };
14419
+ Update: {
14420
+ created_at?: string;
14421
+ id?: string;
14422
+ length_cm?: number;
14423
+ name?: string;
14424
+ plants_per_crate?: number;
14425
+ updated_at?: string;
14426
+ width_cm?: number;
14427
+ };
14428
+ Relationships: [];
14429
+ };
13319
14430
  customer_audit_log: {
13320
14431
  Row: {
13321
14432
  action: string;
@@ -17855,6 +18966,288 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
17855
18966
  };
17856
18967
  Relationships: [];
17857
18968
  };
18969
+ itk_contact_persons: {
18970
+ Row: {
18971
+ created_at: string;
18972
+ customer_id: string;
18973
+ email: string | null;
18974
+ id: string;
18975
+ name: string;
18976
+ phone: string | null;
18977
+ role: string | null;
18978
+ updated_at: string;
18979
+ };
18980
+ Insert: {
18981
+ created_at?: string;
18982
+ customer_id: string;
18983
+ email?: string | null;
18984
+ id?: string;
18985
+ name: string;
18986
+ phone?: string | null;
18987
+ role?: string | null;
18988
+ updated_at?: string;
18989
+ };
18990
+ Update: {
18991
+ created_at?: string;
18992
+ customer_id?: string;
18993
+ email?: string | null;
18994
+ id?: string;
18995
+ name?: string;
18996
+ phone?: string | null;
18997
+ role?: string | null;
18998
+ updated_at?: string;
18999
+ };
19000
+ Relationships: [{
19001
+ foreignKeyName: "itk_contact_persons_customer_id_fkey";
19002
+ columns: ["customer_id"];
19003
+ isOneToOne: false;
19004
+ referencedRelation: "itk_customers";
19005
+ referencedColumns: ["id"];
19006
+ }];
19007
+ };
19008
+ itk_customer_dynamic_values: {
19009
+ Row: {
19010
+ created_at: string;
19011
+ customer_id: string;
19012
+ field_id: string;
19013
+ id: string;
19014
+ updated_at: string;
19015
+ value: string | null;
19016
+ };
19017
+ Insert: {
19018
+ created_at?: string;
19019
+ customer_id: string;
19020
+ field_id: string;
19021
+ id?: string;
19022
+ updated_at?: string;
19023
+ value?: string | null;
19024
+ };
19025
+ Update: {
19026
+ created_at?: string;
19027
+ customer_id?: string;
19028
+ field_id?: string;
19029
+ id?: string;
19030
+ updated_at?: string;
19031
+ value?: string | null;
19032
+ };
19033
+ Relationships: [{
19034
+ foreignKeyName: "itk_customer_dynamic_values_customer_id_fkey";
19035
+ columns: ["customer_id"];
19036
+ isOneToOne: false;
19037
+ referencedRelation: "itk_customers";
19038
+ referencedColumns: ["id"];
19039
+ }, {
19040
+ foreignKeyName: "itk_customer_dynamic_values_field_id_fkey";
19041
+ columns: ["field_id"];
19042
+ isOneToOne: false;
19043
+ referencedRelation: "itk_dynamic_fields";
19044
+ referencedColumns: ["id"];
19045
+ }];
19046
+ };
19047
+ itk_customer_notes: {
19048
+ Row: {
19049
+ body: string;
19050
+ created_at: string;
19051
+ created_by: string | null;
19052
+ customer_id: string;
19053
+ id: string;
19054
+ note_type: string;
19055
+ updated_at: string;
19056
+ };
19057
+ Insert: {
19058
+ body: string;
19059
+ created_at?: string;
19060
+ created_by?: string | null;
19061
+ customer_id: string;
19062
+ id?: string;
19063
+ note_type?: string;
19064
+ updated_at?: string;
19065
+ };
19066
+ Update: {
19067
+ body?: string;
19068
+ created_at?: string;
19069
+ created_by?: string | null;
19070
+ customer_id?: string;
19071
+ id?: string;
19072
+ note_type?: string;
19073
+ updated_at?: string;
19074
+ };
19075
+ Relationships: [{
19076
+ foreignKeyName: "itk_customer_notes_customer_id_fkey";
19077
+ columns: ["customer_id"];
19078
+ isOneToOne: false;
19079
+ referencedRelation: "itk_customers";
19080
+ referencedColumns: ["id"];
19081
+ }];
19082
+ };
19083
+ itk_customers: {
19084
+ Row: {
19085
+ billing_city: string | null;
19086
+ billing_postcode: string | null;
19087
+ billing_street: string | null;
19088
+ created_at: string;
19089
+ general_email: string | null;
19090
+ general_phone: string | null;
19091
+ id: string;
19092
+ legacy_customer_id: string | null;
19093
+ name: string;
19094
+ segment: import("../../../integrations/supabase/types").Database["public"]["Enums"]["itk_customer_segment"];
19095
+ updated_at: string;
19096
+ };
19097
+ Insert: {
19098
+ billing_city?: string | null;
19099
+ billing_postcode?: string | null;
19100
+ billing_street?: string | null;
19101
+ created_at?: string;
19102
+ general_email?: string | null;
19103
+ general_phone?: string | null;
19104
+ id?: string;
19105
+ legacy_customer_id?: string | null;
19106
+ name: string;
19107
+ segment?: import("../../../integrations/supabase/types").Database["public"]["Enums"]["itk_customer_segment"];
19108
+ updated_at?: string;
19109
+ };
19110
+ Update: {
19111
+ billing_city?: string | null;
19112
+ billing_postcode?: string | null;
19113
+ billing_street?: string | null;
19114
+ created_at?: string;
19115
+ general_email?: string | null;
19116
+ general_phone?: string | null;
19117
+ id?: string;
19118
+ legacy_customer_id?: string | null;
19119
+ name?: string;
19120
+ segment?: import("../../../integrations/supabase/types").Database["public"]["Enums"]["itk_customer_segment"];
19121
+ updated_at?: string;
19122
+ };
19123
+ Relationships: [{
19124
+ foreignKeyName: "itk_customers_legacy_customer_id_fkey";
19125
+ columns: ["legacy_customer_id"];
19126
+ isOneToOne: false;
19127
+ referencedRelation: "customers";
19128
+ referencedColumns: ["id"];
19129
+ }];
19130
+ };
19131
+ itk_dynamic_fields: {
19132
+ Row: {
19133
+ created_at: string;
19134
+ field_name: string;
19135
+ field_type: import("../../../integrations/supabase/types").Database["public"]["Enums"]["itk_dynamic_field_type"];
19136
+ id: string;
19137
+ options: import("../../../integrations/supabase/types").Json;
19138
+ sort_order: number;
19139
+ updated_at: string;
19140
+ };
19141
+ Insert: {
19142
+ created_at?: string;
19143
+ field_name: string;
19144
+ field_type?: import("../../../integrations/supabase/types").Database["public"]["Enums"]["itk_dynamic_field_type"];
19145
+ id?: string;
19146
+ options?: import("../../../integrations/supabase/types").Json;
19147
+ sort_order?: number;
19148
+ updated_at?: string;
19149
+ };
19150
+ Update: {
19151
+ created_at?: string;
19152
+ field_name?: string;
19153
+ field_type?: import("../../../integrations/supabase/types").Database["public"]["Enums"]["itk_dynamic_field_type"];
19154
+ id?: string;
19155
+ options?: import("../../../integrations/supabase/types").Json;
19156
+ sort_order?: number;
19157
+ updated_at?: string;
19158
+ };
19159
+ Relationships: [];
19160
+ };
19161
+ itk_work_locations: {
19162
+ Row: {
19163
+ city: string | null;
19164
+ created_at: string;
19165
+ customer_id: string;
19166
+ id: string;
19167
+ instructions: string | null;
19168
+ label: string;
19169
+ latitude: number | null;
19170
+ longitude: number | null;
19171
+ postcode: string | null;
19172
+ street: string | null;
19173
+ updated_at: string;
19174
+ };
19175
+ Insert: {
19176
+ city?: string | null;
19177
+ created_at?: string;
19178
+ customer_id: string;
19179
+ id?: string;
19180
+ instructions?: string | null;
19181
+ label: string;
19182
+ latitude?: number | null;
19183
+ longitude?: number | null;
19184
+ postcode?: string | null;
19185
+ street?: string | null;
19186
+ updated_at?: string;
19187
+ };
19188
+ Update: {
19189
+ city?: string | null;
19190
+ created_at?: string;
19191
+ customer_id?: string;
19192
+ id?: string;
19193
+ instructions?: string | null;
19194
+ label?: string;
19195
+ latitude?: number | null;
19196
+ longitude?: number | null;
19197
+ postcode?: string | null;
19198
+ street?: string | null;
19199
+ updated_at?: string;
19200
+ };
19201
+ Relationships: [{
19202
+ foreignKeyName: "itk_work_locations_customer_id_fkey";
19203
+ columns: ["customer_id"];
19204
+ isOneToOne: false;
19205
+ referencedRelation: "itk_customers";
19206
+ referencedColumns: ["id"];
19207
+ }];
19208
+ };
19209
+ leave_requests: {
19210
+ Row: {
19211
+ created_at: string;
19212
+ end_date: string;
19213
+ id: string;
19214
+ reason: string | null;
19215
+ start_date: string;
19216
+ status: string;
19217
+ tenant_id: string;
19218
+ updated_at: string;
19219
+ user_id: string;
19220
+ };
19221
+ Insert: {
19222
+ created_at?: string;
19223
+ end_date: string;
19224
+ id?: string;
19225
+ reason?: string | null;
19226
+ start_date: string;
19227
+ status?: string;
19228
+ tenant_id?: string;
19229
+ updated_at?: string;
19230
+ user_id: string;
19231
+ };
19232
+ Update: {
19233
+ created_at?: string;
19234
+ end_date?: string;
19235
+ id?: string;
19236
+ reason?: string | null;
19237
+ start_date?: string;
19238
+ status?: string;
19239
+ tenant_id?: string;
19240
+ updated_at?: string;
19241
+ user_id?: string;
19242
+ };
19243
+ Relationships: [{
19244
+ foreignKeyName: "leave_requests_user_id_fkey";
19245
+ columns: ["user_id"];
19246
+ isOneToOne: false;
19247
+ referencedRelation: "monteurs";
19248
+ referencedColumns: ["id"];
19249
+ }];
19250
+ };
17858
19251
  local_customer_agreements: {
17859
19252
  Row: {
17860
19253
  base_price: number | null;
@@ -18506,6 +19899,33 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
18506
19899
  };
18507
19900
  Relationships: [];
18508
19901
  };
19902
+ module_permissions: {
19903
+ Row: {
19904
+ created_at: string;
19905
+ id: string;
19906
+ module_id: string;
19907
+ permission: string;
19908
+ role: import("../../../integrations/supabase/types").Database["public"]["Enums"]["app_role"];
19909
+ updated_at: string;
19910
+ };
19911
+ Insert: {
19912
+ created_at?: string;
19913
+ id?: string;
19914
+ module_id: string;
19915
+ permission: string;
19916
+ role: import("../../../integrations/supabase/types").Database["public"]["Enums"]["app_role"];
19917
+ updated_at?: string;
19918
+ };
19919
+ Update: {
19920
+ created_at?: string;
19921
+ id?: string;
19922
+ module_id?: string;
19923
+ permission?: string;
19924
+ role?: import("../../../integrations/supabase/types").Database["public"]["Enums"]["app_role"];
19925
+ updated_at?: string;
19926
+ };
19927
+ Relationships: [];
19928
+ };
18509
19929
  monteurs: {
18510
19930
  Row: {
18511
19931
  avatar_url: string | null;
@@ -19235,6 +20655,42 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
19235
20655
  };
19236
20656
  Relationships: [];
19237
20657
  };
20658
+ order_buffers: {
20659
+ Row: {
20660
+ buffer_key: string;
20661
+ created_at: string;
20662
+ customer_id: string | null;
20663
+ grouping_mode: string;
20664
+ id: string;
20665
+ pickup_date: string | null;
20666
+ pickup_location: string | null;
20667
+ plan_locked_at: string | null;
20668
+ updated_at: string;
20669
+ };
20670
+ Insert: {
20671
+ buffer_key: string;
20672
+ created_at?: string;
20673
+ customer_id?: string | null;
20674
+ grouping_mode: string;
20675
+ id?: string;
20676
+ pickup_date?: string | null;
20677
+ pickup_location?: string | null;
20678
+ plan_locked_at?: string | null;
20679
+ updated_at?: string;
20680
+ };
20681
+ Update: {
20682
+ buffer_key?: string;
20683
+ created_at?: string;
20684
+ customer_id?: string | null;
20685
+ grouping_mode?: string;
20686
+ id?: string;
20687
+ pickup_date?: string | null;
20688
+ pickup_location?: string | null;
20689
+ plan_locked_at?: string | null;
20690
+ updated_at?: string;
20691
+ };
20692
+ Relationships: [];
20693
+ };
19238
20694
  order_cart_items: {
19239
20695
  Row: {
19240
20696
  cart_id: string;
@@ -19301,6 +20757,7 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
19301
20757
  order_carts: {
19302
20758
  Row: {
19303
20759
  algorithm_version: number;
20760
+ buffer_id: string | null;
19304
20761
  cart_number: number;
19305
20762
  created_at: string;
19306
20763
  id: string;
@@ -19308,13 +20765,14 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
19308
20765
  is_complete: boolean;
19309
20766
  notes: string | null;
19310
20767
  occupancy_pct: number;
19311
- order_id: string;
20768
+ order_id: string | null;
19312
20769
  source: string;
19313
20770
  total_layers_used: number;
19314
20771
  updated_at: string;
19315
20772
  };
19316
20773
  Insert: {
19317
20774
  algorithm_version?: number;
20775
+ buffer_id?: string | null;
19318
20776
  cart_number: number;
19319
20777
  created_at?: string;
19320
20778
  id?: string;
@@ -19322,13 +20780,14 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
19322
20780
  is_complete?: boolean;
19323
20781
  notes?: string | null;
19324
20782
  occupancy_pct?: number;
19325
- order_id: string;
20783
+ order_id?: string | null;
19326
20784
  source?: string;
19327
20785
  total_layers_used?: number;
19328
20786
  updated_at?: string;
19329
20787
  };
19330
20788
  Update: {
19331
20789
  algorithm_version?: number;
20790
+ buffer_id?: string | null;
19332
20791
  cart_number?: number;
19333
20792
  created_at?: string;
19334
20793
  id?: string;
@@ -19336,12 +20795,18 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
19336
20795
  is_complete?: boolean;
19337
20796
  notes?: string | null;
19338
20797
  occupancy_pct?: number;
19339
- order_id?: string;
20798
+ order_id?: string | null;
19340
20799
  source?: string;
19341
20800
  total_layers_used?: number;
19342
20801
  updated_at?: string;
19343
20802
  };
19344
20803
  Relationships: [{
20804
+ foreignKeyName: "order_carts_buffer_id_fkey";
20805
+ columns: ["buffer_id"];
20806
+ isOneToOne: false;
20807
+ referencedRelation: "order_buffers";
20808
+ referencedColumns: ["id"];
20809
+ }, {
19345
20810
  foreignKeyName: "order_carts_order_id_fkey";
19346
20811
  columns: ["order_id"];
19347
20812
  isOneToOne: false;
@@ -19478,15 +20943,117 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
19478
20943
  };
19479
20944
  Relationships: [];
19480
20945
  };
20946
+ order_shipment_items: {
20947
+ Row: {
20948
+ created_at: string;
20949
+ id: string;
20950
+ order_item_id: string;
20951
+ product_id: string | null;
20952
+ product_name: string;
20953
+ quantity: number;
20954
+ shipment_id: string;
20955
+ updated_at: string;
20956
+ };
20957
+ Insert: {
20958
+ created_at?: string;
20959
+ id?: string;
20960
+ order_item_id: string;
20961
+ product_id?: string | null;
20962
+ product_name: string;
20963
+ quantity: number;
20964
+ shipment_id: string;
20965
+ updated_at?: string;
20966
+ };
20967
+ Update: {
20968
+ created_at?: string;
20969
+ id?: string;
20970
+ order_item_id?: string;
20971
+ product_id?: string | null;
20972
+ product_name?: string;
20973
+ quantity?: number;
20974
+ shipment_id?: string;
20975
+ updated_at?: string;
20976
+ };
20977
+ Relationships: [{
20978
+ foreignKeyName: "order_shipment_items_order_item_id_fkey";
20979
+ columns: ["order_item_id"];
20980
+ isOneToOne: false;
20981
+ referencedRelation: "order_items";
20982
+ referencedColumns: ["id"];
20983
+ }, {
20984
+ foreignKeyName: "order_shipment_items_shipment_id_fkey";
20985
+ columns: ["shipment_id"];
20986
+ isOneToOne: false;
20987
+ referencedRelation: "order_shipments";
20988
+ referencedColumns: ["id"];
20989
+ }];
20990
+ };
20991
+ order_shipments: {
20992
+ Row: {
20993
+ carrier_id: string | null;
20994
+ created_at: string;
20995
+ delivery_date: string | null;
20996
+ delivery_location_id: string | null;
20997
+ id: string;
20998
+ notes: string | null;
20999
+ order_id: string;
21000
+ shipment_number: number;
21001
+ shipped_at: string | null;
21002
+ status: string;
21003
+ updated_at: string;
21004
+ };
21005
+ Insert: {
21006
+ carrier_id?: string | null;
21007
+ created_at?: string;
21008
+ delivery_date?: string | null;
21009
+ delivery_location_id?: string | null;
21010
+ id?: string;
21011
+ notes?: string | null;
21012
+ order_id: string;
21013
+ shipment_number: number;
21014
+ shipped_at?: string | null;
21015
+ status?: string;
21016
+ updated_at?: string;
21017
+ };
21018
+ Update: {
21019
+ carrier_id?: string | null;
21020
+ created_at?: string;
21021
+ delivery_date?: string | null;
21022
+ delivery_location_id?: string | null;
21023
+ id?: string;
21024
+ notes?: string | null;
21025
+ order_id?: string;
21026
+ shipment_number?: number;
21027
+ shipped_at?: string | null;
21028
+ status?: string;
21029
+ updated_at?: string;
21030
+ };
21031
+ Relationships: [{
21032
+ foreignKeyName: "order_shipments_carrier_id_fkey";
21033
+ columns: ["carrier_id"];
21034
+ isOneToOne: false;
21035
+ referencedRelation: "carriers";
21036
+ referencedColumns: ["id"];
21037
+ }, {
21038
+ foreignKeyName: "order_shipments_order_id_fkey";
21039
+ columns: ["order_id"];
21040
+ isOneToOne: false;
21041
+ referencedRelation: "orders";
21042
+ referencedColumns: ["id"];
21043
+ }];
21044
+ };
19481
21045
  orders: {
19482
21046
  Row: {
21047
+ buffer_id: string | null;
19483
21048
  created_at: string;
19484
21049
  custom_fields: import("../../../integrations/supabase/types").Json;
19485
21050
  customer_id: string | null;
19486
21051
  customer_name: string;
19487
21052
  deleted_at: string | null;
19488
- delivery_date: string;
21053
+ delivery_date: string | null;
21054
+ floriday_sales_order_id: string | null;
19489
21055
  id: string;
21056
+ is_reservation: boolean;
19490
21057
  notes: string | null;
19491
21058
  order_date: string;
19492
21059
  order_number: string;
@@ -19498,13 +21065,16 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
19498
21065
  updated_at: string;
19499
21066
  };
19500
21067
  Insert: {
21068
+ buffer_id?: string | null;
19501
21069
  created_at?: string;
19502
21070
  custom_fields?: import("../../../integrations/supabase/types").Json;
19503
21071
  customer_id?: string | null;
19504
21072
  customer_name?: string;
19505
21073
  deleted_at?: string | null;
19506
- delivery_date: string;
21074
+ delivery_date?: string | null;
21075
+ floriday_sales_order_id?: string | null;
19507
21076
  id?: string;
21077
+ is_reservation?: boolean;
19508
21078
  notes?: string | null;
19509
21079
  order_date?: string;
19510
21080
  order_number: string;
@@ -19516,13 +21086,16 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
19516
21086
  updated_at?: string;
19517
21087
  };
19518
21088
  Update: {
21089
+ buffer_id?: string | null;
19519
21090
  created_at?: string;
19520
21091
  custom_fields?: import("../../../integrations/supabase/types").Json;
19521
21092
  customer_id?: string | null;
19522
21093
  customer_name?: string;
19523
21094
  deleted_at?: string | null;
19524
- delivery_date?: string;
21095
+ delivery_date?: string | null;
21096
+ floriday_sales_order_id?: string | null;
19525
21097
  id?: string;
21098
+ is_reservation?: boolean;
19526
21099
  notes?: string | null;
19527
21100
  order_date?: string;
19528
21101
  order_number?: string;
@@ -19534,6 +21107,12 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
19534
21107
  updated_at?: string;
19535
21108
  };
19536
21109
  Relationships: [{
21110
+ foreignKeyName: "orders_buffer_id_fkey";
21111
+ columns: ["buffer_id"];
21112
+ isOneToOne: false;
21113
+ referencedRelation: "order_buffers";
21114
+ referencedColumns: ["id"];
21115
+ }, {
19537
21116
  foreignKeyName: "orders_customer_id_fkey";
19538
21117
  columns: ["customer_id"];
19539
21118
  isOneToOne: false;
@@ -19797,6 +21376,8 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
19797
21376
  Row: {
19798
21377
  created_at: string;
19799
21378
  description: string | null;
21379
+ head_product_id: string | null;
21380
+ head_trade_item_floriday_id: string | null;
19800
21381
  id: string;
19801
21382
  is_active: boolean;
19802
21383
  name: string;
@@ -19806,6 +21387,8 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
19806
21387
  Insert: {
19807
21388
  created_at?: string;
19808
21389
  description?: string | null;
21390
+ head_product_id?: string | null;
21391
+ head_trade_item_floriday_id?: string | null;
19809
21392
  id?: string;
19810
21393
  is_active?: boolean;
19811
21394
  name: string;
@@ -19815,13 +21398,21 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
19815
21398
  Update: {
19816
21399
  created_at?: string;
19817
21400
  description?: string | null;
21401
+ head_product_id?: string | null;
21402
+ head_trade_item_floriday_id?: string | null;
19818
21403
  id?: string;
19819
21404
  is_active?: boolean;
19820
21405
  name?: string;
19821
21406
  tenant_id?: string;
19822
21407
  updated_at?: string;
19823
21408
  };
19824
- Relationships: [];
21409
+ Relationships: [{
21410
+ foreignKeyName: "product_groups_head_product_id_fkey";
21411
+ columns: ["head_product_id"];
21412
+ isOneToOne: false;
21413
+ referencedRelation: "products";
21414
+ referencedColumns: ["id"];
21415
+ }];
19825
21416
  };
19826
21417
  products: {
19827
21418
  Row: {
@@ -22372,6 +23963,7 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
22372
23963
  internal_notes: string | null;
22373
23964
  parent_werkbon_id: string | null;
22374
23965
  parsed_payload: import("../../../integrations/supabase/types").Json | null;
23966
+ planning_status: string;
22375
23967
  project_number: string | null;
22376
23968
  room_number: string | null;
22377
23969
  scheduled_end_time: string | null;
@@ -22379,6 +23971,7 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
22379
23971
  sequence_number: number;
22380
23972
  source_pdf_path: string | null;
22381
23973
  status: string;
23974
+ technician_id: string | null;
22382
23975
  technician_notes: string | null;
22383
23976
  technician_notes_raw: string | null;
22384
23977
  technician_task_description: string | null;
@@ -22399,6 +23992,7 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
22399
23992
  internal_notes?: string | null;
22400
23993
  parent_werkbon_id?: string | null;
22401
23994
  parsed_payload?: import("../../../integrations/supabase/types").Json | null;
23995
+ planning_status?: string;
22402
23996
  project_number?: string | null;
22403
23997
  room_number?: string | null;
22404
23998
  scheduled_end_time?: string | null;
@@ -22406,6 +24000,7 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
22406
24000
  sequence_number: number;
22407
24001
  source_pdf_path?: string | null;
22408
24002
  status?: string;
24003
+ technician_id?: string | null;
22409
24004
  technician_notes?: string | null;
22410
24005
  technician_notes_raw?: string | null;
22411
24006
  technician_task_description?: string | null;
@@ -22426,6 +24021,7 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
22426
24021
  internal_notes?: string | null;
22427
24022
  parent_werkbon_id?: string | null;
22428
24023
  parsed_payload?: import("../../../integrations/supabase/types").Json | null;
24024
+ planning_status?: string;
22429
24025
  project_number?: string | null;
22430
24026
  room_number?: string | null;
22431
24027
  scheduled_end_time?: string | null;
@@ -22433,6 +24029,7 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
22433
24029
  sequence_number?: number;
22434
24030
  source_pdf_path?: string | null;
22435
24031
  status?: string;
24032
+ technician_id?: string | null;
22436
24033
  technician_notes?: string | null;
22437
24034
  technician_notes_raw?: string | null;
22438
24035
  technician_task_description?: string | null;
@@ -22441,17 +24038,17 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
22441
24038
  work_address?: string | null;
22442
24039
  };
22443
24040
  Relationships: [{
22444
- foreignKeyName: "werkbonnen_customer_id_fkey";
22445
- columns: ["customer_id"];
22446
- isOneToOne: false;
22447
- referencedRelation: "customers";
22448
- referencedColumns: ["id"];
22449
- }, {
22450
24041
  foreignKeyName: "werkbonnen_parent_werkbon_id_fkey";
22451
24042
  columns: ["parent_werkbon_id"];
22452
24043
  isOneToOne: false;
22453
24044
  referencedRelation: "werkbonnen";
22454
24045
  referencedColumns: ["id"];
24046
+ }, {
24047
+ foreignKeyName: "werkbonnen_technician_id_fkey";
24048
+ columns: ["technician_id"];
24049
+ isOneToOne: false;
24050
+ referencedRelation: "monteurs";
24051
+ referencedColumns: ["id"];
22455
24052
  }];
22456
24053
  };
22457
24054
  work_order_monteurs: {
@@ -23170,6 +24767,21 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
23170
24767
  };
23171
24768
  Returns: string;
23172
24769
  };
24770
+ ai_usage_by_module: {
24771
+ Args: {
24772
+ _from: string;
24773
+ _to: string;
24774
+ };
24775
+ Returns: {
24776
+ calls: number;
24777
+ consumer_module_id: string;
24778
+ cost_usd: number;
24779
+ errors: number;
24780
+ input_tokens: number;
24781
+ output_tokens: number;
24782
+ total_tokens: number;
24783
+ }[];
24784
+ };
23173
24785
  apply_stock_consumption: {
23174
24786
  Args: {
23175
24787
  p_order_id: string;
@@ -23318,6 +24930,12 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
23318
24930
  Args: never;
23319
24931
  Returns: string;
23320
24932
  };
24933
+ custom_access_token_hook: {
24934
+ Args: {
24935
+ event: import("../../../integrations/supabase/types").Json;
24936
+ };
24937
+ Returns: import("../../../integrations/supabase/types").Json;
24938
+ };
23321
24939
  dashboard_alert_counts: {
23322
24940
  Args: never;
23323
24941
  Returns: import("../../../integrations/supabase/types").Json;
@@ -23653,6 +25271,14 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
23653
25271
  };
23654
25272
  Returns: string;
23655
25273
  };
25274
+ has_module_permission: {
25275
+ Args: {
25276
+ _min: string;
25277
+ _module_id: string;
25278
+ _user_id: string;
25279
+ };
25280
+ Returns: boolean;
25281
+ };
23656
25282
  has_role: {
23657
25283
  Args: {
23658
25284
  _role: import("../../../integrations/supabase/types").Database["public"]["Enums"]["app_role"];
@@ -23678,6 +25304,20 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
23678
25304
  };
23679
25305
  Returns: boolean;
23680
25306
  };
25307
+ jwt_has_role: {
25308
+ Args: {
25309
+ _role: import("../../../integrations/supabase/types").Database["public"]["Enums"]["app_role"];
25310
+ };
25311
+ Returns: boolean;
25312
+ };
25313
+ list_monteurs: {
25314
+ Args: never;
25315
+ Returns: {
25316
+ display_name: string;
25317
+ email: string;
25318
+ user_id: string;
25319
+ }[];
25320
+ };
23681
25321
  local_effective_price: {
23682
25322
  Args: {
23683
25323
  _customer_id: string;
@@ -23694,6 +25334,22 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
23694
25334
  source_id: string;
23695
25335
  }[];
23696
25336
  };
25337
+ log_ai_call: {
25338
+ Args: {
25339
+ _consumer_module_id: string;
25340
+ _cost_usd: number;
25341
+ _duration_ms: number;
25342
+ _error_code: string;
25343
+ _error_message: string;
25344
+ _input_tokens: number;
25345
+ _model_slug: string;
25346
+ _output_tokens: number;
25347
+ _provider_slug: string;
25348
+ _status: string;
25349
+ _total_tokens: number;
25350
+ };
25351
+ Returns: string;
25352
+ };
23697
25353
  mark_offer_clicked: {
23698
25354
  Args: {
23699
25355
  p_code: string;
@@ -23706,6 +25362,12 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
23706
25362
  };
23707
25363
  Returns: undefined;
23708
25364
  };
25365
+ mark_shipment_shipped: {
25366
+ Args: {
25367
+ p_shipment_id: string;
25368
+ };
25369
+ Returns: undefined;
25370
+ };
23709
25371
  next_order_number: {
23710
25372
  Args: {
23711
25373
  p_prefix: string;
@@ -24182,9 +25844,11 @@ export declare const retryTwinfieldPush: import("@tanstack/start-client-core").R
24182
25844
  };
24183
25845
  };
24184
25846
  Enums: {
24185
- app_role: "admin" | "manager" | "warehouse" | "sales" | "developer" | "receptie" | "monteur";
25847
+ app_role: "admin" | "planner" | "monteur" | "administratie" | "ai_admin";
24186
25848
  exact_env: "staging" | "live";
24187
25849
  exact_push_status: "pending" | "sent" | "error";
25850
+ itk_customer_segment: "Business" | "Private";
25851
+ itk_dynamic_field_type: "text" | "select" | "date" | "checkbox";
24188
25852
  quote_status: "concept" | "verzonden" | "bekeken" | "in_behandeling" | "geaccepteerd" | "afgewezen" | "verlopen" | "gearchiveerd";
24189
25853
  };
24190
25854
  CompositeTypes: { [_ in never]: never; };
@@ -24479,6 +26143,57 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
24479
26143
  referencedColumns: ["id"];
24480
26144
  }];
24481
26145
  };
26146
+ ai_call_log: {
26147
+ Row: {
26148
+ consumer_module_id: string;
26149
+ cost_usd: number | null;
26150
+ created_at: string;
26151
+ created_by: string | null;
26152
+ duration_ms: number | null;
26153
+ error_code: string | null;
26154
+ error_message: string | null;
26155
+ id: string;
26156
+ input_tokens: number;
26157
+ model_slug: string | null;
26158
+ output_tokens: number;
26159
+ provider_slug: string | null;
26160
+ status: string;
26161
+ total_tokens: number;
26162
+ };
26163
+ Insert: {
26164
+ consumer_module_id: string;
26165
+ cost_usd?: number | null;
26166
+ created_at?: string;
26167
+ created_by?: string | null;
26168
+ duration_ms?: number | null;
26169
+ error_code?: string | null;
26170
+ error_message?: string | null;
26171
+ id?: string;
26172
+ input_tokens?: number;
26173
+ model_slug?: string | null;
26174
+ output_tokens?: number;
26175
+ provider_slug?: string | null;
26176
+ status: string;
26177
+ total_tokens?: number;
26178
+ };
26179
+ Update: {
26180
+ consumer_module_id?: string;
26181
+ cost_usd?: number | null;
26182
+ created_at?: string;
26183
+ created_by?: string | null;
26184
+ duration_ms?: number | null;
26185
+ error_code?: string | null;
26186
+ error_message?: string | null;
26187
+ id?: string;
26188
+ input_tokens?: number;
26189
+ model_slug?: string | null;
26190
+ output_tokens?: number;
26191
+ provider_slug?: string | null;
26192
+ status?: string;
26193
+ total_tokens?: number;
26194
+ };
26195
+ Relationships: [];
26196
+ };
24482
26197
  ai_credentials: {
24483
26198
  Row: {
24484
26199
  active: boolean;
@@ -24515,6 +26230,36 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
24515
26230
  referencedColumns: ["id"];
24516
26231
  }];
24517
26232
  };
26233
+ ai_goals: {
26234
+ Row: {
26235
+ active: boolean;
26236
+ created_at: string;
26237
+ description: string | null;
26238
+ key: string;
26239
+ label: string;
26240
+ sort_order: number;
26241
+ updated_at: string;
26242
+ };
26243
+ Insert: {
26244
+ active?: boolean;
26245
+ created_at?: string;
26246
+ description?: string | null;
26247
+ key: string;
26248
+ label: string;
26249
+ sort_order?: number;
26250
+ updated_at?: string;
26251
+ };
26252
+ Update: {
26253
+ active?: boolean;
26254
+ created_at?: string;
26255
+ description?: string | null;
26256
+ key?: string;
26257
+ label?: string;
26258
+ sort_order?: number;
26259
+ updated_at?: string;
26260
+ };
26261
+ Relationships: [];
26262
+ };
24518
26263
  ai_model_pricing: {
24519
26264
  Row: {
24520
26265
  created_at: string;
@@ -25301,6 +27046,141 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
25301
27046
  };
25302
27047
  Relationships: [];
25303
27048
  };
27049
+ cart_planning_pick_times: {
27050
+ Row: {
27051
+ created_at: string;
27052
+ id: string;
27053
+ pot_size: string;
27054
+ seconds_per_cart: number;
27055
+ updated_at: string;
27056
+ };
27057
+ Insert: {
27058
+ created_at?: string;
27059
+ id?: string;
27060
+ pot_size: string;
27061
+ seconds_per_cart: number;
27062
+ updated_at?: string;
27063
+ };
27064
+ Update: {
27065
+ created_at?: string;
27066
+ id?: string;
27067
+ pot_size?: string;
27068
+ seconds_per_cart?: number;
27069
+ updated_at?: string;
27070
+ };
27071
+ Relationships: [];
27072
+ };
27073
+ cart_planning_product_overrides: {
27074
+ Row: {
27075
+ created_at: string;
27076
+ id: string;
27077
+ max_party_share_per_layer_pct_override: number | null;
27078
+ never_mix: boolean;
27079
+ notes: string | null;
27080
+ product_id: string;
27081
+ updated_at: string;
27082
+ };
27083
+ Insert: {
27084
+ created_at?: string;
27085
+ id?: string;
27086
+ max_party_share_per_layer_pct_override?: number | null;
27087
+ never_mix?: boolean;
27088
+ notes?: string | null;
27089
+ product_id: string;
27090
+ updated_at?: string;
27091
+ };
27092
+ Update: {
27093
+ created_at?: string;
27094
+ id?: string;
27095
+ max_party_share_per_layer_pct_override?: number | null;
27096
+ never_mix?: boolean;
27097
+ notes?: string | null;
27098
+ product_id?: string;
27099
+ updated_at?: string;
27100
+ };
27101
+ Relationships: [{
27102
+ foreignKeyName: "cart_planning_product_overrides_product_id_fkey";
27103
+ columns: ["product_id"];
27104
+ isOneToOne: true;
27105
+ referencedRelation: "products";
27106
+ referencedColumns: ["id"];
27107
+ }];
27108
+ };
27109
+ cart_planning_settings: {
27110
+ Row: {
27111
+ allow_editing_after_pickstation_send: boolean;
27112
+ buffer_grouping_mode: string;
27113
+ combine_floriday_orders: boolean;
27114
+ combine_floriday_orders_window: string;
27115
+ combine_orders_scope: string;
27116
+ default_workers: number;
27117
+ id: number;
27118
+ max_beladingen_per_layer: number;
27119
+ max_customers_per_cart: number;
27120
+ max_one_customer_per_layer: boolean;
27121
+ max_party_share_per_layer_pct: number;
27122
+ optimization_strategy: string;
27123
+ own_cart_from_layers: number;
27124
+ pick_time_mode: string;
27125
+ plants_per_day: number;
27126
+ plants_per_hour: number;
27127
+ require_same_carrier: boolean;
27128
+ require_same_crate_type: boolean;
27129
+ require_same_delivery_date: boolean;
27130
+ require_same_delivery_location: boolean;
27131
+ updated_at: string;
27132
+ updated_by: string | null;
27133
+ };
27134
+ Insert: {
27135
+ allow_editing_after_pickstation_send?: boolean;
27136
+ buffer_grouping_mode?: string;
27137
+ combine_floriday_orders?: boolean;
27138
+ combine_floriday_orders_window?: string;
27139
+ combine_orders_scope?: string;
27140
+ default_workers?: number;
27141
+ id?: number;
27142
+ max_beladingen_per_layer?: number;
27143
+ max_customers_per_cart?: number;
27144
+ max_one_customer_per_layer?: boolean;
27145
+ max_party_share_per_layer_pct?: number;
27146
+ optimization_strategy?: string;
27147
+ own_cart_from_layers?: number;
27148
+ pick_time_mode?: string;
27149
+ plants_per_day?: number;
27150
+ plants_per_hour?: number;
27151
+ require_same_carrier?: boolean;
27152
+ require_same_crate_type?: boolean;
27153
+ require_same_delivery_date?: boolean;
27154
+ require_same_delivery_location?: boolean;
27155
+ updated_at?: string;
27156
+ updated_by?: string | null;
27157
+ };
27158
+ Update: {
27159
+ allow_editing_after_pickstation_send?: boolean;
27160
+ buffer_grouping_mode?: string;
27161
+ combine_floriday_orders?: boolean;
27162
+ combine_floriday_orders_window?: string;
27163
+ combine_orders_scope?: string;
27164
+ default_workers?: number;
27165
+ id?: number;
27166
+ max_beladingen_per_layer?: number;
27167
+ max_customers_per_cart?: number;
27168
+ max_one_customer_per_layer?: boolean;
27169
+ max_party_share_per_layer_pct?: number;
27170
+ optimization_strategy?: string;
27171
+ own_cart_from_layers?: number;
27172
+ pick_time_mode?: string;
27173
+ plants_per_day?: number;
27174
+ plants_per_hour?: number;
27175
+ require_same_carrier?: boolean;
27176
+ require_same_crate_type?: boolean;
27177
+ require_same_delivery_date?: boolean;
27178
+ require_same_delivery_location?: boolean;
27179
+ updated_at?: string;
27180
+ updated_by?: string | null;
27181
+ };
27182
+ Relationships: [];
27183
+ };
25304
27184
  cart_replan_queue: {
25305
27185
  Row: {
25306
27186
  attempts: number;
@@ -25331,6 +27211,39 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
25331
27211
  referencedColumns: ["id"];
25332
27212
  }];
25333
27213
  };
27214
+ cart_types: {
27215
+ Row: {
27216
+ created_at: string;
27217
+ id: string;
27218
+ is_default: boolean;
27219
+ layer_length_cm: number;
27220
+ layer_width_cm: number;
27221
+ layers_per_cart: number;
27222
+ name: string;
27223
+ updated_at: string;
27224
+ };
27225
+ Insert: {
27226
+ created_at?: string;
27227
+ id?: string;
27228
+ is_default?: boolean;
27229
+ layer_length_cm: number;
27230
+ layer_width_cm: number;
27231
+ layers_per_cart?: number;
27232
+ name: string;
27233
+ updated_at?: string;
27234
+ };
27235
+ Update: {
27236
+ created_at?: string;
27237
+ id?: string;
27238
+ is_default?: boolean;
27239
+ layer_length_cm?: number;
27240
+ layer_width_cm?: number;
27241
+ layers_per_cart?: number;
27242
+ name?: string;
27243
+ updated_at?: string;
27244
+ };
27245
+ Relationships: [];
27246
+ };
25334
27247
  catalog_articles_cache: {
25335
27248
  Row: {
25336
27249
  created_at: string;
@@ -25418,6 +27331,36 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
25418
27331
  };
25419
27332
  Relationships: [];
25420
27333
  };
27334
+ crate_types: {
27335
+ Row: {
27336
+ created_at: string;
27337
+ id: string;
27338
+ length_cm: number;
27339
+ name: string;
27340
+ plants_per_crate: number;
27341
+ updated_at: string;
27342
+ width_cm: number;
27343
+ };
27344
+ Insert: {
27345
+ created_at?: string;
27346
+ id?: string;
27347
+ length_cm: number;
27348
+ name: string;
27349
+ plants_per_crate?: number;
27350
+ updated_at?: string;
27351
+ width_cm: number;
27352
+ };
27353
+ Update: {
27354
+ created_at?: string;
27355
+ id?: string;
27356
+ length_cm?: number;
27357
+ name?: string;
27358
+ plants_per_crate?: number;
27359
+ updated_at?: string;
27360
+ width_cm?: number;
27361
+ };
27362
+ Relationships: [];
27363
+ };
25421
27364
  customer_audit_log: {
25422
27365
  Row: {
25423
27366
  action: string;
@@ -29957,6 +31900,288 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
29957
31900
  };
29958
31901
  Relationships: [];
29959
31902
  };
31903
+ itk_contact_persons: {
31904
+ Row: {
31905
+ created_at: string;
31906
+ customer_id: string;
31907
+ email: string | null;
31908
+ id: string;
31909
+ name: string;
31910
+ phone: string | null;
31911
+ role: string | null;
31912
+ updated_at: string;
31913
+ };
31914
+ Insert: {
31915
+ created_at?: string;
31916
+ customer_id: string;
31917
+ email?: string | null;
31918
+ id?: string;
31919
+ name: string;
31920
+ phone?: string | null;
31921
+ role?: string | null;
31922
+ updated_at?: string;
31923
+ };
31924
+ Update: {
31925
+ created_at?: string;
31926
+ customer_id?: string;
31927
+ email?: string | null;
31928
+ id?: string;
31929
+ name?: string;
31930
+ phone?: string | null;
31931
+ role?: string | null;
31932
+ updated_at?: string;
31933
+ };
31934
+ Relationships: [{
31935
+ foreignKeyName: "itk_contact_persons_customer_id_fkey";
31936
+ columns: ["customer_id"];
31937
+ isOneToOne: false;
31938
+ referencedRelation: "itk_customers";
31939
+ referencedColumns: ["id"];
31940
+ }];
31941
+ };
31942
+ itk_customer_dynamic_values: {
31943
+ Row: {
31944
+ created_at: string;
31945
+ customer_id: string;
31946
+ field_id: string;
31947
+ id: string;
31948
+ updated_at: string;
31949
+ value: string | null;
31950
+ };
31951
+ Insert: {
31952
+ created_at?: string;
31953
+ customer_id: string;
31954
+ field_id: string;
31955
+ id?: string;
31956
+ updated_at?: string;
31957
+ value?: string | null;
31958
+ };
31959
+ Update: {
31960
+ created_at?: string;
31961
+ customer_id?: string;
31962
+ field_id?: string;
31963
+ id?: string;
31964
+ updated_at?: string;
31965
+ value?: string | null;
31966
+ };
31967
+ Relationships: [{
31968
+ foreignKeyName: "itk_customer_dynamic_values_customer_id_fkey";
31969
+ columns: ["customer_id"];
31970
+ isOneToOne: false;
31971
+ referencedRelation: "itk_customers";
31972
+ referencedColumns: ["id"];
31973
+ }, {
31974
+ foreignKeyName: "itk_customer_dynamic_values_field_id_fkey";
31975
+ columns: ["field_id"];
31976
+ isOneToOne: false;
31977
+ referencedRelation: "itk_dynamic_fields";
31978
+ referencedColumns: ["id"];
31979
+ }];
31980
+ };
31981
+ itk_customer_notes: {
31982
+ Row: {
31983
+ body: string;
31984
+ created_at: string;
31985
+ created_by: string | null;
31986
+ customer_id: string;
31987
+ id: string;
31988
+ note_type: string;
31989
+ updated_at: string;
31990
+ };
31991
+ Insert: {
31992
+ body: string;
31993
+ created_at?: string;
31994
+ created_by?: string | null;
31995
+ customer_id: string;
31996
+ id?: string;
31997
+ note_type?: string;
31998
+ updated_at?: string;
31999
+ };
32000
+ Update: {
32001
+ body?: string;
32002
+ created_at?: string;
32003
+ created_by?: string | null;
32004
+ customer_id?: string;
32005
+ id?: string;
32006
+ note_type?: string;
32007
+ updated_at?: string;
32008
+ };
32009
+ Relationships: [{
32010
+ foreignKeyName: "itk_customer_notes_customer_id_fkey";
32011
+ columns: ["customer_id"];
32012
+ isOneToOne: false;
32013
+ referencedRelation: "itk_customers";
32014
+ referencedColumns: ["id"];
32015
+ }];
32016
+ };
32017
+ itk_customers: {
32018
+ Row: {
32019
+ billing_city: string | null;
32020
+ billing_postcode: string | null;
32021
+ billing_street: string | null;
32022
+ created_at: string;
32023
+ general_email: string | null;
32024
+ general_phone: string | null;
32025
+ id: string;
32026
+ legacy_customer_id: string | null;
32027
+ name: string;
32028
+ segment: import("../../../integrations/supabase/types").Database["public"]["Enums"]["itk_customer_segment"];
32029
+ updated_at: string;
32030
+ };
32031
+ Insert: {
32032
+ billing_city?: string | null;
32033
+ billing_postcode?: string | null;
32034
+ billing_street?: string | null;
32035
+ created_at?: string;
32036
+ general_email?: string | null;
32037
+ general_phone?: string | null;
32038
+ id?: string;
32039
+ legacy_customer_id?: string | null;
32040
+ name: string;
32041
+ segment?: import("../../../integrations/supabase/types").Database["public"]["Enums"]["itk_customer_segment"];
32042
+ updated_at?: string;
32043
+ };
32044
+ Update: {
32045
+ billing_city?: string | null;
32046
+ billing_postcode?: string | null;
32047
+ billing_street?: string | null;
32048
+ created_at?: string;
32049
+ general_email?: string | null;
32050
+ general_phone?: string | null;
32051
+ id?: string;
32052
+ legacy_customer_id?: string | null;
32053
+ name?: string;
32054
+ segment?: import("../../../integrations/supabase/types").Database["public"]["Enums"]["itk_customer_segment"];
32055
+ updated_at?: string;
32056
+ };
32057
+ Relationships: [{
32058
+ foreignKeyName: "itk_customers_legacy_customer_id_fkey";
32059
+ columns: ["legacy_customer_id"];
32060
+ isOneToOne: false;
32061
+ referencedRelation: "customers";
32062
+ referencedColumns: ["id"];
32063
+ }];
32064
+ };
32065
+ itk_dynamic_fields: {
32066
+ Row: {
32067
+ created_at: string;
32068
+ field_name: string;
32069
+ field_type: import("../../../integrations/supabase/types").Database["public"]["Enums"]["itk_dynamic_field_type"];
32070
+ id: string;
32071
+ options: import("../../../integrations/supabase/types").Json;
32072
+ sort_order: number;
32073
+ updated_at: string;
32074
+ };
32075
+ Insert: {
32076
+ created_at?: string;
32077
+ field_name: string;
32078
+ field_type?: import("../../../integrations/supabase/types").Database["public"]["Enums"]["itk_dynamic_field_type"];
32079
+ id?: string;
32080
+ options?: import("../../../integrations/supabase/types").Json;
32081
+ sort_order?: number;
32082
+ updated_at?: string;
32083
+ };
32084
+ Update: {
32085
+ created_at?: string;
32086
+ field_name?: string;
32087
+ field_type?: import("../../../integrations/supabase/types").Database["public"]["Enums"]["itk_dynamic_field_type"];
32088
+ id?: string;
32089
+ options?: import("../../../integrations/supabase/types").Json;
32090
+ sort_order?: number;
32091
+ updated_at?: string;
32092
+ };
32093
+ Relationships: [];
32094
+ };
32095
+ itk_work_locations: {
32096
+ Row: {
32097
+ city: string | null;
32098
+ created_at: string;
32099
+ customer_id: string;
32100
+ id: string;
32101
+ instructions: string | null;
32102
+ label: string;
32103
+ latitude: number | null;
32104
+ longitude: number | null;
32105
+ postcode: string | null;
32106
+ street: string | null;
32107
+ updated_at: string;
32108
+ };
32109
+ Insert: {
32110
+ city?: string | null;
32111
+ created_at?: string;
32112
+ customer_id: string;
32113
+ id?: string;
32114
+ instructions?: string | null;
32115
+ label: string;
32116
+ latitude?: number | null;
32117
+ longitude?: number | null;
32118
+ postcode?: string | null;
32119
+ street?: string | null;
32120
+ updated_at?: string;
32121
+ };
32122
+ Update: {
32123
+ city?: string | null;
32124
+ created_at?: string;
32125
+ customer_id?: string;
32126
+ id?: string;
32127
+ instructions?: string | null;
32128
+ label?: string;
32129
+ latitude?: number | null;
32130
+ longitude?: number | null;
32131
+ postcode?: string | null;
32132
+ street?: string | null;
32133
+ updated_at?: string;
32134
+ };
32135
+ Relationships: [{
32136
+ foreignKeyName: "itk_work_locations_customer_id_fkey";
32137
+ columns: ["customer_id"];
32138
+ isOneToOne: false;
32139
+ referencedRelation: "itk_customers";
32140
+ referencedColumns: ["id"];
32141
+ }];
32142
+ };
32143
+ leave_requests: {
32144
+ Row: {
32145
+ created_at: string;
32146
+ end_date: string;
32147
+ id: string;
32148
+ reason: string | null;
32149
+ start_date: string;
32150
+ status: string;
32151
+ tenant_id: string;
32152
+ updated_at: string;
32153
+ user_id: string;
32154
+ };
32155
+ Insert: {
32156
+ created_at?: string;
32157
+ end_date: string;
32158
+ id?: string;
32159
+ reason?: string | null;
32160
+ start_date: string;
32161
+ status?: string;
32162
+ tenant_id?: string;
32163
+ updated_at?: string;
32164
+ user_id: string;
32165
+ };
32166
+ Update: {
32167
+ created_at?: string;
32168
+ end_date?: string;
32169
+ id?: string;
32170
+ reason?: string | null;
32171
+ start_date?: string;
32172
+ status?: string;
32173
+ tenant_id?: string;
32174
+ updated_at?: string;
32175
+ user_id?: string;
32176
+ };
32177
+ Relationships: [{
32178
+ foreignKeyName: "leave_requests_user_id_fkey";
32179
+ columns: ["user_id"];
32180
+ isOneToOne: false;
32181
+ referencedRelation: "monteurs";
32182
+ referencedColumns: ["id"];
32183
+ }];
32184
+ };
29960
32185
  local_customer_agreements: {
29961
32186
  Row: {
29962
32187
  base_price: number | null;
@@ -30608,6 +32833,33 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
30608
32833
  };
30609
32834
  Relationships: [];
30610
32835
  };
32836
+ module_permissions: {
32837
+ Row: {
32838
+ created_at: string;
32839
+ id: string;
32840
+ module_id: string;
32841
+ permission: string;
32842
+ role: import("../../../integrations/supabase/types").Database["public"]["Enums"]["app_role"];
32843
+ updated_at: string;
32844
+ };
32845
+ Insert: {
32846
+ created_at?: string;
32847
+ id?: string;
32848
+ module_id: string;
32849
+ permission: string;
32850
+ role: import("../../../integrations/supabase/types").Database["public"]["Enums"]["app_role"];
32851
+ updated_at?: string;
32852
+ };
32853
+ Update: {
32854
+ created_at?: string;
32855
+ id?: string;
32856
+ module_id?: string;
32857
+ permission?: string;
32858
+ role?: import("../../../integrations/supabase/types").Database["public"]["Enums"]["app_role"];
32859
+ updated_at?: string;
32860
+ };
32861
+ Relationships: [];
32862
+ };
30611
32863
  monteurs: {
30612
32864
  Row: {
30613
32865
  avatar_url: string | null;
@@ -31337,6 +33589,42 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
31337
33589
  };
31338
33590
  Relationships: [];
31339
33591
  };
33592
+ order_buffers: {
33593
+ Row: {
33594
+ buffer_key: string;
33595
+ created_at: string;
33596
+ customer_id: string | null;
33597
+ grouping_mode: string;
33598
+ id: string;
33599
+ pickup_date: string | null;
33600
+ pickup_location: string | null;
33601
+ plan_locked_at: string | null;
33602
+ updated_at: string;
33603
+ };
33604
+ Insert: {
33605
+ buffer_key: string;
33606
+ created_at?: string;
33607
+ customer_id?: string | null;
33608
+ grouping_mode: string;
33609
+ id?: string;
33610
+ pickup_date?: string | null;
33611
+ pickup_location?: string | null;
33612
+ plan_locked_at?: string | null;
33613
+ updated_at?: string;
33614
+ };
33615
+ Update: {
33616
+ buffer_key?: string;
33617
+ created_at?: string;
33618
+ customer_id?: string | null;
33619
+ grouping_mode?: string;
33620
+ id?: string;
33621
+ pickup_date?: string | null;
33622
+ pickup_location?: string | null;
33623
+ plan_locked_at?: string | null;
33624
+ updated_at?: string;
33625
+ };
33626
+ Relationships: [];
33627
+ };
31340
33628
  order_cart_items: {
31341
33629
  Row: {
31342
33630
  cart_id: string;
@@ -31403,6 +33691,7 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
31403
33691
  order_carts: {
31404
33692
  Row: {
31405
33693
  algorithm_version: number;
33694
+ buffer_id: string | null;
31406
33695
  cart_number: number;
31407
33696
  created_at: string;
31408
33697
  id: string;
@@ -31410,13 +33699,14 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
31410
33699
  is_complete: boolean;
31411
33700
  notes: string | null;
31412
33701
  occupancy_pct: number;
31413
- order_id: string;
33702
+ order_id: string | null;
31414
33703
  source: string;
31415
33704
  total_layers_used: number;
31416
33705
  updated_at: string;
31417
33706
  };
31418
33707
  Insert: {
31419
33708
  algorithm_version?: number;
33709
+ buffer_id?: string | null;
31420
33710
  cart_number: number;
31421
33711
  created_at?: string;
31422
33712
  id?: string;
@@ -31424,13 +33714,14 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
31424
33714
  is_complete?: boolean;
31425
33715
  notes?: string | null;
31426
33716
  occupancy_pct?: number;
31427
- order_id: string;
33717
+ order_id?: string | null;
31428
33718
  source?: string;
31429
33719
  total_layers_used?: number;
31430
33720
  updated_at?: string;
31431
33721
  };
31432
33722
  Update: {
31433
33723
  algorithm_version?: number;
33724
+ buffer_id?: string | null;
31434
33725
  cart_number?: number;
31435
33726
  created_at?: string;
31436
33727
  id?: string;
@@ -31438,12 +33729,18 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
31438
33729
  is_complete?: boolean;
31439
33730
  notes?: string | null;
31440
33731
  occupancy_pct?: number;
31441
- order_id?: string;
33732
+ order_id?: string | null;
31442
33733
  source?: string;
31443
33734
  total_layers_used?: number;
31444
33735
  updated_at?: string;
31445
33736
  };
31446
33737
  Relationships: [{
33738
+ foreignKeyName: "order_carts_buffer_id_fkey";
33739
+ columns: ["buffer_id"];
33740
+ isOneToOne: false;
33741
+ referencedRelation: "order_buffers";
33742
+ referencedColumns: ["id"];
33743
+ }, {
31447
33744
  foreignKeyName: "order_carts_order_id_fkey";
31448
33745
  columns: ["order_id"];
31449
33746
  isOneToOne: false;
@@ -31580,15 +33877,117 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
31580
33877
  };
31581
33878
  Relationships: [];
31582
33879
  };
33880
+ order_shipment_items: {
33881
+ Row: {
33882
+ created_at: string;
33883
+ id: string;
33884
+ order_item_id: string;
33885
+ product_id: string | null;
33886
+ product_name: string;
33887
+ quantity: number;
33888
+ shipment_id: string;
33889
+ updated_at: string;
33890
+ };
33891
+ Insert: {
33892
+ created_at?: string;
33893
+ id?: string;
33894
+ order_item_id: string;
33895
+ product_id?: string | null;
33896
+ product_name: string;
33897
+ quantity: number;
33898
+ shipment_id: string;
33899
+ updated_at?: string;
33900
+ };
33901
+ Update: {
33902
+ created_at?: string;
33903
+ id?: string;
33904
+ order_item_id?: string;
33905
+ product_id?: string | null;
33906
+ product_name?: string;
33907
+ quantity?: number;
33908
+ shipment_id?: string;
33909
+ updated_at?: string;
33910
+ };
33911
+ Relationships: [{
33912
+ foreignKeyName: "order_shipment_items_order_item_id_fkey";
33913
+ columns: ["order_item_id"];
33914
+ isOneToOne: false;
33915
+ referencedRelation: "order_items";
33916
+ referencedColumns: ["id"];
33917
+ }, {
33918
+ foreignKeyName: "order_shipment_items_shipment_id_fkey";
33919
+ columns: ["shipment_id"];
33920
+ isOneToOne: false;
33921
+ referencedRelation: "order_shipments";
33922
+ referencedColumns: ["id"];
33923
+ }];
33924
+ };
33925
+ order_shipments: {
33926
+ Row: {
33927
+ carrier_id: string | null;
33928
+ created_at: string;
33929
+ delivery_date: string | null;
33930
+ delivery_location_id: string | null;
33931
+ id: string;
33932
+ notes: string | null;
33933
+ order_id: string;
33934
+ shipment_number: number;
33935
+ shipped_at: string | null;
33936
+ status: string;
33937
+ updated_at: string;
33938
+ };
33939
+ Insert: {
33940
+ carrier_id?: string | null;
33941
+ created_at?: string;
33942
+ delivery_date?: string | null;
33943
+ delivery_location_id?: string | null;
33944
+ id?: string;
33945
+ notes?: string | null;
33946
+ order_id: string;
33947
+ shipment_number: number;
33948
+ shipped_at?: string | null;
33949
+ status?: string;
33950
+ updated_at?: string;
33951
+ };
33952
+ Update: {
33953
+ carrier_id?: string | null;
33954
+ created_at?: string;
33955
+ delivery_date?: string | null;
33956
+ delivery_location_id?: string | null;
33957
+ id?: string;
33958
+ notes?: string | null;
33959
+ order_id?: string;
33960
+ shipment_number?: number;
33961
+ shipped_at?: string | null;
33962
+ status?: string;
33963
+ updated_at?: string;
33964
+ };
33965
+ Relationships: [{
33966
+ foreignKeyName: "order_shipments_carrier_id_fkey";
33967
+ columns: ["carrier_id"];
33968
+ isOneToOne: false;
33969
+ referencedRelation: "carriers";
33970
+ referencedColumns: ["id"];
33971
+ }, {
33972
+ foreignKeyName: "order_shipments_order_id_fkey";
33973
+ columns: ["order_id"];
33974
+ isOneToOne: false;
33975
+ referencedRelation: "orders";
33976
+ referencedColumns: ["id"];
33977
+ }];
33978
+ };
31583
33979
  orders: {
31584
33980
  Row: {
33981
+ buffer_id: string | null;
31585
33982
  created_at: string;
31586
33983
  custom_fields: import("../../../integrations/supabase/types").Json;
31587
33984
  customer_id: string | null;
31588
33985
  customer_name: string;
31589
33986
  deleted_at: string | null;
31590
- delivery_date: string;
33987
+ delivery_date: string | null;
33988
+ floriday_sales_order_id: string | null;
31591
33989
  id: string;
33990
+ is_reservation: boolean;
31592
33991
  notes: string | null;
31593
33992
  order_date: string;
31594
33993
  order_number: string;
@@ -31600,13 +33999,16 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
31600
33999
  updated_at: string;
31601
34000
  };
31602
34001
  Insert: {
34002
+ buffer_id?: string | null;
31603
34003
  created_at?: string;
31604
34004
  custom_fields?: import("../../../integrations/supabase/types").Json;
31605
34005
  customer_id?: string | null;
31606
34006
  customer_name?: string;
31607
34007
  deleted_at?: string | null;
31608
- delivery_date: string;
34008
+ delivery_date?: string | null;
34009
+ floriday_sales_order_id?: string | null;
31609
34010
  id?: string;
34011
+ is_reservation?: boolean;
31610
34012
  notes?: string | null;
31611
34013
  order_date?: string;
31612
34014
  order_number: string;
@@ -31618,13 +34020,16 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
31618
34020
  updated_at?: string;
31619
34021
  };
31620
34022
  Update: {
34023
+ buffer_id?: string | null;
31621
34024
  created_at?: string;
31622
34025
  custom_fields?: import("../../../integrations/supabase/types").Json;
31623
34026
  customer_id?: string | null;
31624
34027
  customer_name?: string;
31625
34028
  deleted_at?: string | null;
31626
- delivery_date?: string;
34029
+ delivery_date?: string | null;
34030
+ floriday_sales_order_id?: string | null;
31627
34031
  id?: string;
34032
+ is_reservation?: boolean;
31628
34033
  notes?: string | null;
31629
34034
  order_date?: string;
31630
34035
  order_number?: string;
@@ -31636,6 +34041,12 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
31636
34041
  updated_at?: string;
31637
34042
  };
31638
34043
  Relationships: [{
34044
+ foreignKeyName: "orders_buffer_id_fkey";
34045
+ columns: ["buffer_id"];
34046
+ isOneToOne: false;
34047
+ referencedRelation: "order_buffers";
34048
+ referencedColumns: ["id"];
34049
+ }, {
31639
34050
  foreignKeyName: "orders_customer_id_fkey";
31640
34051
  columns: ["customer_id"];
31641
34052
  isOneToOne: false;
@@ -31899,6 +34310,8 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
31899
34310
  Row: {
31900
34311
  created_at: string;
31901
34312
  description: string | null;
34313
+ head_product_id: string | null;
34314
+ head_trade_item_floriday_id: string | null;
31902
34315
  id: string;
31903
34316
  is_active: boolean;
31904
34317
  name: string;
@@ -31908,6 +34321,8 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
31908
34321
  Insert: {
31909
34322
  created_at?: string;
31910
34323
  description?: string | null;
34324
+ head_product_id?: string | null;
34325
+ head_trade_item_floriday_id?: string | null;
31911
34326
  id?: string;
31912
34327
  is_active?: boolean;
31913
34328
  name: string;
@@ -31917,13 +34332,21 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
31917
34332
  Update: {
31918
34333
  created_at?: string;
31919
34334
  description?: string | null;
34335
+ head_product_id?: string | null;
34336
+ head_trade_item_floriday_id?: string | null;
31920
34337
  id?: string;
31921
34338
  is_active?: boolean;
31922
34339
  name?: string;
31923
34340
  tenant_id?: string;
31924
34341
  updated_at?: string;
31925
34342
  };
31926
- Relationships: [];
34343
+ Relationships: [{
34344
+ foreignKeyName: "product_groups_head_product_id_fkey";
34345
+ columns: ["head_product_id"];
34346
+ isOneToOne: false;
34347
+ referencedRelation: "products";
34348
+ referencedColumns: ["id"];
34349
+ }];
31927
34350
  };
31928
34351
  products: {
31929
34352
  Row: {
@@ -34474,6 +36897,7 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
34474
36897
  internal_notes: string | null;
34475
36898
  parent_werkbon_id: string | null;
34476
36899
  parsed_payload: import("../../../integrations/supabase/types").Json | null;
36900
+ planning_status: string;
34477
36901
  project_number: string | null;
34478
36902
  room_number: string | null;
34479
36903
  scheduled_end_time: string | null;
@@ -34481,6 +36905,7 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
34481
36905
  sequence_number: number;
34482
36906
  source_pdf_path: string | null;
34483
36907
  status: string;
36908
+ technician_id: string | null;
34484
36909
  technician_notes: string | null;
34485
36910
  technician_notes_raw: string | null;
34486
36911
  technician_task_description: string | null;
@@ -34501,6 +36926,7 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
34501
36926
  internal_notes?: string | null;
34502
36927
  parent_werkbon_id?: string | null;
34503
36928
  parsed_payload?: import("../../../integrations/supabase/types").Json | null;
36929
+ planning_status?: string;
34504
36930
  project_number?: string | null;
34505
36931
  room_number?: string | null;
34506
36932
  scheduled_end_time?: string | null;
@@ -34508,6 +36934,7 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
34508
36934
  sequence_number: number;
34509
36935
  source_pdf_path?: string | null;
34510
36936
  status?: string;
36937
+ technician_id?: string | null;
34511
36938
  technician_notes?: string | null;
34512
36939
  technician_notes_raw?: string | null;
34513
36940
  technician_task_description?: string | null;
@@ -34528,6 +36955,7 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
34528
36955
  internal_notes?: string | null;
34529
36956
  parent_werkbon_id?: string | null;
34530
36957
  parsed_payload?: import("../../../integrations/supabase/types").Json | null;
36958
+ planning_status?: string;
34531
36959
  project_number?: string | null;
34532
36960
  room_number?: string | null;
34533
36961
  scheduled_end_time?: string | null;
@@ -34535,6 +36963,7 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
34535
36963
  sequence_number?: number;
34536
36964
  source_pdf_path?: string | null;
34537
36965
  status?: string;
36966
+ technician_id?: string | null;
34538
36967
  technician_notes?: string | null;
34539
36968
  technician_notes_raw?: string | null;
34540
36969
  technician_task_description?: string | null;
@@ -34543,17 +36972,17 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
34543
36972
  work_address?: string | null;
34544
36973
  };
34545
36974
  Relationships: [{
34546
- foreignKeyName: "werkbonnen_customer_id_fkey";
34547
- columns: ["customer_id"];
34548
- isOneToOne: false;
34549
- referencedRelation: "customers";
34550
- referencedColumns: ["id"];
34551
- }, {
34552
36975
  foreignKeyName: "werkbonnen_parent_werkbon_id_fkey";
34553
36976
  columns: ["parent_werkbon_id"];
34554
36977
  isOneToOne: false;
34555
36978
  referencedRelation: "werkbonnen";
34556
36979
  referencedColumns: ["id"];
36980
+ }, {
36981
+ foreignKeyName: "werkbonnen_technician_id_fkey";
36982
+ columns: ["technician_id"];
36983
+ isOneToOne: false;
36984
+ referencedRelation: "monteurs";
36985
+ referencedColumns: ["id"];
34557
36986
  }];
34558
36987
  };
34559
36988
  work_order_monteurs: {
@@ -35272,6 +37701,21 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
35272
37701
  };
35273
37702
  Returns: string;
35274
37703
  };
37704
+ ai_usage_by_module: {
37705
+ Args: {
37706
+ _from: string;
37707
+ _to: string;
37708
+ };
37709
+ Returns: {
37710
+ calls: number;
37711
+ consumer_module_id: string;
37712
+ cost_usd: number;
37713
+ errors: number;
37714
+ input_tokens: number;
37715
+ output_tokens: number;
37716
+ total_tokens: number;
37717
+ }[];
37718
+ };
35275
37719
  apply_stock_consumption: {
35276
37720
  Args: {
35277
37721
  p_order_id: string;
@@ -35420,6 +37864,12 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
35420
37864
  Args: never;
35421
37865
  Returns: string;
35422
37866
  };
37867
+ custom_access_token_hook: {
37868
+ Args: {
37869
+ event: import("../../../integrations/supabase/types").Json;
37870
+ };
37871
+ Returns: import("../../../integrations/supabase/types").Json;
37872
+ };
35423
37873
  dashboard_alert_counts: {
35424
37874
  Args: never;
35425
37875
  Returns: import("../../../integrations/supabase/types").Json;
@@ -35755,6 +38205,14 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
35755
38205
  };
35756
38206
  Returns: string;
35757
38207
  };
38208
+ has_module_permission: {
38209
+ Args: {
38210
+ _min: string;
38211
+ _module_id: string;
38212
+ _user_id: string;
38213
+ };
38214
+ Returns: boolean;
38215
+ };
35758
38216
  has_role: {
35759
38217
  Args: {
35760
38218
  _role: import("../../../integrations/supabase/types").Database["public"]["Enums"]["app_role"];
@@ -35780,6 +38238,20 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
35780
38238
  };
35781
38239
  Returns: boolean;
35782
38240
  };
38241
+ jwt_has_role: {
38242
+ Args: {
38243
+ _role: import("../../../integrations/supabase/types").Database["public"]["Enums"]["app_role"];
38244
+ };
38245
+ Returns: boolean;
38246
+ };
38247
+ list_monteurs: {
38248
+ Args: never;
38249
+ Returns: {
38250
+ display_name: string;
38251
+ email: string;
38252
+ user_id: string;
38253
+ }[];
38254
+ };
35783
38255
  local_effective_price: {
35784
38256
  Args: {
35785
38257
  _customer_id: string;
@@ -35796,6 +38268,22 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
35796
38268
  source_id: string;
35797
38269
  }[];
35798
38270
  };
38271
+ log_ai_call: {
38272
+ Args: {
38273
+ _consumer_module_id: string;
38274
+ _cost_usd: number;
38275
+ _duration_ms: number;
38276
+ _error_code: string;
38277
+ _error_message: string;
38278
+ _input_tokens: number;
38279
+ _model_slug: string;
38280
+ _output_tokens: number;
38281
+ _provider_slug: string;
38282
+ _status: string;
38283
+ _total_tokens: number;
38284
+ };
38285
+ Returns: string;
38286
+ };
35799
38287
  mark_offer_clicked: {
35800
38288
  Args: {
35801
38289
  p_code: string;
@@ -35808,6 +38296,12 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
35808
38296
  };
35809
38297
  Returns: undefined;
35810
38298
  };
38299
+ mark_shipment_shipped: {
38300
+ Args: {
38301
+ p_shipment_id: string;
38302
+ };
38303
+ Returns: undefined;
38304
+ };
35811
38305
  next_order_number: {
35812
38306
  Args: {
35813
38307
  p_prefix: string;
@@ -36284,9 +38778,11 @@ export declare const getTwinfieldSyncStatus: import("@tanstack/start-client-core
36284
38778
  };
36285
38779
  };
36286
38780
  Enums: {
36287
- app_role: "admin" | "manager" | "warehouse" | "sales" | "developer" | "receptie" | "monteur";
38781
+ app_role: "admin" | "planner" | "monteur" | "administratie" | "ai_admin";
36288
38782
  exact_env: "staging" | "live";
36289
38783
  exact_push_status: "pending" | "sent" | "error";
38784
+ itk_customer_segment: "Business" | "Private";
38785
+ itk_dynamic_field_type: "text" | "select" | "date" | "checkbox";
36290
38786
  quote_status: "concept" | "verzonden" | "bekeken" | "in_behandeling" | "geaccepteerd" | "afgewezen" | "verlopen" | "gearchiveerd";
36291
38787
  };
36292
38788
  CompositeTypes: { [_ in never]: never; };