@epztickets/common 1.69.0 → 1.71.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.
@@ -32,7 +32,9 @@ export declare enum Subjects {
32
32
  ConnectDisconnectRequested = "events.user.connect-disconnect-requested",
33
33
  ConnectDisconnectApproved = "events.user.connect-disconnect-approved",
34
34
  ConnectDisconnectRejected = "events.user.connect-disconnect-rejected",
35
- UserSelfBookingRecorded = "events.user.self-booking-recorded"
35
+ UserSelfBookingRecorded = "events.user.self-booking-recorded",
36
+ UserSelfBookingTrialChanged = "events.user.self-booking-trial-changed",
37
+ UserCommissionRateChanged = "events.user.commission-rate-changed"
36
38
  }
37
39
  export declare enum Streams {
38
40
  Events = "events",
@@ -70,6 +70,28 @@ var Subjects;
70
70
  // default ($1). Snapshotting at publish time means rate changes
71
71
  // never retroactively affect past bookings.
72
72
  Subjects["UserSelfBookingRecorded"] = "events.user.self-booking-recorded";
73
+ // Published by auth's set-trial-expiry admin route INSTEAD OF
74
+ // (well, IN ADDITION TO) UserUpdated. UserUpdated has a known
75
+ // architectural race: multiple services publish UserUpdated for
76
+ // the same user (auth on role/trial/commission changes, payments
77
+ // on Stripe account.updated webhooks, etc.), each stamping its
78
+ // own local version. Consumers can't tell which publisher
79
+ // produced a given event so they fall back to "newer version
80
+ // wins" — and an auth-side trial change at v6 gets silently
81
+ // ignored by replicas that have v11 cached from a recent
82
+ // Stripe webhook.
83
+ //
84
+ // This dedicated subject bypasses the race: it's published only
85
+ // by set-trial-expiry, and the dedicated listener in orders
86
+ // applies the trial change unconditionally. No version check.
87
+ Subjects["UserSelfBookingTrialChanged"] = "events.user.self-booking-trial-changed";
88
+ // Same architecture as UserSelfBookingTrialChanged but for the
89
+ // per-owner platform commission override. set-commission-rate
90
+ // publishes this; orders consumes to keep computeCommissionRate's
91
+ // owner lookup in sync. The regular UserUpdated path is still
92
+ // published for backward-compat consumers, but it can race-lose
93
+ // against payments' Stripe-webhook updates the same way.
94
+ Subjects["UserCommissionRateChanged"] = "events.user.commission-rate-changed";
73
95
  })(Subjects || (exports.Subjects = Subjects = {}));
74
96
  var Streams;
75
97
  (function (Streams) {
@@ -0,0 +1,13 @@
1
+ import { Subjects } from "./subjects";
2
+ export interface UserCommissionRateChangedEvent {
3
+ subject: Subjects.UserCommissionRateChanged;
4
+ data: {
5
+ userId: string;
6
+ /** New override, or -1 to clear. */
7
+ commissionRate: number;
8
+ /** Which admin made the change. */
9
+ changedByAdminId: string;
10
+ /** When auth applied the change. */
11
+ changedAt: string;
12
+ };
13
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,13 @@
1
+ import { Subjects } from "./subjects";
2
+ export interface UserSelfBookingTrialChangedEvent {
3
+ subject: Subjects.UserSelfBookingTrialChanged;
4
+ data: {
5
+ userId: string;
6
+ /** ISO timestamp ("set to this date") or "" (clear sentinel). */
7
+ selfBookingTrialExpiresAt: string;
8
+ /** Which admin made the change — for the audit trail. */
9
+ changedByAdminId: string;
10
+ /** When auth applied the change. */
11
+ changedAt: string;
12
+ };
13
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/build/index.d.ts CHANGED
@@ -50,6 +50,8 @@ export * from "./events/user-deletion-requested-event";
50
50
  export * from "./events/user-deletion-rejected-event";
51
51
  export * from "./events/user-email-verification-requested-event";
52
52
  export * from "./events/user-self-booking-recorded-event";
53
+ export * from "./events/user-self-booking-trial-changed-event";
54
+ export * from "./events/user-commission-rate-changed-event";
53
55
  export * from "./events/connect-disconnect-requested-event";
54
56
  export * from "./events/connect-disconnect-approved-event";
55
57
  export * from "./events/connect-disconnect-rejected-event";
package/build/index.js CHANGED
@@ -70,6 +70,8 @@ __exportStar(require("./events/user-deletion-requested-event"), exports);
70
70
  __exportStar(require("./events/user-deletion-rejected-event"), exports);
71
71
  __exportStar(require("./events/user-email-verification-requested-event"), exports);
72
72
  __exportStar(require("./events/user-self-booking-recorded-event"), exports);
73
+ __exportStar(require("./events/user-self-booking-trial-changed-event"), exports);
74
+ __exportStar(require("./events/user-commission-rate-changed-event"), exports);
73
75
  __exportStar(require("./events/connect-disconnect-requested-event"), exports);
74
76
  __exportStar(require("./events/connect-disconnect-approved-event"), exports);
75
77
  __exportStar(require("./events/connect-disconnect-rejected-event"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epztickets/common",
3
- "version": "1.69.0",
3
+ "version": "1.71.0",
4
4
  "main": "./build/index.js",
5
5
  "types": "./build/index.d.ts",
6
6
  "files": [