@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
@@ -294,6 +294,318 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
294
294
  };
295
295
  Relationships: [];
296
296
  };
297
+ ai_admin_credentials: {
298
+ Row: {
299
+ active: boolean;
300
+ admin_key: string;
301
+ created_at: string;
302
+ id: string;
303
+ label: string;
304
+ provider_id: string;
305
+ updated_at: string;
306
+ };
307
+ Insert: {
308
+ active?: boolean;
309
+ admin_key: string;
310
+ created_at?: string;
311
+ id?: string;
312
+ label: string;
313
+ provider_id: string;
314
+ updated_at?: string;
315
+ };
316
+ Update: {
317
+ active?: boolean;
318
+ admin_key?: string;
319
+ created_at?: string;
320
+ id?: string;
321
+ label?: string;
322
+ provider_id?: string;
323
+ updated_at?: string;
324
+ };
325
+ Relationships: [{
326
+ foreignKeyName: "ai_admin_credentials_provider_id_fkey";
327
+ columns: ["provider_id"];
328
+ isOneToOne: true;
329
+ referencedRelation: "ai_providers";
330
+ referencedColumns: ["id"];
331
+ }];
332
+ };
333
+ ai_call_log: {
334
+ Row: {
335
+ consumer_module_id: string;
336
+ cost_usd: number | null;
337
+ created_at: string;
338
+ created_by: string | null;
339
+ duration_ms: number | null;
340
+ error_code: string | null;
341
+ error_message: string | null;
342
+ id: string;
343
+ input_tokens: number;
344
+ model_slug: string | null;
345
+ output_tokens: number;
346
+ provider_slug: string | null;
347
+ status: string;
348
+ total_tokens: number;
349
+ };
350
+ Insert: {
351
+ consumer_module_id: string;
352
+ cost_usd?: number | null;
353
+ created_at?: string;
354
+ created_by?: string | null;
355
+ duration_ms?: number | null;
356
+ error_code?: string | null;
357
+ error_message?: string | null;
358
+ id?: string;
359
+ input_tokens?: number;
360
+ model_slug?: string | null;
361
+ output_tokens?: number;
362
+ provider_slug?: string | null;
363
+ status: string;
364
+ total_tokens?: number;
365
+ };
366
+ Update: {
367
+ consumer_module_id?: string;
368
+ cost_usd?: number | null;
369
+ created_at?: string;
370
+ created_by?: string | null;
371
+ duration_ms?: number | null;
372
+ error_code?: string | null;
373
+ error_message?: string | null;
374
+ id?: string;
375
+ input_tokens?: number;
376
+ model_slug?: string | null;
377
+ output_tokens?: number;
378
+ provider_slug?: string | null;
379
+ status?: string;
380
+ total_tokens?: number;
381
+ };
382
+ Relationships: [];
383
+ };
384
+ ai_credentials: {
385
+ Row: {
386
+ active: boolean;
387
+ api_key: string;
388
+ created_at: string;
389
+ id: string;
390
+ label: string;
391
+ provider_id: string;
392
+ updated_at: string;
393
+ };
394
+ Insert: {
395
+ active?: boolean;
396
+ api_key: string;
397
+ created_at?: string;
398
+ id?: string;
399
+ label: string;
400
+ provider_id: string;
401
+ updated_at?: string;
402
+ };
403
+ Update: {
404
+ active?: boolean;
405
+ api_key?: string;
406
+ created_at?: string;
407
+ id?: string;
408
+ label?: string;
409
+ provider_id?: string;
410
+ updated_at?: string;
411
+ };
412
+ Relationships: [{
413
+ foreignKeyName: "ai_credentials_provider_id_fkey";
414
+ columns: ["provider_id"];
415
+ isOneToOne: false;
416
+ referencedRelation: "ai_providers";
417
+ referencedColumns: ["id"];
418
+ }];
419
+ };
420
+ ai_goals: {
421
+ Row: {
422
+ active: boolean;
423
+ created_at: string;
424
+ description: string | null;
425
+ key: string;
426
+ label: string;
427
+ sort_order: number;
428
+ updated_at: string;
429
+ };
430
+ Insert: {
431
+ active?: boolean;
432
+ created_at?: string;
433
+ description?: string | null;
434
+ key: string;
435
+ label: string;
436
+ sort_order?: number;
437
+ updated_at?: string;
438
+ };
439
+ Update: {
440
+ active?: boolean;
441
+ created_at?: string;
442
+ description?: string | null;
443
+ key?: string;
444
+ label?: string;
445
+ sort_order?: number;
446
+ updated_at?: string;
447
+ };
448
+ Relationships: [];
449
+ };
450
+ ai_model_pricing: {
451
+ Row: {
452
+ created_at: string;
453
+ currency: string;
454
+ fetched_at: string;
455
+ id: string;
456
+ input_per_mtok: number | null;
457
+ model_slug: string;
458
+ output_per_mtok: number | null;
459
+ provider_slug: string;
460
+ source: string;
461
+ updated_at: string;
462
+ };
463
+ Insert: {
464
+ created_at?: string;
465
+ currency?: string;
466
+ fetched_at?: string;
467
+ id?: string;
468
+ input_per_mtok?: number | null;
469
+ model_slug: string;
470
+ output_per_mtok?: number | null;
471
+ provider_slug: string;
472
+ source?: string;
473
+ updated_at?: string;
474
+ };
475
+ Update: {
476
+ created_at?: string;
477
+ currency?: string;
478
+ fetched_at?: string;
479
+ id?: string;
480
+ input_per_mtok?: number | null;
481
+ model_slug?: string;
482
+ output_per_mtok?: number | null;
483
+ provider_slug?: string;
484
+ source?: string;
485
+ updated_at?: string;
486
+ };
487
+ Relationships: [];
488
+ };
489
+ ai_models: {
490
+ Row: {
491
+ active: boolean;
492
+ context_window: number | null;
493
+ created_at: string;
494
+ display_name: string;
495
+ id: string;
496
+ is_default: boolean;
497
+ modality: string;
498
+ provider_id: string;
499
+ slug: string;
500
+ updated_at: string;
501
+ };
502
+ Insert: {
503
+ active?: boolean;
504
+ context_window?: number | null;
505
+ created_at?: string;
506
+ display_name: string;
507
+ id?: string;
508
+ is_default?: boolean;
509
+ modality?: string;
510
+ provider_id: string;
511
+ slug: string;
512
+ updated_at?: string;
513
+ };
514
+ Update: {
515
+ active?: boolean;
516
+ context_window?: number | null;
517
+ created_at?: string;
518
+ display_name?: string;
519
+ id?: string;
520
+ is_default?: boolean;
521
+ modality?: string;
522
+ provider_id?: string;
523
+ slug?: string;
524
+ updated_at?: string;
525
+ };
526
+ Relationships: [{
527
+ foreignKeyName: "ai_models_provider_id_fkey";
528
+ columns: ["provider_id"];
529
+ isOneToOne: false;
530
+ referencedRelation: "ai_providers";
531
+ referencedColumns: ["id"];
532
+ }];
533
+ };
534
+ ai_module_bindings: {
535
+ Row: {
536
+ consumer_module_id: string;
537
+ created_at: string;
538
+ credential_id: string;
539
+ id: string;
540
+ model_id: string;
541
+ notes: string | null;
542
+ updated_at: string;
543
+ };
544
+ Insert: {
545
+ consumer_module_id: string;
546
+ created_at?: string;
547
+ credential_id: string;
548
+ id?: string;
549
+ model_id: string;
550
+ notes?: string | null;
551
+ updated_at?: string;
552
+ };
553
+ Update: {
554
+ consumer_module_id?: string;
555
+ created_at?: string;
556
+ credential_id?: string;
557
+ id?: string;
558
+ model_id?: string;
559
+ notes?: string | null;
560
+ updated_at?: string;
561
+ };
562
+ Relationships: [{
563
+ foreignKeyName: "ai_module_bindings_credential_id_fkey";
564
+ columns: ["credential_id"];
565
+ isOneToOne: false;
566
+ referencedRelation: "ai_credentials";
567
+ referencedColumns: ["id"];
568
+ }, {
569
+ foreignKeyName: "ai_module_bindings_model_id_fkey";
570
+ columns: ["model_id"];
571
+ isOneToOne: false;
572
+ referencedRelation: "ai_models";
573
+ referencedColumns: ["id"];
574
+ }];
575
+ };
576
+ ai_providers: {
577
+ Row: {
578
+ active: boolean;
579
+ auth_type: string;
580
+ base_url: string | null;
581
+ created_at: string;
582
+ id: string;
583
+ name: string;
584
+ slug: string;
585
+ updated_at: string;
586
+ };
587
+ Insert: {
588
+ active?: boolean;
589
+ auth_type?: string;
590
+ base_url?: string | null;
591
+ created_at?: string;
592
+ id?: string;
593
+ name: string;
594
+ slug: string;
595
+ updated_at?: string;
596
+ };
597
+ Update: {
598
+ active?: boolean;
599
+ auth_type?: string;
600
+ base_url?: string | null;
601
+ created_at?: string;
602
+ id?: string;
603
+ name?: string;
604
+ slug?: string;
605
+ updated_at?: string;
606
+ };
607
+ Relationships: [];
608
+ };
297
609
  app_settings: {
298
610
  Row: {
299
611
  created_at: string;
@@ -921,6 +1233,141 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
921
1233
  };
922
1234
  Relationships: [];
923
1235
  };
