@nimee/shared-types 1.0.323 → 1.0.326

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.
@@ -97,6 +97,48 @@ export interface IWalletDesign {
97
97
  fields: IWalletLayoutField[];
98
98
  };
99
99
  }
100
+ /**
101
+ * Groups gate scans into named entrance rows on the activity report. Rules are tried in
102
+ * order and the first whose `match` appears in the event name wins; scans matching no rule
103
+ * fall to `entranceFallbackLabel`. A venue with a single gate can omit rules entirely, in
104
+ * which case the report falls back to one row per event name.
105
+ */
106
+ export interface IActivityReportEntranceRule {
107
+ /** Case-insensitive substring matched against the event name. */
108
+ match: string;
109
+ /** Row label used for scans of events matching this rule. */
110
+ label: string;
111
+ }
112
+ export interface IActivityReportScheduleConfig {
113
+ enabled: boolean;
114
+ /** Email addresses this report is sent to. Enabled with none set sends nothing. */
115
+ recipients: string[];
116
+ }
117
+ /**
118
+ * Opt-in, per-seller configuration for the automated activity reports
119
+ * (tools/activity-report). Absent or `enabled: false` means the seller is skipped,
120
+ * so adding a customer is a config change rather than a code change.
121
+ * Lives on the seller (top-level account) — reports are per seller, scoped by `seller` on
122
+ * user-events / event-orders / enduser-season-tickets / visits.
123
+ */
124
+ export interface IActivityReportConfig {
125
+ /** Same-day report, sent each evening once the venue has closed. */
126
+ daily?: IActivityReportScheduleConfig;
127
+ /** Friday-Saturday report, sent Sunday morning. */
128
+ weekend?: IActivityReportScheduleConfig;
129
+ /** Second header line. The seller account `name` is always used as the title. */
130
+ subtitle?: string;
131
+ entranceRules?: IActivityReportEntranceRule[];
132
+ /** Label for scans matching no entrance rule. Ignored when no rules are set. */
133
+ entranceFallbackLabel?: string;
134
+ /**
135
+ * Send even when the window has zero scans, sales and subscriptions. Off by default,
136
+ * because for a venue open every day an all-zeros report almost always means a data or
137
+ * connection problem rather than a quiet day. Turn on for venues that genuinely close
138
+ * on some days, which would otherwise raise a failure alert every time.
139
+ */
140
+ allowEmpty?: boolean;
141
+ }
100
142
  export interface IAccountModel {
101
143
  idInsidePaymentProvider: string;
102
144
  name: string;
@@ -246,6 +288,7 @@ export interface IAccountModel {
246
288
  enabled: boolean;
247
289
  recipients: string[];
248
290
  };
291
+ activityReportConfig?: IActivityReportConfig;
249
292
  }
