platform-types 1.10.844 → 1.10.845

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.
@@ -626,6 +626,22 @@ declare global {
626
626
  marketing?: CustomerMarketing;
627
627
  /** Transactional WhatsApp consent for this store — see `CustomerWhatsappNotices`. Server-written. */
628
628
  whatsappNotices?: CustomerWhatsappNotices;
629
+ /**
630
+ * DERIVED, never stored: `isWhatsappNoticesOptedIn(whatsappNotices)`. Served
631
+ * on the composed customer list and search rows (the ungated read the
632
+ * intake picker uses) and on the operator `customers` frame whenever that
633
+ * frame carries the consent — so a cashier without the `customers`
634
+ * capability can see the state without the full row.
635
+ */
636
+ whatsappOptedIn?: boolean;
637
+ /**
638
+ * DERIVED, never stored: the latest withdrawal's `ts`, present only while
639
+ * the customer is opted out (`whatsappNotices.optOut`). ⚠️ A re-grant
640
+ * removes the withdrawal, so the next frame OMITS this key; a merging
641
+ * cache must read it as meaningful only while `whatsappOptedIn` is
642
+ * `false`, never keep it beside `true`.
643
+ */
644
+ whatsappOptedOutAt?: number;
629
645
  /** Optional notification mail only; transactional mail cannot be disabled. */
630
646
  notificationPreferences?: CustomerNotificationPreferences;
631
647
  minBuy?: number;
package/dist/order.d.ts CHANGED
@@ -2323,6 +2323,14 @@ declare global {
2323
2323
  * on a {@link Order.creditOverride} sent with it.
2324
2324
  */
2325
2325
  onAccount?: boolean;
2326
+ /**
2327
+ * The cashier recorded the customer's transactional WhatsApp consent at
2328
+ * intake (a back-office grant, stamped on the order's customer after the
2329
+ * create commits; best-effort, never changes the answer). `true` only —
2330
+ * `false` is refused 400; a withdrawal stays on `POST /customers`. Create
2331
+ * leg only (an update ignores it); a directive, never stored on the order.
2332
+ */
2333
+ whatsappOptIn?: true;
2326
2334
  /**
2327
2335
  * Tender legs to ring against this order, as RAW input — NOT the persisted
2328
2336
  * `Order.tenders`, which is why `Partial<Order>` is narrowed with `Omit`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "platform-types",
3
- "version": "1.10.844",
3
+ "version": "1.10.845",
4
4
  "description": "Shared wire and entity contracts for the platform.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",