@flowselections/layout-maker 1.26.0 → 1.28.0

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.
@@ -8,9 +8,21 @@ export type PrintDb = SupabaseClient<any, any, any>;
8
8
  * meer nu de shell de client levert.
9
9
  */
10
10
  export declare function controleerClient(db: PrintDb): Promise<string | null>;
11
+ /**
12
+ * `ontwerpWint` = deze layout is een echt ontwerp van deze module (actief, geen
13
+ * Floriday-systeemlayout) en gaat daarom vóór meegestuurde HTML. Er is bewust
14
+ * maar één schakelaar voor dit besluit: bron/systeem. Een tweede schakelaar
15
+ * ("stond er een layout_id op de opdracht?") is verwijderd.
16
+ */
11
17
  type LayoutKeuze = {
12
18
  layout: Job | null;
13
- expliciet: boolean;
19
+ ontwerpWint: boolean;
20
+ };
21
+ /** Waar de uiteindelijke opmaak vandaan kwam (uitkomst, geen invoer). */
22
+ export type GebruikteBron = "extern_pdf" | "eigen_layout" | "render_html" | "klantlayout";
23
+ /** Meelifter waarin `bouwHtml` vastlegt welke bron het uiteindelijk werd. */
24
+ export type BronUitkomst = {
25
+ bron: GebruikteBron;
14
26
  };
15
27
  /** Zet een binnenkomend documenttype om naar de sleutel van deze module. */
16
28
  export declare function normaliseerDocumenttype(type: unknown): string;
@@ -24,7 +36,7 @@ export declare function kantEnKlarePdf(_db: PrintDb, job: Job): Promise<string |
24
36
  * Volgorde: gekoppelde layout wint > meegestuurde HTML > actieve layout van
25
37
  * het documenttype. Zo werkt een bijgewerkte layout meteen door.
26
38
  */
27
- export declare function bouwHtml(db: PrintDb, job: Job, keuze: LayoutKeuze): Promise<string>;
39
+ export declare function bouwHtml(db: PrintDb, job: Job, keuze: LayoutKeuze, uitkomst?: BronUitkomst): Promise<string>;
28
40
  /**
29
41
  * Controleert of het document echt iets afdrukt. Zonder deze controle kan een
30
42
  * lege layout of een opdracht zonder gegevens een blanco vel opleveren.
@@ -36,7 +48,7 @@ export interface WachtrijResultaat {
36
48
  mislukt: number;
37
49
  bijgewerkt: number;
38
50
  }
39
- /** Eén ronde: wachtende opdrachten afdrukken en statussen bijwerken. */
51
+ /** Eén ronde: vastgelopen opdrachten opruimen, afdrukken en statussen bijwerken. */
40
52
  export declare function verwerkWachtrij(db: PrintDb, max?: number): Promise<WachtrijResultaat>;
41
53
  export {};
42
54
  //# sourceMappingURL=printQueue.server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"printQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/printQueue.server.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAsB5D,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE/B,mFAAmF;AACnF,MAAM,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEpD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAW1E;AAeD,KAAK,WAAW,GAAG;IAAE,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAc9D,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAI7D;AA6FD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA+BnF;AAgPD;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CA8HzF;AAGD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAY1D;AAwLD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wEAAwE;AACxE,wBAAsB,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,SAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAmBtF"}
