@flowselections/floriday-klanten-module 1.0.15 → 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 (102) hide show
  1. package/dist-lib/assets/floriday-logo.png.asset.json +11 -0
  2. package/dist-lib/components/klanten/BackLink.d.ts +12 -0
  3. package/dist-lib/components/klanten/BackLink.d.ts.map +1 -0
  4. package/dist-lib/components/klanten/BackLink.js +12 -0
  5. package/dist-lib/components/klanten/FloridayAssortmentTab.d.ts +4 -0
  6. package/dist-lib/components/klanten/FloridayAssortmentTab.d.ts.map +1 -0
  7. package/dist-lib/components/klanten/FloridayAssortmentTab.js +80 -0
  8. package/dist-lib/components/klanten/FloridayDeeplinkButton.d.ts +8 -0
  9. package/dist-lib/components/klanten/FloridayDeeplinkButton.d.ts.map +1 -0
  10. package/dist-lib/components/klanten/FloridayDeeplinkButton.js +9 -0
  11. package/dist-lib/components/klanten/GroupedKlantDetail.d.ts.map +1 -1
  12. package/dist-lib/components/klanten/GroupedKlantDetail.js +19 -5
  13. package/dist-lib/components/klanten/ImportKlanten.d.ts.map +1 -1
  14. package/dist-lib/components/klanten/ImportKlanten.js +3 -2
  15. package/dist-lib/components/klanten/KlantDetail.d.ts.map +1 -1
  16. package/dist-lib/components/klanten/KlantDetail.js +9 -3
  17. package/dist-lib/components/klanten/KlantenOverzicht.d.ts.map +1 -1
  18. package/dist-lib/components/klanten/KlantenOverzicht.js +9 -6
  19. package/dist-lib/components/klanten/NetwerkPagina.d.ts.map +1 -1
  20. package/dist-lib/components/klanten/NetwerkPagina.js +21 -18
  21. package/dist-lib/components/klanten/NieuweKlant.d.ts.map +1 -1
  22. package/dist-lib/components/klanten/NieuweKlant.js +23 -8
  23. package/dist-lib/components/klanten/PriceGroupBadges.d.ts +7 -0
  24. package/dist-lib/components/klanten/PriceGroupBadges.d.ts.map +1 -0
  25. package/dist-lib/components/klanten/PriceGroupBadges.js +13 -0
  26. package/dist-lib/components/klanten/SyncStatusChip.d.ts +4 -0
  27. package/dist-lib/components/klanten/SyncStatusChip.d.ts.map +1 -0
  28. package/dist-lib/components/klanten/SyncStatusChip.js +49 -0
  29. package/dist-lib/components/klanten/pricegroups/CustomerPickerDialog.d.ts +8 -0
  30. package/dist-lib/components/klanten/pricegroups/CustomerPickerDialog.d.ts.map +1 -0
  31. package/dist-lib/components/klanten/pricegroups/CustomerPickerDialog.js +75 -0
  32. package/dist-lib/components/klanten/pricegroups/PriceGroupFormPage.d.ts +4 -0
  33. package/dist-lib/components/klanten/pricegroups/PriceGroupFormPage.d.ts.map +1 -0
  34. package/dist-lib/components/klanten/pricegroups/PriceGroupFormPage.js +269 -0
  35. package/dist-lib/components/klanten/pricegroups/PriceGroupsPage.d.ts +2 -0
  36. package/dist-lib/components/klanten/pricegroups/PriceGroupsPage.d.ts.map +1 -0
  37. package/dist-lib/components/klanten/pricegroups/PriceGroupsPage.js +133 -0
  38. package/dist-lib/components/klanten/pricegroups/ProductPickerDialog.d.ts +8 -0
  39. package/dist-lib/components/klanten/pricegroups/ProductPickerDialog.d.ts.map +1 -0
  40. package/dist-lib/components/klanten/pricegroups/ProductPickerDialog.js +18 -0
  41. package/dist-lib/index.d.ts +1 -0
  42. package/dist-lib/index.d.ts.map +1 -1
  43. package/dist-lib/index.js +6 -1
  44. package/dist-lib/integrations/supabase/auth-middleware.d.ts +1684 -93
  45. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  46. package/dist-lib/integrations/supabase/client.d.ts +1684 -93
  47. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  48. package/dist-lib/integrations/supabase/client.js +4 -3
  49. package/dist-lib/integrations/supabase/client.server.d.ts +1684 -93
  50. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  51. package/dist-lib/integrations/supabase/types.d.ts +1712 -72
  52. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  53. package/dist-lib/integrations/supabase/types.js +3 -9
  54. package/dist-lib/lib/accounting/twinfield/client.server.d.ts +21 -0
  55. package/dist-lib/lib/accounting/twinfield/client.server.d.ts.map +1 -0
  56. package/dist-lib/lib/accounting/twinfield/client.server.js +171 -0
  57. package/dist-lib/lib/accounting/twinfield/mapping.d.ts +46 -0
  58. package/dist-lib/lib/accounting/twinfield/mapping.d.ts.map +1 -0
  59. package/dist-lib/lib/accounting/twinfield/mapping.js +121 -0
  60. package/dist-lib/lib/accounting/twinfield/worker.functions.d.ts +38814 -0
  61. package/dist-lib/lib/accounting/twinfield/worker.functions.d.ts.map +1 -0
  62. package/dist-lib/lib/accounting/twinfield/worker.functions.js +48 -0
  63. package/dist-lib/lib/accounting/twinfield/worker.server.d.ts +12 -0
  64. package/dist-lib/lib/accounting/twinfield/worker.server.d.ts.map +1 -0
  65. package/dist-lib/lib/accounting/twinfield/worker.server.js +124 -0
  66. package/dist-lib/lib/accounting.functions.d.ts +4806 -33
  67. package/dist-lib/lib/accounting.functions.d.ts.map +1 -1
  68. package/dist-lib/lib/customer-analytics.functions.d.ts +1684 -93
  69. package/dist-lib/lib/customer-analytics.functions.d.ts.map +1 -1
  70. package/dist-lib/lib/customer-schemas.d.ts +2 -0
  71. package/dist-lib/lib/customer-schemas.d.ts.map +1 -1
  72. package/dist-lib/lib/customer-schemas.js +1 -0
  73. package/dist-lib/lib/customers.functions.d.ts +25793 -163
  74. package/dist-lib/lib/customers.functions.d.ts.map +1 -1
  75. package/dist-lib/lib/customers.functions.js +92 -4
  76. package/dist-lib/lib/delivery-locations.functions.d.ts +6408 -44
  77. package/dist-lib/lib/delivery-locations.functions.d.ts.map +1 -1
  78. package/dist-lib/lib/external-customers.functions.d.ts +6408 -44
  79. package/dist-lib/lib/external-customers.functions.d.ts.map +1 -1
  80. package/dist-lib/lib/floriday-assortment.functions.d.ts +12959 -0
  81. package/dist-lib/lib/floriday-assortment.functions.d.ts.map +1 -0
  82. package/dist-lib/lib/floriday-assortment.functions.js +213 -0
  83. package/dist-lib/lib/floriday-discounts.functions.d.ts +3398 -216
  84. package/dist-lib/lib/floriday-discounts.functions.d.ts.map +1 -1
  85. package/dist-lib/lib/floriday-trade-items.functions.d.ts +12943 -0
  86. package/dist-lib/lib/floriday-trade-items.functions.d.ts.map +1 -0
  87. package/dist-lib/lib/floriday-trade-items.functions.js +107 -0
  88. package/dist-lib/lib/local-discounts.functions.d.ts +11216 -79
  89. package/dist-lib/lib/local-discounts.functions.d.ts.map +1 -1
  90. package/dist-lib/lib/overdue-invoices.functions.d.ts +1684 -93
  91. package/dist-lib/lib/overdue-invoices.functions.d.ts.map +1 -1
  92. package/dist-lib/lib/price-groups-local.functions.d.ts +90665 -0
  93. package/dist-lib/lib/price-groups-local.functions.d.ts.map +1 -0
  94. package/dist-lib/lib/price-groups-local.functions.js +148 -0
  95. package/dist-lib/lib/price-groups.functions.d.ts +12952 -0
  96. package/dist-lib/lib/price-groups.functions.d.ts.map +1 -0
  97. package/dist-lib/lib/price-groups.functions.js +115 -0
  98. package/dist-lib/lib/pricing.d.ts +24 -0
  99. package/dist-lib/lib/pricing.d.ts.map +1 -0
  100. package/dist-lib/lib/pricing.js +60 -0
  101. package/package.json +8 -4
  102. package/public/flowselections-assets/Klanten/floriday-logo.png +0 -0
@@ -247,6 +247,327 @@ export type Database = {
247
247
  };
248
248
  Relationships: [];
249
249
  };