1236
+ cart_planning_pick_times: {
1237
+ Row: {
1238
+ created_at: string;
1239
+ id: string;
1240
+ pot_size: string;
1241
+ seconds_per_cart: number;
1242
+ updated_at: string;
1243
+ };
1244
+ Insert: {
1245
+ created_at?: string;
1246
+ id?: string;
1247
+ pot_size: string;
1248
+ seconds_per_cart: number;
1249
+ updated_at?: string;
1250
+ };
1251
+ Update: {
1252
+ created_at?: string;
1253
+ id?: string;
1254
+ pot_size?: string;
1255
+ seconds_per_cart?: number;
1256
+ updated_at?: string;
1257
+ };
1258
+ Relationships: [];
1259
+ };
1260
+ cart_planning_product_overrides: {
1261
+ Row: {
1262
+ created_at: string;
1263
+ id: string;
1264
+ max_party_share_per_layer_pct_override: number | null;
1265
+ never_mix: boolean;
1266
+ notes: string | null;
1267
+ product_id: string;
1268
+ updated_at: string;
1269
+ };
1270
+ Insert: {
1271
+ created_at?: string;
1272
+ id?: string;
1273
+ max_party_share_per_layer_pct_override?: number | null;
1274
+ never_mix?: boolean;
1275
+ notes?: string | null;
1276
+ product_id: string;
1277
+ updated_at?: string;
1278
+ };
1279
+ Update: {
1280
+ created_at?: string;
1281
+ id?: string;
1282
+ max_party_share_per_layer_pct_override?: number | null;
1283
+ never_mix?: boolean;
1284
+ notes?: string | null;
1285
+ product_id?: string;
1286
+ updated_at?: string;
1287
+ };
1288
+ Relationships: [{
1289
+ foreignKeyName: "cart_planning_product_overrides_product_id_fkey";
1290
+ columns: ["product_id"];
1291
+ isOneToOne: true;
1292
+ referencedRelation: "products";
1293
+ referencedColumns: ["id"];
1294
+ }];
1295
+ };
1296
+ cart_planning_settings: {
1297
+ Row: {
1298
+ allow_editing_after_pickstation_send: boolean;
1299
+ buffer_grouping_mode: string;
1300
+ combine_floriday_orders: boolean;
1301
+ combine_floriday_orders_window: string;
1302
+ combine_orders_scope: string;
1303
+ default_workers: number;
1304
+ id: number;
1305
+ max_beladingen_per_layer: number;
1306
+ max_customers_per_cart: number;
1307
+ max_one_customer_per_layer: boolean;
1308
+ max_party_share_per_layer_pct: number;
1309
+ optimization_strategy: string;
1310
+ own_cart_from_layers: number;
1311
+ pick_time_mode: string;
1312
+ plants_per_day: number;
1313
+ plants_per_hour: number;
1314
+ require_same_carrier: boolean;
1315
+ require_same_crate_type: boolean;
1316
+ require_same_delivery_date: boolean;
1317
+ require_same_delivery_location: boolean;
1318
+ updated_at: string;
1319
+ updated_by: string | null;
1320
+ };
1321
+ Insert: {
1322
+ allow_editing_after_pickstation_send?: boolean;
1323
+ buffer_grouping_mode?: string;
1324
+ combine_floriday_orders?: boolean;
1325
+ combine_floriday_orders_window?: string;
1326
+ combine_orders_scope?: string;
1327
+ default_workers?: number;
1328
+ id?: number;
1329
+ max_beladingen_per_layer?: number;
1330
+ max_customers_per_cart?: number;
1331
+ max_one_customer_per_layer?: boolean;
1332
+ max_party_share_per_layer_pct?: number;
1333
+ optimization_strategy?: string;
1334
+ own_cart_from_layers?: number;
1335
+ pick_time_mode?: string;
1336
+ plants_per_day?: number;
1337
+ plants_per_hour?: number;
1338
+ require_same_carrier?: boolean;
1339
+ require_same_crate_type?: boolean;
1340
+ require_same_delivery_date?: boolean;
1341
+ require_same_delivery_location?: boolean;
1342
+ updated_at?: string;
1343
+ updated_by?: string | null;
1344
+ };
1345
+ Update: {
1346
+ allow_editing_after_pickstation_send?: boolean;
1347
+ buffer_grouping_mode?: string;
1348
+ combine_floriday_orders?: boolean;
1349
+ combine_floriday_orders_window?: string;
1350
+ combine_orders_scope?: string;
1351
+ default_workers?: number;
1352
+ id?: number;
1353
+ max_beladingen_per_layer?: number;
1354
+ max_customers_per_cart?: number;
1355
+ max_one_customer_per_layer?: boolean;
1356
+ max_party_share_per_layer_pct?: number;
1357
+ optimization_strategy?: string;
1358
+ own_cart_from_layers?: number;
1359
+ pick_time_mode?: string;
1360
+ plants_per_day?: number;
1361
+ plants_per_hour?: number;
1362
+ require_same_carrier?: boolean;
1363
+ require_same_crate_type?: boolean;
1364
+ require_same_delivery_date?: boolean;
1365
+ require_same_delivery_location?: boolean;
1366
+ updated_at?: string;
1367
+ updated_by?: string | null;
1368
+ };
1369
+ Relationships: [];
1370
+ };
924
1371
  cart_replan_queue: {
925
1372
  Row: {
926
1373
  attempts: number;
@@ -951,6 +1398,102 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
951
1398
  referencedColumns: ["id"];
952
1399
  }];
953
1400
  };
1401
+ cart_types: {
1402
+ Row: {
1403
+ created_at: string;
1404
+ id: string;
1405
+ is_default: boolean;
1406
+ layer_length_cm: number;
1407
+ layer_width_cm: number;
1408
+ layers_per_cart: number;
1409
+ name: string;
1410
+ updated_at: string;
1411
+ };
1412
+ Insert: {
1413
+ created_at?: string;
1414
+ id?: string;
1415
+ is_default?: boolean;
1416
+ layer_length_cm: number;
1417
+ layer_width_cm: number;
1418
+ layers_per_cart?: number;
1419
+ name: string;
1420
+ updated_at?: string;
1421
+ };
1422
+ Update: {
1423
+ created_at?: string;
1424
+ id?: string;
1425
+ is_default?: boolean;
1426
+ layer_length_cm?: number;
1427
+ layer_width_cm?: number;
1428
+ layers_per_cart?: number;
1429
+ name?: string;
1430
+ updated_at?: string;
1431
+ };
1432
+ Relationships: [];
1433
+ };
1434
+ catalog_articles_cache: {
1435
+ Row: {
1436
+ created_at: string;
1437
+ default_price: number;
1438
+ default_vat_rate_ref: string | null;
1439
+ external_ref: string;
1440
+ id: string;
1441
+ name: string;
1442
+ updated_at: string;
1443
+ user_id: string;
1444
+ };
1445
+ Insert: {
1446
+ created_at?: string;
1447
+ default_price?: number;
1448
+ default_vat_rate_ref?: string | null;
1449
+ external_ref: string;
1450
+ id?: string;
1451
+ name: string;
1452
+ updated_at?: string;
1453
+ user_id: string;
1454
+ };
1455
+ Update: {
1456
+ created_at?: string;
1457
+ default_price?: number;
1458
+ default_vat_rate_ref?: string | null;
1459
+ external_ref?: string;
1460
+ id?: string;
1461
+ name?: string;
1462
+ updated_at?: string;
1463
+ user_id?: string;
1464
+ };
1465
+ Relationships: [];
1466
+ };
1467
+ catalog_vat_rates_cache: {
1468
+ Row: {
1469
+ created_at: string;
1470
+ external_ref: string;
1471
+ id: string;
1472
+ label: string;
1473
+ percentage: number;
1474
+ updated_at: string;
1475
+ user_id: string;
1476
+ };
1477
+ Insert: {
1478
+ created_at?: string;
1479
+ external_ref: string;
1480
+ id?: string;
1481
+ label: string;
1482
+ percentage?: number;
1483
+ updated_at?: string;
1484
+ user_id: string;
1485
+ };
1486
+ Update: {
1487
+ created_at?: string;
1488
+ external_ref?: string;
1489
+ id?: string;
1490
+ label?: string;
1491
+ percentage?: number;
1492
+ updated_at?: string;
1493
+ user_id?: string;
1494
+ };
1495
+ Relationships: [];
1496
+ };
954
1497
  collections: {
955
1498
  Row: {
956
1499
  created_at: string;
@@ -975,6 +1518,36 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
975
1518
  };
976
1519
  Relationships: [];
977
1520
  };
1521
+ crate_types: {
1522
+ Row: {
1523
+ created_at: string;
1524
+ id: string;
1525
+ length_cm: number;
1526
+ name: string;
1527
+ plants_per_crate: number;
1528
+ updated_at: string;
1529
+ width_cm: number;
1530
+ };
1531
+ Insert: {
1532
+ created_at?: string;
1533
+ id?: string;
1534
+ length_cm: number;
1535
+ name: string;
1536
+ plants_per_crate?: number;
1537
+ updated_at?: string;
1538
+ width_cm: number;
1539
+ };
1540
+ Update: {
1541
+ created_at?: string;
1542
+ id?: string;
1543
+ length_cm?: number;
1544
+ name?: string;
1545
+ plants_per_crate?: number;
1546
+ updated_at?: string;
1547
+ width_cm?: number;
1548
+ };
1549
+ Relationships: [];
1550
+ };
978
1551
  customer_audit_log: {
979
1552
  Row: {
980
1553
  action: string;
@@ -1149,53 +1722,152 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
1149
1722
  created_at?: string;
1150
1723
  field_setting_id: string;
1151
1724
  id?: string;
1152
- label: string;
1153
- sort_order?: number;
1725
+ label: string;
1726
+ sort_order?: number;
1727
+ };
1728
+ Update: {
1729
+ created_at?: string;
1730
+ field_setting_id?: string;
1731
+ id?: string;
1732
+ label?: string;
1733
+ sort_order?: number;
1734
+ };
1735
+ Relationships: [{
1736
+ foreignKeyName: "customer_field_options_field_setting_id_fkey";
1737
+ columns: ["field_setting_id"];
1738
+ isOneToOne: false;
1739
+ referencedRelation: "customer_field_settings";
1740
+ referencedColumns: ["id"];
1741
+ }];
1742
+ };
1743
+ customer_field_settings: {
1744
+ Row: {
1745
+ created_at: string;
1746
+ field_key: string;
1747
+ field_label: string;
1748
+ field_type: string;
1749
+ id: string;
1750
+ is_custom: boolean;
1751
+ sort_order: number;
1752
+ updated_at: string;
1753
+ };
1754
+ Insert: {
1755
+ created_at?: string;
1756
+ field_key: string;
1757
+ field_label: string;
1758
+ field_type?: string;
1759
+ id?: string;
1760
+ is_custom?: boolean;
1761
+ sort_order?: number;
1762
+ updated_at?: string;
1763
+ };
1764
+ Update: {
1765
+ created_at?: string;
1766
+ field_key?: string;
1767
+ field_label?: string;
1768
+ field_type?: string;
1769
+ id?: string;
1770
+ is_custom?: boolean;
1771
+ sort_order?: number;
1772
+ updated_at?: string;
1773
+ };
1774
+ Relationships: [];
1775
+ };
1776
+ customer_price_group_members: {
1777
+ Row: {
1778
+ created_at: string;
1779
+ customer_key: string;
1780
+ id: string;
1781
+ owner_id: string;
1782
+ price_group_id: string;
1783
+ };
1784
+ Insert: {
1785
+ created_at?: string;
1786
+ customer_key: string;
1787
+ id?: string;
1788
+ owner_id?: string;
1789
+ price_group_id: string;
1154
1790
  };
1155
1791
  Update: {
1156
1792
  created_at?: string;
1157
- field_setting_id?: string;
1793
+ customer_key?: string;
1158
1794
  id?: string;
1159
- label?: string;
1160
- sort_order?: number;
1795
+ owner_id?: string;
1796
+ price_group_id?: string;
1161
1797
  };
1162
1798
  Relationships: [{
1163
- foreignKeyName: "customer_field_options_field_setting_id_fkey";
1164
- columns: ["field_setting_id"];
1799
+ foreignKeyName: "customer_price_group_members_price_group_id_fkey";
1800
+ columns: ["price_group_id"];
1165
1801
  isOneToOne: false;
1166
- referencedRelation: "customer_field_settings";
1802
+ referencedRelation: "customer_price_groups";
1167
1803
  referencedColumns: ["id"];
1168
1804
  }];
1169
1805
  };
