@flowselections/floriday-authenticatie-module 1.0.58 → 1.0.62

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.
@@ -0,0 +1,52 @@
1
+ export type IsoWeek = {
2
+ year: number;
3
+ week: number;
4
+ };
5
+ /** ISO-weekjaar + week van een kalenderdatum (y, m 1-12, d). */
6
+ export declare function isoWeekOfDate(y: number, m: number, d: number): IsoWeek;
7
+ /** ISO-week van een moment, gerekend in Europe/Amsterdam (Floriday-tijd). */
8
+ export declare function isoWeekAmsterdam(at?: Date): IsoWeek;
9
+ /** Aantal ISO-weken in een ISO-weekjaar (52 of 53). */
10
+ export declare function isoWeeksInYear(year: number): number;
11
+ export declare function compareWeek(a: IsoWeek, b: IsoWeek): number;
12
+ export type WeekClass = "past" | "current" | "future" | "invalid";
13
+ export declare function classifyWeek(req: IsoWeek, now: IsoWeek): WeekClass;
14
+ export type FloridayProblem = {
15
+ status: number;
16
+ domainErrorCode: string | null;
17
+ title: string | null;
18
+ detail: string | null;
19
+ };
20
+ export declare function toProblem(status: number, data: any): FloridayProblem;
21
+ export declare const PRICE_LOCKED_MESSAGE = "Prijs kan niet meer wijzigen in de lopende week";
22
+ export declare const WEEK_IN_PAST_MESSAGE = "Week ligt in het verleden; weekaanbod is gesloten";
23
+ export type PlanStep = {
24
+ kind: "skip_past";
25
+ } | {
26
+ kind: "invalid_week";
27
+ } | {
28
+ kind: "put";
29
+ } | {
30
+ kind: "patch";
31
+ priceStatus: "unchanged" | "price_locked_current_week";
32
+ };
33
+ /** Wat te doen na de GET: bestaand aanbod (of null) en het verzoek. */
34
+ export declare function planBaseSupply(weekClass: WeekClass, existing: {
35
+ basePricePerPiece?: {
36
+ value?: number;
37
+ } | null;
38
+ } | null, price: number): PlanStep;
39
+ export type PutFailure = {
40
+ kind: "week_in_past";
41
+ } | {
42
+ kind: "price_locked_current_week";
43
+ } | {
44
+ kind: "recheck";
45
+ } | {
46
+ kind: "error";
47
+ retryable: boolean;
48
+ };
49
+ /** Duiding van een afgewezen PUT. Beslist op code + week, nooit op tekst. */
50
+ export declare function interpretPutFailure(weekClass: WeekClass, p: FloridayProblem): PutFailure;
51
+ export declare function isRetryableStatus(status: number): boolean;
52
+ //# sourceMappingURL=base-supply-decision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-supply-decision.d.ts","sourceRoot":"","sources":["../../src/lib/base-supply-decision.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,OAAO,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD,gEAAgE;AAChE,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAOtE;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,EAAE,GAAE,IAAiB,GAAG,OAAO,CAM/D;AAED,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAE1D;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAElE,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,SAAS,CAMlE;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,eAAe,CAQpE;AAED,eAAO,MAAM,oBAAoB,oDAAoD,CAAC;AACtF,eAAO,MAAM,oBAAoB,sDAAsD,CAAC;AAExF,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,WAAW,GAAG,2BAA2B,CAAA;CAAE,CAAC;AAE9E,uEAAuE;AACvE,wBAAgB,cAAc,CAC5B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE;IAAE,iBAAiB,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,EAClE,KAAK,EAAE,MAAM,GACZ,QAAQ,CASV;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,2BAA2B,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAE1C,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,eAAe,GAAG,UAAU,CAMxF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzD"}
@@ -0,0 +1,76 @@
1
+ // Pure beslisregels voor weekaanbod (base supply). Geen I/O, los te testen.
2
+ // Bron: Floriday Suppliers API 2026v1 Swagger + staging-proef 12-10-2026:
3
+ // - PATCH op ontbrekend én gesloten weekaanbod: 404 zonder domainErrorCode.
4
+ // - PUT in een week in het verleden: 400 domainErrorCode "weeklist-closed".
5
+ // - PUT met andere prijs in de lopende week: 400 "weeklist-closed"
6
+ // ("closed for price changes"); het aantal mag dan nog via PATCH.
7
+ /** ISO-weekjaar + week van een kalenderdatum (y, m 1-12, d). */
8
+ export function isoWeekOfDate(y, m, d) {
9
+ const date = new Date(Date.UTC(y, m - 1, d));
10
+ const day = date.getUTCDay() || 7;
11
+ date.setUTCDate(date.getUTCDate() + 4 - day);
12
+ const year = date.getUTCFullYear();
13
+ const week = Math.ceil(((date.getTime() - Date.UTC(year, 0, 1)) / 86400000 + 1) / 7);
14
+ return { year, week };
15
+ }
16
+ /** ISO-week van een moment, gerekend in Europe/Amsterdam (Floriday-tijd). */
17
+ export function isoWeekAmsterdam(at = new Date()) {
18
+ const parts = new Intl.DateTimeFormat("en-CA", {
19
+ timeZone: "Europe/Amsterdam", year: "numeric", month: "2-digit", day: "2-digit",
20
+ }).formatToParts(at);
21
+ const get = (t) => Number(parts.find((p) => p.type === t)?.value);
22
+ return isoWeekOfDate(get("year"), get("month"), get("day"));
23
+ }
24
+ /** Aantal ISO-weken in een ISO-weekjaar (52 of 53). */
25
+ export function isoWeeksInYear(year) {
26
+ return isoWeekOfDate(year, 12, 28).week;
27
+ }
28
+ export function compareWeek(a, b) {
29
+ return a.year !== b.year ? a.year - b.year : a.week - b.week;
30
+ }
31
+ export function classifyWeek(req, now) {
32
+ if (!Number.isInteger(req.year) || !Number.isInteger(req.week) || req.week < 1 || req.week > isoWeeksInYear(req.year)) {
33
+ return "invalid";
34
+ }
35
+ const c = compareWeek(req, now);
36
+ return c < 0 ? "past" : c === 0 ? "current" : "future";
37
+ }
38
+ export function toProblem(status, data) {
39
+ const body = data && typeof data === "object" ? (data.body && typeof data.body === "object" ? data.body : data) : {};
40
+ return {
41
+ status,
42
+ domainErrorCode: typeof body.domainErrorCode === "string" ? body.domainErrorCode : null,
43
+ title: typeof body.title === "string" ? body.title : null,
44
+ detail: typeof body.detail === "string" ? body.detail : null,
45
+ };
46
+ }
47
+ export const PRICE_LOCKED_MESSAGE = "Prijs kan niet meer wijzigen in de lopende week";
48
+ export const WEEK_IN_PAST_MESSAGE = "Week ligt in het verleden; weekaanbod is gesloten";
49
+ /** Wat te doen na de GET: bestaand aanbod (of null) en het verzoek. */
50
+ export function planBaseSupply(weekClass, existing, price) {
51
+ if (weekClass === "invalid")
52
+ return { kind: "invalid_week" };
53
+ if (weekClass === "past")
54
+ return { kind: "skip_past" };
55
+ if (!existing)
56
+ return { kind: "put" };
57
+ const current = Number(existing.basePricePerPiece?.value);
58
+ const samePrice = Number.isFinite(current) && Math.abs(current - price) < 0.0005;
59
+ if (samePrice)
60
+ return { kind: "patch", priceStatus: "unchanged" };
61
+ if (weekClass === "current")
62
+ return { kind: "patch", priceStatus: "price_locked_current_week" };
63
+ return { kind: "put" };
64
+ }
65
+ /** Duiding van een afgewezen PUT. Beslist op code + week, nooit op tekst. */
66
+ export function interpretPutFailure(weekClass, p) {
67
+ if (p.domainErrorCode === "weeklist-closed") {
68
+ return weekClass === "past" ? { kind: "week_in_past" } : { kind: "price_locked_current_week" };
69
+ }
70
+ if (p.status === 409 || p.status === 400 || p.status === 422)
71
+ return { kind: "recheck" };
72
+ return { kind: "error", retryable: p.status === 0 || p.status === 423 || p.status === 429 || p.status >= 500 };
73
+ }
74
+ export function isRetryableStatus(status) {
75
+ return status === 0 || status === 423 || status === 429 || status >= 500;
76
+ }
@@ -8,7 +8,7 @@ type StockQueueRow = {
8
8
  desired_available: boolean | null;
9
9
  attempts: number | null;
10
10
  };
