@flowselections/floriday-authenticatie-module 1.0.79 → 1.0.81

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.
@@ -1 +1 @@
1
- {"version":3,"file":"FlorydayApiLogPage.d.ts","sourceRoot":"","sources":["../../../src/components/floriday/FlorydayApiLogPage.tsx"],"names":[],"mappings":"AAgEA,wBAAgB,kBAAkB,gCAuZjC"}
1
+ {"version":3,"file":"FlorydayApiLogPage.d.ts","sourceRoot":"","sources":["../../../src/components/floriday/FlorydayApiLogPage.tsx"],"names":[],"mappings":"AAgEA,wBAAgB,kBAAkB,gCAoZjC"}
@@ -140,7 +140,7 @@ export function FlorydayApiLogPage() {
140
140
  return (_jsxs("tr", { className: "border-t border-border align-top", children: [_jsx("td", { className: "py-2 pr-3 whitespace-nowrap", children: new Date(row.created_at).toLocaleString("nl-NL") }), _jsx("td", { className: "py-2 pr-3", children: _jsx(Badge, { variant: row.direction === "outbound" ? "default" : "secondary", children: row.direction === "outbound" ? "Versturen" : "Ophalen" }) }), _jsxs("td", { className: "py-2 pr-3", children: [_jsx("div", { children: kind.label }), kind.hint ? (_jsx("div", { className: "text-xs text-muted-foreground", children: kind.hint })) : null] }), _jsx("td", { className: "py-2 pr-3", children: tpl?.label ?? row.resource_type ?? "—" }), _jsxs("td", { className: "py-2 pr-3", children: [_jsx("div", { children: row.action ?? `${row.method} ${row.path}` }), row.cursor_from != null ? (_jsxs("div", { className: "text-xs text-muted-foreground", children: ["vanaf volgnummer ", row.cursor_from] })) : null, row.error ? _jsx(FullErrorMessage, { error: row.error, response: row.response, createdAt: row.created_at }) : null] }), _jsx("td", { className: "py-2 pr-3", children: _jsxs(Badge, { variant: row.ok ? "secondary" : "destructive", children: [row.ok ? "Gelukt" : "Mislukt", " ", row.http_status || ""] }) }), _jsx("td", { className: "py-2 pr-3", children: isPoll ? (_jsx("span", { className: "text-xs text-muted-foreground", children: "Geen los item (routineronde)" })) : floridayShown ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "font-mono text-xs", title: row.floriday_id ?? undefined, children: floridayShown }), _jsx(Button, { size: "sm", variant: "ghost", onClick: () => {
141
141
  navigator.clipboard?.writeText(floridayShown);
142
142
  toast.success("Referentie gekopieerd");
143
- }, children: "Kopieer" }), floridayHref ? (_jsx("a", { className: "text-xs underline", href: floridayHref, target: "_blank", rel: "noreferrer", children: "Floriday" })) : null] })) : ("—") }), _jsx("td", { className: "py-2 pr-3", children: isPoll ? ("—") : localHref ? (_jsx("a", { href: localHref, className: "text-xs underline", title: localShown ?? undefined, children: localShown ?? "Openen" })) : localShown ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "font-mono text-xs", title: row.local_id ?? undefined, children: localShown }), !tpl?.local_url_template ? (_jsx("span", { className: "text-xs text-muted-foreground", children: "(geen adres ingesteld)" })) : null] })) : tpl?.local_url_template ? (_jsx("span", { className: "text-xs text-muted-foreground", children: "Nog niet in onze cache" })) : (_jsx("span", { className: "text-xs text-muted-foreground", children: "Geen adres ingesteld" })) })] }, row.id));
143
+ }, children: "Kopieer" }), floridayHref ? (_jsx("a", { className: "text-xs underline", href: floridayHref, target: "_blank", rel: "noreferrer", children: "Floriday" })) : null] })) : ("—") }), _jsx("td", { className: "py-2 pr-3", children: isPoll ? ("—") : localHref ? (_jsx("a", { href: localHref, className: "text-xs underline", title: localShown ?? undefined, children: localShown ?? "Openen" })) : localShown ? (_jsx("div", { className: "flex items-center gap-2", children: _jsx("span", { className: "font-mono text-xs", title: row.local_id ?? undefined, children: localShown }) })) : tpl?.local_url_template ? (_jsx("span", { className: "text-xs text-muted-foreground", children: "Nog niet in onze cache" })) : (_jsx("span", { className: "text-xs text-muted-foreground", title: "Geen pagina in deze module voor dit type", children: "\u2014" })) })] }, row.id));
144
144
  }), rows.length === 0 ? (_jsx("tr", { children: _jsx("td", { colSpan: 8, className: "py-6 text-center text-muted-foreground", children: logQuery.isLoading ? "Bezig met laden…" : "Nog geen berichten gevonden." }) })) : null] })] }) }), _jsxs("div", { className: "flex items-center justify-between text-sm text-muted-foreground", children: [_jsxs("span", { children: [total, " berichten \u2014 pagina ", page + 1] }), _jsxs("div", { className: "flex gap-2", children: [_jsx(Button, { size: "sm", variant: "outline", disabled: page === 0, onClick: () => setPage((p) => Math.max(0, p - 1)), children: "Vorige" }), _jsx(Button, { size: "sm", variant: "outline", disabled: (page + 1) * PAGE_SIZE >= total, onClick: () => setPage((p) => p + 1), children: "Volgende" })] })] })] }), _jsxs(Card, { className: "p-4 space-y-3", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-lg font-semibold", children: "Doorklik-adressen" }), _jsxs("p", { className: "text-sm text-muted-foreground", children: ["Stel per soort in waar een regel naartoe moet linken. Gebruik", " ", _jsx("code", { children: "{id}" }), " voor ons kenmerk en ", _jsx("code", { children: "{floridayId}" }), " voor de Floriday-referentie. Bijvoorbeeld", " ", _jsxs("code", { children: ["/floriday-verkoop/verkooporders/", "{id}"] }), "."] })] }), _jsx("div", { className: "space-y-2", children: templates.map((t) => (_jsx(TemplateRow, { template: t, onSave: (local, floriday) => saveTemplateMutation.mutate({
145
145
  resourceType: t.resource_type,
146
146
  label: t.label,
@@ -1 +1 @@
1
- {"version":3,"file":"FlorydayWebhooksCard.d.ts","sourceRoot":"","sources":["../../../src/components/floriday/FlorydayWebhooksCard.tsx"],"names":[],"mappings":"AAsBA,wBAAgB,oBAAoB,gCAyFnC"}
1
+ {"version":3,"file":"FlorydayWebhooksCard.d.ts","sourceRoot":"","sources":["../../../src/components/floriday/FlorydayWebhooksCard.tsx"],"names":[],"mappings":"AAwBA,wBAAgB,oBAAoB,gCA+InC"}
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
3
3
  import { useServerFn } from "@tanstack/react-start";
4
4
  import { useState } from "react";
5
- import { getFloridayWebhookStatus, subscribeFloridayWebhook, unsubscribeFloridayWebhook, } from "../../lib/floriday-webhooks.functions.js";
5
+ import { getFloridayWebhookStatus, listStaleWebhookCallbacks, unsubscribeStaleWebhookCallback, subscribeFloridayWebhook, unsubscribeFloridayWebhook, } from "../../lib/floriday-webhooks.functions.js";
6
6
  function badge(s, isActiveConn) {
7
7
  if (!isActiveConn)
8
8
  return { text: "Geen actieve koppeling", cls: "bg-muted text-muted-foreground" };
@@ -23,6 +23,18 @@ export function FlorydayWebhooksCard() {
23
23
  const subscribe = useServerFn(subscribeFloridayWebhook);
24
24
  const unsubscribe = useServerFn(unsubscribeFloridayWebhook);
25
25
  const [message, setMessage] = useState(null);
26
+ const listStale = useServerFn(listStaleWebhookCallbacks);
27
+ const unsubStale = useServerFn(unsubscribeStaleWebhookCallback);
28
+ const staleQ = useQuery({ queryKey: ["floriday-webhooks-stale"], queryFn: () => listStale(), retry: false });
29
+ const staleMut = useMutation({
30
+ mutationFn: (key) => unsubStale({ data: { key } }),
31
+ onSuccess: (r) => {
32
+ setMessage(r?.results
33
+ ? `Afmelden: ${r.results.map((x) => `${x.environment === "live" ? "productie" : "test"} ${x.status}`).join(", ")}`
34
+ : r?.error ?? "Mislukt");
35
+ qc.invalidateQueries({ queryKey: ["floriday-webhooks-stale"] });
36
+ },
37
+ });
26
38
  const q = useQuery({ queryKey: ["floriday-webhooks"], queryFn: () => getStatus(), refetchInterval: 30000 });
27
39
  const done = (r) => {
28
40
  setMessage(r?.ok ? "Gelukt." : r?.error ?? "Mislukt");
@@ -31,6 +43,7 @@ export function FlorydayWebhooksCard() {
31
43
  const sub = useMutation({ mutationFn: (environment) => subscribe({ data: { environment } }), onSuccess: done });
32
44
  const unsub = useMutation({ mutationFn: (environment) => unsubscribe({ data: { environment } }), onSuccess: done });
33
45
  const subs = (q.data?.subscriptions ?? []);
46
+ const reasons = q.data?.rejectedByReason ?? {};
34
47
  const counts = q.data?.last24h ?? {};
35
48
  const activeEnvs = (q.data?.activeEnvironments ?? []);
36
49
  const envs = ["staging", "live"];
@@ -43,5 +56,10 @@ export function FlorydayWebhooksCard() {
43
56
  catch {
44
57
  return "—";
45
58
  } })()] })), s?.status === "error" && (_jsxs("div", { className: "text-destructive text-xs mt-1 space-y-0.5", children: [_jsx("div", { children: s.last_error }), s.next_attempt_at && _jsxs("div", { children: ["Volgende automatische poging: ", fmt(s.next_attempt_at)] }), s.last_error_kind === "scope" && (_jsx("div", { children: "Dit staat op de lijst met vragen voor de beheerder van Central Auth." }))] }))] }), _jsxs("div", { className: "flex gap-2 shrink-0", children: [_jsx("button", { className: "rounded-md border px-3 py-1 text-xs hover:bg-accent disabled:opacity-50", disabled: sub.isPending, onClick: () => sub.mutate(env), children: s ? "Opnieuw aanmelden" : "Aanmelden" }), s && (_jsx("button", { className: "rounded-md border px-3 py-1 text-xs hover:bg-accent disabled:opacity-50", disabled: unsub.isPending, onClick: () => unsub.mutate(env), children: "Afmelden" }))] })] }, env));