1170
- customer_field_settings: {
1806
+ customer_price_groups: {
1171
1807
  Row: {
1808
+ calc_type: string | null;
1809
+ calc_value: number | null;
1810
+ calc_value_type: string | null;
1172
1811
  created_at: string;
1173
- field_key: string;
1174
- field_label: string;
1175
- field_type: string;
1812
+ currency: string;
1813
+ distribute_over: string | null;
1814
+ group_type: string;
1815
+ handling_fee: number | null;
1176
1816
  id: string;
1177
- is_custom: boolean;
1817
+ include_stickers: boolean;
1818
+ is_active: boolean;
1819
+ name: string;
1820
+ owner_id: string;
1821
+ price_scope: string;
1822
+ pricing_mode: string;
1823
+ rounding: string;
1824
+ rounding_step: number;
1178
1825
  sort_order: number;
1826
+ unit: string;
1179
1827
  updated_at: string;
1180
1828
  };
1181
1829
  Insert: {
1830
+ calc_type?: string | null;
1831
+ calc_value?: number | null;
1832
+ calc_value_type?: string | null;
1182
1833
  created_at?: string;
1183
- field_key: string;
1184
- field_label: string;
1185
- field_type?: string;
1834
+ currency?: string;
1835
+ distribute_over?: string | null;
1836
+ group_type?: string;
1837
+ handling_fee?: number | null;
1186
1838
  id?: string;
1187
- is_custom?: boolean;
1839
+ include_stickers?: boolean;
1840
+ is_active?: boolean;
1841
+ name: string;
1842
+ owner_id?: string;
1843
+ price_scope?: string;
1844
+ pricing_mode?: string;
1845
+ rounding?: string;
1846
+ rounding_step?: number;
1188
1847
  sort_order?: number;
1848
+ unit?: string;
1189
1849
  updated_at?: string;
1190
1850
  };
1191
1851
  Update: {
1852
+ calc_type?: string | null;
1853
+ calc_value?: number | null;
1854
+ calc_value_type?: string | null;
1192
1855
  created_at?: string;
1193
- field_key?: string;
1194
- field_label?: string;
1195
- field_type?: string;
1856
+ currency?: string;
1857
+ distribute_over?: string | null;
1858
+ group_type?: string;
1859
+ handling_fee?: number | null;
1196
1860
  id?: string;
1197
- is_custom?: boolean;
1861
+ include_stickers?: boolean;
1862
+ is_active?: boolean;
1863
+ name?: string;
1864
+ owner_id?: string;
1865
+ price_scope?: string;
1866
+ pricing_mode?: string;
1867
+ rounding?: string;
1868
+ rounding_step?: number;
1198
1869
  sort_order?: number;
1870
+ unit?: string;
1199
1871
  updated_at?: string;
1200
1872
  };
1201
1873
  Relationships: [];
@@ -1353,6 +2025,10 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
1353
2025
  sync_error: string | null;
1354
2026
  sync_status: string;
1355
2027
  trade_forms: string[];
2028
+ twinfield_code: string | null;
2029
+ twinfield_last_hash: string | null;
2030
+ twinfield_sync_error: string | null;
2031
+ twinfield_synced_at: string | null;
1356
2032
  updated_at: string;
1357
2033
  vat_display: string | null;
1358
2034
  vat_number: string | null;
@@ -1420,6 +2096,10 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
1420
2096
  sync_error?: string | null;
1421
2097
  sync_status?: string;
1422
2098
  trade_forms?: string[];
2099
+ twinfield_code?: string | null;
2100
+ twinfield_last_hash?: string | null;
2101
+ twinfield_sync_error?: string | null;
2102
+ twinfield_synced_at?: string | null;
1423
2103
  updated_at?: string;
1424
2104
  vat_display?: string | null;
1425
2105
  vat_number?: string | null;
@@ -1487,6 +2167,10 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
1487
2167
  sync_error?: string | null;
1488
2168
  sync_status?: string;
1489
2169
  trade_forms?: string[];
2170
+ twinfield_code?: string | null;
2171
+ twinfield_last_hash?: string | null;
2172
+ twinfield_sync_error?: string | null;
2173
+ twinfield_synced_at?: string | null;
1490
2174
  updated_at?: string;
1491
2175
  vat_display?: string | null;
1492
2176
  vat_number?: string | null;
@@ -5324,84 +6008,366 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
5324
6008
  vat_amount: number | null;
5325
6009
  };
5326
6010
  Insert: {
5327
- booking_id?: string | null;
5328
- company_name?: string | null;
6011
+ booking_id?: string | null;
6012
+ company_name?: string | null;
6013
+ created_at?: string;
6014
+ customer_email?: string | null;
6015
+ description?: string | null;
6016
+ exact_article_id?: string | null;
6017
+ id?: string;
6018
+ invoice_run_id?: string | null;
6019
+ quantity?: number | null;
6020
+ total_excl_vat?: number | null;
6021
+ total_incl_vat?: number | null;
6022
+ unit_price?: number | null;
6023
+ vat_amount?: number | null;
6024
+ };
6025
+ Update: {
6026
+ booking_id?: string | null;
6027
+ company_name?: string | null;
6028
+ created_at?: string;
6029
+ customer_email?: string | null;
6030
+ description?: string | null;
6031
+ exact_article_id?: string | null;
6032
+ id?: string;
6033
+ invoice_run_id?: string | null;
6034
+ quantity?: number | null;
6035
+ total_excl_vat?: number | null;
6036
+ total_incl_vat?: number | null;
6037
+ unit_price?: number | null;
6038
+ vat_amount?: number | null;
6039
+ };
6040
+ Relationships: [{
6041
+ foreignKeyName: "invoice_run_items_booking_id_fkey";
6042
+ columns: ["booking_id"];
6043
+ isOneToOne: false;
6044
+ referencedRelation: "bookings";
6045
+ referencedColumns: ["id"];
6046
+ }, {
6047
+ foreignKeyName: "invoice_run_items_invoice_run_id_fkey";
6048
+ columns: ["invoice_run_id"];
6049
+ isOneToOne: false;
6050
+ referencedRelation: "invoice_runs";
6051
+ referencedColumns: ["id"];
6052
+ }];
6053
+ };
6054
+ invoice_runs: {
6055
+ Row: {
6056
+ created_at: string;
6057
+ created_by: string | null;
6058
+ id: string;
6059
+ period_end: string;
6060
+ period_start: string;
6061
+ status: string;
6062
+ total_excl_vat: number | null;
6063
+ total_incl_vat: number | null;
6064
+ vat_amount: number | null;
6065
+ };
6066
+ Insert: {
6067
+ created_at?: string;
6068
+ created_by?: string | null;
6069
+ id?: string;
6070
+ period_end: string;
6071
+ period_start: string;
6072
+ status?: string;
6073
+ total_excl_vat?: number | null;
6074
+ total_incl_vat?: number | null;
6075
+ vat_amount?: number | null;
6076
+ };
6077
+ Update: {
6078
+ created_at?: string;
6079
+ created_by?: string | null;
6080
+ id?: string;
6081
+ period_end?: string;
6082
+ period_start?: string;
6083
+ status?: string;
6084
+ total_excl_vat?: number | null;
6085
+ total_incl_vat?: number | null;
6086
+ vat_amount?: number | null;
6087
+ };
6088
+ Relationships: [];
6089
+ };
6090
+ itk_contact_persons: {
6091
+ Row: {
6092
+ created_at: string;
6093
+ customer_id: string;
6094
+ email: string | null;
6095
+ id: string;
6096
+ name: string;
6097
+ phone: string | null;
6098
+ role: string | null;
6099
+ updated_at: string;
6100
+ };
6101
+ Insert: {
6102
+ created_at?: string;
6103
+ customer_id: string;
6104
+ email?: string | null;
6105
+ id?: string;
6106
+ name: string;
6107
+ phone?: string | null;
6108
+ role?: string | null;
6109
+ updated_at?: string;
6110
+ };
6111
+ Update: {
6112
+ created_at?: string;
6113
+ customer_id?: string;
6114
+ email?: string | null;
6115
+ id?: string;
6116
+ name?: string;
6117
+ phone?: string | null;
6118
+ role?: string | null;
6119
+ updated_at?: string;
6120
+ };
6121
+ Relationships: [{
6122
+ foreignKeyName: "itk_contact_persons_customer_id_fkey";
6123
+ columns: ["customer_id"];
6124
+ isOneToOne: false;
6125
+ referencedRelation: "itk_customers";
6126
+ referencedColumns: ["id"];
6127
+ }];
6128
+ };
6129
+ itk_customer_dynamic_values: {
6130
+ Row: {
6131
+ created_at: string;
6132
+ customer_id: string;
6133
+ field_id: string;
6134
+ id: string;
6135
+ updated_at: string;
6136
+ value: string | null;
6137
+ };
6138
+ Insert: {
6139
+ created_at?: string;
6140
+ customer_id: string;
6141
+ field_id: string;
6142
+ id?: string;
6143
+ updated_at?: string;
6144
+ value?: string | null;
6145
+ };
6146
+ Update: {
6147
+ created_at?: string;
6148
+ customer_id?: string;
6149
+ field_id?: string;
6150
+ id?: string;
6151
+ updated_at?: string;
6152
+ value?: string | null;
6153
+ };
6154
+ Relationships: [{
6155
+ foreignKeyName: "itk_customer_dynamic_values_customer_id_fkey";
6156
+ columns: ["customer_id"];
6157
+ isOneToOne: false;
6158
+ referencedRelation: "itk_customers";
6159
+ referencedColumns: ["id"];
6160
+ }, {
6161
+ foreignKeyName: "itk_customer_dynamic_values_field_id_fkey";
6162
+ columns: ["field_id"];
6163
+ isOneToOne: false;
6164
+ referencedRelation: "itk_dynamic_fields";
6165
+ referencedColumns: ["id"];
6166
+ }];
6167
+ };
6168
+ itk_customer_notes: {
6169
+ Row: {
6170
+ body: string;
6171
+ created_at: string;
6172
+ created_by: string | null;
6173
+ customer_id: string;
6174
+ id: string;
6175
+ note_type: string;
6176
+ updated_at: string;
6177
+ };
6178
+ Insert: {
6179
+ body: string;
6180
+ created_at?: string;
6181
+ created_by?: string | null;
6182
+ customer_id: string;
6183
+ id?: string;
6184
+ note_type?: string;
6185
+ updated_at?: string;
6186
+ };
6187
+ Update: {
6188
+ body?: string;
6189
+ created_at?: string;
6190
+ created_by?: string | null;
6191
+ customer_id?: string;
6192
+ id?: string;
6193
+ note_type?: string;
6194
+ updated_at?: string;
6195
+ };
6196
+ Relationships: [{
6197
+ foreignKeyName: "itk_customer_notes_customer_id_fkey";
6198
+ columns: ["customer_id"];
6199
+ isOneToOne: false;
6200
+ referencedRelation: "itk_customers";
6201
+ referencedColumns: ["id"];
6202
+ }];
6203
+ };
6204
+ itk_customers: {
6205
+ Row: {
6206
+ billing_city: string | null;
6207
+ billing_postcode: string | null;
6208
+ billing_street: string | null;
6209
+ created_at: string;
6210
+ general_email: string | null;
6211
+ general_phone: string | null;
6212
+ id: string;
6213
+ legacy_customer_id: string | null;
6214
+ name: string;
6215
+ segment: import("../integrations/supabase/types").Database["public"]["Enums"]["itk_customer_segment"];
6216
+ updated_at: string;
6217
+ };
6218
+ Insert: {
6219
+ billing_city?: string | null;
6220
+ billing_postcode?: string | null;
6221
+ billing_street?: string | null;
6222
+ created_at?: string;
6223
+ general_email?: string | null;
6224
+ general_phone?: string | null;
6225
+ id?: string;
6226
+ legacy_customer_id?: string | null;
6227
+ name: string;
6228
+ segment?: import("../integrations/supabase/types").Database["public"]["Enums"]["itk_customer_segment"];
6229
+ updated_at?: string;
6230
+ };
6231
+ Update: {
6232
+ billing_city?: string | null;
6233
+ billing_postcode?: string | null;
6234
+ billing_street?: string | null;
6235
+ created_at?: string;
6236
+ general_email?: string | null;
6237
+ general_phone?: string | null;
6238
+ id?: string;
6239
+ legacy_customer_id?: string | null;
6240
+ name?: string;
6241
+ segment?: import("../integrations/supabase/types").Database["public"]["Enums"]["itk_customer_segment"];
6242
+ updated_at?: string;
6243
+ };
6244
+ Relationships: [{
6245
+ foreignKeyName: "itk_customers_legacy_customer_id_fkey";
6246
+ columns: ["legacy_customer_id"];
6247
+ isOneToOne: false;
6248
+ referencedRelation: "customers";
6249
+ referencedColumns: ["id"];
6250
+ }];
6251
+ };
6252
+ itk_dynamic_fields: {
6253
+ Row: {
6254
+ created_at: string;
6255
+ field_name: string;
6256
+ field_type: import("../integrations/supabase/types").Database["public"]["Enums"]["itk_dynamic_field_type"];
6257
+ id: string;
6258
+ options: import("../integrations/supabase/types").Json;
6259
+ sort_order: number;
6260
+ updated_at: string;
6261
+ };
6262
+ Insert: {
6263
+ created_at?: string;
6264
+ field_name: string;
6265
+ field_type?: import("../integrations/supabase/types").Database["public"]["Enums"]["itk_dynamic_field_type"];
6266
+ id?: string;
6267
+ options?: import("../integrations/supabase/types").Json;
6268
+ sort_order?: number;
6269
+ updated_at?: string;
6270
+ };
6271
+ Update: {
6272
+ created_at?: string;
6273
+ field_name?: string;
6274
+ field_type?: import("../integrations/supabase/types").Database["public"]["Enums"]["itk_dynamic_field_type"];
6275
+ id?: string;
6276
+ options?: import("../integrations/supabase/types").Json;
6277
+ sort_order?: number;
6278
+ updated_at?: string;
6279
+ };
6280
+ Relationships: [];
6281
+ };
6282
+ itk_work_locations: {
6283
+ Row: {
6284
+ city: string | null;
6285
+ created_at: string;
6286
+ customer_id: string;
6287
+ id: string;
6288
+ instructions: string | null;
6289
+ label: string;
6290
+ latitude: number | null;
6291
+ longitude: number | null;
6292
+ postcode: string | null;
6293
+ street: string | null;
6294
+ updated_at: string;
6295
+ };
6296
+ Insert: {
6297
+ city?: string | null;
5329
6298
  created_at?: string;
5330
- customer_email?: string | null;
5331
- description?: string | null;
5332
- exact_article_id?: string | null;
6299
+ customer_id: string;
5333
6300
  id?: string;
5334
- invoice_run_id?: string | null;
5335
- quantity?: number | null;
5336
- total_excl_vat?: number | null;
5337
- total_incl_vat?: number | null;
5338
- unit_price?: number | null;
5339
- vat_amount?: number | null;
6301
+ instructions?: string | null;
6302
+ label: string;
6303
+ latitude?: number | null;
6304
+ longitude?: number | null;
6305
+ postcode?: string | null;
6306
+ street?: string | null;
6307
+ updated_at?: string;
5340
6308
  };
5341
6309
  Update: {
5342
- booking_id?: string | null;
5343
- company_name?: string | null;
6310
+ city?: string | null;
5344
6311
  created_at?: string;
5345
- customer_email?: string | null;
5346
- description?: string | null;
5347
- exact_article_id?: string | null;
6312
+ customer_id?: string;
5348
6313
  id?: string;
5349
- invoice_run_id?: string | null;
5350
- quantity?: number | null;
5351
- total_excl_vat?: number | null;
5352
- total_incl_vat?: number | null;
5353
- unit_price?: number | null;
5354
- vat_amount?: number | null;
6314
+ instructions?: string | null;
6315
+ label?: string;
6316
+ latitude?: number | null;
6317
+ longitude?: number | null;
6318
+ postcode?: string | null;
6319
+ street?: string | null;
6320
+ updated_at?: string;
5355
6321
  };
5356
6322
  Relationships: [{
5357
- foreignKeyName: "invoice_run_items_booking_id_fkey";
5358
- columns: ["booking_id"];
5359
- isOneToOne: false;
5360
- referencedRelation: "bookings";
5361
- referencedColumns: ["id"];
5362
- }, {
5363
- foreignKeyName: "invoice_run_items_invoice_run_id_fkey";
5364
- columns: ["invoice_run_id"];
6323
+ foreignKeyName: "itk_work_locations_customer_id_fkey";
6324
+ columns: ["customer_id"];
5365
6325
  isOneToOne: false;
5366
- referencedRelation: "invoice_runs";
6326
+ referencedRelation: "itk_customers";
5367
6327
  referencedColumns: ["id"];
5368
6328
  }];
5369
6329
  };
