@flowselections/logistiek-engine 1.0.12 → 1.0.13

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.
@@ -4,30 +4,36 @@ export declare const FLORIDAY_PUSH_LEASE_SECONDS = 120;
4
4
  /** FNV-1a, 64 bits als hex. Geen crypto nodig, deterministisch in elke runtime. */
5
5
  export declare function hashPayload(value: unknown): string;
6
6
  export interface FloridayPushPayload {
7
- orderRef: string;
8
- fulfillmentOrderId: string | null;
9
- salesOrderId: string | null;
10
- loadCarriers: Array<{
11
- cartNumber: number | null;
12
- carrierType: string | null;
13
- layersUsed: number | null;
14
- maxLayers: number | null;
15
- occupancyPct: number | null;
16
- weightKg: number | null;
17
- items: Array<{
18
- productId: string | null;
19
- productName: string | null;
20
- crates: number | null;
21
- boxes: number | null;
22
- plantsPerCrate: number | null;
23
- }>;
24
- }>;
7
+ deliveryOrderId: string;
8
+ fulfillmentRequestIds: string[];
25
9
  }
26
- /** Bouwt de gewenste stand voor één order. null = niets te pushen. */
27
- export declare function buildFloridayPayload(sb: SupabaseClient, orderRef: string): Promise<{
10
+ export type BuildResult = {
11
+ ok: true;
28
12
  payload: FloridayPushPayload;
29
13
  hash: string;
30
- } | null>;
14
+ } | {
15
+ ok: false;
16
+ code: string;
17
+ error: string;
18
+ permanent: boolean;
19
+ };
20
+ /**
21
+ * Zoekt de delivery-order die bij een sales-order hoort. De koppeling ligt op
22
+ * de delivery-order: data->'fulfillmentRequests'[]->>'salesOrderId'.
23
+ * Bij meerdere treffers wint de meest recent opgehaalde rij (fetched_at desc).
24
+ */
25
+ export declare function findDeliveryOrderForSalesOrder(sb: SupabaseClient, salesOrderId: string): Promise<{
26
+ ok: true;
27
+ deliveryOrderId: string;
28
+ fulfillmentRequestIds: string[];
29
+ matches: number;
30
+ } | {
31
+ ok: false;
32
+ code: string;
33
+ error: string;
34
+ }>;
35
+ /** Bouwt de gewenste stand voor één order. */
36
+ export declare function buildFloridayPayload(sb: SupabaseClient, orderRef: string): Promise<BuildResult>;
31
37
  export declare function queueFloridayPush(sb: SupabaseClient, orderRef: string): Promise<void>;
32
38
  export declare function queueFloridayPushes(sb: SupabaseClient, orderRefs: string[]): Promise<void>;