46
- }) }), _jsxs("p", { className: "text-xs text-muted-foreground", children: ["Laatste 24 uur: ", counts.processed ?? 0, " verwerkt \u00B7 ", counts.duplicate ?? 0, " dubbel \u00B7", " ", counts.ignored ?? 0, " genegeerd \u00B7 ", (counts.failed ?? 0) + (counts.failed_retry ?? 0), " mislukt \u00B7", " ", counts.rejected ?? 0, " geweigerd"] }), _jsxs("p", { className: "text-xs text-muted-foreground", children: ["Laatste automatische controle: ", fmt(q.data?.lastEnsureAt)] }), message && _jsx("p", { className: "text-xs", children: message })] }));
59
+ }) }), _jsxs("p", { className: "text-xs text-muted-foreground", children: ["Laatste 24 uur: ", counts.processed ?? 0, " verwerkt \u00B7 ", counts.duplicate ?? 0, " dubbel \u00B7", " ", counts.ignored ?? 0, " genegeerd \u00B7 ", (counts.failed ?? 0) + (counts.failed_retry ?? 0), " mislukt \u00B7", " ", counts.rejected ?? 0, " geweigerd"] }), Object.keys(reasons).length > 0 && (_jsx("ul", { className: "text-xs text-muted-foreground space-y-0.5", children: Object.entries(reasons).map(([r, n]) => (_jsxs("li", { children: [String(n), " geweigerd: ", r, r === "Onbekend callback-token" ? " (waarschijnlijk een oude aanmelding bij Floriday)" : ""] }, r))) })), Array.isArray(staleQ.data) && staleQ.data.length > 0 && (_jsxs("div", { className: "space-y-2", children: [_jsx("h3", { className: "text-sm font-medium", children: "Oude aanmeldingen" }), _jsx("ul", { className: "space-y-2", children: staleQ.data.map((s) => (_jsxs("li", { className: "flex items-start justify-between gap-4 text-xs", children: [_jsxs("div", { children: [_jsx("div", { className: "font-mono break-all", children: s.callbackUrlMasked }), _jsxs("div", { className: "text-muted-foreground", children: [s.count, " meldingen sinds ", fmt(s.firstAt), " \u00B7 laatste ", fmt(s.lastAt), s.unsubscribe
60
+ ? ` · afgemeld ${fmt(s.unsubscribe.at)} (${(s.unsubscribe.results ?? []).map((x) => x.status).join(", ")})`
61
+ : ""] })] }), _jsx("button", { className: "shrink-0 rounded-md border px-3 py-1 hover:bg-accent disabled:opacity-50", disabled: staleMut.isPending, onClick: () => {
62
+ if (window.confirm(`Oude aanmelding afmelden bij Floriday?\n${s.callbackUrlMasked}`))
63
+ staleMut.mutate(s.key);
64
+ }, children: "Oude aanmelding afmelden" })] }, s.key))) })] })), _jsxs("p", { className: "text-xs text-muted-foreground", children: ["Laatste automatische controle: ", fmt(q.data?.lastEnsureAt)] }), message && _jsx("p", { className: "text-xs", children: message })] }));
47
65
  }