5370
- invoice_runs: {
6330
+ leave_requests: {
5371
6331
  Row: {
5372
6332
  created_at: string;
5373
- created_by: string | null;
6333
+ end_date: string;
5374
6334
  id: string;
5375
- period_end: string;
5376
- period_start: string;
6335
+ reason: string | null;
6336
+ start_date: string;
5377
6337
  status: string;
5378
- total_excl_vat: number | null;
5379
- total_incl_vat: number | null;
5380
- vat_amount: number | null;
6338
+ tenant_id: string;
6339
+ updated_at: string;
6340
+ user_id: string;
5381
6341
  };
5382
6342
  Insert: {
5383
6343
  created_at?: string;
5384
- created_by?: string | null;
6344
+ end_date: string;
5385
6345
  id?: string;
5386
- period_end: string;
5387
- period_start: string;
6346
+ reason?: string | null;
6347
+ start_date: string;
5388
6348
  status?: string;
5389
- total_excl_vat?: number | null;
5390
- total_incl_vat?: number | null;
5391
- vat_amount?: number | null;
6349
+ tenant_id?: string;
6350
+ updated_at?: string;
6351
+ user_id: string;
5392
6352
  };
5393
6353
  Update: {
5394
6354
  created_at?: string;
5395
- created_by?: string | null;
6355
+ end_date?: string;
5396
6356
  id?: string;
5397
- period_end?: string;
5398
- period_start?: string;
6357
+ reason?: string | null;
6358
+ start_date?: string;
5399
6359
  status?: string;
5400
- total_excl_vat?: number | null;
5401
- total_incl_vat?: number | null;
5402
- vat_amount?: number | null;
6360
+ tenant_id?: string;
6361
+ updated_at?: string;
6362
+ user_id?: string;
5403
6363
  };
5404
- Relationships: [];
6364
+ Relationships: [{
6365
+ foreignKeyName: "leave_requests_user_id_fkey";
6366
+ columns: ["user_id"];
6367
+ isOneToOne: false;
6368
+ referencedRelation: "monteurs";
6369
+ referencedColumns: ["id"];
6370
+ }];
5405
6371
  };
5406
6372
  local_customer_agreements: {
5407
6373
  Row: {
@@ -6054,6 +7020,33 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
6054
7020
  };
6055
7021
  Relationships: [];
6056
7022
  };
7023
+ module_permissions: {
7024
+ Row: {
7025
+ created_at: string;
7026
+ id: string;
7027
+ module_id: string;
7028
+ permission: string;
7029
+ role: import("../integrations/supabase/types").Database["public"]["Enums"]["app_role"];
7030
+ updated_at: string;
7031
+ };
7032
+ Insert: {
7033
+ created_at?: string;
7034
+ id?: string;
7035
+ module_id: string;
7036
+ permission: string;
7037
+ role: import("../integrations/supabase/types").Database["public"]["Enums"]["app_role"];
7038
+ updated_at?: string;
7039
+ };
7040
+ Update: {
7041
+ created_at?: string;
7042
+ id?: string;
7043
+ module_id?: string;
7044
+ permission?: string;
7045
+ role?: import("../integrations/supabase/types").Database["public"]["Enums"]["app_role"];
7046
+ updated_at?: string;
7047
+ };
7048
+ Relationships: [];
7049
+ };
6057
7050
  monteurs: {
6058
7051
  Row: {
6059
7052
  avatar_url: string | null;
@@ -6783,6 +7776,42 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
6783
7776
  };
6784
7777
  Relationships: [];
6785
7778
  };
7779
+ order_buffers: {
7780
+ Row: {
7781
+ buffer_key: string;
7782
+ created_at: string;
7783
+ customer_id: string | null;
7784
+ grouping_mode: string;
7785
+ id: string;
7786
+ pickup_date: string | null;
7787
+ pickup_location: string | null;
7788
+ plan_locked_at: string | null;
7789
+ updated_at: string;
7790
+ };
7791
+ Insert: {
7792
+ buffer_key: string;
7793
+ created_at?: string;
7794
+ customer_id?: string | null;
7795
+ grouping_mode: string;
7796
+ id?: string;
7797
+ pickup_date?: string | null;
7798
+ pickup_location?: string | null;
7799
+ plan_locked_at?: string | null;
7800
+ updated_at?: string;
7801
+ };
7802
+ Update: {
7803
+ buffer_key?: string;
7804
+ created_at?: string;
7805
+ customer_id?: string | null;
7806
+ grouping_mode?: string;
7807
+ id?: string;
7808
+ pickup_date?: string | null;
7809
+ pickup_location?: string | null;
7810
+ plan_locked_at?: string | null;
7811
+ updated_at?: string;
7812
+ };
7813
+ Relationships: [];
7814
+ };
6786
7815
  order_cart_items: {
6787
7816
  Row: {
6788
7817
  cart_id: string;
@@ -6849,6 +7878,7 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
6849
7878
  order_carts: {
6850
7879
  Row: {
6851
7880
  algorithm_version: number;
7881
+ buffer_id: string | null;
6852
7882
  cart_number: number;
6853
7883
  created_at: string;
6854
7884
  id: string;
@@ -6856,13 +7886,14 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
6856
7886
  is_complete: boolean;
6857
7887
  notes: string | null;
6858
7888
  occupancy_pct: number;
6859
- order_id: string;
7889
+ order_id: string | null;
6860
7890
  source: string;
6861
7891
  total_layers_used: number;
6862
7892
  updated_at: string;
6863
7893
  };
6864
7894
  Insert: {
6865
7895
  algorithm_version?: number;
7896
+ buffer_id?: string | null;
6866
7897
  cart_number: number;
6867
7898
  created_at?: string;
6868
7899
  id?: string;
@@ -6870,13 +7901,14 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
6870
7901
  is_complete?: boolean;
6871
7902
  notes?: string | null;
6872
7903
  occupancy_pct?: number;
6873
- order_id: string;
7904
+ order_id?: string | null;
6874
7905
  source?: string;
6875
7906
  total_layers_used?: number;
6876
7907
  updated_at?: string;
6877
7908
  };
6878
7909
  Update: {
6879
7910
  algorithm_version?: number;
7911
+ buffer_id?: string | null;
6880
7912
  cart_number?: number;
6881
7913
  created_at?: string;
6882
7914
  id?: string;
@@ -6884,12 +7916,18 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
6884
7916
  is_complete?: boolean;
6885
7917
  notes?: string | null;
6886
7918
  occupancy_pct?: number;
6887
- order_id?: string;
7919
+ order_id?: string | null;
6888
7920
  source?: string;
6889
7921
  total_layers_used?: number;
6890
7922
  updated_at?: string;
6891
7923
  };
6892
7924
  Relationships: [{
7925
+ foreignKeyName: "order_carts_buffer_id_fkey";
7926
+ columns: ["buffer_id"];
7927
+ isOneToOne: false;
7928
+ referencedRelation: "order_buffers";
7929
+ referencedColumns: ["id"];
7930
+ }, {
6893
7931
  foreignKeyName: "order_carts_order_id_fkey";
6894
7932
  columns: ["order_id"];
6895
7933
  isOneToOne: false;
@@ -7026,15 +8064,117 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
7026
8064
  };
7027
8065
  Relationships: [];
7028
8066
  };
8067
+ order_shipment_items: {
8068
+ Row: {
8069
+ created_at: string;
8070
+ id: string;
8071
+ order_item_id: string;
8072
+ product_id: string | null;
8073
+ product_name: string;
8074
+ quantity: number;
8075
+ shipment_id: string;
8076
+ updated_at: string;
8077
+ };
8078
+ Insert: {
8079
+ created_at?: string;
8080
+ id?: string;
8081
+ order_item_id: string;
8082
+ product_id?: string | null;
8083
+ product_name: string;
8084
+ quantity: number;
8085
+ shipment_id: string;
8086
+ updated_at?: string;
8087
+ };
8088
+ Update: {
8089
+ created_at?: string;
8090
+ id?: string;
8091
+ order_item_id?: string;
8092
+ product_id?: string | null;
8093
+ product_name?: string;
8094
+ quantity?: number;
8095
+ shipment_id?: string;
8096
+ updated_at?: string;
8097
+ };
8098
+ Relationships: [{
8099
+ foreignKeyName: "order_shipment_items_order_item_id_fkey";
8100
+ columns: ["order_item_id"];
8101
+ isOneToOne: false;
8102
+ referencedRelation: "order_items";
8103
+ referencedColumns: ["id"];
8104
+ }, {
8105
+ foreignKeyName: "order_shipment_items_shipment_id_fkey";
8106
+ columns: ["shipment_id"];
8107
+ isOneToOne: false;
8108
+ referencedRelation: "order_shipments";
8109
+ referencedColumns: ["id"];
8110
+ }];
8111
+ };
8112
+ order_shipments: {
8113
+ Row: {
8114
+ carrier_id: string | null;
8115
+ created_at: string;
8116
+ delivery_date: string | null;
8117
+ delivery_location_id: string | null;
8118
+ id: string;
8119
+ notes: string | null;
8120
+ order_id: string;
8121
+ shipment_number: number;
8122
+ shipped_at: string | null;
8123
+ status: string;
8124
+ updated_at: string;
8125
+ };
8126
+ Insert: {
8127
+ carrier_id?: string | null;
8128
+ created_at?: string;
8129
+ delivery_date?: string | null;
8130
+ delivery_location_id?: string | null;
8131
+ id?: string;
8132
+ notes?: string | null;
8133
+ order_id: string;
8134
+ shipment_number: number;
8135
+ shipped_at?: string | null;
8136
+ status?: string;
8137
+ updated_at?: string;
8138
+ };
8139
+ Update: {
8140
+ carrier_id?: string | null;
8141
+ created_at?: string;
8142
+ delivery_date?: string | null;
8143
+ delivery_location_id?: string | null;
8144
+ id?: string;
8145
+ notes?: string | null;
8146
+ order_id?: string;
8147
+ shipment_number?: number;
8148
+ shipped_at?: string | null;
8149
+ status?: string;
8150
+ updated_at?: string;
8151
+ };
8152
+ Relationships: [{
8153
+ foreignKeyName: "order_shipments_carrier_id_fkey";
8154
+ columns: ["carrier_id"];
8155
+ isOneToOne: false;
8156
+ referencedRelation: "carriers";
8157
+ referencedColumns: ["id"];
8158
+ }, {
8159
+ foreignKeyName: "order_shipments_order_id_fkey";
8160
+ columns: ["order_id"];
8161
+ isOneToOne: false;
8162
+ referencedRelation: "orders";
8163
+ referencedColumns: ["id"];
8164
+ }];
8165
+ };
7029
8166
  orders: {
7030
8167
  Row: {
8168
+ buffer_id: string | null;
7031
8169
  created_at: string;
7032
8170
  custom_fields: import("../integrations/supabase/types").Json;
7033
8171
  customer_id: string | null;
7034
8172
  customer_name: string;
7035
8173
  deleted_at: string | null;
7036
- delivery_date: string;
8174
+ delivery_date: string | null;
8175
+ floriday_sales_order_id: string | null;
7037
8176
  id: string;
8177
+ is_reservation: boolean;
7038
8178
  notes: string | null;
7039
8179
  order_date: string;
7040
8180
  order_number: string;
@@ -7046,13 +8186,16 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
7046
8186
  updated_at: string;
7047
8187
  };
7048
8188
  Insert: {
8189
+ buffer_id?: string | null;
7049
8190
  created_at?: string;
7050
8191
  custom_fields?: import("../integrations/supabase/types").Json;
7051
8192
  customer_id?: string | null;
7052
8193
  customer_name?: string;
7053
8194
  deleted_at?: string | null;
7054
- delivery_date: string;
8195
+ delivery_date?: string | null;
8196
+ floriday_sales_order_id?: string | null;
7055
8197
  id?: string;
8198
+ is_reservation?: boolean;
7056
8199
  notes?: string | null;
7057
8200
  order_date?: string;
7058
8201
  order_number: string;
@@ -7064,13 +8207,16 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
7064
8207
  updated_at?: string;
7065
8208
  };
7066
8209
  Update: {
8210
+ buffer_id?: string | null;
7067
8211
  created_at?: string;
7068
8212
  custom_fields?: import("../integrations/supabase/types").Json;
7069
8213
  customer_id?: string | null;
7070
8214
  customer_name?: string;
7071
8215
  deleted_at?: string | null;
7072
- delivery_date?: string;
8216
+ delivery_date?: string | null;
8217
+ floriday_sales_order_id?: string | null;
7073
8218
  id?: string;
8219
+ is_reservation?: boolean;
7074
8220
  notes?: string | null;
7075
8221
  order_date?: string;
7076
8222
  order_number?: string;
@@ -7082,6 +8228,12 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
7082
8228
  updated_at?: string;
7083
8229
  };
7084
8230
  Relationships: [{
8231
+ foreignKeyName: "orders_buffer_id_fkey";
8232
+ columns: ["buffer_id"];
8233
+ isOneToOne: false;
8234
+ referencedRelation: "order_buffers";
8235
+ referencedColumns: ["id"];
8236
+ }, {
7085
8237
  foreignKeyName: "orders_customer_id_fkey";
7086
8238
  columns: ["customer_id"];
7087
8239
  isOneToOne: false;
@@ -7345,6 +8497,8 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
7345
8497
  Row: {
7346
8498
  created_at: string;
7347
8499
  description: string | null;
8500
+ head_product_id: string | null;
8501
+ head_trade_item_floriday_id: string | null;
7348
8502
  id: string;
7349
8503
  is_active: boolean;
7350
8504
  name: string;
@@ -7354,6 +8508,8 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
7354
8508
  Insert: {
7355
8509
  created_at?: string;
7356
8510
  description?: string | null;
8511
+ head_product_id?: string | null;
8512
+ head_trade_item_floriday_id?: string | null;
7357
8513
  id?: string;
7358
8514
  is_active?: boolean;
7359
8515
  name: string;
@@ -7363,13 +8519,21 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
7363
8519
  Update: {
7364
8520
  created_at?: string;
7365
8521
  description?: string | null;
8522
+ head_product_id?: string | null;
8523
+ head_trade_item_floriday_id?: string | null;
7366
8524
  id?: string;
7367
8525
  is_active?: boolean;
7368
8526
  name?: string;
7369
8527
  tenant_id?: string;
7370
8528
  updated_at?: string;
7371
8529
  };
7372
- Relationships: [];
8530
+ Relationships: [{
8531
+ foreignKeyName: "product_groups_head_product_id_fkey";
8532
+ columns: ["head_product_id"];
8533
+ isOneToOne: false;
8534
+ referencedRelation: "products";
8535
+ referencedColumns: ["id"];
8536
+ }];
7373
8537
  };
7374
8538
  products: {
7375
8539
  Row: {
@@ -8454,18 +9618,39 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
8454
9618
  updated_at?: string;
8455
9619
  };
8456
9620
  Update: {
8457
- address?: string | null;
8458
- column_mappings?: import("../integrations/supabase/types").Json | null;
8459
- contact_person?: string | null;
9621
+ address?: string | null;
9622
+ column_mappings?: import("../integrations/supabase/types").Json | null;
9623
+ contact_person?: string | null;
9624
+ created_at?: string;
9625
+ default_product_type?: string;
9626
+ email?: string | null;
9627
+ id?: string;
9628
+ imported_file_name?: string | null;
9629
+ name?: string;
9630
+ notes?: string | null;
9631
+ phone?: string | null;
9632
+ updated_at?: string;
9633
+ };
9634
+ Relationships: [];
9635
+ };
9636
+ technician_rates: {
9637
+ Row: {
9638
+ created_at: string;
9639
+ hourly_rate_cents: number;
9640
+ updated_at: string;
9641
+ user_id: string;
9642
+ };
9643
+ Insert: {
9644
+ created_at?: string;
9645
+ hourly_rate_cents?: number;
9646
+ updated_at?: string;
9647
+ user_id: string;
9648
+ };
9649
+ Update: {
8460
9650
  created_at?: string;
8461
- default_product_type?: string;
8462
- email?: string | null;
8463
- id?: string;
8464
- imported_file_name?: string | null;
8465
- name?: string;
8466
- notes?: string | null;
8467
- phone?: string | null;
9651
+ hourly_rate_cents?: number;
8468
9652
  updated_at?: string;
9653
+ user_id?: string;
8469
9654
  };
8470
9655
  Relationships: [];
8471
9656
  };
@@ -8938,6 +10123,7 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
8938
10123
  country: string | null;
8939
10124
  created_at: string;
8940
10125
  email: string | null;
10126
+ external_group_key: string | null;
8941
10127
  id: string;
8942
10128
  last_synced_at: string | null;
8943
10129
  name: string;
@@ -8956,6 +10142,7 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
8956
10142
  country?: string | null;
8957
10143
  created_at?: string;
8958
10144
  email?: string | null;
10145
+ external_group_key?: string | null;
8959
10146
  id?: string;
8960
10147
  last_synced_at?: string | null;
8961
10148
  name: string;
@@ -8974,6 +10161,7 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
8974
10161
  country?: string | null;
8975
10162
  created_at?: string;
8976
10163
  email?: string | null;
10164
+ external_group_key?: string | null;
8977
10165
  id?: string;
8978
10166
  last_synced_at?: string | null;
8979
10167
  name?: string;
@@ -9138,6 +10326,8 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
9138
10326
  twinfield_invoice_settings: {
9139
10327
  Row: {
9140
10328
  created_at: string;
10329
+ debtor_gl_account: string;
10330
+ default_credit_invoice_type: string | null;
9141
10331
  default_gl_account: string;
9142
10332
  default_invoice_type: string;
9143
10333
  default_payment_term_days: number;
@@ -9146,11 +10336,15 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
9146
10336
  invoice_enabled_fo: boolean;
9147
10337
  invoice_enabled_ho: boolean;
9148
10338
  invoice_enabled_mo: boolean;
10339
+ payment_gl_account: string;
10340
+ payment_journal_code: string;
9149
10341
  updated_at: string;
9150
10342
  user_id: string;
9151
10343
  };
9152
10344
  Insert: {
9153
10345
  created_at?: string;
10346
+ debtor_gl_account?: string;
10347
+ default_credit_invoice_type?: string | null;
9154
10348
  default_gl_account?: string;
9155
10349
  default_invoice_type?: string;
9156
10350
  default_payment_term_days?: number;
@@ -9159,11 +10353,15 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
9159
10353
  invoice_enabled_fo?: boolean;
9160
10354
  invoice_enabled_ho?: boolean;
9161
10355
  invoice_enabled_mo?: boolean;
10356
+ payment_gl_account?: string;
10357
+ payment_journal_code?: string;
9162
10358
  updated_at?: string;
9163
10359
  user_id: string;
9164
10360
  };
9165
10361
  Update: {
9166
10362
  created_at?: string;
10363
+ debtor_gl_account?: string;
10364
+ default_credit_invoice_type?: string | null;
9167
10365
  default_gl_account?: string;
9168
10366
  default_invoice_type?: string;
9169
10367
  default_payment_term_days?: number;
@@ -9172,6 +10370,8 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
9172
10370
  invoice_enabled_fo?: boolean;
9173
10371
  invoice_enabled_ho?: boolean;
9174
10372
  invoice_enabled_mo?: boolean;
10373
+ payment_gl_account?: string;
10374
+ payment_journal_code?: string;
9175
10375
  updated_at?: string;
9176
10376
  user_id?: string;
9177
10377
  };
@@ -9392,43 +10592,49 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
9392
10592
  };
9393
10593
  twinfield_push_queue: {
9394
10594
  Row: {
10595
+ action: string;
9395
10596
  attempts: number;
9396
10597
  connection_id: string;
9397
10598
  created_at: string;
10599
+ customer_id: string | null;
9398
10600
  external_id: string | null;
9399
10601
  id: string;
9400
10602
  idempotency_key: string;
9401
10603
  last_error: string | null;
9402
10604
  next_attempt_at: string;
9403
- office_code: string;
10605
+ office_code: string | null;
9404
10606
  payload: import("../integrations/supabase/types").Json;
9405
10607
  status: string;
9406
10608
  updated_at: string;
9407
10609
  };
9408
10610
  Insert: {
10611
+ action?: string;
9409
10612
  attempts?: number;
9410
10613
  connection_id: string;
9411
10614
  created_at?: string;
10615
+ customer_id?: string | null;
9412
10616
  external_id?: string | null;
9413
10617
  id?: string;
9414
10618
  idempotency_key: string;
9415
10619
  last_error?: string | null;
9416
10620
  next_attempt_at?: string;
9417
- office_code: string;
10621
+ office_code?: string | null;
9418
10622
  payload: import("../integrations/supabase/types").Json;
9419
10623
  status?: string;
9420
10624
  updated_at?: string;
9421
10625
  };
9422
10626
  Update: {
10627
+ action?: string;
9423
10628
  attempts?: number;
9424
10629
  connection_id?: string;
9425
10630
  created_at?: string;
10631
+ customer_id?: string | null;
9426
10632
  external_id?: string | null;
9427
10633
  id?: string;
9428
10634
  idempotency_key?: string;
9429
10635
  last_error?: string | null;
9430
10636
  next_attempt_at?: string;
9431
- office_code?: string;
10637
+ office_code?: string | null;
9432
10638
  payload?: import("../integrations/supabase/types").Json;
9433
10639
  status?: string;
9434
10640
  updated_at?: string;
@@ -9439,6 +10645,12 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
9439
10645
  isOneToOne: false;
9440
10646
  referencedRelation: "twinfield_connections";
9441
10647
  referencedColumns: ["id"];
10648
+ }, {
10649
+ foreignKeyName: "twinfield_push_queue_customer_id_fkey";
10650
+ columns: ["customer_id"];
10651
+ isOneToOne: false;
10652
+ referencedRelation: "customers";
10653
+ referencedColumns: ["id"];
9442
10654
  }];
9443
10655
  };
9444
10656
  twinfield_request_metrics: {
@@ -9714,6 +10926,252 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
9714
10926
  };
9715
10927
  Relationships: [];
9716
10928
  };
10929
+ werkbon_package_lines: {
10930
+ Row: {
10931
+ created_at: string;
10932
+ created_by: string | null;
10933
+ id: string;
10934
+ package_id: string;
10935
+ quantity: number;
10936
+ unit_price_cents_snapshot: number;
10937
+ werkbon_id: string;
10938
+ };
10939
+ Insert: {
10940
+ created_at?: string;
10941
+ created_by?: string | null;
10942
+ id?: string;
10943
+ package_id: string;
10944
+ quantity?: number;
10945
+ unit_price_cents_snapshot?: number;
10946
+ werkbon_id: string;
10947
+ };
10948
+ Update: {
10949
+ created_at?: string;
10950
+ created_by?: string | null;
10951
+ id?: string;
10952
+ package_id?: string;
10953
+ quantity?: number;
10954
+ unit_price_cents_snapshot?: number;
10955
+ werkbon_id?: string;
10956
+ };
10957
+ Relationships: [{
10958
+ foreignKeyName: "werkbon_package_lines_package_id_fkey";
10959
+ columns: ["package_id"];
10960
+ isOneToOne: false;
10961
+ referencedRelation: "werkbon_packages";
10962
+ referencedColumns: ["id"];
10963
+ }, {
10964
+ foreignKeyName: "werkbon_package_lines_werkbon_id_fkey";
10965
+ columns: ["werkbon_id"];
10966
+ isOneToOne: false;
10967
+ referencedRelation: "werkbonnen";
10968
+ referencedColumns: ["id"];
10969
+ }];
10970
+ };
10971
+ werkbon_packages: {
10972
+ Row: {
10973
+ active: boolean;
10974
+ code: string;
10975
+ created_at: string;
10976
+ default_quantity: number;
10977
+ description: string | null;
10978
+ id: string;
10979
+ name: string;
10980
+ unit_price_cents: number;
10981
+ updated_at: string;
10982
+ };
10983
+ Insert: {
10984
+ active?: boolean;
10985
+ code: string;
10986
+ created_at?: string;
10987
+ default_quantity?: number;
10988
+ description?: string | null;
10989
+ id?: string;
10990
+ name: string;
10991
+ unit_price_cents?: number;
10992
+ updated_at?: string;
10993
+ };
10994
+ Update: {
10995
+ active?: boolean;
10996
+ code?: string;
10997
+ created_at?: string;
10998
+ default_quantity?: number;
10999
+ description?: string | null;
11000
+ id?: string;
11001
+ name?: string;
11002
+ unit_price_cents?: number;
11003
+ updated_at?: string;
11004
+ };
11005
+ Relationships: [];
11006
+ };
11007
+ werkbon_photos: {
11008
+ Row: {
11009
+ created_at: string;
11010
+ id: string;
11011
+ storage_path: string;
11012
+ user_id: string;
11013
+ werkbon_id: string;
11014
+ };
11015
+ Insert: {
11016
+ created_at?: string;
11017
+ id?: string;
11018
+ storage_path: string;
11019
+ user_id: string;
11020
+ werkbon_id: string;
11021
+ };
11022
+ Update: {
11023
+ created_at?: string;
11024
+ id?: string;
11025
+ storage_path?: string;
11026
+ user_id?: string;
11027
+ werkbon_id?: string;
11028
+ };
11029
+ Relationships: [{
11030
+ foreignKeyName: "werkbon_photos_werkbon_id_fkey";
11031
+ columns: ["werkbon_id"];
11032
+ isOneToOne: false;
11033
+ referencedRelation: "werkbonnen";
11034
+ referencedColumns: ["id"];
11035
+ }];
11036
+ };
11037
+ werkbon_time_logs: {
11038
+ Row: {
11039
+ activity: string;
11040
+ created_at: string;
11041
+ ended_at: string | null;
11042
+ id: string;
11043
+ started_at: string;
11044
+ user_id: string;
11045
+ werkbon_id: string;
11046
+ };
11047
+ Insert: {
11048
+ activity: string;
11049
+ created_at?: string;
11050
+ ended_at?: string | null;
11051
+ id?: string;
11052
+ started_at?: string;
11053
+ user_id: string;
11054
+ werkbon_id: string;
11055
+ };
11056
+ Update: {
11057
+ activity?: string;
11058
+ created_at?: string;
11059
+ ended_at?: string | null;
11060
+ id?: string;
11061
+ started_at?: string;
11062
+ user_id?: string;
11063
+ werkbon_id?: string;
11064
+ };
11065
+ Relationships: [{
11066
+ foreignKeyName: "werkbon_time_logs_werkbon_id_fkey";
11067
+ columns: ["werkbon_id"];
11068
+ isOneToOne: false;
11069
+ referencedRelation: "werkbonnen";
11070
+ referencedColumns: ["id"];
11071
+ }];
11072
+ };
11073
+ werkbonnen: {
11074
+ Row: {
11075
+ assigned_user_id: string | null;
11076
+ budget_mandate_cents: number;
11077
+ complaint_description: string | null;
11078
+ created_at: string;
11079
+ created_by: string | null;
11080
+ customer_id: string | null;
11081
+ externe_referentie: string | null;
11082
+ first_time_fix: boolean | null;
11083
+ id: string;
11084
+ internal_notes: string | null;
11085
+ parent_werkbon_id: string | null;
11086
+ parsed_payload: import("../integrations/supabase/types").Json | null;
11087
+ planning_status: string;
11088
+ project_number: string | null;
11089
+ room_number: string | null;
11090
+ scheduled_end_time: string | null;
11091
+ scheduled_start_time: string | null;
11092
+ sequence_number: number;
11093
+ source_pdf_path: string | null;
11094
+ status: string;
11095
+ technician_id: string | null;
11096
+ technician_notes: string | null;
11097
+ technician_notes_raw: string | null;
11098
+ technician_task_description: string | null;
11099
+ updated_at: string;
11100
+ version: number;
11101
+ work_address: string | null;
11102
+ };
11103
+ Insert: {
11104
+ assigned_user_id?: string | null;
11105
+ budget_mandate_cents?: number;
11106
+ complaint_description?: string | null;
11107
+ created_at?: string;
11108
+ created_by?: string | null;
11109
+ customer_id?: string | null;
11110
+ externe_referentie?: string | null;
11111
+ first_time_fix?: boolean | null;
11112
+ id?: string;
11113
+ internal_notes?: string | null;
11114
+ parent_werkbon_id?: string | null;
11115
+ parsed_payload?: import("../integrations/supabase/types").Json | null;
11116
+ planning_status?: string;
11117
+ project_number?: string | null;
11118
+ room_number?: string | null;
11119
+ scheduled_end_time?: string | null;
11120
+ scheduled_start_time?: string | null;
11121
+ sequence_number: number;
11122
+ source_pdf_path?: string | null;
11123
+ status?: string;
11124
+ technician_id?: string | null;
11125
+ technician_notes?: string | null;
11126
+ technician_notes_raw?: string | null;
11127
+ technician_task_description?: string | null;
11128
+ updated_at?: string;
11129
+ version?: number;
11130
+ work_address?: string | null;
11131
+ };
11132
+ Update: {
11133
+ assigned_user_id?: string | null;
11134
+ budget_mandate_cents?: number;
11135
+ complaint_description?: string | null;
11136
+ created_at?: string;
11137
+ created_by?: string | null;
11138
+ customer_id?: string | null;
11139
+ externe_referentie?: string | null;
11140
+ first_time_fix?: boolean | null;
11141
+ id?: string;
11142
+ internal_notes?: string | null;
11143
+ parent_werkbon_id?: string | null;
11144
+ parsed_payload?: import("../integrations/supabase/types").Json | null;
11145
+ planning_status?: string;
11146
+ project_number?: string | null;
11147
+ room_number?: string | null;
11148
+ scheduled_end_time?: string | null;
11149
+ scheduled_start_time?: string | null;
11150
+ sequence_number?: number;
11151
+ source_pdf_path?: string | null;
11152
+ status?: string;
11153
+ technician_id?: string | null;
11154
+ technician_notes?: string | null;
11155
+ technician_notes_raw?: string | null;
11156
+ technician_task_description?: string | null;
11157
+ updated_at?: string;
11158
+ version?: number;
11159
+ work_address?: string | null;
11160
+ };
11161
+ Relationships: [{
11162
+ foreignKeyName: "werkbonnen_parent_werkbon_id_fkey";
11163
+ columns: ["parent_werkbon_id"];
11164
+ isOneToOne: false;
11165
+ referencedRelation: "werkbonnen";
11166
+ referencedColumns: ["id"];
11167
+ }, {
11168
+ foreignKeyName: "werkbonnen_technician_id_fkey";
11169
+ columns: ["technician_id"];
11170
+ isOneToOne: false;
11171
+ referencedRelation: "monteurs";
11172
+ referencedColumns: ["id"];
11173
+ }];
11174
+ };
9717
11175
  work_order_monteurs: {
9718
11176
  Row: {
9719
11177
  created_at: string;
@@ -9884,6 +11342,8 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
9884
11342
  created_at: string | null;
9885
11343
  created_by: string | null;
9886
11344
  display_name: string | null;
11345
+ graph_subscription_expires_at: string | null;
11346
+ graph_subscription_id: string | null;
9887
11347
  has_access_token: boolean | null;
9888
11348
  has_client_id: boolean | null;
9889
11349
  has_client_secret: boolean | null;
@@ -9901,6 +11361,7 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
9901
11361
  oauth_mode: string | null;
9902
11362
  provider: string | null;
9903
11363
  purpose_assignments: import("../integrations/supabase/types").Json | null;
11364
+ realtime_mode: string | null;
9904
11365
  scopes: string[] | null;
9905
11366
  smtp_host: string | null;
9906
11367
  smtp_port: number | null;
@@ -9915,6 +11376,8 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
9915
11376
  created_at?: string | null;
9916
11377
  created_by?: string | null;
9917
11378
  display_name?: string | null;
11379
+ graph_subscription_expires_at?: string | null;
11380
+ graph_subscription_id?: string | null;
9918
11381
  has_access_token?: never;
9919
11382
  has_client_id?: never;
9920
11383
  has_client_secret?: never;
@@ -9932,6 +11395,7 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
9932
11395
  oauth_mode?: string | null;
9933
11396
  provider?: string | null;
9934
11397
  purpose_assignments?: import("../integrations/supabase/types").Json | null;
11398
+ realtime_mode?: string | null;
9935
11399
  scopes?: string[] | null;
9936
11400
  smtp_host?: string | null;
9937
11401
  smtp_port?: number | null;
@@ -9946,6 +11410,8 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
9946
11410
  created_at?: string | null;
9947
11411
  created_by?: string | null;
9948
11412
  display_name?: string | null;
11413
+ graph_subscription_expires_at?: string | null;
11414
+ graph_subscription_id?: string | null;
9949
11415
  has_access_token?: never;
9950
11416
  has_client_id?: never;
9951
11417
  has_client_secret?: never;
@@ -9963,6 +11429,7 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
9963
11429
  oauth_mode?: string | null;
9964
11430
  provider?: string | null;
9965
11431
  purpose_assignments?: import("../integrations/supabase/types").Json | null;
11432
+ realtime_mode?: string | null;
9966
11433
  scopes?: string[] | null;
9967
11434
  smtp_host?: string | null;
9968
11435
  smtp_port?: number | null;
@@ -10421,6 +11888,21 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
10421
11888
  };
10422
11889
  Returns: string;
10423
11890
  };
11891
+ ai_usage_by_module: {
11892
+ Args: {
11893
+ _from: string;
11894
+ _to: string;
11895
+ };
11896
+ Returns: {
11897
+ calls: number;
11898
+ consumer_module_id: string;
11899
+ cost_usd: number;
11900
+ errors: number;
11901
+ input_tokens: number;
11902
+ output_tokens: number;
11903
+ total_tokens: number;
11904
+ }[];
11905
+ };
10424
11906
  apply_stock_consumption: {
10425
11907
  Args: {
10426
11908
  p_order_id: string;
@@ -10506,6 +11988,33 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
10506
11988
  };
10507
11989
  Returns: import("../integrations/supabase/types").Json;
10508
11990
  };
11991
+ claim_twinfield_push_batch: {
11992
+ Args: {
11993
+ _limit?: number;
11994
+ };
11995
+ Returns: {
11996
+ action: string;
11997
+ attempts: number;
11998
+ connection_id: string;
11999
+ created_at: string;
12000
+ customer_id: string | null;
12001
+ external_id: string | null;
12002
+ id: string;
12003
+ idempotency_key: string;
12004
+ last_error: string | null;
12005
+ next_attempt_at: string;
12006
+ office_code: string | null;
12007
+ payload: import("../integrations/supabase/types").Json;
12008
+ status: string;
12009
+ updated_at: string;
12010
+ }[];
12011
+ SetofOptions: {
12012
+ from: "*";
12013
+ to: "twinfield_push_queue";
12014
+ isOneToOne: false;
12015
+ isSetofReturn: true;
12016
+ };
12017
+ };
10509
12018
  cleanup_old_bookings: {
10510
12019
  Args: never;
10511
12020
  Returns: undefined;
@@ -10542,6 +12051,12 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
10542
12051
  Args: never;
10543
12052
  Returns: string;
10544
12053
  };
12054
+ custom_access_token_hook: {
12055
+ Args: {
12056
+ event: import("../integrations/supabase/types").Json;
12057
+ };
12058
+ Returns: import("../integrations/supabase/types").Json;
12059
+ };
10545
12060
  dashboard_alert_counts: {
10546
12061
  Args: never;
10547
12062
  Returns: import("../integrations/supabase/types").Json;
@@ -10602,6 +12117,16 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
10602
12117
  status: string;
10603
12118
  }[];
10604
12119
  };
12120
+ email_auth_upsert_connection: {
12121
+ Args: {
12122
+ _account_email: string;
12123
+ _created_by: string;
12124
+ _is_active: boolean;
12125
+ _provider: string;
12126
+ _status: string;
12127
+ };
12128
+ Returns: string;
12129
+ };
10605
12130
  enqueue_cart_replan_if_unlocked: {
10606
12131
  Args: {
10607
12132
  p_order_id: string;
@@ -10867,6 +12392,14 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
10867
12392
  };
10868
12393
  Returns: string;
10869
12394
  };
12395
+ has_module_permission: {
12396
+ Args: {
12397
+ _min: string;
12398
+ _module_id: string;
12399
+ _user_id: string;
12400
+ };
12401
+ Returns: boolean;
12402
+ };
10870
12403
  has_role: {
10871
12404
  Args: {
10872
12405
  _role: import("../integrations/supabase/types").Database["public"]["Enums"]["app_role"];
@@ -10874,6 +12407,10 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
10874
12407
  };
10875
12408
  Returns: boolean;
10876
12409
  };
12410
+ has_twinfield_link: {
12411
+ Args: never;
12412
+ Returns: boolean;
12413
+ };
10877
12414
  is_authenticated: {
10878
12415
  Args: never;
10879
12416
  Returns: boolean;
@@ -10888,6 +12425,20 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
10888
12425
  };
10889
12426
  Returns: boolean;
10890
12427
  };
12428
+ jwt_has_role: {
12429
+ Args: {
12430
+ _role: import("../integrations/supabase/types").Database["public"]["Enums"]["app_role"];
12431
+ };
12432
+ Returns: boolean;
12433
+ };
12434
+ list_monteurs: {
12435
+ Args: never;
12436
+ Returns: {
12437
+ display_name: string;
12438
+ email: string;
12439
+ user_id: string;
12440
+ }[];
12441
+ };
10891
12442
  local_effective_price: {
10892
12443
  Args: {
10893
12444
  _customer_id: string;
@@ -10904,6 +12455,22 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
10904
12455
  source_id: string;
10905
12456
  }[];
10906
12457
  };
12458
+ log_ai_call: {
12459
+ Args: {
12460
+ _consumer_module_id: string;
12461
+ _cost_usd: number;
12462
+ _duration_ms: number;
12463
+ _error_code: string;
12464
+ _error_message: string;
12465
+ _input_tokens: number;
12466
+ _model_slug: string;
12467
+ _output_tokens: number;
12468
+ _provider_slug: string;
12469
+ _status: string;
12470
+ _total_tokens: number;
12471
+ };
12472
+ Returns: string;
12473
+ };
10907
12474
  mark_offer_clicked: {
10908
12475
  Args: {
10909
12476
  p_code: string;
@@ -10916,6 +12483,12 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
10916
12483
  };
10917
12484
  Returns: undefined;
10918
12485
  };
12486
+ mark_shipment_shipped: {
12487
+ Args: {
12488
+ p_shipment_id: string;
12489
+ };
12490
+ Returns: undefined;
12491
+ };
10919
12492
  next_order_number: {
10920
12493
  Args: {
10921
12494
  p_prefix: string;
@@ -10929,6 +12502,10 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
10929
12502
  };
10930
12503
  Returns: string;
10931
12504
  };
12505
+ next_twinfield_code: {
12506
+ Args: never;
12507
+ Returns: string;
12508
+ };
10932
12509
  next_work_order_number: {
10933
12510
  Args: {
10934
12511
  p_parent_work_order_id?: string;
@@ -11043,6 +12620,12 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
11043
12620
  };
11044
12621
  Returns: number;
11045
12622
  };
12623
+ reorder_customer_price_groups: {
12624
+ Args: {
12625
+ _ids: string[];
12626
+ };
12627
+ Returns: undefined;
12628
+ };
11046
12629
  reset_floriday_sync_cursor: {
11047
12630
  Args: {
11048
12631
  p_connection_id: string;
@@ -11056,6 +12639,12 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
11056
12639
  };
11057
12640
  Returns: string;
11058
12641
  };
12642
+ retry_twinfield_push: {
12643
+ Args: {
12644
+ _customer_id: string;
12645
+ };
12646
+ Returns: number;
12647
+ };
11059
12648
  schedule_floriday_additional_services_sync: {
11060
12649
  Args: {
11061
12650
  p_apikey: string;
@@ -11376,9 +12965,11 @@ export declare const getCustomerAnalytics: import("@tanstack/start-client-core")
11376
12965
  };
11377
12966
  };
11378
12967
  Enums: {
11379
- app_role: "admin" | "manager" | "warehouse" | "sales" | "developer" | "receptie" | "monteur";
12968
+ app_role: "admin" | "planner" | "monteur" | "administratie" | "ai_admin";
11380
12969
  exact_env: "staging" | "live";
11381
12970
  exact_push_status: "pending" | "sent" | "error";
12971
+ itk_customer_segment: "Business" | "Private";
12972
+ itk_dynamic_field_type: "text" | "select" | "date" | "checkbox";
11382
12973
  quote_status: "concept" | "verzonden" | "bekeken" | "in_behandeling" | "geaccepteerd" | "afgewezen" | "verlopen" | "gearchiveerd";
11383
12974
  };
11384
12975
  CompositeTypes: { [_ in never]: never; };