1
+ {"version":3,"file":"printQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/printQueue.server.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAsB5D,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE/B,mFAAmF;AACnF,MAAM,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEpD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAW1E;AAeD;;;;;GAKG;AACH,KAAK,WAAW,GAAG;IAAE,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAAC;AAEhE,yEAAyE;AACzE,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,CAAC;AAE1F,6EAA6E;AAC7E,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAcnD,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAI7D;AAkHD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA+BnF;AAgPD;;;;GAIG;AACH,wBAAsB,QAAQ,CAC5B,EAAE,EAAE,OAAO,EACX,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,MAAM,CAAC,CA8IjB;AAGD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAY1D;AAmRD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,oFAAoF;AACpF,wBAAsB,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,SAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA4BtF"}
@@ -72,6 +72,27 @@ export function normaliseerDocumenttype(type) {
72
72
  * mislukt. Alleen zonder layout_id valt de wachtrij terug op de actieve
73
73
  * layout van het documenttype.
74
74
  */
75
+ /**
76
+ * Is dit een voorbeeldafdruk uit de ontwerper? Dan is de meegestuurde opmaak
77
+ * altijd leidend: anders drukt de ontwerper de opgeslagen versie af in plaats
78
+ * van de wijziging die je op het scherm ziet.
79
+ */
80
+ function isVoorbeeldAfdruk(job) {
81
+ const p = (job.payload ?? {});
82
+ if (p?.voorbeeld === true || p?.data?.voorbeeld === true)
83
+ return true;
84
+ return Boolean(p?.layoutId ?? p?.data?.layoutId ?? p?.layout_id);
85
+ }
86
+ /** Mag deze layout als ontwerp winnen van meegestuurde HTML? */
87
+ function magOntwerpWinnen(layout) {
88
+ if (!layout)
89
+ return false;
90
+ if (layout.actief === false)
91
+ return false;
92
+ if (layout.systeem === true)
93
+ return false;
94
+ return String(layout.bron ?? "") !== "floriday";
95
+ }
75
96
  async function zoekLayout(db, job) {
76
97
  const heeftEigenOpmaak = typeof job.render_html === "string" && job.render_html.trim().length > 40;
77
98
  // Een layout-id in het kenmerkenveld is alleen een verwijzing, geen
@@ -81,6 +102,7 @@ async function zoekLayout(db, job) {
81
102
  ? null
82
103
  : (job.payload?.layoutId ?? job.payload?.data?.layoutId ?? job.payload?.layout_id ?? null);
83
104
  const id = job.layout_id ?? uitPayload;
105
+ const voorbeeld = heeftEigenOpmaak && isVoorbeeldAfdruk(job);
84
106
  if (id) {
85
107
  const { data } = await db
86
108
  .from("document_layouts")
@@ -90,7 +112,8 @@ async function zoekLayout(db, job) {
90
112
  if (!data) {
91
113
  throw new GeenDocumentFout("De layout die aan deze opdracht hangt bestaat niet meer. Koppel een geldige layout.");
92
114
  }
93
- return { layout: data, expliciet: Boolean(job.layout_id) };
115
+ const layout = data;
116
+ return { layout, ontwerpWint: !voorbeeld && magOntwerpWinnen(layout) };
94
117
  }
95
118
  const { data } = await db
96
119
  .from("document_layouts")
@@ -105,7 +128,7 @@ async function zoekLayout(db, job) {
105
128
  throw new GeenDocumentFout(`Geen layout gevonden voor documenttype '${normaliseerDocumenttype(job.documenttype)}'. ` +
106
129
  "Maak een layout aan en zet die op actief.");
107
130
  }
108
- return { layout: gevonden, expliciet: false };
131
+ return { layout: gevonden, ontwerpWint: !voorbeeld && magOntwerpWinnen(gevonden) };
109
132
  }
110
133
  /**
111
134
  * De bronregel voor deze documentsoort en de herkomst van de order. Geeft
@@ -419,18 +442,30 @@ async function logosVoor(db, layout) {
419
442
  * Volgorde: gekoppelde layout wint > meegestuurde HTML > actieve layout van
420
443
  * het documenttype. Zo werkt een bijgewerkte layout meteen door.
421
444
  */
422
- export async function bouwHtml(db, job, keuze) {
445
+ export async function bouwHtml(db, job, keuze, uitkomst) {
423
446
  const layout = keuze.layout;
447
+ const noteer = (bron) => {
448
+ if (uitkomst)
449
+ uitkomst.bron = bron;
450
+ };
451
+ noteer("eigen_layout");
424
452
  const meegestuurd = typeof job.render_html === "string" && job.render_html.trim().length > 40
425
453
  ? job.render_html
426
454
  : null;
427
455
  if (!layout) {
428
- if (meegestuurd)
456
+ if (meegestuurd) {
457
+ noteer("render_html");
429
458
  return meegestuurd;
459
+ }
430
460
  throw new GeenDocumentFout("Er is geen PDF, geen layout en geen opmaak meegestuurd voor dit document.");
431
461
  }
432
- if (!keuze.expliciet && meegestuurd)
462
+ // Het ontwerp wint van meegestuurde HTML zodra het een echt, actief ontwerp
463
+ // van deze module is. Is dat niet zo (Floriday-systeemlayout, inactief, of
464
+ // een voorbeeldafdruk uit de ontwerper), dan blijft de meegestuurde opmaak.
465
+ if (!keuze.ontwerpWint && meegestuurd) {
466
+ noteer("render_html");
433
467
  return meegestuurd;
468
+ }
434
469
  const p = (job.payload ?? {});
435
470
  const liggend = String(layout.orientatie ?? "portrait") === "landscape";
436
471
  const b = Number(layout.breedte_mm ?? 210);
@@ -442,8 +477,10 @@ export async function bouwHtml(db, job, keuze) {
442
477
  // de klant wint. Is er niets meegestuurd, dan bepaalt de terugvalkeuze of we
443
478
  // deze layout gebruiken of de opdracht netjes laten mislukken.
444
479
  if (cfg.klantlayout?.gebruik_klantlayout === true) {
445
- if (meegestuurd)
480
+ if (meegestuurd) {
481
+ noteer("klantlayout");
446
482
  return meegestuurd;
483
+ }
447
484
  if (cfg.klantlayout?.terugval === "niet_printen") {
448
485
  throw new GeenDocumentFout("Deze layout gebruikt altijd het ontwerp van de klant, maar er is geen klantontwerp meegestuurd.");
449
486
  }
@@ -607,7 +644,7 @@ async function verwerkJob(db, job) {
607
644
  "aangeleverde document wordt gebruikt, maar er is geen PDF meegestuurd.", true);
608
645
  return "mislukt";
609
646
  }
610
- const keuze = klaar ? { layout: null, expliciet: false } : await zoekLayout(db, job);
647
+ const keuze = klaar ? { layout: null, ontwerpWint: false } : await zoekLayout(db, job);
611
648
  const layout = keuze.layout;
612
649
  const printerKeuze = await zoekPrinter(db, job, layout);
613
650
  const printer = printerKeuze.printer;
@@ -616,9 +653,12 @@ async function verwerkJob(db, job) {
616
653
  `Printer '${printer?.naam ?? "onbekend"}' is niet aan PrintNode gekoppeld.`, true);
617
654
  return "mislukt";
618
655
  }
656
+ // Uitkomst van de opmaakkeuze; wordt na verzending vastgelegd naast de
657
+ // aangeleverde invoer, zodat achteraf zichtbaar is wat er gekozen is.
658
+ const uitkomst = { bron: "extern_pdf" };
619
659
  let pdfBase64 = klaar;
620
660
  if (!pdfBase64) {
621
- const html = await bouwHtml(db, job, keuze);
661
+ const html = await bouwHtml(db, job, keuze, uitkomst);
622
662
  if (!heeftZichtbareInhoud(html)) {
623
663
  throw new GeenDocumentFout("Het document was leeg: er zijn geen gegevens gevonden om af te drukken. " +
624
664
  "Controleer of de layout blokken bevat en of de order gegevens heeft.");
@@ -647,7 +687,10 @@ async function verwerkJob(db, job) {
647
687
  .from("print_jobs")
648
688
  .update({
649
689
  printer_id: printer.id,
650
- layout_id: job.layout_id ?? layout?.id ?? null,
690
+ // layout_id blijft de aangeleverde invoer en wordt bewust niet
691
+ // overschreven met de uitkomst.
692
+ gebruikte_layout_id: uitkomst.bron === "extern_pdf" ? null : (layout?.id ?? null),
693
+ gebruikte_bron: uitkomst.bron,
651
694
  extern_job_id: externJobId,
652
695
  foutmelding: null,
653
696
  volgende_poging: null,
@@ -665,11 +708,15 @@ async function verwerkJob(db, job) {
665
708
  return "mislukt";
666
709
  }
667
710
  }
711
+ /** Na deze tijd is een opdracht bij de printdienst niet meer te vertrouwen. */
712
+ const VERVAL_BEZIG_MIN = 30;
713
+ /** Een claim zonder verzending mag hooguit zo lang blijven hangen. */
714
+ const VERVAL_CLAIM_MIN = 10;
668
715
  /** Werkt de status bij van opdrachten die al naar een printer zijn gestuurd. */
669
716
  async function synchroniseerStatussen(db) {
670
717
  const { data } = await db
671
718
  .from("print_jobs")
672
- .select("id, extern_job_id")
719
+ .select("id, extern_job_id, pogingen, opgepakt_op")
673
720
  .eq("status", "bezig")
674
721
  .not("extern_job_id", "is", null)
675
722
  .limit(25);
@@ -691,14 +738,96 @@ async function synchroniseerStatussen(db) {
691
738
  bijgewerkt++;
692
739
  }
693
740
  }
694
- catch {
695
- // status opnieuw proberen bij de volgende ronde
741
+ catch (e) {
742
+ // Een onbereikbare printdienst mag niet stil blijven: tel hem als poging
743
+ // en leg vast waarom de status niet bevestigd kon worden.
744
+ const reden = e instanceof Error ? e.message : "Status kon niet worden opgehaald.";
745
+ await db
746
+ .from("print_jobs")
747
+ .update({
748
+ pogingen: Number(job.pogingen ?? 0) + 1,
749
+ foutmelding: `Status niet bevestigd: ${reden}`.slice(0, 500),
750
+ updated_at: new Date().toISOString(),
751
+ })
752
+ .eq("id", job.id);
753
+ await log(db, job.id, "status_onbekend", reden);
754
+ console.warn(`[printwachtrij] status ophalen mislukt voor job ${job.id}: ${reden}`);
696
755
  }
697
756
  }
698
757
  return bijgewerkt;
699
758
  }
700
- /** Eén ronde: wachtende opdrachten afdrukken en statussen bijwerken. */
759
+ /**
760
+ * Vangnet voor opdrachten die blijven hangen op 'bezig'. Twee gevallen:
761
+ * 1. wél naar de printdienst gestuurd, maar de status wordt niet meer
762
+ * bevestigd -> na 30 minuten definitief 'mislukt';
763
+ * 2. opgepakt maar nooit verstuurd (de ronde is onderweg gestorven of de
764
+ * runner draait niet meer) -> na 10 minuten terug naar 'wachtend'.
765
+ * Beide draaien in elke ronde, ook als er niets te claimen viel.
766
+ */
767
+ async function vervalControle(db) {
768
+ const nu = Date.now();
769
+ const grensVerstuurd = new Date(nu - VERVAL_BEZIG_MIN * 60000).toISOString();
770
+ const grensClaim = new Date(nu - VERVAL_CLAIM_MIN * 60000).toISOString();
771
+ let aantal = 0;
772
+ const { data: verstuurd } = await db
773
+ .from("print_jobs")
774
+ .select("id")
775
+ .eq("status", "bezig")
776
+ .not("extern_job_id", "is", null)
777
+ .or(`opgepakt_op.lt.${grensVerstuurd},and(opgepakt_op.is.null,updated_at.lt.${grensVerstuurd})`)
778
+ .limit(50);
779
+ for (const job of arr(verstuurd)) {
780
+ const reden = `De printdienst bevestigde de status van deze opdracht ${VERVAL_BEZIG_MIN} minuten ` +
781
+ "lang niet. Of hij is afgedrukt is niet vast te stellen; controleer de printer en print zo nodig opnieuw.";
782
+ await db
783
+ .from("print_jobs")
784
+ .update({
785
+ status: "mislukt",
786
+ foutmelding: reden.slice(0, 500),
787
+ voltooid_op: new Date().toISOString(),
788
+ updated_at: new Date().toISOString(),
789
+ })
790
+ .eq("id", job.id);
791
+ await log(db, job.id, "vervallen", reden);
792
+ aantal++;
793
+ }
794
+ const { data: vastgelopen } = await db
795
+ .from("print_jobs")
796
+ .select("id, pogingen")
797
+ .eq("status", "bezig")
798
+ .is("extern_job_id", null)
799
+ .or(`opgepakt_op.lt.${grensClaim},and(opgepakt_op.is.null,updated_at.lt.${grensClaim})`)
800
+ .limit(50);
801
+ for (const job of arr(vastgelopen)) {
802
+ const pogingen = Number(job.pogingen ?? 0);
803
+ const opnieuw = pogingen < MAX_POGINGEN;
804
+ await db
805
+ .from("print_jobs")
806
+ .update({
807
+ status: opnieuw ? "wachtend" : "mislukt",
808
+ pogingen: pogingen + 1,
809
+ foutmelding: opnieuw
810
+ ? "De vorige printronde is niet afgemaakt; deze opdracht staat weer in de wachtrij."
811
+ : "De printronde is meerdere keren niet afgemaakt. Controleer of de printdienst bereikbaar is.",
812
+ opgepakt_op: null,
813
+ voltooid_op: opnieuw ? null : new Date().toISOString(),
814
+ updated_at: new Date().toISOString(),
815
+ })
816
+ .eq("id", job.id);
817
+ await log(db, job.id, opnieuw ? "opnieuw_proberen" : "mislukt", "Vastgelopen ronde hersteld.");
818
+ aantal++;
819
+ }
820
+ return aantal;
821
+ }
822
+ /** Eén ronde: vastgelopen opdrachten opruimen, afdrukken en statussen bijwerken. */
701
823
  export async function verwerkWachtrij(db, max = 5) {
824
+ // Eerst het vangnet: dit draait ook als er niets te claimen valt.
825
+ try {
826
+ await vervalControle(db);
827
+ }
828
+ catch (e) {
829
+ console.warn(`[printwachtrij] vervalcontrole mislukt: ${e instanceof Error ? e.message : "onbekend"}`);
830
+ }
702
831
  const { data, error } = await db.rpc("claim_cloud_print_jobs", { _max: max });
703
832
  if (error)
704
833
  throw new Error(error.message);
@@ -10735,6 +10735,24 @@ export declare const netwerkPrinters: import("@tanstack/start-client-core").Opti
10735
10735
  };
10736
10736
  Relationships: [];
10737
10737
  };
10738
+ maps_job_lease: {
10739
+ Row: {
10740
+ job: string;
10741
+ locked_until: string;
10742
+ updated_at: string;
10743
+ };
10744
+ Insert: {
10745
+ job: string;
10746
+ locked_until?: string;
10747
+ updated_at?: string;
10748
+ };
10749
+ Update: {
10750
+ job?: string;
10751
+ locked_until?: string;
10752
+ updated_at?: string;
10753
+ };
10754
+ Relationships: [];
10755
+ };
10738
10756
  maps_request_queue: {
10739
10757
  Row: {
10740
10758
  attempts: number;
@@ -13596,6 +13614,8 @@ export declare const netwerkPrinters: import("@tanstack/start-client-core").Opti
13596
13614
  foutmelding: string | null;
13597
13615
  gebruiker_id: string | null;
13598
13616
  gebruiker_naam: string;
13617
+ gebruikte_bron: string | null;
13618
+ gebruikte_layout_id: string | null;
13599
13619
  gestart_op: string | null;
13600
13620
  herkomst: string | null;
13601
13621
  id: string;
@@ -13626,6 +13646,8 @@ export declare const netwerkPrinters: import("@tanstack/start-client-core").Opti
13626
13646
  foutmelding?: string | null;
13627
13647
  gebruiker_id?: string | null;
13628
13648
  gebruiker_naam?: string;
13649
+ gebruikte_bron?: string | null;
13650
+ gebruikte_layout_id?: string | null;
13629
13651
  gestart_op?: string | null;
13630
13652
  herkomst?: string | null;
13631
13653
  id?: string;
@@ -13656,6 +13678,8 @@ export declare const netwerkPrinters: import("@tanstack/start-client-core").Opti
13656
13678
  foutmelding?: string | null;
13657
13679
  gebruiker_id?: string | null;
13658
13680
  gebruiker_naam?: string;
13681
+ gebruikte_bron?: string | null;
13682
+ gebruikte_layout_id?: string | null;
13659
13683
  gestart_op?: string | null;
13660
13684
  herkomst?: string | null;
13661
13685
  id?: string;
@@ -20325,6 +20349,8 @@ export declare const netwerkPrinters: import("@tanstack/start-client-core").Opti
20325
20349
  foutmelding: string | null;
20326
20350
  gebruiker_id: string | null;
20327
20351
  gebruiker_naam: string;
20352
+ gebruikte_bron: string | null;
20353
+ gebruikte_layout_id: string | null;
20328
20354
  gestart_op: string | null;
20329
20355
  herkomst: string | null;
20330
20356
  id: string;
@@ -20446,6 +20472,8 @@ export declare const netwerkPrinters: import("@tanstack/start-client-core").Opti
20446
20472
  foutmelding: string | null;
20447
20473
  gebruiker_id: string | null;
20448
20474
  gebruiker_naam: string;
20475
+ gebruikte_bron: string | null;
20476
+ gebruikte_layout_id: string | null;
20449
20477
  gestart_op: string | null;
20450
20478
  herkomst: string | null;
20451
20479
  id: string;
@@ -21502,6 +21530,12 @@ export declare const netwerkPrinters: import("@tanstack/start-client-core").Opti
21502
21530
  };
21503
21531
  Returns: string;
21504
21532
  };
21533
+ logistics_document_type_map: {
21534
+ Args: {
21535
+ _document_code: string;
21536
+ };
21537
+ Returns: import("../integrations/supabase/types.js").Database["public"]["Enums"]["doc_layout_type"][];
21538
+ };
21505
21539
  logistics_emit_event: {
21506
21540
  Args: {
21507
21541
  p_event_type: string;
@@ -21965,6 +21999,10 @@ export declare const netwerkPrinters: import("@tanstack/start-client-core").Opti
21965
21999
  };
21966
22000
  Returns: string;
21967
22001
  };
22002
+ maps_kick_queue: {
22003
+ Args: never;
22004
+ Returns: undefined;
22005
+ };
21968
22006
  mark_offer_clicked: {
21969
22007
  Args: {
21970
22008
  p_code: string;
@@ -33952,6 +33990,24 @@ export declare const verstuurPrintOpdracht: import("@tanstack/start-client-core"
33952
33990
  };
33953
33991
  Relationships: [];
33954
33992
  };
33993
+ maps_job_lease: {
33994
+ Row: {
33995
+ job: string;
33996
+ locked_until: string;
33997
+ updated_at: string;
33998
+ };
33999
+ Insert: {
34000
+ job: string;
34001
+ locked_until?: string;
34002
+ updated_at?: string;
34003
+ };
34004
+ Update: {
34005
+ job?: string;
34006
+ locked_until?: string;
34007
+ updated_at?: string;
34008
+ };
34009
+ Relationships: [];
34010
+ };
33955
34011
  maps_request_queue: {
33956
34012
  Row: {
33957
34013
  attempts: number;
@@ -36813,6 +36869,8 @@ export declare const verstuurPrintOpdracht: import("@tanstack/start-client-core"
36813
36869
  foutmelding: string | null;
36814
36870
  gebruiker_id: string | null;
36815
36871
  gebruiker_naam: string;
36872
+ gebruikte_bron: string | null;
36873
+ gebruikte_layout_id: string | null;
36816
36874
  gestart_op: string | null;
36817
36875
  herkomst: string | null;
36818
36876
  id: string;
@@ -36843,6 +36901,8 @@ export declare const verstuurPrintOpdracht: import("@tanstack/start-client-core"
36843
36901
  foutmelding?: string | null;
36844
36902
  gebruiker_id?: string | null;
36845
36903
  gebruiker_naam?: string;
36904
+ gebruikte_bron?: string | null;
36905
+ gebruikte_layout_id?: string | null;
36846
36906
  gestart_op?: string | null;
36847
36907
  herkomst?: string | null;
36848
36908
  id?: string;
@@ -36873,6 +36933,8 @@ export declare const verstuurPrintOpdracht: import("@tanstack/start-client-core"
36873
36933
  foutmelding?: string | null;
36874
36934
  gebruiker_id?: string | null;
36875
36935
  gebruiker_naam?: string;
36936
+ gebruikte_bron?: string | null;
36937
+ gebruikte_layout_id?: string | null;
36876
36938
  gestart_op?: string | null;
36877
36939
  herkomst?: string | null;
36878
36940
  id?: string;
@@ -43542,6 +43604,8 @@ export declare const verstuurPrintOpdracht: import("@tanstack/start-client-core"
43542
43604
  foutmelding: string | null;
43543
43605
  gebruiker_id: string | null;
43544
43606
  gebruiker_naam: string;
43607
+ gebruikte_bron: string | null;
43608
+ gebruikte_layout_id: string | null;
43545
43609
  gestart_op: string | null;
43546
43610
  herkomst: string | null;
43547
43611
  id: string;
@@ -43663,6 +43727,8 @@ export declare const verstuurPrintOpdracht: import("@tanstack/start-client-core"
43663
43727
  foutmelding: string | null;
43664
43728
  gebruiker_id: string | null;
43665
43729
  gebruiker_naam: string;
43730
+ gebruikte_bron: string | null;
43731
+ gebruikte_layout_id: string | null;
43666
43732
  gestart_op: string | null;
43667
43733
  herkomst: string | null;
43668
43734
  id: string;
@@ -44719,6 +44785,12 @@ export declare const verstuurPrintOpdracht: import("@tanstack/start-client-core"
44719
44785
  };
44720
44786
  Returns: string;
44721
44787
  };
44788
+ logistics_document_type_map: {
44789
+ Args: {
44790
+ _document_code: string;
44791
+ };
44792
+ Returns: import("../integrations/supabase/types.js").Database["public"]["Enums"]["doc_layout_type"][];
44793
+ };
44722
44794
  logistics_emit_event: {
44723
44795
  Args: {
44724
44796
  p_event_type: string;
@@ -45182,6 +45254,10 @@ export declare const verstuurPrintOpdracht: import("@tanstack/start-client-core"
45182
45254
  };
45183
45255
  Returns: string;
45184
45256
  };
45257
+ maps_kick_queue: {
45258
+ Args: never;
45259
+ Returns: undefined;
45260
+ };
45185
45261
  mark_offer_clicked: {
45186
45262
  Args: {
45187
45263
  p_code: string;
@@ -57179,6 +57255,24 @@ export declare const printStatus: import("@tanstack/start-client-core").Required
57179
57255
  };
57180
57256
  Relationships: [];
57181
57257
  };
57258
+ maps_job_lease: {
57259
+ Row: {
57260
+ job: string;
57261
+ locked_until: string;
57262
+ updated_at: string;
57263
+ };
57264
+ Insert: {
57265
+ job: string;
57266
+ locked_until?: string;
57267
+ updated_at?: string;
57268
+ };
57269
+ Update: {
57270
+ job?: string;
57271
+ locked_until?: string;
57272
+ updated_at?: string;
57273
+ };
57274
+ Relationships: [];
57275
+ };
57182
57276
  maps_request_queue: {
57183
57277
  Row: {
57184
57278
  attempts: number;
@@ -60040,6 +60134,8 @@ export declare const printStatus: import("@tanstack/start-client-core").Required
60040
60134
  foutmelding: string | null;
60041
60135
  gebruiker_id: string | null;
60042
60136
  gebruiker_naam: string;
60137
+ gebruikte_bron: string | null;
60138
+ gebruikte_layout_id: string | null;
60043
60139
  gestart_op: string | null;
60044
60140
  herkomst: string | null;
60045
60141
  id: string;
@@ -60070,6 +60166,8 @@ export declare const printStatus: import("@tanstack/start-client-core").Required
60070
60166
  foutmelding?: string | null;
60071
60167
  gebruiker_id?: string | null;
60072
60168
  gebruiker_naam?: string;
60169
+ gebruikte_bron?: string | null;
60170
+ gebruikte_layout_id?: string | null;
60073
60171
  gestart_op?: string | null;
60074
60172
  herkomst?: string | null;
60075
60173
  id?: string;
@@ -60100,6 +60198,8 @@ export declare const printStatus: import("@tanstack/start-client-core").Required
60100
60198
  foutmelding?: string | null;
60101
60199
  gebruiker_id?: string | null;
60102
60200
  gebruiker_naam?: string;
60201
+ gebruikte_bron?: string | null;
60202
+ gebruikte_layout_id?: string | null;
60103
60203
  gestart_op?: string | null;
60104
60204
  herkomst?: string | null;
60105
60205
  id?: string;
@@ -66769,6 +66869,8 @@ export declare const printStatus: import("@tanstack/start-client-core").Required
66769
66869
  foutmelding: string | null;
66770
66870
  gebruiker_id: string | null;
66771
66871
  gebruiker_naam: string;
66872
+ gebruikte_bron: string | null;
66873
+ gebruikte_layout_id: string | null;
66772
66874
  gestart_op: string | null;
66773
66875
  herkomst: string | null;
66774
66876
  id: string;
@@ -66890,6 +66992,8 @@ export declare const printStatus: import("@tanstack/start-client-core").Required
66890
66992
  foutmelding: string | null;
66891
66993
  gebruiker_id: string | null;
66892
66994
  gebruiker_naam: string;
66995
+ gebruikte_bron: string | null;
66996
+ gebruikte_layout_id: string | null;
66893
66997
  gestart_op: string | null;
66894
66998
  herkomst: string | null;
66895
66999
  id: string;
@@ -67946,6 +68050,12 @@ export declare const printStatus: import("@tanstack/start-client-core").Required
67946
68050
  };
67947
68051
  Returns: string;
67948
68052
  };
68053
+ logistics_document_type_map: {
68054
+ Args: {
68055
+ _document_code: string;
68056
+ };
68057
+ Returns: import("../integrations/supabase/types.js").Database["public"]["Enums"]["doc_layout_type"][];
68058
+ };
67949
68059
  logistics_emit_event: {
67950
68060
  Args: {
67951
68061
  p_event_type: string;
@@ -68409,6 +68519,10 @@ export declare const printStatus: import("@tanstack/start-client-core").Required
68409
68519
  };
68410
68520
  Returns: string;
68411
68521
  };
68522
+ maps_kick_queue: {
68523
+ Args: never;
68524
+ Returns: undefined;
68525
+ };
68412
68526
  mark_offer_clicked: {
68413
68527
  Args: {
68414
68528
  p_code: string;
@@ -80400,6 +80514,24 @@ export declare const netwerkComputers: import("@tanstack/start-client-core").Opt
80400
80514
  };
80401
80515
  Relationships: [];
80402
80516
  };
80517
+ maps_job_lease: {
80518
+ Row: {
80519
+ job: string;
80520
+ locked_until: string;
80521
+ updated_at: string;
80522
+ };
80523
+ Insert: {
80524
+ job: string;
80525
+ locked_until?: string;
80526
+ updated_at?: string;
80527
+ };
80528
+ Update: {
80529
+ job?: string;
80530
+ locked_until?: string;
80531
+ updated_at?: string;
80532
+ };
80533
+ Relationships: [];
80534
+ };
80403
80535
  maps_request_queue: {
80404
80536
  Row: {
80405
80537
  attempts: number;
@@ -83261,6 +83393,8 @@ export declare const netwerkComputers: import("@tanstack/start-client-core").Opt
83261
83393
  foutmelding: string | null;
83262
83394
  gebruiker_id: string | null;
83263
83395
  gebruiker_naam: string;
83396
+ gebruikte_bron: string | null;
83397
+ gebruikte_layout_id: string | null;
83264
83398
  gestart_op: string | null;
83265
83399
  herkomst: string | null;
83266
83400
  id: string;
@@ -83291,6 +83425,8 @@ export declare const netwerkComputers: import("@tanstack/start-client-core").Opt
83291
83425
  foutmelding?: string | null;
83292
83426
  gebruiker_id?: string | null;
83293
83427
  gebruiker_naam?: string;
83428
+ gebruikte_bron?: string | null;
83429
+ gebruikte_layout_id?: string | null;
83294
83430
  gestart_op?: string | null;
83295
83431
  herkomst?: string | null;
83296
83432
  id?: string;
@@ -83321,6 +83457,8 @@ export declare const netwerkComputers: import("@tanstack/start-client-core").Opt
83321
83457
  foutmelding?: string | null;
83322
83458
  gebruiker_id?: string | null;
83323
83459
  gebruiker_naam?: string;
83460
+ gebruikte_bron?: string | null;
83461
+ gebruikte_layout_id?: string | null;
83324
83462
  gestart_op?: string | null;
83325
83463
  herkomst?: string | null;
83326
83464
  id?: string;
@@ -89990,6 +90128,8 @@ export declare const netwerkComputers: import("@tanstack/start-client-core").Opt
89990
90128
  foutmelding: string | null;
89991
90129
  gebruiker_id: string | null;
89992
90130
  gebruiker_naam: string;
90131
+ gebruikte_bron: string | null;
90132
+ gebruikte_layout_id: string | null;
89993
90133
  gestart_op: string | null;
89994
90134
  herkomst: string | null;
89995
90135
  id: string;
@@ -90111,6 +90251,8 @@ export declare const netwerkComputers: import("@tanstack/start-client-core").Opt
90111
90251
  foutmelding: string | null;
90112
90252
  gebruiker_id: string | null;
90113
90253
  gebruiker_naam: string;
90254
+ gebruikte_bron: string | null;
90255
+ gebruikte_layout_id: string | null;
90114
90256
  gestart_op: string | null;
90115
90257
  herkomst: string | null;
90116
90258
  id: string;
@@ -91167,6 +91309,12 @@ export declare const netwerkComputers: import("@tanstack/start-client-core").Opt
91167
91309
  };
91168
91310
  Returns: string;
91169
91311
  };
91312
+ logistics_document_type_map: {
91313
+ Args: {
91314
+ _document_code: string;
91315
+ };
91316
+ Returns: import("../integrations/supabase/types.js").Database["public"]["Enums"]["doc_layout_type"][];
91317
+ };
91170
91318
  logistics_emit_event: {
91171
91319
  Args: {
91172
91320
  p_event_type: string;
@@ -91630,6 +91778,10 @@ export declare const netwerkComputers: import("@tanstack/start-client-core").Opt
91630
91778
  };
91631
91779
  Returns: string;
91632
91780
  };
91781
+ maps_kick_queue: {
91782
+ Args: never;
91783
+ Returns: undefined;
91784
+ };
91633
91785
  mark_offer_clicked: {
91634
91786
  Args: {
91635
91787
  p_code: string;