@@ -2611,6 +2611,7 @@ export type Database = {
2611
2611
  twinfield_base_snapshot: Json | null;
2612
2612
  twinfield_base_version: number | null;
2613
2613
  twinfield_code: string | null;
2614
+ twinfield_create_on_insert: boolean;
2614
2615
  twinfield_last_hash: string | null;
2615
2616
  twinfield_missing_since: string | null;
2616
2617
  twinfield_present: boolean;
@@ -2702,6 +2703,7 @@ export type Database = {
2702
2703
  twinfield_base_snapshot?: Json | null;
2703
2704
  twinfield_base_version?: number | null;
2704
2705
  twinfield_code?: string | null;
2706
+ twinfield_create_on_insert?: boolean;
2705
2707
  twinfield_last_hash?: string | null;
2706
2708
  twinfield_missing_since?: string | null;
2707
2709
  twinfield_present?: boolean;
@@ -2793,6 +2795,7 @@ export type Database = {
2793
2795
  twinfield_base_snapshot?: Json | null;
2794
2796
  twinfield_base_version?: number | null;
2795
2797
  twinfield_code?: string | null;
2798
+ twinfield_create_on_insert?: boolean;
2796
2799
  twinfield_last_hash?: string | null;
2797
2800
  twinfield_missing_since?: string | null;
2798
2801
  twinfield_present?: boolean;
@@ -18511,6 +18514,7 @@ export type Database = {
18511
18514
  created_at: string;
18512
18515
  default_end: string;
18513
18516
  default_start: string;
18517
+ eigen_vervoer: boolean;
18514
18518
  end_address: string | null;
18515
18519
  home_address: string | null;
18516
18520
  id: string;
@@ -18522,6 +18526,7 @@ export type Database = {
18522
18526
  created_at?: string;
18523
18527
  default_end?: string;
18524
18528
  default_start?: string;
18529
+ eigen_vervoer?: boolean;
18525
18530
  end_address?: string | null;
18526
18531
  home_address?: string | null;
18527
18532
  id?: string;
@@ -18533,6 +18538,7 @@ export type Database = {
18533
18538
  created_at?: string;
18534
18539
  default_end?: string;
18535
18540
  default_start?: string;
18541
+ eigen_vervoer?: boolean;
18536
18542
  end_address?: string | null;
18537
18543
  home_address?: string | null;
18538
18544
  id?: string;
@@ -26935,9 +26941,59 @@ export type Database = {
26935
26941
  };
26936
26942
  Relationships: [];
26937
26943
  };
26944
+ werkbon_standby_tijdvakken: {
26945
+ Row: {
26946
+ created_at: string;
26947
+ datum: string;
26948
+ eind_tijd: string;
26949
+ id: string;
26950
+ monteur_id: string;
26951
+ start_tijd: string;
26952
+ updated_at: string;
26953
+ werkbon_id: string;
26954
+ };
26955
+ Insert: {
26956
+ created_at?: string;
26957
+ datum: string;
26958
+ eind_tijd: string;
26959
+ id?: string;
26960
+ monteur_id: string;
26961
+ start_tijd: string;
26962
+ updated_at?: string;
26963
+ werkbon_id: string;
26964
+ };
26965
+ Update: {
26966
+ created_at?: string;
26967
+ datum?: string;
26968
+ eind_tijd?: string;
26969
+ id?: string;
26970
+ monteur_id?: string;
26971
+ start_tijd?: string;
26972
+ updated_at?: string;
26973
+ werkbon_id?: string;
26974
+ };
26975
+ Relationships: [
26976
+ {
26977
+ foreignKeyName: "werkbon_standby_tijdvakken_werkbon_id_fkey";
26978
+ columns: ["werkbon_id"];
26979
+ isOneToOne: false;
26980
+ referencedRelation: "werkbonnen";
26981
+ referencedColumns: ["id"];
26982
+ },
26983
+ {
26984
+ foreignKeyName: "werkbon_standby_tijdvakken_werkbon_id_fkey";
26985
+ columns: ["werkbon_id"];
26986
+ isOneToOne: false;
26987
+ referencedRelation: "wo_overview";
26988
+ referencedColumns: ["id"];
26989
+ }
26990
+ ];
26991
+ };
26938
26992
  werkbon_time_logs: {
26939
26993
  Row: {
26940
26994
  activity: string;
26995
+ auto_stop_reason: string | null;
26996
+ auto_stopped: boolean;
26941
26997
  created_at: string;
26942
26998
  ended_at: string | null;
26943
26999
  id: string;
@@ -26948,6 +27004,8 @@ export type Database = {
26948
27004
  };
26949
27005
  Insert: {
26950
27006
  activity: string;
27007
+ auto_stop_reason?: string | null;
27008
+ auto_stopped?: boolean;
26951
27009
  created_at?: string;
26952
27010
  ended_at?: string | null;
26953
27011
  id?: string;
@@ -26958,6 +27016,8 @@ export type Database = {
26958
27016
  };
26959
27017
  Update: {
26960
27018
  activity?: string;
27019
+ auto_stop_reason?: string | null;
27020
+ auto_stopped?: boolean;
26961
27021
  created_at?: string;
26962
27022
  ended_at?: string | null;
26963
27023
  id?: string;
@@ -29161,6 +29221,10 @@ export type Database = {
29161
29221
  Args: never;
29162
29222
  Returns: Json;
29163
29223
  };
29224
+ dashboard_alert_counts_v2: {
29225
+ Args: never;
29226
+ Returns: Json;
29227
+ };
29164
29228
  dashboard_alert_rows: {
29165
29229
  Args: {
29166
29230
  check_id: string;
@@ -29168,6 +29232,17 @@ export type Database = {
29168
29232
  };
29169
29233
  Returns: Json;
29170
29234
  };
29235
+ dashboard_alert_rows_v2: {
29236
+ Args: {
29237
+ check_id: string;
29238
+ row_limit?: number;
29239
+ };
29240
+ Returns: Json;
29241
+ };
29242
+ dashboard_ensure_start_page: {
29243
+ Args: never;
29244
+ Returns: string;
29245
+ };
29171
29246
  dashboard_funnel_betaald: {
29172
29247
  Args: {
29173
29248
  _bedragen: number[];
@@ -29189,6 +29264,12 @@ export type Database = {
29189
29264
  table_name: string;
29190
29265
  }[];
29191
29266
  };
29267
+ dashboard_order_state: {
29268
+ Args: {
29269
+ _order_id: string;
29270
+ };
29271
+ Returns: string;
29272
+ };
29192
29273
  dashboard_pit_tellingen: {
29193
29274
  Args: {
29194
29275
  _mail_connecties?: string[];
@@ -30268,6 +30349,13 @@ export type Database = {
30268
30349
  };
30269
30350
  Returns: Json;
30270
30351
  };
30352
+ invoice_status_transition_ok: {
30353
+ Args: {
30354
+ _from: string;
30355
+ _to: string;
30356
+ };
30357
+ Returns: boolean;
30358
+ };
30271
30359
  invoice_update_full: {
30272
30360
  Args: {
30273
30361
  _invoice_id: string;
@@ -31911,6 +31999,10 @@ export type Database = {
31911
31999
  };
31912
32000
  Returns: Json;
31913
32001
  };
32002
+ logistics_orphan_carts_summary: {
32003
+ Args: never;
32004
+ Returns: Json;
32005
+ };
31914
32006
  logistics_packing_autofix: {
31915
32007
  Args: {
31916
32008
  p_limit?: number;
@@ -31968,6 +32060,16 @@ export type Database = {
31968
32060
  };
31969
32061
  Returns: boolean;
31970
32062
  };
32063
+ logistics_pakbon_old_order_row: {
32064
+ Args: {
32065
+ p_ids: string[];
32066
+ };
32067
+ Returns: boolean;
32068
+ };
32069
+ logistics_pakbon_oude_orderregels: {
32070
+ Args: never;
32071
+ Returns: Json;
32072
+ };
31971
32073
  logistics_parse_pickup: {
31972
32074
  Args: {
31973
32075
  p_value: string;
@@ -34215,6 +34317,10 @@ export type Database = {
34215
34317
  isSetofReturn: true;
34216
34318
  };
34217
34319
  };
34320
+ planning_mijn_eigen_vervoer: {
34321
+ Args: never;
34322
+ Returns: boolean;
34323
+ };
34218
34324
  planning_set_assistants: {
34219
34325
  Args: {
34220
34326
  _monteur_ids: string[];
@@ -34247,6 +34353,18 @@ export type Database = {
34247
34353
  };
34248
34354
  Returns: string;
34249
34355
  };
34356
+ print_is_etiketsoort: {
34357
+ Args: {
34358
+ _t: string;
34359
+ };
34360
+ Returns: boolean;
34361
+ };
34362
+ print_is_labelprinter: {
34363
+ Args: {
34364
+ _printer_id: string;
34365
+ };
34366
+ Returns: boolean;
34367
+ };
34250
34368
  print_job_status_uitgebreid: {
34251
34369
  Args: {
34252
34370
  _job_id: string;
@@ -35799,6 +35917,12 @@ export type Database = {
35799
35917
  };
35800
35918
  Returns: undefined;
35801
35919
  };
35920
+ uren_overuren_intrekken: {
35921
+ Args: {
35922
+ _datum: string;
35923
+ };
35924
+ Returns: undefined;
35925
+ };
35802
35926
  uren_pagina_toegang_instellen: {
35803
35927
  Args: {
35804
35928
  _toegang: boolean;
@@ -36202,6 +36326,13 @@ export type Database = {
36202
36326
  Args: never;
36203
36327
  Returns: Json;
36204
36328
  };
36329
+ wo_boek_standby_tijdvakken: {
36330
+ Args: {
36331
+ _tijdvakken: Json;
36332
+ _werkbon_id: string;
36333
+ };
36334
+ Returns: Json;
36335
+ };
36205
36336
  wo_boek_standby_uren: {
36206
36337
  Args: {
36207
36338
  _datum: string;
@@ -36317,11 +36448,35 @@ export type Database = {
36317
36448
  };
36318
36449
  Returns: Json;
36319
36450
  };
36451
+ wo_standby_dag_herberekenen: {
36452
+ Args: {
36453
+ _datum: string;
36454
+ _monteur: string;
36455
+ };
36456
+ Returns: Json;
36457
+ };
36458
+ wo_standby_ov_dag: {
36459
+ Args: {
36460
+ _dienst: Json;
36461
+ _dow: number;
36462
+ _feest: boolean;
36463
+ _vakken: Json;
36464
+ };
36465
+ Returns: Json;
36466
+ };
36467
+ wo_standby_tijdzone: {
36468
+ Args: never;
36469
+ Returns: string;
36470
+ };
36471
+ wo_timer_stop_0400: {
36472
+ Args: never;
36473
+ Returns: number;
36474
+ };
36320
36475
  };
36321
36476
  Enums: {
36322
36477
  ai_import_status: "nieuw" | "verwerken" | "bevestigen" | "klaar" | "mislukt";
36323
36478
  app_role: "admin" | "planner" | "monteur" | "administratie" | "ai_admin" | "manager" | "warehouse" | "sales" | "developer" | "receptie" | "superadmin";
36324
- doc_layout_type: "pakbon" | "factuur" | "offerte" | "orderbevestiging" | "etiket" | "verzendlabel" | "productlabel" | "barcode_label" | "magazijnlijst" | "controlelijst" | "transportdocument" | "vrij" | "sticker" | "productiebon" | "veilingbon" | "afleverbrief" | "veilingbrief";
36479
+ doc_layout_type: "pakbon" | "factuur" | "offerte" | "orderbevestiging" | "etiket" | "verzendlabel" | "productlabel" | "barcode_label" | "magazijnlijst" | "controlelijst" | "transportdocument" | "vrij" | "sticker" | "productiebon" | "veilingbon" | "afleverbrief" | "veilingbrief" | "traysticker";
36325
36480
  doc_orientation: "portrait" | "landscape";
36326
36481
  exact_env: "staging" | "live";
36327
36482
  exact_push_status: "pending" | "sent" | "error";
@@ -36392,7 +36547,7 @@ export declare const Constants: {
36392
36547
  readonly Enums: {
36393
36548
  readonly ai_import_status: readonly ["nieuw", "verwerken", "bevestigen", "klaar", "mislukt"];
36394
36549
  readonly app_role: readonly ["admin", "planner", "monteur", "administratie", "ai_admin", "manager", "warehouse", "sales", "developer", "receptie", "superadmin"];
36395
- readonly doc_layout_type: readonly ["pakbon", "factuur", "offerte", "orderbevestiging", "etiket", "verzendlabel", "productlabel", "barcode_label", "magazijnlijst", "controlelijst", "transportdocument", "vrij", "sticker", "productiebon", "veilingbon", "afleverbrief", "veilingbrief"];
36550
+ readonly doc_layout_type: readonly ["pakbon", "factuur", "offerte", "orderbevestiging", "etiket", "verzendlabel", "productlabel", "barcode_label", "magazijnlijst", "controlelijst", "transportdocument", "vrij", "sticker", "productiebon", "veilingbon", "afleverbrief", "veilingbrief", "traysticker"];
36396
36551
  readonly doc_orientation: readonly ["portrait", "landscape"];
36397
36552
  readonly exact_env: readonly ["staging", "live"];
36398
36553
  readonly exact_push_status: readonly ["pending", "sent", "error"];