33
39
  export interface PushQueueResult {
@@ -1 +1 @@
1
- {"version":3,"file":"floridayPush.server.d.ts","sourceRoot":"","sources":["../../src/lib/floridayPush.server.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAc/C,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUlD;AAMD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,KAAK,CAAC;QAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,KAAK,EAAE,KAAK,CAAC;YACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;YACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;YAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;YACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;YACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;SAC/B,CAAC,CAAC;KACJ,CAAC,CAAC;CACJ;AAED,sEAAsE;AACtE,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,cAAc,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,OAAO,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAkDhE;AAOD,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW3F;AAED,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhG;AA6BD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,cAAc,EAClB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,OAAO,CAAC,eAAe,CAAC,CAyH1B;AAQD,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAS3F"}
1
+ {"version":3,"file":"floridayPush.server.d.ts","sourceRoot":"","sources":["../../src/lib/floridayPush.server.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAc/C,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUlD;AAcD,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAUnE;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,EAAE,EAAE,cAAc,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CACN;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvF;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAC7C,CAqDA;AAED,8CAA8C;AAC9C,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,cAAc,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,CA+EtB;AAQD,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW3F;AAED,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhG;AA6BD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,cAAc,EAClB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,OAAO,CAAC,eAAe,CAAC,CA0H1B;AAQD,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAS3F"}
@@ -36,51 +36,126 @@ export function hashPayload(value) {
36
36
  }
37
37
  return h1.toString(16).padStart(8, "0") + h2.toString(16).padStart(8, "0");
38
38
  }
39
- /** Bouwt de gewenste stand voor één order. null = niets te pushen. */
39
+ /**
40
+ * Zoekt de delivery-order die bij een sales-order hoort. De koppeling ligt op
41
+ * de delivery-order: data->'fulfillmentRequests'[]->>'salesOrderId'.
42
+ * Bij meerdere treffers wint de meest recent opgehaalde rij (fetched_at desc).
43
+ */
44
+ export async function findDeliveryOrderForSalesOrder(sb, salesOrderId) {
45
+ const { data, error } = await sb
46
+ .from("floriday_delivery_orders_cache")
47
+ .select("floriday_id, data, fetched_at")
48
+ .contains("data", { fulfillmentRequests: [{ salesOrderId }] })
49
+ .order("fetched_at", { ascending: false })
50
+ .limit(10);
51
+ if (error) {
52
+ return { ok: false, code: "db_error_delivery_orders", error: `Delivery-ordercache niet leesbaar: ${error.message}` };
53
+ }
54
+ const rows = Array.isArray(data) ? data : [];
55
+ if (rows.length === 0) {
56
+ return {
57
+ ok: false,
58
+ code: "delivery_order_not_found_local",
59
+ error: `Nog geen delivery-order in de cache voor sales-order ${salesOrderId}. De push wacht tot de synchronisatie hem binnenhaalt.`,
60
+ };
61
+ }
62
+ if (rows.length > 1) {
63
+ console.info(`[floridayPush] ${rows.length} delivery-orders gevonden voor sales-order ${salesOrderId}; meest recent gefetchte gekozen.`);
64
+ }
65
+ const row = rows[0];
66
+ const payloadData = (row["data"] ?? {});
67
+ const requests = Array.isArray(payloadData["fulfillmentRequests"])
68
+ ? payloadData["fulfillmentRequests"]
69
+ : [];
70
+ const fulfillmentRequestIds = requests
71
+ .filter((r) => String(r["salesOrderId"] ?? "") === salesOrderId)
72
+ .map((r) => String(r["fulfillmentRequestId"] ?? r["id"] ?? ""))
73
+ .filter((s) => s.length > 0)
74
+ .sort();
75
+ if (fulfillmentRequestIds.length === 0) {
76
+ return {
77
+ ok: false,
78
+ code: "delivery_order_without_requests",
79
+ error: `Delivery-order ${String(row["floriday_id"] ?? "")} bevat geen fulfillmentRequests voor sales-order ${salesOrderId}.`,
80
+ };
81
+ }
82
+ return {
83
+ ok: true,
84
+ deliveryOrderId: String(row["floriday_id"] ?? ""),
85
+ fulfillmentRequestIds,
86
+ matches: rows.length,
87
+ };
88
+ }
89
+ /** Bouwt de gewenste stand voor één order. */
40
90
  export async function buildFloridayPayload(sb, orderRef) {
41
- const { data: order } = await sb
91
+ const { data: order, error: orderError } = await sb
42
92
  .from("orders")
43
93
  .select("id, order_number, floriday_sales_order_id")
44
94
  .eq("order_number", orderRef)
45
95
  .maybeSingle();
46
- if (!order)
47
- return null;
96
+ if (orderError) {
97
+ return {
98
+ ok: false,
99
+ code: "db_error_orders",
100
+ error: `Order niet leesbaar: ${orderError.message}`,
101
+ permanent: false,
102
+ };
103
+ }
104
+ if (!order) {
105
+ return { ok: false, code: "order_missing", error: "Order niet gevonden in de Engine.", permanent: true };
106
+ }
48
107
  const row = order;
49
- const { data: carts } = await sb
108
+ const salesOrderId = row["floriday_sales_order_id"] ?? null;
109
+ if (!salesOrderId) {
110
+ return {
111
+ ok: false,
112
+ code: "sales_order_missing",
113
+ error: "Order heeft geen Floriday sales-order; er valt niets te pushen.",
114
+ permanent: true,
115
+ };
116
+ }
117
+ const found = await findDeliveryOrderForSalesOrder(sb, salesOrderId);
118
+ if (!found.ok) {
119
+ // Wachttoestand, geen mislukking: de delivery-order kan later binnenkomen.
120
+ return { ok: false, code: found.code, error: found.error, permanent: false };
121
+ }
122
+ const { data: carts, error: cartsError } = await sb
50
123
  .from("order_carts")
51
124
  .select("id, cart_number, carrier_type, total_layers_used, max_layers, occupancy_pct, weight_kg, order_cart_items(product_id, product_name, crates, boxes, plants_per_crate)")
52
125
  .eq("order_id", row["id"])
53
126
  .order("cart_number", { ascending: true });
54
- const safeCarts = Array.isArray(carts) ? carts : [];
127
+ if (cartsError) {
128
+ return {
129
+ ok: false,
130
+ code: "db_error_carts",
131
+ error: `Karindeling niet leesbaar: ${cartsError.message}`,
132
+ permanent: false,
133
+ };
134
+ }
135
+ const indeling = (Array.isArray(carts) ? carts : []).map((c) => {
136
+ const cart = c;
137
+ const items = Array.isArray(cart["order_cart_items"])
138
+ ? cart["order_cart_items"]
139
+ : [];
140
+ return {
141
+ cartNumber: cart["cart_number"] ?? null,
142
+ carrierType: cart["carrier_type"] ?? null,
143
+ layersUsed: cart["total_layers_used"] ?? null,
144
+ items: items
145
+ .map((i) => ({
146
+ productId: i["product_id"] ?? null,
147
+ crates: i["crates"] ?? null,
148
+ boxes: i["boxes"] ?? null,
149
+ }))
150
+ .sort((a, b) => String(a.productId).localeCompare(String(b.productId))),
151
+ };
152
+ });
55
153
  const payload = {
56
- orderRef,
57
- fulfillmentOrderId: null,
58
- salesOrderId: row["floriday_sales_order_id"] ?? null,
59
- loadCarriers: safeCarts.map((c) => {
60
- const cart = c;
61
- const items = Array.isArray(cart["order_cart_items"])
62
- ? cart["order_cart_items"]
63
- : [];
64
- return {
65
- cartNumber: cart["cart_number"] ?? null,
66
- carrierType: cart["carrier_type"] ?? null,
67
- layersUsed: cart["total_layers_used"] ?? null,
68
- maxLayers: cart["max_layers"] ?? null,
69
- occupancyPct: cart["occupancy_pct"] ?? null,
70
- weightKg: cart["weight_kg"] ?? null,
71
- items: items
72
- .map((i) => ({
73
- productId: i["product_id"] ?? null,
74
- productName: i["product_name"] ?? null,
75
- crates: i["crates"] ?? null,
76
- boxes: i["boxes"] ?? null,
77
- plantsPerCrate: i["plants_per_crate"] ?? null,
78
- }))
79
- .sort((a, b) => String(a.productId).localeCompare(String(b.productId))),
80
- };
81
- }),
154
+ deliveryOrderId: found.deliveryOrderId,
155
+ fulfillmentRequestIds: found.fulfillmentRequestIds,
82
156
  };
83
- return { payload, hash: hashPayload(payload) };
157
+ // De hash bewaakt ook de karindeling, zodat een herindeling opnieuw pusht.
158
+ return { ok: true, payload, hash: hashPayload({ payload, indeling }) };
84
159
  }
85
160
  // ---------------------------------------------------------------------------
86
161
  // In de wachtrij zetten — snel, zonder netwerk, veilig overal aan te roepen
@@ -168,12 +243,13 @@ export async function runFloridayPushQueue(sb, opts = {}) {
168
243
  let response = null;
169
244
  try {
170
245
  const built = await buildFloridayPayload(sb, orderRef);
171
- if (!built) {
172
- // Order bestaat niet (meer): niets te pushen, geen eindeloze retry.
246
+ if (!built.ok) {
247
+ // Wachttoestand (delivery-order nog niet gesynchroniseerd) of een
248
+ // databasefout; permanent alleen als de order zelf niet kan bestaan.
173
249
  ok = false;
174
- permanent = true;
175
- error = "Order niet gevonden in de Engine.";
176
- errorCode = "order_missing";
250
+ permanent = built.permanent;
251
+ error = built.error;
252
+ errorCode = built.code;
177
253
  }
178
254
  else if (built.hash === lastSentHash) {
179
255
  // Identieke stand: niets versturen, wel als geslaagd afronden.
@@ -194,8 +270,7 @@ export async function runFloridayPushQueue(sb, opts = {}) {
194
270
  const payloadError = payload?.error ?? res?.error;
195
271
  ok = payloadOk === true;
196
272
  sentHash = built.hash;
197
- fulfillmentOrderId =
198
- payload?.fulfillmentOrderId ?? built.payload.fulfillmentOrderId ?? null;
273
+ fulfillmentOrderId = payload?.fulfillmentOrderId ?? null;
199
274
  response = {
200
275
  ok: payloadOk ?? null,
201
276
  error: payloadError ?? null,
@@ -18605,6 +18605,9 @@ export declare const replanOrderLoadCarriers: import("@tanstack/start-client-cor
18605
18605
  scheduled_end_time: string | null;
18606
18606
  scheduled_start_time: string | null;
18607
18607
  sequence_number: number;
18608
+ signature_accepted_at: string | null;
18609
+ signature_by_user_id: string | null;
18610
+ signature_name: string | null;
18608
18611
  source_email_meta: import("../integrations/supabase/types").Json | null;
18609
18612
  source_mailbox_message_id: string | null;
18610
18613
  source_pdf_path: string | null;
@@ -18640,6 +18643,9 @@ export declare const replanOrderLoadCarriers: import("@tanstack/start-client-cor
18640
18643
  scheduled_end_time?: string | null;
18641
18644
  scheduled_start_time?: string | null;
18642
18645
  sequence_number: number;
18646
+ signature_accepted_at?: string | null;
18647
+ signature_by_user_id?: string | null;
18648
+ signature_name?: string | null;
18643
18649
  source_email_meta?: import("../integrations/supabase/types").Json | null;
18644
18650
  source_mailbox_message_id?: string | null;
18645
18651
  source_pdf_path?: string | null;
@@ -18675,6 +18681,9 @@ export declare const replanOrderLoadCarriers: import("@tanstack/start-client-cor
18675
18681
  scheduled_end_time?: string | null;
18676
18682
  scheduled_start_time?: string | null;
18677
18683
  sequence_number?: number;
18684
+ signature_accepted_at?: string | null;
18685
+ signature_by_user_id?: string | null;
18686
+ signature_name?: string | null;
18678
18687
  source_email_meta?: import("../integrations/supabase/types").Json | null;
18679
18688
  source_mailbox_message_id?: string | null;
18680
18689
  source_pdf_path?: string | null;
@@ -41195,6 +41204,9 @@ export declare const replanBufferLoadCarriers: import("@tanstack/start-client-co
41195
41204
  scheduled_end_time: string | null;
41196
41205
  scheduled_start_time: string | null;
41197
41206
  sequence_number: number;
41207
+ signature_accepted_at: string | null;
41208
+ signature_by_user_id: string | null;
41209
+ signature_name: string | null;
41198
41210
  source_email_meta: import("../integrations/supabase/types").Json | null;
41199
41211
  source_mailbox_message_id: string | null;
41200
41212
  source_pdf_path: string | null;
@@ -41230,6 +41242,9 @@ export declare const replanBufferLoadCarriers: import("@tanstack/start-client-co
41230
41242
  scheduled_end_time?: string | null;
41231
41243
  scheduled_start_time?: string | null;
41232
41244
  sequence_number: number;
41245
+ signature_accepted_at?: string | null;
41246
+ signature_by_user_id?: string | null;
41247
+ signature_name?: string | null;
41233
41248
  source_email_meta?: import("../integrations/supabase/types").Json | null;
41234
41249
  source_mailbox_message_id?: string | null;
41235
41250
  source_pdf_path?: string | null;
@@ -41265,6 +41280,9 @@ export declare const replanBufferLoadCarriers: import("@tanstack/start-client-co
41265
41280
  scheduled_end_time?: string | null;
41266
41281
  scheduled_start_time?: string | null;
41267
41282
  sequence_number?: number;
41283
+ signature_accepted_at?: string | null;
41284
+ signature_by_user_id?: string | null;
41285
+ signature_name?: string | null;
41268
41286
  source_email_meta?: import("../integrations/supabase/types").Json | null;
41269
41287
  source_mailbox_message_id?: string | null;
41270
41288
  source_pdf_path?: string | null;
@@ -63789,6 +63807,9 @@ export declare const planAllLoadCarriers: import("@tanstack/start-client-core").
63789
63807
  scheduled_end_time: string | null;
63790
63808
  scheduled_start_time: string | null;
63791
63809
  sequence_number: number;
63810
+ signature_accepted_at: string | null;
63811
+ signature_by_user_id: string | null;
63812
+ signature_name: string | null;
63792
63813
  source_email_meta: import("../integrations/supabase/types").Json | null;
63793
63814
  source_mailbox_message_id: string | null;
63794
63815
  source_pdf_path: string | null;
@@ -63824,6 +63845,9 @@ export declare const planAllLoadCarriers: import("@tanstack/start-client-core").
63824
63845
  scheduled_end_time?: string | null;
63825
63846
  scheduled_start_time?: string | null;
63826
63847
  sequence_number: number;
63848
+ signature_accepted_at?: string | null;
63849
+ signature_by_user_id?: string | null;
63850
+ signature_name?: string | null;
63827
63851
  source_email_meta?: import("../integrations/supabase/types").Json | null;
63828
63852
  source_mailbox_message_id?: string | null;
63829
63853
  source_pdf_path?: string | null;
@@ -63859,6 +63883,9 @@ export declare const planAllLoadCarriers: import("@tanstack/start-client-core").
63859
63883
  scheduled_end_time?: string | null;
63860
63884
  scheduled_start_time?: string | null;
63861
63885
  sequence_number?: number;
63886
+ signature_accepted_at?: string | null;
63887
+ signature_by_user_id?: string | null;
63888
+ signature_name?: string | null;
63862
63889
  source_email_meta?: import("../integrations/supabase/types").Json | null;
63863
63890
  source_mailbox_message_id?: string | null;
63864
63891
  source_pdf_path?: string | null;
@@ -86383,6 +86410,9 @@ export declare const ensureLogisticsTasks: import("@tanstack/start-client-core")
86383
86410
  scheduled_end_time: string | null;
86384
86411
  scheduled_start_time: string | null;
86385
86412
  sequence_number: number;
86413
+ signature_accepted_at: string | null;
86414
+ signature_by_user_id: string | null;
86415
+ signature_name: string | null;
86386
86416
  source_email_meta: import("../integrations/supabase/types").Json | null;
86387
86417
  source_mailbox_message_id: string | null;
86388
86418
  source_pdf_path: string | null;
@@ -86418,6 +86448,9 @@ export declare const ensureLogisticsTasks: import("@tanstack/start-client-core")
86418
86448
  scheduled_end_time?: string | null;
86419
86449
  scheduled_start_time?: string | null;
86420
86450
  sequence_number: number;
86451
+ signature_accepted_at?: string | null;
86452
+ signature_by_user_id?: string | null;
86453
+ signature_name?: string | null;
86421
86454
  source_email_meta?: import("../integrations/supabase/types").Json | null;
86422
86455
  source_mailbox_message_id?: string | null;
86423
86456
  source_pdf_path?: string | null;
@@ -86453,6 +86486,9 @@ export declare const ensureLogisticsTasks: import("@tanstack/start-client-core")
86453
86486
  scheduled_end_time?: string | null;
86454
86487
  scheduled_start_time?: string | null;
86455
86488
  sequence_number?: number;
86489
+ signature_accepted_at?: string | null;
86490
+ signature_by_user_id?: string | null;
86491
+ signature_name?: string | null;
86456
86492
  source_email_meta?: import("../integrations/supabase/types").Json | null;
86457
86493
  source_mailbox_message_id?: string | null;
86458
86494
  source_pdf_path?: string | null;
@@ -108975,6 +109011,9 @@ export declare const previewLoadCarrierPlan: import("@tanstack/start-client-core
108975
109011
  scheduled_end_time: string | null;
108976
109012
  scheduled_start_time: string | null;
108977
109013
  sequence_number: number;
109014
+ signature_accepted_at: string | null;
109015
+ signature_by_user_id: string | null;
109016
+ signature_name: string | null;
108978
109017
  source_email_meta: import("../integrations/supabase/types").Json | null;
108979
109018
  source_mailbox_message_id: string | null;
108980
109019
  source_pdf_path: string | null;
@@ -109010,6 +109049,9 @@ export declare const previewLoadCarrierPlan: import("@tanstack/start-client-core
109010
109049
  scheduled_end_time?: string | null;
109011
109050
  scheduled_start_time?: string | null;
109012
109051
  sequence_number: number;
109052
+ signature_accepted_at?: string | null;
109053
+ signature_by_user_id?: string | null;
109054
+ signature_name?: string | null;
109013
109055
  source_email_meta?: import("../integrations/supabase/types").Json | null;
109014
109056
  source_mailbox_message_id?: string | null;
109015
109057
  source_pdf_path?: string | null;
@@ -109045,6 +109087,9 @@ export declare const previewLoadCarrierPlan: import("@tanstack/start-client-core
109045
109087
  scheduled_end_time?: string | null;
109046
109088
  scheduled_start_time?: string | null;
109047
109089
  sequence_number?: number;
109090
+ signature_accepted_at?: string | null;
109091
+ signature_by_user_id?: string | null;
109092
+ signature_name?: string | null;
109048
109093
  source_email_meta?: import("../integrations/supabase/types").Json | null;
109049
109094
  source_mailbox_message_id?: string | null;
109050
109095
  source_pdf_path?: string | null;