11
- /** ISO-weeknummer van vandaag. */
11
+ /** ISO-week (weekjaar + week) in Europe/Amsterdam; zonder invoer: vandaag. */
12
12
  export declare function isoWeekParts(input?: string | Date): {
13
13
  year: number;
14
14
  week: number;
@@ -33,8 +33,10 @@ export declare function decideWarehouse(input: {
33
33
  } | null;
34
34
  export declare const SKIPPED_NO_PRICE_MESSAGE = "Prijs ontbreekt, nog niet verzonden";
35
35
  export declare const SKIPPED_NO_WAREHOUSE_MESSAGE = "Geen voorkeursmagazijn voor deze koppeling; kies er een op de Connectie-pagina";
36
+ export declare const NEEDS_BASE_SUPPLY_MESSAGE = "Nog geen weekaanbod in Floriday; aanmaken via gateway/supply-line";
37
+ export declare const WEEK_CLOSED_MESSAGE = "Week is gesloten in Floriday; overgeslagen";
36
38
  export type StockOutcome = {
37
- outcome: "quantity_sent" | "skipped_no_price" | "skipped_no_warehouse" | "error";
39
+ outcome: "quantity_sent" | "skipped_no_price" | "skipped_no_warehouse" | "needs_base_supply" | "skipped_week_closed" | "error";
38
40
  availabilitySent: boolean;
39
41
  quantitySent: boolean;
40
42
  error: string | null;
@@ -51,10 +53,19 @@ type WriteResult = {
51
53
  * Bepaalt de afsluiting van een regel uit de twee Floriday-antwoorden.
52
54
  * Puur (geen I/O) zodat het los te testen is.
53
55
  * - quantity_sent alleen bij een 2xx op de base-supply-PATCH.
54
- * - 404 op de PATCH (geen weekaanbod) = skipped_no_price, nooit verzonden.
56
+ * - 404 op de PATCH = needs_base_supply. Floriday geeft hier voor een
57
+ * ontbrekend én een gesloten weekaanbod dezelfde 404 zonder domainErrorCode
58
+ * (staging 12-10-2026); een gesloten week blijkt pas uit de PUT
59
+ * (400, domainErrorCode "weeklist-closed") in gateway/supply-line.
55
60
  * - beschikbaarheid alleen is nooit quantity_sent.
56
61
  */
57
62
  export declare function decideOutcome(availability: WriteResult | null, quantity: WriteResult | null): StockOutcome;
63
+ /**
64
+ * Achterwaarts compatibel: kent de afsluitfunctie van Voorraad een nieuwe
65
+ * uitkomst nog niet, dan wordt de regel als skipped_no_price afgesloten met
66
+ * een herkenbare prefix in de fout. Puur, voor tests.
67
+ */
68
+ export declare function legacyFallback(o: StockOutcome): StockOutcome | null;
58
69
  /**
59
70
  * Zet één wachtrijregel door naar Floriday. Gooit nooit.
60
71
  * Er wordt bewust GEEN PUT met basePricePerPiece gedaan zolang het prijsplan
@@ -1 +1 @@
1
- {"version":3,"file":"process-stock-queue.d.ts","sourceRoot":"","sources":["../../../src/lib/cron/process-stock-queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-stock-queue.d.ts","sourceRoot":"","sources":["../../../src/lib/cron/process-stock-queue.ts"],"names":[],"mappings":"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"}
@@ -1,32 +1,12 @@
1
- // ============================================================================
2
- // Vaste verwerker voor de Floriday-voorraadwachtrij.
3
- // ----------------------------------------------------------------------------
4
- // Deze module neemt de voorraadsync volledig over van de voorraadmodule.
5
- // Werkwijze per ronde:
6
- // 1. `claim_floriday_stock_queue` claimt atomair max. N regels (lock 5 min).
7
- // 2. Per regel: werkelijk aantal stuks (weekaanbod) + beschikbaarheids-
8
- // schakelaar via `florydayWrite` — dus met de tokens van deze module.
9
- // 3. `complete_floriday_stock_queue` schrijft het resultaat terug met
10
- // exponentiële backoff (1 → 30 min, max 8 pogingen) en onderscheid
11
- // tussen tijdelijke en definitieve fouten.
12
- // Bij een snelheidslimiet (429) breekt de ronde af; de volgende cron-tick
13
- // pakt het weer op.
14
- // ============================================================================
1
+ import { isoWeekAmsterdam } from "../base-supply-decision.js";
15
2
  import { florydayWrite, getActiveFlorydayEnvironment, syncShellHostRuntimeConfig, } from "../floriday.functions.js";
16
3
  import { verifyGatewayRequest, GATEWAY_HEADER_TIMESTAMP } from "../floriday-gateway-hmac.js";
17
4
  import { isOwnWarehouse } from "../floriday-own-config.js";
18
5
  const BATCH_SIZE = 25;
19
- /** ISO-weeknummer van vandaag. */
6
+ /** ISO-week (weekjaar + week) in Europe/Amsterdam; zonder invoer: vandaag. */
20
7
  export function isoWeekParts(input) {
21
8
  const parsed = input ? new Date(input) : new Date();
22
- const source = Number.isNaN(parsed.getTime()) ? new Date() : parsed;
23
- const date = new Date(Date.UTC(source.getUTCFullYear(), source.getUTCMonth(), source.getUTCDate()));
24
- const day = date.getUTCDay() || 7;
25
- date.setUTCDate(date.getUTCDate() + 4 - day);
26
- const year = date.getUTCFullYear();
27
- const yearStart = new Date(Date.UTC(year, 0, 1));
28
- const week = Math.ceil(((date.getTime() - yearStart.getTime()) / 86400000 + 1) / 7);
29
- return { year, week };
9
+ return isoWeekAmsterdam(Number.isNaN(parsed.getTime()) ? new Date() : parsed);
30
10
  }
31
11
  /** Tijdelijk (netwerk/5xx/429) versus definitief (gegevensfout). */
32
12
  export function isPermanentError(message) {
@@ -106,11 +86,16 @@ async function resolveWarehouseId(supabase, connectionId, tradeItemId, cachedIte
106
86
  }
107
87
  export const SKIPPED_NO_PRICE_MESSAGE = "Prijs ontbreekt, nog niet verzonden";
108
88
  export const SKIPPED_NO_WAREHOUSE_MESSAGE = "Geen voorkeursmagazijn voor deze koppeling; kies er een op de Connectie-pagina";
89
+ export const NEEDS_BASE_SUPPLY_MESSAGE = "Nog geen weekaanbod in Floriday; aanmaken via gateway/supply-line";
90
+ export const WEEK_CLOSED_MESSAGE = "Week is gesloten in Floriday; overgeslagen";
109
91
  /**
110
92
  * Bepaalt de afsluiting van een regel uit de twee Floriday-antwoorden.
111
93
  * Puur (geen I/O) zodat het los te testen is.
112
94
  * - quantity_sent alleen bij een 2xx op de base-supply-PATCH.
113
- * - 404 op de PATCH (geen weekaanbod) = skipped_no_price, nooit verzonden.
95
+ * - 404 op de PATCH = needs_base_supply. Floriday geeft hier voor een
96
+ * ontbrekend én een gesloten weekaanbod dezelfde 404 zonder domainErrorCode
97
+ * (staging 12-10-2026); een gesloten week blijkt pas uit de PUT
98
+ * (400, domainErrorCode "weeklist-closed") in gateway/supply-line.
114
99
  * - beschikbaarheid alleen is nooit quantity_sent.
115
100
  */
116
101
  export function decideOutcome(availability, quantity) {
@@ -127,18 +112,23 @@ export function decideOutcome(availability, quantity) {
127
112
  return { outcome: "quantity_sent", availabilitySent, quantitySent: true, error: null, permanent: false, attemptId };
128
113
  }
129
114
  if (quantity.status === 404) {
130
- return {
131
- outcome: "skipped_no_price",
132
- availabilitySent,
133
- quantitySent: false,
134
- error: `${SKIPPED_NO_PRICE_MESSAGE} (geen weekaanbod in Floriday)`,
135
- permanent: false,
136
- attemptId,
137
- };
115
+ return { outcome: "needs_base_supply", availabilitySent, quantitySent: false, error: NEEDS_BASE_SUPPLY_MESSAGE, permanent: false, attemptId };
138
116
  }
139
117
  const message = quantity.error ?? `HTTP ${quantity.status}`;
140
118
  return { outcome: "error", availabilitySent, quantitySent: false, error: message, permanent: isPermanentError(message), attemptId };
141
119
  }
120
+ /**
121
+ * Achterwaarts compatibel: kent de afsluitfunctie van Voorraad een nieuwe
122
+ * uitkomst nog niet, dan wordt de regel als skipped_no_price afgesloten met
123
+ * een herkenbare prefix in de fout. Puur, voor tests.
124
+ */
125
+ export function legacyFallback(o) {
126
+ if (o.outcome === "needs_base_supply")
127
+ return { ...o, outcome: "skipped_no_price", error: `[needs_base_supply] ${o.error}` };
128
+ if (o.outcome === "skipped_week_closed")
129
+ return { ...o, outcome: "skipped_no_price", error: `[week_closed] ${o.error}` };
130
+ return null;
131
+ }
142
132
  function errorOutcome(message, permanent) {
143
133
  return { outcome: "error", availabilitySent: false, quantitySent: false, error: message, permanent, attemptId: null };
144
134
  }
@@ -207,15 +197,19 @@ export async function pushStockRow(supabase, env, row) {
207
197
  }
208
198
  }
209
199
  async function completeRow(supabase, id, o) {
210
- const { error } = await supabase.rpc("complete_floriday_stock_queue_outcome", {
200
+ const call = (x) => supabase.rpc("complete_floriday_stock_queue_outcome", {
211
201
  p_id: id,
212
- p_outcome: o.outcome,
213
- p_availability_sent: o.availabilitySent,
214
- p_quantity_sent: o.quantitySent,
215
- p_error: o.error,
216
- p_attempt_id: o.attemptId,
217
- p_permanent: o.permanent,
202
+ p_outcome: x.outcome,
203
+ p_availability_sent: x.availabilitySent,
204
+ p_quantity_sent: x.quantitySent,
205
+ p_error: x.error,
206
+ p_attempt_id: x.attemptId,
207
+ p_permanent: x.permanent,
218
208
  });
209
+ let { error } = await call(o);
210
+ const fb = error ? legacyFallback(o) : null;
211
+ if (fb)
212
+ ({ error } = await call(fb));
219
213
  if (error)
220
214
  console.error("[stock-queue] afsluiten mislukt:", id, error.message);
221
215
  }
@@ -243,6 +237,8 @@ export async function runStockQueueRound(supabase, limit = BATCH_SIZE) {
243
237
  skippedNoPrice += 1;
244
238
  else if (outcome.outcome === "skipped_no_warehouse")
245
239
  skippedNoWarehouse += 1;
240
+ else if (outcome.outcome === "needs_base_supply" || outcome.outcome === "skipped_week_closed")
241
+ skippedNoPrice += 1;
246
242
  else {
247
243
  failed += 1;
248
244
  if (outcome.error && isRateLimited(outcome.error))
@@ -1,6 +1,20 @@
1
1
  import type { SupabaseClient } from "@supabase/supabase-js";
2
2
  import { type FlorydayEnvironment } from "./floriday.functions.js";
3
3
  export type FlorydayResource = "trade-items" | "sales-orders" | "customer-organizations" | "carriers" | "fulfillment-orders" | "customer-stickers" | "warehouses" | "packings" | "delivery-locations" | "clock-supplies" | "delivery-orders" | "clock-presales" | "contracts" | "blanket-orders" | "additional-services" | "commercial-service-types" | "collections" | "price-groups" | "catalog-prices" | "delivery-condition-sets" | "sales-strategies" | "base-items" | "contract-trade-item-groups" | "trade-settings-customers";
4
+ export declare function toNetworkRow(item: any, connectionId: string): {
5
+ connection_id: string;
6
+ organization_id: string;
7
+ organization_name: any;
8
+ gln: any;
9
+ country: any;
10
+ city: any;
11
+ data: any;
12
+ fetched_at: string;
13
+ } | null;
14
+ export declare function backfillNetworkFromCustomersCache(supabase: any, connectionId: string, deadlineMs: number): Promise<{
15
+ copied: number;
16
+ done: boolean;
17
+ }>;
4
18
  export declare function runFloridayResourceSync(supabase: SupabaseClient, env: FlorydayEnvironment, resource: FlorydayResource): Promise<{
5
19
  synced: number;
6
20
  fromSequence: number;
@@ -1 +1 @@
1
- {"version":3,"file":"floriday-sync.functions.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-sync.functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"floriday-sync.functions.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-sync.functions.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAS5D,OAAO,EAOL,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAC;AAkDjC,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,cAAc,GACd,wBAAwB,GACxB,UAAU,GACV,oBAAoB,GACpB,mBAAmB,GACnB,YAAY,GACZ,UAAU,GACV,oBAAoB,GACpB,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,WAAW,GACX,gBAAgB,GAEhB,qBAAqB,GACrB,0BAA0B,GAC1B,aAAa,GACb,cAAc,GACd,gBAAgB,GAEhB,yBAAyB,GACzB,kBAAkB,GAClB,YAAY,GACZ,4BAA4B,GAE5B,0BAA0B,CAAC;AA+B/B,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM;;;;;;;;;SA8B3D;AAWD,wBAAsB,iCAAiC,CACrD,QAAQ,EAAE,GAAG,EACb,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CA6B5C;AAqiBD,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,mBAAmB,EACxB,QAAQ,EAAE,gBAAgB;YA5nBH,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;GAmrB5F;AAyED,eAAO,MAAM,sBAAsB;;;;8CA9DN;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiwB1F,CAAC;AAEJ,eAAO,MAAM,uBAAuB;;;;8CArEP;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwwB1F,CAAC;AAEJ,eAAO,MAAM,iCAAiC;;;;8CA5EjB;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+wB1F,CAAC;AAEJ,eAAO,MAAM,oBAAoB;;;;8CAnFJ;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsxB1F,CAAC;AAEJ,eAAO,MAAM,6BAA6B;;;;8CA1Fb;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6xB1F,CAAC;AAEJ,eAAO,MAAM,4BAA4B;;;;8CAjGZ;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoyB1F,CAAC;AAEJ,eAAO,MAAM,sBAAsB;;;;8CAxGN;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2yB1F,CAAC;AAEJ,eAAO,MAAM,oBAAoB;;;;8CA/GJ;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkzB1F,CAAC;AAEJ,eAAO,MAAM,6BAA6B;;;;8CAtHb;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyzB1F,CAAC;AAEJ,eAAO,MAAM,yBAAyB;;;;8CA7HT;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAg0B1F,CAAC;AAEJ,eAAO,MAAM,0BAA0B;;;;8CApIV;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAu0B1F,CAAC;AAEJ,eAAO,MAAM,yBAAyB;;;;8CA3IT;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA80B1F,CAAC;AAEJ,eAAO,MAAM,qBAAqB;;;;8CAlJL;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAq1B1F,CAAC;AAEJ,eAAO,MAAM,yBAAyB;;;;8CAzJT;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA41B1F,CAAC;AAuIJ,wBAAsB,oCAAoC,CACxD,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,gBAAgB;;;WAiBT,MAAM;;;GAIxB;AAUD,eAAO,MAAM,8BAA8B;;;;;;;WAdxB,MAAM;;;GAgBoD,CAAC;AAE9E,eAAO,MAAM,+BAA+B;;;;;;;WAlBzB,MAAM;;;GAoBqD,CAAC;AAE/E,eAAO,MAAM,yCAAyC;;;;;;;WAtBnC,MAAM;;;GA0BtB,CAAC;AAEJ,eAAO,MAAM,4BAA4B;;;;;;;WA5BtB,MAAM;;;GA8BiD,CAAC;AAE3E,eAAO,MAAM,qCAAqC;;;;;;;WAhC/B,MAAM;;;GAoCtB,CAAC;AAEJ,eAAO,MAAM,oCAAoC;;;;;;;WAtC9B,MAAM;;;GA0CtB,CAAC;AAMJ,wBAAsB,2CAA2C,CAC/D,QAAQ,EAAE,cAAc;;WAeP,MAAM;;;GAIxB;AAED,eAAO,MAAM,mCAAmC;;;;;;WAN7B,MAAM;;;GAWrB,CAAC;AAIL,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,mBAAmB,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,uBAAuB;;;;sFAiChC,CAAC;AAIL,eAAO,MAAM,8BAA8B;;;;8CArbd;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsnCY,CAAC;AAE1G,eAAO,MAAM,kCAAkC;;;;8CA1blB;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2nCiB,CAAC;AAE/G,eAAO,MAAM,uBAAuB;;;;8CA/bP;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgoCI,CAAC;AAElG,eAAO,MAAM,uBAAuB;;;;8CApcP;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqoCK,CAAC;AAEnG,eAAO,MAAM,yBAAyB;;;;8CAzcT;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0oCO,CAAC;AAErG,eAAO,MAAM,iCAAiC;;;;;;;WAtJ3B,MAAM;;;GAwJuD,CAAC;AAIjF,eAAO,MAAM,iCAAiC;;;;8CApdjB;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqpCgB,CAAC;AAE9G,eAAO,MAAM,2BAA2B;;;;8CAzdX;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0pCS,CAAC;AAEvG,eAAO,MAAM,qBAAqB;;;;8CA9dL;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+pCG,CAAC;AAEjG,eAAO,MAAM,mCAAmC;;;;8CAnenB;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;YA9rBtC,MAAM;kBAAgB,MAAM;gBAAc,MAAM;gBAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoqCmB,CAAC;AA8LjH,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,mBAAmB;;;kBA/FH,MAAM;YAAM,OAAO;gBAAU,MAAM;;;mBA+ClC,MAAM;eAAS,MAAM;YAAM,OAAO;gBAAU,MAAM;;GAqDzE;AAED,eAAO,MAAM,4BAA4B;;;;8CA7qBZ;IAAE,WAAW,EAAE,mBAAmB,CAAA;CAAE;iBAArB,mBAAmB;;;;kBAukBxC,MAAM;YAAM,OAAO;gBAAU,MAAM;;;mBA+ClC,MAAM;eAAS,MAAM;YAAM,OAAO;gBAAU,MAAM;;;;;GAuEtE,CAAC;AAEL,wBAAsB,4CAA4C,CAChE,QAAQ,EAAE,cAAc;;WAWmB,MAAM;;GAClD;AAED,eAAO,MAAM,oCAAoC;;;;;;WAHJ,MAAM;;GAQ/C,CAAC;AAQL,MAAM,MAAM,sBAAsB,GAAG,cAAc,GAAG,oBAAoB,GAAG,iBAAiB,CAAC;AAQ/F,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,sBAAsB,EAChC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,GAAG,GACR,OAAO,CAAC,IAAI,CAAC,CAoBf"}
@@ -46,6 +46,84 @@ async function upsertInChunks(supabase, table, rows, onConflict, label, chunkSiz
46
46
  }
47
47
  }
48
48
  const now = () => new Date().toISOString();
49
+ // floriday_network_cache wordt gelezen door Klanten → Netwerk. Rijen op
50
+ // (connection_id, organization_id); alleen CUSTOMER en AGENT; data bevat het
51
+ // volledige Floriday-object (organizationType, endDate, isDeleted).
52
+ export function toNetworkRow(item, connectionId) {
53
+ const t = item?.organizationType ?? item?.type ?? null;
54
+ if (t !== "CUSTOMER" && t !== "AGENT")
55
+ return null;
56
+ const oid = item?.organizationId ?? item?.id ?? null;
57
+ if (!oid)
58
+ return null;
59
+ const phys = item?.physicalAddress ?? {};
60
+ const mail = item?.mailingAddress ?? {};
61
+ return {
62
+ connection_id: connectionId,
63
+ organization_id: String(oid),
64
+ organization_name: item?.name ?? item?.commercialName ?? null,
65
+ gln: item?.companyGln ?? item?.gln ?? null,
66
+ country: phys?.countryCode ?? mail?.countryCode ?? null,
67
+ city: phys?.city ?? mail?.city ?? null,
68
+ // Klanten-module leest o.a. organizationType, endDate, name, commercialName,
69
+ // companyGln, physicalAddress, mailingAddress, logoUrl en website uit data.
70
+ data: {
71
+ ...item,
72
+ organizationType: t,
73
+ endDate: item?.endDate ?? null,
74
+ name: item?.name ?? null,
75
+ commercialName: item?.commercialName ?? null,
76
+ companyGln: item?.companyGln ?? null,
77
+ physicalAddress: item?.physicalAddress ?? null,
78
+ mailingAddress: item?.mailingAddress ?? null,
79
+ logoUrl: item?.logoUrl ?? null,
80
+ website: item?.website ?? null,
81
+ },
82
+ fetched_at: new Date().toISOString(),
83
+ };
84
+ }
85
+ async function upsertNetworkRows(supabase, connectionId, items) {
86
+ const rows = items.map((i) => toNetworkRow(i, connectionId)).filter(Boolean);
87
+ if (rows.length === 0)
88
+ return;
89
+ await upsertInChunks(supabase, "floriday_network_cache", rows, "connection_id,organization_id", "network");
90
+ }
91
+ // Eenmalige aanvulling: de sequence-cursor van customer-organizations staat al
92
+ // voorbij de bestaande organisaties, dus kopiëren we die per portie uit
93
+ // floriday_customers_cache (zelfde Floriday-objecten) tot het netwerk gevuld is.
94
+ export async function backfillNetworkFromCustomersCache(supabase, connectionId, deadlineMs) {
95
+ const { count } = await supabase
96
+ .from("floriday_network_cache").select("organization_id", { count: "exact", head: true })
97
+ .eq("connection_id", connectionId);
98
+ const { data: st } = await supabase.from("floriday_network_sync_state")
99
+ .select("last_sequence_number").eq("connection_id", connectionId).maybeSingle();
100
+ if ((count ?? 0) > 0 && st?.last_sequence_number === -1)
101
+ return { copied: 0, done: true };
102
+ let from = Number(st?.last_sequence_number ?? 0);
103
+ if (from < 0)
104
+ from = 0;
105
+ let copied = 0;
106
+ while (Date.now() < deadlineMs) {
107
+ const { data, error } = await supabase.from("floriday_customers_cache")
108
+ .select("data, sequence_number").gt("sequence_number", from)
109
+ .order("sequence_number", { ascending: true }).limit(500);
110
+ if (error)
111
+ throw new Error(error.message);
112
+ if (!data?.length) {
113
+ await supabase.from("floriday_network_sync_state").upsert({
114
+ connection_id: connectionId, last_sequence_number: -1, last_synced_at: now(), last_error: null, updated_at: now(),
115
+ }, { onConflict: "connection_id" });
116
+ return { copied, done: true };
117
+ }
118
+ await upsertNetworkRows(supabase, connectionId, data.map((r) => r.data));
119
+ copied += data.length;
120
+ from = Number(data[data.length - 1].sequence_number);
121
+ await supabase.from("floriday_network_sync_state").upsert({
122
+ connection_id: connectionId, last_sequence_number: from, last_synced_at: now(), updated_at: now(),
123
+ }, { onConflict: "connection_id" });
124
+ }
125
+ return { copied, done: false };
126
+ }
49
127
  const RESOURCE_CONFIG = {
50
128
  "trade-items": {
51
129
  kind: "sequence",
@@ -110,6 +188,9 @@ const RESOURCE_CONFIG = {
110
188
  maxSequenceEndpoint: `/${SUPPLIERS_API_VERSION}/organizations/current-max-sequence`,
111
189
  bySequenceEndpointBase: `/${SUPPLIERS_API_VERSION}/organizations/sync`,
112
190
  upsert: async (supabase, connectionId, items) => {
191
+ // Netwerk (Klanten → Netwerk) uit dezelfde feed: CUSTOMER + AGENT, op
192
+ // organisatie-id; endDate/isDeleted blijven in data voor de verloop-logica.
193
+ await upsertNetworkRows(supabase, connectionId, items);
113
194
  const rows = items
114
195
  .map((item) => {
115
196
  const orgType = item?.organizationType ?? item?.type ?? null;
@@ -611,6 +692,17 @@ export async function runFloridayResourceSync(supabase, env, resource) {
611
692
  },
612
693
  });
613
694
  if (resource === "customer-organizations") {
695
+ // Netwerk: eenmalige, hervatbare aanvulling uit de klantcache (max 15s per ronde).
696
+ try {
697
+ const nb = await backfillNetworkFromCustomersCache(supabase, row.id, Date.now() + 15000);
698
+ console.log(`[network] ${env}: ${nb.copied} gekopieerd, klaar=${nb.done}`);
699
+ }
700
+ catch (e) {
701
+ console.warn(`[network] aanvulling mislukt: ${String(e?.message ?? e)}`);
702
+ await supabase.from("floriday_network_sync_state").upsert({
703
+ connection_id: row.id, last_error: String(e?.message ?? e).slice(0, 500), updated_at: now(),
704
+ }, { onConflict: "connection_id" });
705
+ }
614
706
  // Handelsinstellingen meeliften: gewijzigde + ontbrekende eigen kopers.
615
707
  try {
616
708
  const { syncCustomerTradeSettings, TRADE_SETTINGS_ROUND_BUDGET_MS } = await import("./floriday-trade-settings.server.js");
@@ -198,14 +198,6 @@ export declare function resolveFlorydayCronBaseUrlAsync(): Promise<string>;
198
198
  export declare function checkShellServesCronRoute(base: string, path: string): Promise<string | null>;
199
199
  /** Bepaalt de cron-URL en weigert (met duidelijke fout) als de Shell de route niet bedient. */
200
200
  export declare function resolveVerifiedFlorydayCronUrl(path: string): Promise<string>;
201
- /**
202
- * Zelfherstel: brengt de database-kant in lijn met de shell-host uit Central
203
- * Auth. Nodig omdat `run_floriday_stock_queue_process()` een SQL-functie is
204
- * die door pg_cron wordt aangeroepen; die kan het tenant-secret van Central
205
- * Auth niet gebruiken en leest daarom een waarde uit `module_runtime_config`.
206
- * Deze functie schrijft die waarde bij elke cron-ronde opnieuw, zodat hij
207
- * meebeweegt met de omgeving en nooit handmatig gezet hoeft te worden.
208
- */
209
201
  export declare function syncShellHostRuntimeConfig(): Promise<{
210
202
  base: string | null;
211
203
  changed: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"floriday.functions.d.ts","sourceRoot":"","sources":["../../src/lib/floriday.functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"floriday.functions.d.ts","sourceRoot":"","sources":["../../src/lib/floriday.functions.ts"],"names":[],"mappings":"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"}