250
+ ai_admin_credentials: {
251
+ Row: {
252
+ active: boolean;
253
+ admin_key: string;
254
+ created_at: string;
255
+ id: string;
256
+ label: string;
257
+ provider_id: string;
258
+ updated_at: string;
259
+ };
260
+ Insert: {
261
+ active?: boolean;
262
+ admin_key: string;
263
+ created_at?: string;
264
+ id?: string;
265
+ label: string;
266
+ provider_id: string;
267
+ updated_at?: string;
268
+ };
269
+ Update: {
270
+ active?: boolean;
271
+ admin_key?: string;
272
+ created_at?: string;
273
+ id?: string;
274
+ label?: string;
275
+ provider_id?: string;
276
+ updated_at?: string;
277
+ };
278
+ Relationships: [
279
+ {
280
+ foreignKeyName: "ai_admin_credentials_provider_id_fkey";
281
+ columns: ["provider_id"];
282
+ isOneToOne: true;
283
+ referencedRelation: "ai_providers";
284
+ referencedColumns: ["id"];
285
+ }
286
+ ];
287
+ };
288
+ ai_call_log: {
289
+ Row: {
290
+ consumer_module_id: string;
291
+ cost_usd: number | null;
292
+ created_at: string;
293
+ created_by: string | null;
294
+ duration_ms: number | null;
295
+ error_code: string | null;
296
+ error_message: string | null;
297
+ id: string;
298
+ input_tokens: number;
299
+ model_slug: string | null;
300
+ output_tokens: number;
301
+ provider_slug: string | null;
302
+ status: string;
303
+ total_tokens: number;
304
+ };
305
+ Insert: {
306
+ consumer_module_id: string;
307
+ cost_usd?: number | null;
308
+ created_at?: string;
309
+ created_by?: string | null;
310
+ duration_ms?: number | null;
311
+ error_code?: string | null;
312
+ error_message?: string | null;
313
+ id?: string;
314
+ input_tokens?: number;
315
+ model_slug?: string | null;
316
+ output_tokens?: number;
317
+ provider_slug?: string | null;
318
+ status: string;
319
+ total_tokens?: number;
320
+ };
321
+ Update: {
322
+ consumer_module_id?: string;
323
+ cost_usd?: number | null;
324
+ created_at?: string;
325
+ created_by?: string | null;
326
+ duration_ms?: number | null;
327
+ error_code?: string | null;
328
+ error_message?: string | null;
329
+ id?: string;
330
+ input_tokens?: number;
331
+ model_slug?: string | null;
332
+ output_tokens?: number;
333
+ provider_slug?: string | null;
334
+ status?: string;
335
+ total_tokens?: number;
336
+ };
337
+ Relationships: [];
338
+ };
339
+ ai_credentials: {
340
+ Row: {
341
+ active: boolean;
342
+ api_key: string;
343
+ created_at: string;
344
+ id: string;
345
+ label: string;
346
+ provider_id: string;
347
+ updated_at: string;
348
+ };
349
+ Insert: {
350
+ active?: boolean;
351
+ api_key: string;
352
+ created_at?: string;
353
+ id?: string;
354
+ label: string;
355
+ provider_id: string;
356
+ updated_at?: string;
357
+ };
358
+ Update: {
359
+ active?: boolean;
360
+ api_key?: string;
361
+ created_at?: string;
362
+ id?: string;
363
+ label?: string;
364
+ provider_id?: string;
365
+ updated_at?: string;
366
+ };
367
+ Relationships: [
368
+ {
369
+ foreignKeyName: "ai_credentials_provider_id_fkey";
370
+ columns: ["provider_id"];
371
+ isOneToOne: false;
372
+ referencedRelation: "ai_providers";
373
+ referencedColumns: ["id"];
374
+ }
375
+ ];
376
+ };
377
+ ai_goals: {
378
+ Row: {
379
+ active: boolean;
380
+ created_at: string;
381
+ description: string | null;
382
+ key: string;
383
+ label: string;
384
+ sort_order: number;
385
+ updated_at: string;
386
+ };
387
+ Insert: {
388
+ active?: boolean;
389
+ created_at?: string;
390
+ description?: string | null;
391
+ key: string;
392
+ label: string;
393
+ sort_order?: number;
394
+ updated_at?: string;
395
+ };
396
+ Update: {
397
+ active?: boolean;
398
+ created_at?: string;
399
+ description?: string | null;
400
+ key?: string;
401
+ label?: string;
402
+ sort_order?: number;
403
+ updated_at?: string;
404
+ };
405
+ Relationships: [];
406
+ };
407
+ ai_model_pricing: {
408
+ Row: {
409
+ created_at: string;
410
+ currency: string;
411
+ fetched_at: string;
412
+ id: string;
413
+ input_per_mtok: number | null;
414
+ model_slug: string;
415
+ output_per_mtok: number | null;
416
+ provider_slug: string;
417
+ source: string;
418
+ updated_at: string;
419
+ };
420
+ Insert: {
421
+ created_at?: string;
422
+ currency?: string;
423
+ fetched_at?: string;
424
+ id?: string;
425
+ input_per_mtok?: number | null;
426
+ model_slug: string;
427
+ output_per_mtok?: number | null;
428
+ provider_slug: string;
429
+ source?: string;
430
+ updated_at?: string;
431
+ };
432
+ Update: {
433
+ created_at?: string;
434
+ currency?: string;
435
+ fetched_at?: string;
436
+ id?: string;
437
+ input_per_mtok?: number | null;
438
+ model_slug?: string;
439
+ output_per_mtok?: number | null;
440
+ provider_slug?: string;
441
+ source?: string;
442
+ updated_at?: string;
443
+ };
444
+ Relationships: [];
445
+ };
446
+ ai_models: {
447
+ Row: {
448
+ active: boolean;
449
+ context_window: number | null;
450
+ created_at: string;
451
+ display_name: string;
452
+ id: string;
453
+ is_default: boolean;
454
+ modality: string;
455
+ provider_id: string;
456
+ slug: string;
457
+ updated_at: string;
458
+ };
459
+ Insert: {
460
+ active?: boolean;
461
+ context_window?: number | null;
462
+ created_at?: string;
463
+ display_name: string;
464
+ id?: string;
465
+ is_default?: boolean;
466
+ modality?: string;
467
+ provider_id: string;
468
+ slug: string;
469
+ updated_at?: string;
470
+ };
471
+ Update: {
472
+ active?: boolean;
473
+ context_window?: number | null;
474
+ created_at?: string;
475
+ display_name?: string;
476
+ id?: string;
477
+ is_default?: boolean;
478
+ modality?: string;
479
+ provider_id?: string;
480
+ slug?: string;
481
+ updated_at?: string;
482
+ };
483
+ Relationships: [
484
+ {
485
+ foreignKeyName: "ai_models_provider_id_fkey";
486
+ columns: ["provider_id"];
487
+ isOneToOne: false;
488
+ referencedRelation: "ai_providers";
489
+ referencedColumns: ["id"];
490
+ }
491
+ ];
492
+ };
493
+ ai_module_bindings: {
494
+ Row: {
495
+ consumer_module_id: string;
496
+ created_at: string;
497
+ credential_id: string;
498
+ id: string;
499
+ model_id: string;
500
+ notes: string | null;
501
+ updated_at: string;
502
+ };
503
+ Insert: {
504
+ consumer_module_id: string;
505
+ created_at?: string;
506
+ credential_id: string;
507
+ id?: string;
508
+ model_id: string;
509
+ notes?: string | null;
510
+ updated_at?: string;
511
+ };
512
+ Update: {
513
+ consumer_module_id?: string;
514
+ created_at?: string;
515
+ credential_id?: string;
516
+ id?: string;
517
+ model_id?: string;
518
+ notes?: string | null;
519
+ updated_at?: string;
520
+ };
521
+ Relationships: [
522
+ {
523
+ foreignKeyName: "ai_module_bindings_credential_id_fkey";
524
+ columns: ["credential_id"];
525
+ isOneToOne: false;
526
+ referencedRelation: "ai_credentials";
527
+ referencedColumns: ["id"];
528
+ },
529
+ {
530
+ foreignKeyName: "ai_module_bindings_model_id_fkey";
531
+ columns: ["model_id"];
532
+ isOneToOne: false;
533
+ referencedRelation: "ai_models";
534
+ referencedColumns: ["id"];
535
+ }
536
+ ];
537
+ };
538
+ ai_providers: {
539
+ Row: {
540
+ active: boolean;
541
+ auth_type: string;
542
+ base_url: string | null;
543
+ created_at: string;
544
+ id: string;
545
+ name: string;
546
+ slug: string;
547
+ updated_at: string;
548
+ };
549
+ Insert: {
550
+ active?: boolean;
551
+ auth_type?: string;
552
+ base_url?: string | null;
553
+ created_at?: string;
554
+ id?: string;
555
+ name: string;
556
+ slug: string;
557
+ updated_at?: string;
558
+ };
559
+ Update: {
560
+ active?: boolean;
561
+ auth_type?: string;
562
+ base_url?: string | null;
563
+ created_at?: string;
564
+ id?: string;
565
+ name?: string;
566
+ slug?: string;
567
+ updated_at?: string;
568
+ };
569
+ Relationships: [];
570
+ };
250
571
  app_settings: {
251
572
  Row: {
252
573
  created_at: string;
@@ -885,6 +1206,143 @@ export type Database = {
885
1206
  };
886
1207
  Relationships: [];
887
1208
  };
1209
+ cart_planning_pick_times: {
1210
+ Row: {
1211
+ created_at: string;
1212
+ id: string;
1213
+ pot_size: string;
1214
+ seconds_per_cart: number;
1215
+ updated_at: string;
1216
+ };
1217
+ Insert: {
1218
+ created_at?: string;
1219
+ id?: string;
1220
+ pot_size: string;
1221
+ seconds_per_cart: number;
1222
+ updated_at?: string;
1223
+ };
1224
+ Update: {
1225
+ created_at?: string;
1226
+ id?: string;
1227
+ pot_size?: string;
1228
+ seconds_per_cart?: number;
1229
+ updated_at?: string;
1230
+ };
1231
+ Relationships: [];
1232
+ };
1233
+ cart_planning_product_overrides: {
1234
+ Row: {
1235
+ created_at: string;
1236
+ id: string;
1237
+ max_party_share_per_layer_pct_override: number | null;
1238
+ never_mix: boolean;
1239
+ notes: string | null;
1240
+ product_id: string;
1241
+ updated_at: string;
1242
+ };
1243
+ Insert: {
1244
+ created_at?: string;
1245
+ id?: string;
1246
+ max_party_share_per_layer_pct_override?: number | null;
1247
+ never_mix?: boolean;
1248
+ notes?: string | null;
1249
+ product_id: string;
1250
+ updated_at?: string;
1251
+ };
1252
+ Update: {
1253
+ created_at?: string;
1254
+ id?: string;
1255
+ max_party_share_per_layer_pct_override?: number | null;
1256
+ never_mix?: boolean;
1257
+ notes?: string | null;
1258
+ product_id?: string;
1259
+ updated_at?: string;
1260
+ };
1261
+ Relationships: [
1262
+ {
1263
+ foreignKeyName: "cart_planning_product_overrides_product_id_fkey";
1264
+ columns: ["product_id"];
1265
+ isOneToOne: true;
1266
+ referencedRelation: "products";
1267
+ referencedColumns: ["id"];
1268
+ }
1269
+ ];
1270
+ };
1271
+ cart_planning_settings: {
1272
+ Row: {
1273
+ allow_editing_after_pickstation_send: boolean;
1274
+ buffer_grouping_mode: string;
1275
+ combine_floriday_orders: boolean;
1276
+ combine_floriday_orders_window: string;
1277
+ combine_orders_scope: string;
1278
+ default_workers: number;
1279
+ id: number;
1280
+ max_beladingen_per_layer: number;
1281
+ max_customers_per_cart: number;
1282
+ max_one_customer_per_layer: boolean;
1283
+ max_party_share_per_layer_pct: number;
1284
+ optimization_strategy: string;
1285
+ own_cart_from_layers: number;
1286
+ pick_time_mode: string;
1287
+ plants_per_day: number;
1288
+ plants_per_hour: number;
1289
+ require_same_carrier: boolean;
1290
+ require_same_crate_type: boolean;
1291
+ require_same_delivery_date: boolean;
1292
+ require_same_delivery_location: boolean;
1293
+ updated_at: string;
1294
+ updated_by: string | null;
1295
+ };
1296
+ Insert: {
1297
+ allow_editing_after_pickstation_send?: boolean;
1298
+ buffer_grouping_mode?: string;
1299
+ combine_floriday_orders?: boolean;
1300
+ combine_floriday_orders_window?: string;
1301
+ combine_orders_scope?: string;
1302
+ default_workers?: number;
1303
+ id?: number;
1304
+ max_beladingen_per_layer?: number;
1305
+ max_customers_per_cart?: number;
1306
+ max_one_customer_per_layer?: boolean;
1307
+ max_party_share_per_layer_pct?: number;
1308
+ optimization_strategy?: string;
1309
+ own_cart_from_layers?: number;
1310
+ pick_time_mode?: string;
1311
+ plants_per_day?: number;
1312
+ plants_per_hour?: number;
1313
+ require_same_carrier?: boolean;
1314
+ require_same_crate_type?: boolean;
1315
+ require_same_delivery_date?: boolean;
1316
+ require_same_delivery_location?: boolean;
1317
+ updated_at?: string;
1318
+ updated_by?: string | null;
1319
+ };
1320
+ Update: {
1321
+ allow_editing_after_pickstation_send?: boolean;
1322
+ buffer_grouping_mode?: string;
1323
+ combine_floriday_orders?: boolean;
1324
+ combine_floriday_orders_window?: string;
1325
+ combine_orders_scope?: string;
1326
+ default_workers?: number;
1327
+ id?: number;
1328
+ max_beladingen_per_layer?: number;
1329
+ max_customers_per_cart?: number;
1330
+ max_one_customer_per_layer?: boolean;
1331
+ max_party_share_per_layer_pct?: number;
1332
+ optimization_strategy?: string;
1333
+ own_cart_from_layers?: number;
1334
+ pick_time_mode?: string;
1335
+ plants_per_day?: number;
1336
+ plants_per_hour?: number;
1337
+ require_same_carrier?: boolean;
1338
+ require_same_crate_type?: boolean;
1339
+ require_same_delivery_date?: boolean;
1340
+ require_same_delivery_location?: boolean;
1341
+ updated_at?: string;
1342
+ updated_by?: string | null;
1343
+ };
1344
+ Relationships: [];
1345
+ };
888
1346
  cart_replan_queue: {
889
1347
  Row: {
890
1348
  attempts: number;
@@ -917,6 +1375,102 @@ export type Database = {
917
1375
  }
918
1376
  ];
919
1377
  };
1378
+ cart_types: {
1379
+ Row: {
1380
+ created_at: string;
1381
+ id: string;
1382
+ is_default: boolean;
1383
+ layer_length_cm: number;
1384
+ layer_width_cm: number;
1385
+ layers_per_cart: number;
1386
+ name: string;
1387
+ updated_at: string;
1388
+ };
1389
+ Insert: {
1390
+ created_at?: string;
1391
+ id?: string;
1392
+ is_default?: boolean;
1393
+ layer_length_cm: number;
1394
+ layer_width_cm: number;
1395
+ layers_per_cart?: number;
1396
+ name: string;
1397
+ updated_at?: string;
1398
+ };
1399
+ Update: {
1400
+ created_at?: string;
1401
+ id?: string;
1402
+ is_default?: boolean;
1403
+ layer_length_cm?: number;
1404
+ layer_width_cm?: number;
1405
+ layers_per_cart?: number;
1406
+ name?: string;
1407
+ updated_at?: string;
1408
+ };
1409
+ Relationships: [];
1410
+ };
1411
+ catalog_articles_cache: {
1412
+ Row: {
1413
+ created_at: string;
1414
+ default_price: number;
1415
+ default_vat_rate_ref: string | null;
1416
+ external_ref: string;
1417
+ id: string;
1418
+ name: string;
1419
+ updated_at: string;
1420
+ user_id: string;
1421
+ };
1422
+ Insert: {
1423
+ created_at?: string;
1424
+ default_price?: number;
1425
+ default_vat_rate_ref?: string | null;
1426
+ external_ref: string;
1427
+ id?: string;
1428
+ name: string;
1429
+ updated_at?: string;
1430
+ user_id: string;
1431
+ };
1432
+ Update: {
1433
+ created_at?: string;
1434
+ default_price?: number;
1435
+ default_vat_rate_ref?: string | null;
1436
+ external_ref?: string;
1437
+ id?: string;
1438
+ name?: string;
1439
+ updated_at?: string;
1440
+ user_id?: string;
1441
+ };
1442
+ Relationships: [];
1443
+ };
1444
+ catalog_vat_rates_cache: {
1445
+ Row: {
1446
+ created_at: string;
1447
+ external_ref: string;
1448
+ id: string;
1449
+ label: string;
1450
+ percentage: number;
1451
+ updated_at: string;
1452
+ user_id: string;
1453
+ };
1454
+ Insert: {
1455
+ created_at?: string;
1456
+ external_ref: string;
1457
+ id?: string;
1458
+ label: string;
1459
+ percentage?: number;
1460
+ updated_at?: string;
1461
+ user_id: string;
1462
+ };
1463
+ Update: {
1464
+ created_at?: string;
1465
+ external_ref?: string;
1466
+ id?: string;
1467
+ label?: string;
1468
+ percentage?: number;
1469
+ updated_at?: string;
1470
+ user_id?: string;
1471
+ };
1472
+ Relationships: [];
1473
+ };
920
1474
  collections: {
921
1475
  Row: {
922
1476
  created_at: string;
@@ -941,6 +1495,36 @@ export type Database = {
941
1495
  };
942
1496
  Relationships: [];
943
1497
  };
1498
+ crate_types: {
1499
+ Row: {
1500
+ created_at: string;
1501
+ id: string;
1502
+ length_cm: number;
1503
+ name: string;
1504
+ plants_per_crate: number;
1505
+ updated_at: string;
1506
+ width_cm: number;
1507
+ };
1508
+ Insert: {
1509
+ created_at?: string;
1510
+ id?: string;
1511
+ length_cm: number;
1512
+ name: string;
1513
+ plants_per_crate?: number;
1514
+ updated_at?: string;
1515
+ width_cm: number;
1516
+ };
1517
+ Update: {
1518
+ created_at?: string;
1519
+ id?: string;
1520
+ length_cm?: number;
1521
+ name?: string;
1522
+ plants_per_crate?: number;
1523
+ updated_at?: string;
1524
+ width_cm?: number;
1525
+ };
1526
+ Relationships: [];
1527
+ };
944
1528
  customer_audit_log: {
945
1529
  Row: {
946
1530
  action: string;
@@ -1155,22 +1739,123 @@ export type Database = {
1155
1739
  };
1156
1740
  Insert: {
1157
1741
  created_at?: string;
1158
- field_key: string;
1159
- field_label: string;
1160
- field_type?: string;
1742
+ field_key: string;
1743
+ field_label: string;
1744
+ field_type?: string;
1745
+ id?: string;
1746
+ is_custom?: boolean;
1747
+ sort_order?: number;
1748
+ updated_at?: string;
1749
+ };
1750
+ Update: {
1751
+ created_at?: string;
1752
+ field_key?: string;
1753
+ field_label?: string;
1754
+ field_type?: string;
1755
+ id?: string;
1756
+ is_custom?: boolean;
1757
+ sort_order?: number;
1758
+ updated_at?: string;
1759
+ };
1760
+ Relationships: [];
1761
+ };
1762
+ customer_price_group_members: {
1763
+ Row: {
1764
+ created_at: string;
1765
+ customer_key: string;
1766
+ id: string;
1767
+ owner_id: string;
1768
+ price_group_id: string;
1769
+ };
1770
+ Insert: {
1771
+ created_at?: string;
1772
+ customer_key: string;
1773
+ id?: string;
1774
+ owner_id?: string;
1775
+ price_group_id: string;
1776
+ };
1777
+ Update: {
1778
+ created_at?: string;
1779
+ customer_key?: string;
1780
+ id?: string;
1781
+ owner_id?: string;
1782
+ price_group_id?: string;
1783
+ };
1784
+ Relationships: [
1785
+ {
1786
+ foreignKeyName: "customer_price_group_members_price_group_id_fkey";
1787
+ columns: ["price_group_id"];
1788
+ isOneToOne: false;
1789
+ referencedRelation: "customer_price_groups";
1790
+ referencedColumns: ["id"];
1791
+ }
1792
+ ];
1793
+ };
1794
+ customer_price_groups: {
1795
+ Row: {
1796
+ calc_type: string | null;
1797
+ calc_value: number | null;
1798
+ calc_value_type: string | null;
1799
+ created_at: string;
1800
+ currency: string;
1801
+ distribute_over: string | null;
1802
+ group_type: string;
1803
+ handling_fee: number | null;
1804
+ id: string;
1805
+ include_stickers: boolean;
1806
+ is_active: boolean;
1807
+ name: string;
1808
+ owner_id: string;
1809
+ price_scope: string;
1810
+ pricing_mode: string;
1811
+ rounding: string;
1812
+ rounding_step: number;
1813
+ sort_order: number;
1814
+ unit: string;
1815
+ updated_at: string;
1816
+ };
1817
+ Insert: {
1818
+ calc_type?: string | null;
1819
+ calc_value?: number | null;
1820
+ calc_value_type?: string | null;
1821
+ created_at?: string;
1822
+ currency?: string;
1823
+ distribute_over?: string | null;
1824
+ group_type?: string;
1825
+ handling_fee?: number | null;
1161
1826
  id?: string;
1162
- is_custom?: boolean;
1827
+ include_stickers?: boolean;
1828
+ is_active?: boolean;
1829
+ name: string;
1830
+ owner_id?: string;
1831
+ price_scope?: string;
1832
+ pricing_mode?: string;
1833
+ rounding?: string;
1834
+ rounding_step?: number;
1163
1835
  sort_order?: number;
1836
+ unit?: string;
1164
1837
  updated_at?: string;
1165
1838
  };
1166
1839
  Update: {
1840
+ calc_type?: string | null;
1841
+ calc_value?: number | null;
1842
+ calc_value_type?: string | null;
1167
1843
  created_at?: string;
1168
- field_key?: string;
1169
- field_label?: string;
1170
- field_type?: string;
1844
+ currency?: string;
1845
+ distribute_over?: string | null;
1846
+ group_type?: string;
1847
+ handling_fee?: number | null;
1171
1848
  id?: string;
1172
- is_custom?: boolean;
1849
+ include_stickers?: boolean;
1850
+ is_active?: boolean;
1851
+ name?: string;
1852
+ owner_id?: string;
1853
+ price_scope?: string;
1854
+ pricing_mode?: string;
1855
+ rounding?: string;
1856
+ rounding_step?: number;
1173
1857
  sort_order?: number;
1858
+ unit?: string;
1174
1859
  updated_at?: string;
1175
1860
  };
1176
1861
  Relationships: [];
@@ -1332,6 +2017,10 @@ export type Database = {
1332
2017
  sync_error: string | null;
1333
2018
  sync_status: string;
1334
2019
  trade_forms: string[];
2020
+ twinfield_code: string | null;
2021
+ twinfield_last_hash: string | null;
2022
+ twinfield_sync_error: string | null;
2023
+ twinfield_synced_at: string | null;
1335
2024
  updated_at: string;
1336
2025
  vat_display: string | null;
1337
2026
  vat_number: string | null;
@@ -1399,6 +2088,10 @@ export type Database = {
1399
2088
  sync_error?: string | null;
1400
2089
  sync_status?: string;
1401
2090
  trade_forms?: string[];
2091
+ twinfield_code?: string | null;
2092
+ twinfield_last_hash?: string | null;
2093
+ twinfield_sync_error?: string | null;
2094
+ twinfield_synced_at?: string | null;
1402
2095
  updated_at?: string;
1403
2096
  vat_display?: string | null;
1404
2097
  vat_number?: string | null;
@@ -1466,6 +2159,10 @@ export type Database = {
1466
2159
  sync_error?: string | null;
1467
2160
  sync_status?: string;
1468
2161
  trade_forms?: string[];
2162
+ twinfield_code?: string | null;
2163
+ twinfield_last_hash?: string | null;
2164
+ twinfield_sync_error?: string | null;
2165
+ twinfield_synced_at?: string | null;
1469
2166
  updated_at?: string;
1470
2167
  vat_display?: string | null;
1471
2168
  vat_number?: string | null;
@@ -5425,87 +6122,382 @@ export type Database = {
5425
6122
  vat_amount: number | null;
5426
6123
  };
5427
6124
  Insert: {
5428
- booking_id?: string | null;
5429
- company_name?: string | null;
6125
+ booking_id?: string | null;
6126
+ company_name?: string | null;
6127
+ created_at?: string;
6128
+ customer_email?: string | null;
6129
+ description?: string | null;
6130
+ exact_article_id?: string | null;
6131
+ id?: string;
6132
+ invoice_run_id?: string | null;
6133
+ quantity?: number | null;
6134
+ total_excl_vat?: number | null;
6135
+ total_incl_vat?: number | null;
6136
+ unit_price?: number | null;
6137
+ vat_amount?: number | null;
6138
+ };
6139
+ Update: {
6140
+ booking_id?: string | null;
6141
+ company_name?: string | null;
6142
+ created_at?: string;
6143
+ customer_email?: string | null;
6144
+ description?: string | null;
6145
+ exact_article_id?: string | null;
6146
+ id?: string;
6147
+ invoice_run_id?: string | null;
6148
+ quantity?: number | null;
6149
+ total_excl_vat?: number | null;
6150
+ total_incl_vat?: number | null;
6151
+ unit_price?: number | null;
6152
+ vat_amount?: number | null;
6153
+ };
6154
+ Relationships: [
6155
+ {
6156
+ foreignKeyName: "invoice_run_items_booking_id_fkey";
6157
+ columns: ["booking_id"];
6158
+ isOneToOne: false;
6159
+ referencedRelation: "bookings";
6160
+ referencedColumns: ["id"];
6161
+ },
6162
+ {
6163
+ foreignKeyName: "invoice_run_items_invoice_run_id_fkey";
6164
+ columns: ["invoice_run_id"];
6165
+ isOneToOne: false;
6166
+ referencedRelation: "invoice_runs";
6167
+ referencedColumns: ["id"];
6168
+ }
6169
+ ];
6170
+ };
6171
+ invoice_runs: {
6172
+ Row: {
6173
+ created_at: string;
6174
+ created_by: string | null;
6175
+ id: string;
6176
+ period_end: string;
6177
+ period_start: string;
6178
+ status: string;
6179
+ total_excl_vat: number | null;
6180
+ total_incl_vat: number | null;
6181
+ vat_amount: number | null;
6182
+ };
6183
+ Insert: {
6184
+ created_at?: string;
6185
+ created_by?: string | null;
6186
+ id?: string;
6187
+ period_end: string;
6188
+ period_start: string;
6189
+ status?: string;
6190
+ total_excl_vat?: number | null;
6191
+ total_incl_vat?: number | null;
6192
+ vat_amount?: number | null;
6193
+ };
6194
+ Update: {
6195
+ created_at?: string;
6196
+ created_by?: string | null;
6197
+ id?: string;
6198
+ period_end?: string;
6199
+ period_start?: string;
6200
+ status?: string;
6201
+ total_excl_vat?: number | null;
6202
+ total_incl_vat?: number | null;
6203
+ vat_amount?: number | null;
6204
+ };
6205
+ Relationships: [];
6206
+ };
6207
+ itk_contact_persons: {
6208
+ Row: {
6209
+ created_at: string;
6210
+ customer_id: string;
6211
+ email: string | null;
6212
+ id: string;
6213
+ name: string;
6214
+ phone: string | null;
6215
+ role: string | null;
6216
+ updated_at: string;
6217
+ };
6218
+ Insert: {
6219
+ created_at?: string;
6220
+ customer_id: string;
6221
+ email?: string | null;
6222
+ id?: string;
6223
+ name: string;
6224
+ phone?: string | null;
6225
+ role?: string | null;
6226
+ updated_at?: string;
6227
+ };
6228
+ Update: {
6229
+ created_at?: string;
6230
+ customer_id?: string;
6231
+ email?: string | null;
6232
+ id?: string;
6233
+ name?: string;
6234
+ phone?: string | null;
6235
+ role?: string | null;
6236
+ updated_at?: string;
6237
+ };
6238
+ Relationships: [
6239
+ {
6240
+ foreignKeyName: "itk_contact_persons_customer_id_fkey";
6241
+ columns: ["customer_id"];
6242
+ isOneToOne: false;
6243
+ referencedRelation: "itk_customers";
6244
+ referencedColumns: ["id"];
6245
+ }
6246
+ ];
6247
+ };
6248
+ itk_customer_dynamic_values: {
6249
+ Row: {
6250
+ created_at: string;
6251
+ customer_id: string;
6252
+ field_id: string;
6253
+ id: string;
6254
+ updated_at: string;
6255
+ value: string | null;
6256
+ };
6257
+ Insert: {
6258
+ created_at?: string;
6259
+ customer_id: string;
6260
+ field_id: string;
6261
+ id?: string;
6262
+ updated_at?: string;
6263
+ value?: string | null;
6264
+ };
6265
+ Update: {
6266
+ created_at?: string;
6267
+ customer_id?: string;
6268
+ field_id?: string;
6269
+ id?: string;
6270
+ updated_at?: string;
6271
+ value?: string | null;
6272
+ };
6273
+ Relationships: [
6274
+ {
6275
+ foreignKeyName: "itk_customer_dynamic_values_customer_id_fkey";
6276
+ columns: ["customer_id"];
6277
+ isOneToOne: false;
6278
+ referencedRelation: "itk_customers";
6279
+ referencedColumns: ["id"];
6280
+ },
6281
+ {
6282
+ foreignKeyName: "itk_customer_dynamic_values_field_id_fkey";
6283
+ columns: ["field_id"];
6284
+ isOneToOne: false;
6285
+ referencedRelation: "itk_dynamic_fields";
6286
+ referencedColumns: ["id"];
6287
+ }
6288
+ ];
6289
+ };
6290
+ itk_customer_notes: {
6291
+ Row: {
6292
+ body: string;
6293
+ created_at: string;
6294
+ created_by: string | null;
6295
+ customer_id: string;
6296
+ id: string;
6297
+ note_type: string;
6298
+ updated_at: string;
6299
+ };
6300
+ Insert: {
6301
+ body: string;
6302
+ created_at?: string;
6303
+ created_by?: string | null;
6304
+ customer_id: string;
6305
+ id?: string;
6306
+ note_type?: string;
6307
+ updated_at?: string;
6308
+ };
6309
+ Update: {
6310
+ body?: string;
6311
+ created_at?: string;
6312
+ created_by?: string | null;
6313
+ customer_id?: string;
6314
+ id?: string;
6315
+ note_type?: string;
6316
+ updated_at?: string;
6317
+ };
6318
+ Relationships: [
6319
+ {
6320
+ foreignKeyName: "itk_customer_notes_customer_id_fkey";
6321
+ columns: ["customer_id"];
6322
+ isOneToOne: false;
6323
+ referencedRelation: "itk_customers";
6324
+ referencedColumns: ["id"];
6325
+ }
6326
+ ];
6327
+ };
6328
+ itk_customers: {
6329
+ Row: {
6330
+ billing_city: string | null;
6331
+ billing_postcode: string | null;
6332
+ billing_street: string | null;
6333
+ created_at: string;
6334
+ general_email: string | null;
6335
+ general_phone: string | null;
6336
+ id: string;
6337
+ legacy_customer_id: string | null;
6338
+ name: string;
6339
+ segment: Database["public"]["Enums"]["itk_customer_segment"];
6340
+ updated_at: string;
6341
+ };
6342
+ Insert: {
6343
+ billing_city?: string | null;
6344
+ billing_postcode?: string | null;
6345
+ billing_street?: string | null;
6346
+ created_at?: string;
6347
+ general_email?: string | null;
6348
+ general_phone?: string | null;
6349
+ id?: string;
6350
+ legacy_customer_id?: string | null;
6351
+ name: string;
6352
+ segment?: Database["public"]["Enums"]["itk_customer_segment"];
6353
+ updated_at?: string;
6354
+ };
6355
+ Update: {
6356
+ billing_city?: string | null;
6357
+ billing_postcode?: string | null;
6358
+ billing_street?: string | null;
6359
+ created_at?: string;
6360
+ general_email?: string | null;
6361
+ general_phone?: string | null;
6362
+ id?: string;
6363
+ legacy_customer_id?: string | null;
6364
+ name?: string;
6365
+ segment?: Database["public"]["Enums"]["itk_customer_segment"];
6366
+ updated_at?: string;
6367
+ };
6368
+ Relationships: [
6369
+ {
6370
+ foreignKeyName: "itk_customers_legacy_customer_id_fkey";
6371
+ columns: ["legacy_customer_id"];
6372
+ isOneToOne: false;
6373
+ referencedRelation: "customers";
6374
+ referencedColumns: ["id"];
6375
+ }
6376
+ ];
6377
+ };
6378
+ itk_dynamic_fields: {
6379
+ Row: {
6380
+ created_at: string;
6381
+ field_name: string;
6382
+ field_type: Database["public"]["Enums"]["itk_dynamic_field_type"];
6383
+ id: string;
6384
+ options: Json;
6385
+ sort_order: number;
6386
+ updated_at: string;
6387
+ };
6388
+ Insert: {
6389
+ created_at?: string;
6390
+ field_name: string;
6391
+ field_type?: Database["public"]["Enums"]["itk_dynamic_field_type"];
6392
+ id?: string;
6393
+ options?: Json;
6394
+ sort_order?: number;
6395
+ updated_at?: string;
6396
+ };
6397
+ Update: {
6398
+ created_at?: string;
6399
+ field_name?: string;
6400
+ field_type?: Database["public"]["Enums"]["itk_dynamic_field_type"];
6401
+ id?: string;
6402
+ options?: Json;
6403
+ sort_order?: number;
6404
+ updated_at?: string;
6405
+ };
6406
+ Relationships: [];
6407
+ };
6408
+ itk_work_locations: {
6409
+ Row: {
6410
+ city: string | null;
6411
+ created_at: string;
6412
+ customer_id: string;
6413
+ id: string;
6414
+ instructions: string | null;
6415
+ label: string;
6416
+ latitude: number | null;
6417
+ longitude: number | null;
6418
+ postcode: string | null;
6419
+ street: string | null;
6420
+ updated_at: string;
6421
+ };
6422
+ Insert: {
6423
+ city?: string | null;
5430
6424
  created_at?: string;
5431
- customer_email?: string | null;
5432
- description?: string | null;
5433
- exact_article_id?: string | null;
6425
+ customer_id: string;
5434
6426
  id?: string;
5435
- invoice_run_id?: string | null;
5436
- quantity?: number | null;
5437
- total_excl_vat?: number | null;
5438
- total_incl_vat?: number | null;
5439
- unit_price?: number | null;
5440
- vat_amount?: number | null;
6427
+ instructions?: string | null;
6428
+ label: string;
6429
+ latitude?: number | null;
6430
+ longitude?: number | null;
6431
+ postcode?: string | null;
6432
+ street?: string | null;
6433
+ updated_at?: string;
5441
6434
  };
5442
6435
  Update: {
5443
- booking_id?: string | null;
5444
- company_name?: string | null;
6436
+ city?: string | null;
5445
6437
  created_at?: string;
5446
- customer_email?: string | null;
5447
- description?: string | null;
5448
- exact_article_id?: string | null;
6438
+ customer_id?: string;
5449
6439
  id?: string;
5450
- invoice_run_id?: string | null;
5451
- quantity?: number | null;
5452
- total_excl_vat?: number | null;
5453
- total_incl_vat?: number | null;
5454
- unit_price?: number | null;
5455
- vat_amount?: number | null;
6440
+ instructions?: string | null;
6441
+ label?: string;
6442
+ latitude?: number | null;
6443
+ longitude?: number | null;
6444
+ postcode?: string | null;
6445
+ street?: string | null;
6446
+ updated_at?: string;
5456
6447
  };
5457
6448
  Relationships: [
5458
6449
  {
5459
- foreignKeyName: "invoice_run_items_booking_id_fkey";
5460
- columns: ["booking_id"];
5461
- isOneToOne: false;
5462
- referencedRelation: "bookings";
5463
- referencedColumns: ["id"];
5464
- },
5465
- {
5466
- foreignKeyName: "invoice_run_items_invoice_run_id_fkey";
5467
- columns: ["invoice_run_id"];
6450
+ foreignKeyName: "itk_work_locations_customer_id_fkey";
6451
+ columns: ["customer_id"];
5468
6452
  isOneToOne: false;
5469
- referencedRelation: "invoice_runs";
6453
+ referencedRelation: "itk_customers";
5470
6454
  referencedColumns: ["id"];
5471
6455
  }
5472
6456
  ];
5473
6457
  };
5474
- invoice_runs: {
6458
+ leave_requests: {
5475
6459
  Row: {
5476
6460
  created_at: string;
5477
- created_by: string | null;
6461
+ end_date: string;
5478
6462
  id: string;
5479
- period_end: string;
5480
- period_start: string;
6463
+ reason: string | null;
6464
+ start_date: string;
5481
6465
  status: string;
5482
- total_excl_vat: number | null;
5483
- total_incl_vat: number | null;
5484
- vat_amount: number | null;
6466
+ tenant_id: string;
6467
+ updated_at: string;
6468
+ user_id: string;
5485
6469
  };
5486
6470
  Insert: {
5487
6471
  created_at?: string;
5488
- created_by?: string | null;
6472
+ end_date: string;
5489
6473
  id?: string;
5490
- period_end: string;
5491
- period_start: string;
6474
+ reason?: string | null;
6475
+ start_date: string;
5492
6476
  status?: string;
5493
- total_excl_vat?: number | null;
5494
- total_incl_vat?: number | null;
5495
- vat_amount?: number | null;
6477
+ tenant_id?: string;
6478
+ updated_at?: string;
6479
+ user_id: string;
5496
6480
  };
5497
6481
  Update: {
5498
6482
  created_at?: string;
5499
- created_by?: string | null;
6483
+ end_date?: string;
5500
6484
  id?: string;
5501
- period_end?: string;
5502
- period_start?: string;
6485
+ reason?: string | null;
6486
+ start_date?: string;
5503
6487
  status?: string;
5504
- total_excl_vat?: number | null;
5505
- total_incl_vat?: number | null;
5506
- vat_amount?: number | null;
6488
+ tenant_id?: string;
6489
+ updated_at?: string;
6490
+ user_id?: string;
5507
6491
  };
5508
- Relationships: [];
6492
+ Relationships: [
6493
+ {
6494
+ foreignKeyName: "leave_requests_user_id_fkey";
6495
+ columns: ["user_id"];
6496
+ isOneToOne: false;
6497
+ referencedRelation: "monteurs";
6498
+ referencedColumns: ["id"];
6499
+ }
6500
+ ];
5509
6501
  };
5510
6502
  local_customer_agreements: {
5511
6503
  Row: {
@@ -6187,6 +7179,33 @@ export type Database = {
6187
7179
  };
6188
7180
  Relationships: [];
6189
7181
  };
7182
+ module_permissions: {
7183
+ Row: {
7184
+ created_at: string;
7185
+ id: string;
7186
+ module_id: string;
7187
+ permission: string;
7188
+ role: Database["public"]["Enums"]["app_role"];
7189
+ updated_at: string;
7190
+ };
7191
+ Insert: {
7192
+ created_at?: string;
7193
+ id?: string;
7194
+ module_id: string;
7195
+ permission: string;
7196
+ role: Database["public"]["Enums"]["app_role"];
7197
+ updated_at?: string;
7198
+ };
7199
+ Update: {
7200
+ created_at?: string;
7201
+ id?: string;
7202
+ module_id?: string;
7203
+ permission?: string;
7204
+ role?: Database["public"]["Enums"]["app_role"];
7205
+ updated_at?: string;
7206
+ };
7207
+ Relationships: [];
7208
+ };
6190
7209
  monteurs: {
6191
7210
  Row: {
6192
7211
  avatar_url: string | null;
@@ -6941,6 +7960,42 @@ export type Database = {
6941
7960
  };
6942
7961
  Relationships: [];
6943
7962
  };
7963
+ order_buffers: {
7964
+ Row: {
7965
+ buffer_key: string;
7966
+ created_at: string;
7967
+ customer_id: string | null;
7968
+ grouping_mode: string;
7969
+ id: string;
7970
+ pickup_date: string | null;
7971
+ pickup_location: string | null;
7972
+ plan_locked_at: string | null;
7973
+ updated_at: string;
7974
+ };
7975
+ Insert: {
7976
+ buffer_key: string;
7977
+ created_at?: string;
7978
+ customer_id?: string | null;
7979
+ grouping_mode: string;
7980
+ id?: string;
7981
+ pickup_date?: string | null;
7982
+ pickup_location?: string | null;
7983
+ plan_locked_at?: string | null;
7984
+ updated_at?: string;
7985
+ };
7986
+ Update: {
7987
+ buffer_key?: string;
7988
+ created_at?: string;
7989
+ customer_id?: string | null;
7990
+ grouping_mode?: string;
7991
+ id?: string;
7992
+ pickup_date?: string | null;
7993
+ pickup_location?: string | null;
7994
+ plan_locked_at?: string | null;
7995
+ updated_at?: string;
7996
+ };
7997
+ Relationships: [];
7998
+ };
6944
7999
  order_cart_items: {
6945
8000
  Row: {
6946
8001
  cart_id: string;
@@ -7011,6 +8066,7 @@ export type Database = {
7011
8066
  order_carts: {
7012
8067
  Row: {
7013
8068
  algorithm_version: number;
8069
+ buffer_id: string | null;
7014
8070
  cart_number: number;
7015
8071
  created_at: string;
7016
8072
  id: string;
@@ -7018,13 +8074,14 @@ export type Database = {
7018
8074
  is_complete: boolean;
7019
8075
  notes: string | null;
7020
8076
  occupancy_pct: number;
7021
- order_id: string;
8077
+ order_id: string | null;
7022
8078
  source: string;
7023
8079
  total_layers_used: number;
7024
8080
  updated_at: string;
7025
8081
  };
7026
8082
  Insert: {
7027
8083
  algorithm_version?: number;
8084
+ buffer_id?: string | null;
7028
8085
  cart_number: number;
7029
8086
  created_at?: string;
7030
8087
  id?: string;
@@ -7032,13 +8089,14 @@ export type Database = {
7032
8089
  is_complete?: boolean;
7033
8090
  notes?: string | null;
7034
8091
  occupancy_pct?: number;
7035
- order_id: string;
8092
+ order_id?: string | null;
7036
8093
  source?: string;
7037
8094
  total_layers_used?: number;
7038
8095
  updated_at?: string;
7039
8096
  };
7040
8097
  Update: {
7041
8098
  algorithm_version?: number;
8099
+ buffer_id?: string | null;
7042
8100
  cart_number?: number;
7043
8101
  created_at?: string;
7044
8102
  id?: string;
@@ -7046,12 +8104,19 @@ export type Database = {
7046
8104
  is_complete?: boolean;
7047
8105
  notes?: string | null;
7048
8106
  occupancy_pct?: number;
7049
- order_id?: string;
8107
+ order_id?: string | null;
7050
8108
  source?: string;
7051
8109
  total_layers_used?: number;
7052
8110
  updated_at?: string;
7053
8111
  };
7054
8112
  Relationships: [
8113
+ {
8114
+ foreignKeyName: "order_carts_buffer_id_fkey";
8115
+ columns: ["buffer_id"];
8116
+ isOneToOne: false;
8117
+ referencedRelation: "order_buffers";
8118
+ referencedColumns: ["id"];
8119
+ },
7055
8120
  {
7056
8121
  foreignKeyName: "order_carts_order_id_fkey";
7057
8122
  columns: ["order_id"];
@@ -7195,15 +8260,123 @@ export type Database = {
7195
8260
  };
7196
8261
  Relationships: [];
7197
8262
  };
8263
+ order_shipment_items: {
8264
+ Row: {
8265
+ created_at: string;
8266
+ id: string;
8267
+ order_item_id: string;
8268
+ product_id: string | null;
8269
+ product_name: string;
8270
+ quantity: number;
8271
+ shipment_id: string;
8272
+ updated_at: string;
8273
+ };
8274
+ Insert: {
8275
+ created_at?: string;
8276
+ id?: string;
8277
+ order_item_id: string;
8278
+ product_id?: string | null;
8279
+ product_name: string;
8280
+ quantity: number;
8281
+ shipment_id: string;
8282
+ updated_at?: string;
8283
+ };
8284
+ Update: {
8285
+ created_at?: string;
8286
+ id?: string;
8287
+ order_item_id?: string;
8288
+ product_id?: string | null;
8289
+ product_name?: string;
8290
+ quantity?: number;
8291
+ shipment_id?: string;
8292
+ updated_at?: string;
8293
+ };
8294
+ Relationships: [
8295
+ {
8296
+ foreignKeyName: "order_shipment_items_order_item_id_fkey";
8297
+ columns: ["order_item_id"];
8298
+ isOneToOne: false;
8299
+ referencedRelation: "order_items";
8300
+ referencedColumns: ["id"];
8301
+ },
8302
+ {
8303
+ foreignKeyName: "order_shipment_items_shipment_id_fkey";
8304
+ columns: ["shipment_id"];
8305
+ isOneToOne: false;
8306
+ referencedRelation: "order_shipments";
8307
+ referencedColumns: ["id"];
8308
+ }
8309
+ ];
8310
+ };
8311
+ order_shipments: {
8312
+ Row: {
8313
+ carrier_id: string | null;
8314
+ created_at: string;
8315
+ delivery_date: string | null;
8316
+ delivery_location_id: string | null;
8317
+ id: string;
8318
+ notes: string | null;
8319
+ order_id: string;
8320
+ shipment_number: number;
8321
+ shipped_at: string | null;
8322
+ status: string;
8323
+ updated_at: string;
8324
+ };
8325
+ Insert: {
8326
+ carrier_id?: string | null;
8327
+ created_at?: string;
8328
+ delivery_date?: string | null;
8329
+ delivery_location_id?: string | null;
8330
+ id?: string;
8331
+ notes?: string | null;
8332
+ order_id: string;
8333
+ shipment_number: number;
8334
+ shipped_at?: string | null;
8335
+ status?: string;
8336
+ updated_at?: string;
8337
+ };
8338
+ Update: {
8339
+ carrier_id?: string | null;
8340
+ created_at?: string;
8341
+ delivery_date?: string | null;
8342
+ delivery_location_id?: string | null;
8343
+ id?: string;
8344
+ notes?: string | null;
8345
+ order_id?: string;
8346
+ shipment_number?: number;
8347
+ shipped_at?: string | null;
8348
+ status?: string;
8349
+ updated_at?: string;
8350
+ };
8351
+ Relationships: [
8352
+ {
8353
+ foreignKeyName: "order_shipments_carrier_id_fkey";
8354
+ columns: ["carrier_id"];
8355
+ isOneToOne: false;
8356
+ referencedRelation: "carriers";
8357
+ referencedColumns: ["id"];
8358
+ },
8359
+ {
8360
+ foreignKeyName: "order_shipments_order_id_fkey";
8361
+ columns: ["order_id"];
8362
+ isOneToOne: false;
8363
+ referencedRelation: "orders";
8364
+ referencedColumns: ["id"];
8365
+ }
8366
+ ];
8367
+ };
7198
8368
  orders: {
7199
8369
  Row: {
8370
+ buffer_id: string | null;
7200
8371
  created_at: string;
7201
8372
  custom_fields: Json;
7202
8373
  customer_id: string | null;
7203
8374
  customer_name: string;
7204
8375
  deleted_at: string | null;
7205
- delivery_date: string;
8376
+ delivery_date: string | null;
8377
+ floriday_sales_order_id: string | null;
7206
8378
  id: string;
8379
+ is_reservation: boolean;
7207
8380
  notes: string | null;
7208
8381
  order_date: string;
7209
8382
  order_number: string;
@@ -7215,13 +8388,16 @@ export type Database = {
7215
8388
  updated_at: string;
7216
8389
  };
7217
8390
  Insert: {
8391
+ buffer_id?: string | null;
7218
8392
  created_at?: string;
7219
8393
  custom_fields?: Json;
7220
8394
  customer_id?: string | null;
7221
8395
  customer_name?: string;
7222
8396
  deleted_at?: string | null;
7223
- delivery_date: string;
8397
+ delivery_date?: string | null;
8398
+ floriday_sales_order_id?: string | null;
7224
8399
  id?: string;
8400
+ is_reservation?: boolean;
7225
8401
  notes?: string | null;
7226
8402
  order_date?: string;
7227
8403
  order_number: string;
@@ -7233,13 +8409,16 @@ export type Database = {
7233
8409
  updated_at?: string;
7234
8410
  };
7235
8411
  Update: {
8412
+ buffer_id?: string | null;
7236
8413
  created_at?: string;
7237
8414
  custom_fields?: Json;
7238
8415
  customer_id?: string | null;
7239
8416
  customer_name?: string;
7240
8417
  deleted_at?: string | null;
7241
- delivery_date?: string;
8418
+ delivery_date?: string | null;
8419
+ floriday_sales_order_id?: string | null;
7242
8420
  id?: string;
8421
+ is_reservation?: boolean;
7243
8422
  notes?: string | null;
7244
8423
  order_date?: string;
7245
8424
  order_number?: string;
@@ -7251,6 +8430,13 @@ export type Database = {
7251
8430
  updated_at?: string;
7252
8431
  };
7253
8432
  Relationships: [
8433
+ {
8434
+ foreignKeyName: "orders_buffer_id_fkey";
8435
+ columns: ["buffer_id"];
8436
+ isOneToOne: false;
8437
+ referencedRelation: "order_buffers";
8438
+ referencedColumns: ["id"];
8439
+ },
7254
8440
  {
7255
8441
  foreignKeyName: "orders_customer_id_fkey";
7256
8442
  columns: ["customer_id"];
@@ -7520,6 +8706,8 @@ export type Database = {
7520
8706
  Row: {
7521
8707
  created_at: string;
7522
8708
  description: string | null;
8709
+ head_product_id: string | null;
8710
+ head_trade_item_floriday_id: string | null;
7523
8711
  id: string;
7524
8712
  is_active: boolean;
7525
8713
  name: string;
@@ -7529,6 +8717,8 @@ export type Database = {
7529
8717
  Insert: {
7530
8718
  created_at?: string;
7531
8719
  description?: string | null;
8720
+ head_product_id?: string | null;
8721
+ head_trade_item_floriday_id?: string | null;
7532
8722
  id?: string;
7533
8723
  is_active?: boolean;
7534
8724
  name: string;
@@ -7538,13 +8728,23 @@ export type Database = {
7538
8728
  Update: {
7539
8729
  created_at?: string;
7540
8730
  description?: string | null;
8731
+ head_product_id?: string | null;
8732
+ head_trade_item_floriday_id?: string | null;
7541
8733
  id?: string;
7542
8734
  is_active?: boolean;
7543
8735
  name?: string;
7544
8736
  tenant_id?: string;
7545
8737
  updated_at?: string;
7546
8738
  };
7547
- Relationships: [];
8739
+ Relationships: [
8740
+ {
8741
+ foreignKeyName: "product_groups_head_product_id_fkey";
8742
+ columns: ["head_product_id"];
8743
+ isOneToOne: false;
8744
+ referencedRelation: "products";
8745
+ referencedColumns: ["id"];
8746
+ }
8747
+ ];
7548
8748
  };
7549
8749
  products: {
7550
8750
  Row: {
@@ -8678,6 +9878,27 @@ export type Database = {
8678
9878
  };
8679
9879
  Relationships: [];
8680
9880
  };
9881
+ technician_rates: {
9882
+ Row: {
9883
+ created_at: string;
9884
+ hourly_rate_cents: number;
9885
+ updated_at: string;
9886
+ user_id: string;
9887
+ };
9888
+ Insert: {
9889
+ created_at?: string;
9890
+ hourly_rate_cents?: number;
9891
+ updated_at?: string;
9892
+ user_id: string;
9893
+ };
9894
+ Update: {
9895
+ created_at?: string;
9896
+ hourly_rate_cents?: number;
9897
+ updated_at?: string;
9898
+ user_id?: string;
9899
+ };
9900
+ Relationships: [];
9901
+ };
8681
9902
  tenants: {
8682
9903
  Row: {
8683
9904
  created_at: string;
@@ -9155,6 +10376,7 @@ export type Database = {
9155
10376
  country: string | null;
9156
10377
  created_at: string;
9157
10378
  email: string | null;
10379
+ external_group_key: string | null;
9158
10380
  id: string;
9159
10381
  last_synced_at: string | null;
9160
10382
  name: string;
@@ -9173,6 +10395,7 @@ export type Database = {
9173
10395
  country?: string | null;
9174
10396
  created_at?: string;
9175
10397
  email?: string | null;
10398
+ external_group_key?: string | null;
9176
10399
  id?: string;
9177
10400
  last_synced_at?: string | null;
9178
10401
  name: string;
@@ -9191,6 +10414,7 @@ export type Database = {
9191
10414
  country?: string | null;
9192
10415
  created_at?: string;
9193
10416
  email?: string | null;
10417
+ external_group_key?: string | null;
9194
10418
  id?: string;
9195
10419
  last_synced_at?: string | null;
9196
10420
  name?: string;
@@ -9361,6 +10585,8 @@ export type Database = {
9361
10585
  twinfield_invoice_settings: {
9362
10586
  Row: {
9363
10587
  created_at: string;
10588
+ debtor_gl_account: string;
10589
+ default_credit_invoice_type: string | null;
9364
10590
  default_gl_account: string;
9365
10591
  default_invoice_type: string;
9366
10592
  default_payment_term_days: number;
@@ -9369,11 +10595,15 @@ export type Database = {
9369
10595
  invoice_enabled_fo: boolean;
9370
10596
  invoice_enabled_ho: boolean;
9371
10597
  invoice_enabled_mo: boolean;
10598
+ payment_gl_account: string;
10599
+ payment_journal_code: string;
9372
10600
  updated_at: string;
9373
10601
  user_id: string;
9374
10602
  };
9375
10603
  Insert: {
9376
10604
  created_at?: string;
10605
+ debtor_gl_account?: string;
10606
+ default_credit_invoice_type?: string | null;
9377
10607
  default_gl_account?: string;
9378
10608
  default_invoice_type?: string;
9379
10609
  default_payment_term_days?: number;
@@ -9382,11 +10612,15 @@ export type Database = {
9382
10612
  invoice_enabled_fo?: boolean;
9383
10613
  invoice_enabled_ho?: boolean;
9384
10614
  invoice_enabled_mo?: boolean;
10615
+ payment_gl_account?: string;
10616
+ payment_journal_code?: string;
9385
10617
  updated_at?: string;
9386
10618
  user_id: string;
9387
10619
  };
9388
10620
  Update: {
9389
10621
  created_at?: string;
10622
+ debtor_gl_account?: string;
10623
+ default_credit_invoice_type?: string | null;
9390
10624
  default_gl_account?: string;
9391
10625
  default_invoice_type?: string;
9392
10626
  default_payment_term_days?: number;
@@ -9395,6 +10629,8 @@ export type Database = {
9395
10629
  invoice_enabled_fo?: boolean;
9396
10630
  invoice_enabled_ho?: boolean;
9397
10631
  invoice_enabled_mo?: boolean;
10632
+ payment_gl_account?: string;
10633
+ payment_journal_code?: string;
9398
10634
  updated_at?: string;
9399
10635
  user_id?: string;
9400
10636
  };
@@ -9617,43 +10853,49 @@ export type Database = {
9617
10853
  };
9618
10854
  twinfield_push_queue: {
9619
10855
  Row: {
10856
+ action: string;
9620
10857
  attempts: number;
9621
10858
  connection_id: string;
9622
10859
  created_at: string;
10860
+ customer_id: string | null;
9623
10861
  external_id: string | null;
9624
10862
  id: string;
9625
10863
  idempotency_key: string;
9626
10864
  last_error: string | null;
9627
10865
  next_attempt_at: string;
9628
- office_code: string;
10866
+ office_code: string | null;
9629
10867
  payload: Json;
9630
10868
  status: string;
9631
10869
  updated_at: string;
9632
10870
  };
9633
10871
  Insert: {
10872
+ action?: string;
9634
10873
  attempts?: number;
9635
10874
  connection_id: string;
9636
10875
  created_at?: string;
10876
+ customer_id?: string | null;
9637
10877
  external_id?: string | null;
9638
10878
  id?: string;
9639
10879
  idempotency_key: string;
9640
10880
  last_error?: string | null;
9641
10881
  next_attempt_at?: string;
9642
- office_code: string;
10882
+ office_code?: string | null;
9643
10883
  payload: Json;
9644
10884
  status?: string;
9645
10885
  updated_at?: string;
9646
10886
  };
9647
10887
  Update: {
10888
+ action?: string;
9648
10889
  attempts?: number;
9649
10890
  connection_id?: string;
9650
10891
  created_at?: string;
10892
+ customer_id?: string | null;
9651
10893
  external_id?: string | null;
9652
10894
  id?: string;
9653
10895
  idempotency_key?: string;
9654
10896
  last_error?: string | null;
9655
10897
  next_attempt_at?: string;
9656
- office_code?: string;
10898
+ office_code?: string | null;
9657
10899
  payload?: Json;
9658
10900
  status?: string;
9659
10901
  updated_at?: string;
@@ -9665,6 +10907,13 @@ export type Database = {
9665
10907
  isOneToOne: false;
9666
10908
  referencedRelation: "twinfield_connections";
9667
10909
  referencedColumns: ["id"];
10910
+ },
10911
+ {
10912
+ foreignKeyName: "twinfield_push_queue_customer_id_fkey";
10913
+ columns: ["customer_id"];
10914
+ isOneToOne: false;
10915
+ referencedRelation: "customers";
10916
+ referencedColumns: ["id"];
9668
10917
  }
9669
10918
  ];
9670
10919
  };
@@ -9947,6 +11196,262 @@ export type Database = {
9947
11196
  };
9948
11197
  Relationships: [];
9949
11198
  };
11199
+ werkbon_package_lines: {
11200
+ Row: {
11201
+ created_at: string;
11202
+ created_by: string | null;
11203
+ id: string;
11204
+ package_id: string;
11205
+ quantity: number;
11206
+ unit_price_cents_snapshot: number;
11207
+ werkbon_id: string;
11208
+ };
11209
+ Insert: {
11210
+ created_at?: string;
11211
+ created_by?: string | null;
11212
+ id?: string;
11213
+ package_id: string;
11214
+ quantity?: number;
11215
+ unit_price_cents_snapshot?: number;
11216
+ werkbon_id: string;
11217
+ };
11218
+ Update: {
11219
+ created_at?: string;
11220
+ created_by?: string | null;
11221
+ id?: string;
11222
+ package_id?: string;
11223
+ quantity?: number;
11224
+ unit_price_cents_snapshot?: number;
11225
+ werkbon_id?: string;
11226
+ };
11227
+ Relationships: [
11228
+ {
11229
+ foreignKeyName: "werkbon_package_lines_package_id_fkey";
11230
+ columns: ["package_id"];
11231
+ isOneToOne: false;
11232
+ referencedRelation: "werkbon_packages";
11233
+ referencedColumns: ["id"];
11234
+ },
11235
+ {
11236
+ foreignKeyName: "werkbon_package_lines_werkbon_id_fkey";
11237
+ columns: ["werkbon_id"];
11238
+ isOneToOne: false;
11239
+ referencedRelation: "werkbonnen";
11240
+ referencedColumns: ["id"];
11241
+ }
11242
+ ];
11243
+ };
11244
+ werkbon_packages: {
11245
+ Row: {
11246
+ active: boolean;
11247
+ code: string;
11248
+ created_at: string;
11249
+ default_quantity: number;
11250
+ description: string | null;
11251
+ id: string;
11252
+ name: string;
11253
+ unit_price_cents: number;
11254
+ updated_at: string;
11255
+ };
11256
+ Insert: {
11257
+ active?: boolean;
11258
+ code: string;
11259
+ created_at?: string;
11260
+ default_quantity?: number;
11261
+ description?: string | null;
11262
+ id?: string;
11263
+ name: string;
11264
+ unit_price_cents?: number;
11265
+ updated_at?: string;
11266
+ };
11267
+ Update: {
11268
+ active?: boolean;
11269
+ code?: string;
11270
+ created_at?: string;
11271
+ default_quantity?: number;
11272
+ description?: string | null;
11273
+ id?: string;
11274
+ name?: string;
11275
+ unit_price_cents?: number;
11276
+ updated_at?: string;
11277
+ };
11278
+ Relationships: [];
11279
+ };
11280
+ werkbon_photos: {
11281
+ Row: {
11282
+ created_at: string;
11283
+ id: string;
11284
+ storage_path: string;
11285
+ user_id: string;
11286
+ werkbon_id: string;
11287
+ };
11288
+ Insert: {
11289
+ created_at?: string;
11290
+ id?: string;
11291
+ storage_path: string;
11292
+ user_id: string;
11293
+ werkbon_id: string;
11294
+ };
11295
+ Update: {
11296
+ created_at?: string;
11297
+ id?: string;
11298
+ storage_path?: string;
11299
+ user_id?: string;
11300
+ werkbon_id?: string;
11301
+ };
11302
+ Relationships: [
11303
+ {
11304
+ foreignKeyName: "werkbon_photos_werkbon_id_fkey";
11305
+ columns: ["werkbon_id"];
11306
+ isOneToOne: false;
11307
+ referencedRelation: "werkbonnen";
11308
+ referencedColumns: ["id"];
11309
+ }
11310
+ ];
11311
+ };
11312
+ werkbon_time_logs: {
11313
+ Row: {
11314
+ activity: string;
11315
+ created_at: string;
11316
+ ended_at: string | null;
11317
+ id: string;
11318
+ started_at: string;
11319
+ user_id: string;
11320
+ werkbon_id: string;
11321
+ };
11322
+ Insert: {
11323
+ activity: string;
11324
+ created_at?: string;
11325
+ ended_at?: string | null;
11326
+ id?: string;
11327
+ started_at?: string;
11328
+ user_id: string;
11329
+ werkbon_id: string;
11330
+ };
11331
+ Update: {
11332
+ activity?: string;
11333
+ created_at?: string;
11334
+ ended_at?: string | null;
11335
+ id?: string;
11336
+ started_at?: string;
11337
+ user_id?: string;
11338
+ werkbon_id?: string;
11339
+ };
11340
+ Relationships: [
11341
+ {
11342
+ foreignKeyName: "werkbon_time_logs_werkbon_id_fkey";
11343
+ columns: ["werkbon_id"];
11344
+ isOneToOne: false;
11345
+ referencedRelation: "werkbonnen";
11346
+ referencedColumns: ["id"];
11347
+ }
11348
+ ];
11349
+ };
11350
+ werkbonnen: {
11351
+ Row: {
11352
+ assigned_user_id: string | null;
11353
+ budget_mandate_cents: number;
11354
+ complaint_description: string | null;
11355
+ created_at: string;
11356
+ created_by: string | null;
11357
+ customer_id: string | null;
11358
+ externe_referentie: string | null;
11359
+ first_time_fix: boolean | null;
11360
+ id: string;
11361
+ internal_notes: string | null;
11362
+ parent_werkbon_id: string | null;
11363
+ parsed_payload: Json | null;
11364
+ planning_status: string;
11365
+ project_number: string | null;
11366
+ room_number: string | null;
11367
+ scheduled_end_time: string | null;
11368
+ scheduled_start_time: string | null;
11369
+ sequence_number: number;
11370
+ source_pdf_path: string | null;
11371
+ status: string;
11372
+ technician_id: string | null;
11373
+ technician_notes: string | null;
11374
+ technician_notes_raw: string | null;
11375
+ technician_task_description: string | null;
11376
+ updated_at: string;
11377
+ version: number;
11378
+ work_address: string | null;
11379
+ };
11380
+ Insert: {
11381
+ assigned_user_id?: string | null;
11382
+ budget_mandate_cents?: number;
11383
+ complaint_description?: string | null;
11384
+ created_at?: string;
11385
+ created_by?: string | null;
11386
+ customer_id?: string | null;
11387
+ externe_referentie?: string | null;
11388
+ first_time_fix?: boolean | null;
11389
+ id?: string;
11390
+ internal_notes?: string | null;
11391
+ parent_werkbon_id?: string | null;
11392
+ parsed_payload?: Json | null;
11393
+ planning_status?: string;
11394
+ project_number?: string | null;
11395
+ room_number?: string | null;
11396
+ scheduled_end_time?: string | null;
11397
+ scheduled_start_time?: string | null;
11398
+ sequence_number: number;
11399
+ source_pdf_path?: string | null;
11400
+ status?: string;
11401
+ technician_id?: string | null;
11402
+ technician_notes?: string | null;
11403
+ technician_notes_raw?: string | null;
11404
+ technician_task_description?: string | null;
11405
+ updated_at?: string;
11406
+ version?: number;
11407
+ work_address?: string | null;
11408
+ };
11409
+ Update: {
11410
+ assigned_user_id?: string | null;
11411
+ budget_mandate_cents?: number;
11412
+ complaint_description?: string | null;
11413
+ created_at?: string;
11414
+ created_by?: string | null;
11415
+ customer_id?: string | null;
11416
+ externe_referentie?: string | null;
11417
+ first_time_fix?: boolean | null;
11418
+ id?: string;
11419
+ internal_notes?: string | null;
11420
+ parent_werkbon_id?: string | null;
11421
+ parsed_payload?: Json | null;
11422
+ planning_status?: string;
11423
+ project_number?: string | null;
11424
+ room_number?: string | null;
11425
+ scheduled_end_time?: string | null;
11426
+ scheduled_start_time?: string | null;
11427
+ sequence_number?: number;
11428
+ source_pdf_path?: string | null;
11429
+ status?: string;
11430
+ technician_id?: string | null;
11431
+ technician_notes?: string | null;
11432
+ technician_notes_raw?: string | null;
11433
+ technician_task_description?: string | null;
11434
+ updated_at?: string;
11435
+ version?: number;
11436
+ work_address?: string | null;
11437
+ };
11438
+ Relationships: [
11439
+ {
11440
+ foreignKeyName: "werkbonnen_parent_werkbon_id_fkey";
11441
+ columns: ["parent_werkbon_id"];
11442
+ isOneToOne: false;
11443
+ referencedRelation: "werkbonnen";
11444
+ referencedColumns: ["id"];
11445
+ },
11446
+ {
11447
+ foreignKeyName: "werkbonnen_technician_id_fkey";
11448
+ columns: ["technician_id"];
11449
+ isOneToOne: false;
11450
+ referencedRelation: "monteurs";
11451
+ referencedColumns: ["id"];
11452
+ }
11453
+ ];
11454
+ };
9950
11455
  work_order_monteurs: {
9951
11456
  Row: {
9952
11457
  created_at: string;
@@ -10123,6 +11628,8 @@ export type Database = {
10123
11628
  created_at: string | null;
10124
11629
  created_by: string | null;
10125
11630
  display_name: string | null;
11631
+ graph_subscription_expires_at: string | null;
11632
+ graph_subscription_id: string | null;
10126
11633
  has_access_token: boolean | null;
10127
11634
  has_client_id: boolean | null;
10128
11635
  has_client_secret: boolean | null;
@@ -10140,6 +11647,7 @@ export type Database = {
10140
11647
  oauth_mode: string | null;
10141
11648
  provider: string | null;
10142
11649
  purpose_assignments: Json | null;
11650
+ realtime_mode: string | null;
10143
11651
  scopes: string[] | null;
10144
11652
  smtp_host: string | null;
10145
11653
  smtp_port: number | null;
@@ -10154,6 +11662,8 @@ export type Database = {
10154
11662
  created_at?: string | null;
10155
11663
  created_by?: string | null;
10156
11664
  display_name?: string | null;
11665
+ graph_subscription_expires_at?: string | null;
11666
+ graph_subscription_id?: string | null;
10157
11667
  has_access_token?: never;
10158
11668
  has_client_id?: never;
10159
11669
  has_client_secret?: never;
@@ -10171,6 +11681,7 @@ export type Database = {
10171
11681
  oauth_mode?: string | null;
10172
11682
  provider?: string | null;
10173
11683
  purpose_assignments?: Json | null;
11684
+ realtime_mode?: string | null;
10174
11685
  scopes?: string[] | null;
10175
11686
  smtp_host?: string | null;
10176
11687
  smtp_port?: number | null;
@@ -10185,6 +11696,8 @@ export type Database = {
10185
11696
  created_at?: string | null;
10186
11697
  created_by?: string | null;
10187
11698
  display_name?: string | null;
11699
+ graph_subscription_expires_at?: string | null;
11700
+ graph_subscription_id?: string | null;
10188
11701
  has_access_token?: never;
10189
11702
  has_client_id?: never;
10190
11703
  has_client_secret?: never;
@@ -10202,6 +11715,7 @@ export type Database = {
10202
11715
  oauth_mode?: string | null;
10203
11716
  provider?: string | null;
10204
11717
  purpose_assignments?: Json | null;
11718
+ realtime_mode?: string | null;
10205
11719
  scopes?: string[] | null;
10206
11720
  smtp_host?: string | null;
10207
11721
  smtp_port?: number | null;
@@ -10672,6 +12186,21 @@ export type Database = {
10672
12186
  };
10673
12187
  Returns: string;
10674
12188
  };
12189
+ ai_usage_by_module: {
12190
+ Args: {
12191
+ _from: string;
12192
+ _to: string;
12193
+ };
12194
+ Returns: {
12195
+ calls: number;
12196
+ consumer_module_id: string;
12197
+ cost_usd: number;
12198
+ errors: number;
12199
+ input_tokens: number;
12200
+ output_tokens: number;
12201
+ total_tokens: number;
12202
+ }[];
12203
+ };
10675
12204
  apply_stock_consumption: {
10676
12205
  Args: {
10677
12206
  p_order_id: string;
@@ -10757,6 +12286,33 @@ export type Database = {
10757
12286
  };
10758
12287
  Returns: Json;
10759
12288
  };
12289
+ claim_twinfield_push_batch: {
12290
+ Args: {
12291
+ _limit?: number;
12292
+ };
12293
+ Returns: {
12294
+ action: string;
12295
+ attempts: number;
12296
+ connection_id: string;
12297
+ created_at: string;
12298
+ customer_id: string | null;
12299
+ external_id: string | null;
12300
+ id: string;
12301
+ idempotency_key: string;
12302
+ last_error: string | null;
12303
+ next_attempt_at: string;
12304
+ office_code: string | null;
12305
+ payload: Json;
12306
+ status: string;
12307
+ updated_at: string;
12308
+ }[];
12309
+ SetofOptions: {
12310
+ from: "*";
12311
+ to: "twinfield_push_queue";
12312
+ isOneToOne: false;
12313
+ isSetofReturn: true;
12314
+ };
12315
+ };
10760
12316
  cleanup_old_bookings: {
10761
12317
  Args: never;
10762
12318
  Returns: undefined;
@@ -10793,6 +12349,12 @@ export type Database = {
10793
12349
  Args: never;
10794
12350
  Returns: string;
10795
12351
  };
12352
+ custom_access_token_hook: {
12353
+ Args: {
12354
+ event: Json;
12355
+ };
12356
+ Returns: Json;
12357
+ };
10796
12358
  dashboard_alert_counts: {
10797
12359
  Args: never;
10798
12360
  Returns: Json;
@@ -10853,6 +12415,16 @@ export type Database = {
10853
12415
  status: string;
10854
12416
  }[];
10855
12417
  };
12418
+ email_auth_upsert_connection: {
12419
+ Args: {
12420
+ _account_email: string;
12421
+ _created_by: string;
12422
+ _is_active: boolean;
12423
+ _provider: string;
12424
+ _status: string;
12425
+ };
12426
+ Returns: string;
12427
+ };
10856
12428
  enqueue_cart_replan_if_unlocked: {
10857
12429
  Args: {
10858
12430
  p_order_id: string;
@@ -11118,6 +12690,14 @@ export type Database = {
11118
12690
  };
11119
12691
  Returns: string;
11120
12692
  };
12693
+ has_module_permission: {
12694
+ Args: {
12695
+ _min: string;
12696
+ _module_id: string;
12697
+ _user_id: string;
12698
+ };
12699
+ Returns: boolean;
12700
+ };
11121
12701
  has_role: {
11122
12702
  Args: {
11123
12703
  _role: Database["public"]["Enums"]["app_role"];
@@ -11125,6 +12705,10 @@ export type Database = {
11125
12705
  };
11126
12706
  Returns: boolean;
11127
12707
  };
12708
+ has_twinfield_link: {
12709
+ Args: never;
12710
+ Returns: boolean;
12711
+ };
11128
12712
  is_authenticated: {
11129
12713
  Args: never;
11130
12714
  Returns: boolean;
@@ -11139,6 +12723,20 @@ export type Database = {
11139
12723
  };
11140
12724
  Returns: boolean;
11141
12725
  };
12726
+ jwt_has_role: {
12727
+ Args: {
12728
+ _role: Database["public"]["Enums"]["app_role"];
12729
+ };
12730
+ Returns: boolean;
12731
+ };
12732
+ list_monteurs: {
12733
+ Args: never;
12734
+ Returns: {
12735
+ display_name: string;
12736
+ email: string;
12737
+ user_id: string;
12738
+ }[];
12739
+ };
11142
12740
  local_effective_price: {
11143
12741
  Args: {
11144
12742
  _customer_id: string;
@@ -11155,6 +12753,22 @@ export type Database = {
11155
12753
  source_id: string;
11156
12754
  }[];
11157
12755
  };
12756
+ log_ai_call: {
12757
+ Args: {
12758
+ _consumer_module_id: string;
12759
+ _cost_usd: number;
12760
+ _duration_ms: number;
12761
+ _error_code: string;
12762
+ _error_message: string;
12763
+ _input_tokens: number;
12764
+ _model_slug: string;
12765
+ _output_tokens: number;
12766
+ _provider_slug: string;
12767
+ _status: string;
12768
+ _total_tokens: number;
12769
+ };
12770
+ Returns: string;
12771
+ };
11158
12772
  mark_offer_clicked: {
11159
12773
  Args: {
11160
12774
  p_code: string;
@@ -11167,6 +12781,12 @@ export type Database = {
11167
12781
  };
11168
12782
  Returns: undefined;
11169
12783
  };
12784
+ mark_shipment_shipped: {
12785
+ Args: {
12786
+ p_shipment_id: string;
12787
+ };
12788
+ Returns: undefined;
12789
+ };
11170
12790
  next_order_number: {
11171
12791
  Args: {
11172
12792
  p_prefix: string;
@@ -11180,6 +12800,10 @@ export type Database = {
11180
12800
  };
11181
12801
  Returns: string;
11182
12802
  };
12803
+ next_twinfield_code: {
12804
+ Args: never;
12805
+ Returns: string;
12806
+ };
11183
12807
  next_work_order_number: {
11184
12808
  Args: {
11185
12809
  p_parent_work_order_id?: string;
@@ -11294,6 +12918,12 @@ export type Database = {
11294
12918
  };
11295
12919
  Returns: number;
11296
12920
  };
12921
+ reorder_customer_price_groups: {
12922
+ Args: {
12923
+ _ids: string[];
12924
+ };
12925
+ Returns: undefined;
12926
+ };
11297
12927
  reset_floriday_sync_cursor: {
11298
12928
  Args: {
11299
12929
  p_connection_id: string;
@@ -11307,6 +12937,12 @@ export type Database = {
11307
12937
  };
11308
12938
  Returns: string;
11309
12939
  };
12940
+ retry_twinfield_push: {
12941
+ Args: {
12942
+ _customer_id: string;
12943
+ };
12944
+ Returns: number;
12945
+ };
11310
12946
  schedule_floriday_additional_services_sync: {
11311
12947
  Args: {
11312
12948
  p_apikey: string;
@@ -11627,9 +13263,11 @@ export type Database = {
11627
13263
  };
11628
13264
  };
11629
13265
  Enums: {
11630
- app_role: "admin" | "manager" | "warehouse" | "sales" | "developer" | "receptie" | "monteur";
13266
+ app_role: "admin" | "planner" | "monteur" | "administratie" | "ai_admin";
11631
13267
  exact_env: "staging" | "live";
11632
13268
  exact_push_status: "pending" | "sent" | "error";
13269
+ itk_customer_segment: "Business" | "Private";
13270
+ itk_dynamic_field_type: "text" | "select" | "date" | "checkbox";
11633
13271
  quote_status: "concept" | "verzonden" | "bekeken" | "in_behandeling" | "geaccepteerd" | "afgewezen" | "verlopen" | "gearchiveerd";
11634
13272
  };
11635
13273
  CompositeTypes: {
@@ -11689,9 +13327,11 @@ export type CompositeTypes<PublicCompositeTypeNameOrOptions extends keyof Defaul
11689
13327
  export declare const Constants: {
11690
13328
  readonly public: {
11691
13329
  readonly Enums: {
11692
- readonly app_role: readonly ["admin", "manager", "warehouse", "sales", "developer", "receptie", "monteur"];
13330
+ readonly app_role: readonly ["admin", "planner", "monteur", "administratie", "ai_admin"];
11693
13331
  readonly exact_env: readonly ["staging", "live"];
11694
13332
  readonly exact_push_status: readonly ["pending", "sent", "error"];
13333
+ readonly itk_customer_segment: readonly ["Business", "Private"];
13334
+ readonly itk_dynamic_field_type: readonly ["text", "select", "date", "checkbox"];
11695
13335
  readonly quote_status: readonly ["concept", "verzonden", "bekeken", "in_behandeling", "geaccepteerd", "afgewezen", "verlopen", "gearchiveerd"];
11696
13336
  };
11697
13337
  };