250
293
  export interface IPaymeUpdateOrCreateSellerWebhookPayload {
251
294
  seller_payme_id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/account/account.ts"],"names":[],"mappings":";;;AAMA,IAAY,kBAUX;AAVD,WAAY,kBAAkB;IAC5B,iEAAW,CAAA;IACX,iEAAW,CAAA;IACX,iEAAW,CAAA;IACX,mEAAY,CAAA;IACZ,+DAAU,CAAA;IACV,+DAAU,CAAA;IACV,iEAAW,CAAA;IACX,6DAAS,CAAA;IACT,6DAAS,CAAA;AACX,CAAC,EAVW,kBAAkB,kCAAlB,kBAAkB,QAU7B;AACD,IAAY,aAUX;AAVD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;IACnB,gCAAe,CAAA;IACf,gCAAe,CAAA;IACf,sCAAqB,CAAA;AACvB,CAAC,EAVW,aAAa,6BAAb,aAAa,QAUxB;AACD,IAAY,iBAQX;AARD,WAAY,iBAAiB;IAC3B,kDAA6B,CAAA;IAC7B,kDAA6B,CAAA;IAC7B,sCAAiB,CAAA;IACjB,oCAAe,CAAA;IACf,sCAAiB,CAAA;IACjB,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;AACvB,CAAC,EARW,iBAAiB,iCAAjB,iBAAiB,QAQ5B;AAgBD,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,sCAAa,CAAA;IACb,4CAAmB,CAAA;IACnB,8CAAqB,CAAA;AACvB,CAAC,EAJW,qBAAqB,qCAArB,qBAAqB,QAIhC;AAMD,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,wCAAiB,CAAA;IACjB,wEAAwE;IACxE,oCAAa,CAAA;AACf,CAAC,EAJW,mBAAmB,mCAAnB,mBAAmB,QAI9B;AAED,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,gDAA0B,CAAA;IAC1B,yCAAmB,CAAA;IACnB,uCAAiB,CAAA;IACjB,gGAAgG;IAChG,uDAAiC,CAAA;AACnC,CAAC,EANW,kBAAkB,kCAAlB,kBAAkB,QAM7B;AA2ND,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,yCAAmB,CAAA;IACnB,uCAAiB,CAAA;IACjB,6CAAuB,CAAA;IACvB,yCAAmB,CAAA;AACrB,CAAC,EANW,kBAAkB,kCAAlB,kBAAkB,QAM7B"}
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/account/account.ts"],"names":[],"mappings":";;;AAMA,IAAY,kBAUX;AAVD,WAAY,kBAAkB;IAC5B,iEAAW,CAAA;IACX,iEAAW,CAAA;IACX,iEAAW,CAAA;IACX,mEAAY,CAAA;IACZ,+DAAU,CAAA;IACV,+DAAU,CAAA;IACV,iEAAW,CAAA;IACX,6DAAS,CAAA;IACT,6DAAS,CAAA;AACX,CAAC,EAVW,kBAAkB,kCAAlB,kBAAkB,QAU7B;AACD,IAAY,aAUX;AAVD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;IACnB,gCAAe,CAAA;IACf,gCAAe,CAAA;IACf,sCAAqB,CAAA;AACvB,CAAC,EAVW,aAAa,6BAAb,aAAa,QAUxB;AACD,IAAY,iBAQX;AARD,WAAY,iBAAiB;IAC3B,kDAA6B,CAAA;IAC7B,kDAA6B,CAAA;IAC7B,sCAAiB,CAAA;IACjB,oCAAe,CAAA;IACf,sCAAiB,CAAA;IACjB,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;AACvB,CAAC,EARW,iBAAiB,iCAAjB,iBAAiB,QAQ5B;AAgBD,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,sCAAa,CAAA;IACb,4CAAmB,CAAA;IACnB,8CAAqB,CAAA;AACvB,CAAC,EAJW,qBAAqB,qCAArB,qBAAqB,QAIhC;AAMD,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,wCAAiB,CAAA;IACjB,wEAAwE;IACxE,oCAAa,CAAA;AACf,CAAC,EAJW,mBAAmB,mCAAnB,mBAAmB,QAI9B;AAED,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,gDAA0B,CAAA;IAC1B,yCAAmB,CAAA;IACnB,uCAAiB,CAAA;IACjB,gGAAgG;IAChG,uDAAiC,CAAA;AACnC,CAAC,EANW,kBAAkB,kCAAlB,kBAAkB,QAM7B;AA0QD,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,yCAAmB,CAAA;IACnB,uCAAiB,CAAA;IACjB,6CAAuB,CAAA;IACvB,yCAAmB,CAAA;AACrB,CAAC,EANW,kBAAkB,kCAAlB,kBAAkB,QAM7B"}
@@ -133,6 +133,7 @@ export interface IEventModel {
133
133
  seatsEventKey?: string;
134
134
  isSeatsEvent?: boolean;
135
135
  seatsIoOrphanSeatsMode?: "off" | "lenient" | "strict";
136
+ maxSeatsPerUser?: number | null;
136
137
  isOnlyForMembers?: boolean;
137
138
  otpGateMode?: IOtpGateMode;
138
139
  isWellnessEvent?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nimee/shared-types",
3
- "version": "1.0.323",
3
+ "version": "1.0.326",
4
4
  "description": "Types and interfaces that any service can access if needed",
5
5
  "main": "dist/index.js",
6
6
  "author": "dan goldberg",
@@ -104,6 +104,51 @@ export interface IWalletDesign {
104
104
  };
105
105
  }
106
106
 
107
+ /**
108
+ * Groups gate scans into named entrance rows on the activity report. Rules are tried in
109
+ * order and the first whose `match` appears in the event name wins; scans matching no rule
110
+ * fall to `entranceFallbackLabel`. A venue with a single gate can omit rules entirely, in
111
+ * which case the report falls back to one row per event name.
112
+ */
113
+ export interface IActivityReportEntranceRule {
114
+ /** Case-insensitive substring matched against the event name. */
115
+ match: string;
116
+ /** Row label used for scans of events matching this rule. */
117
+ label: string;
118
+ }
119
+
120
+ export interface IActivityReportScheduleConfig {
121
+ enabled: boolean;
122
+ /** Email addresses this report is sent to. Enabled with none set sends nothing. */
123
+ recipients: string[];
124
+ }
125
+
126
+ /**
127
+ * Opt-in, per-seller configuration for the automated activity reports
128
+ * (tools/activity-report). Absent or `enabled: false` means the seller is skipped,
129
+ * so adding a customer is a config change rather than a code change.
130
+ * Lives on the seller (top-level account) — reports are per seller, scoped by `seller` on
131
+ * user-events / event-orders / enduser-season-tickets / visits.
132
+ */
133
+ export interface IActivityReportConfig {
134
+ /** Same-day report, sent each evening once the venue has closed. */
135
+ daily?: IActivityReportScheduleConfig;
136
+ /** Friday-Saturday report, sent Sunday morning. */
137
+ weekend?: IActivityReportScheduleConfig;
138
+ /** Second header line. The seller account `name` is always used as the title. */
139
+ subtitle?: string;
140
+ entranceRules?: IActivityReportEntranceRule[];
141
+ /** Label for scans matching no entrance rule. Ignored when no rules are set. */
142
+ entranceFallbackLabel?: string;
143
+ /**
144
+ * Send even when the window has zero scans, sales and subscriptions. Off by default,
145
+ * because for a venue open every day an all-zeros report almost always means a data or
146
+ * connection problem rather than a quiet day. Turn on for venues that genuinely close
147
+ * on some days, which would otherwise raise a failure alert every time.
148
+ */
149
+ allowEmpty?: boolean;
150
+ }
151
+
107
152
  export interface IAccountModel {
108
153
  idInsidePaymentProvider: string;
109
154
  name: string;
@@ -249,6 +294,8 @@ export interface IAccountModel {
249
294
  enabled: boolean;
250
295
  recipients: string[];
251
296
  };
297
+ // Opt-in automated activity reports (daily / weekend), see tools/activity-report.
298
+ activityReportConfig?: IActivityReportConfig;
252
299
  }
253
300
  // {"payme_status":"success","status_error_code":0,"status_code":0,"seller_payme_id":"MPL16720-72349IAE-FRITPXY5-TFLDUEWF","seller_created":"2022-12-26 18:32:29","seller_first_name":"Ron","seller_last_name":"Dahan","seller_social_id":"205569163","seller_birthdate":"1994-07-01","seller_date_of_birth":"1994-07-01","seller_gender":0,"seller_email":"roncho1794@gmail.com","seller_contact_email":"roncho1794@gmail.com","seller_phone":"+972542323517","seller_contact_phone":"+972542323517","seller_address_city":"Tel Aviv","seller_address_street":"Tel Aviv","seller_address_street_number":"12","seller_address_country":"IL","seller_inc":0,"seller_inc_code":"12345","seller_merchant_name":"Ronen","seller_site_url":"www.no.co.il","seller_custom_details":"No existing Isracard MID","seller_active":true,"seller_approved":false,"seller_market_fee":0,"seller_currencies":,"fee_default_processing_fee":"1.50","fee_default_processing_charge":"0.100000000000000000","fee_default_discount_fee":"0.50","fee_foreign_processing_fee":"2.95","fee_foreign_processing_charge":"0.100000000000000000","fee_forcurr_processing_charge":"0.100000000000000000","seller_public_key":{"uuid":"b40a5251-9907-4db1-8f26-c015dd9466df","description":"PayMe-Public-Key","is_active":true},"notify_type":"seller-create"}
254
301
 
@@ -115,6 +115,8 @@ export interface IEventModel {
115
115
  // Orphan-seat prevention mode for seats.io events (model + API schema define it; contract
116
116
  // parity per repo guideline).
117
117
  seatsIoOrphanSeatsMode?: "off" | "lenient" | "strict";
118
+ // Max seats a single buyer may select on a seats.io chart; null/unset = unlimited.
119
+ maxSeatsPerUser?: number | null;
118
120
  isOnlyForMembers?: boolean;
119
121
  otpGateMode?: IOtpGateMode;
120
122
  isWellnessEvent?: boolean;