@itm-studio/partner-sdk 0.2.8 → 0.2.10

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.
package/README.md CHANGED
@@ -67,6 +67,19 @@ The token is sent as the `x-partner-api-key` header on every request. Your brand
67
67
 
68
68
  Keep the partner token on your server. Do not expose it from browser code or client-side mobile code.
69
69
 
70
+ The SDK enforces this boundary and supports Node.js server runtimes only. Imports
71
+ from browsers, React Native, Web or Service Workers, edge runtimes, and Electron
72
+ processes fail before an authenticated client can be created. Send client-side
73
+ requests to your own Node backend, then return only the data the client needs.
74
+
75
+ In Next.js, also mark the module that reads the token as server-only so an
76
+ accidental Client Component import fails during the application build:
77
+
78
+ ```typescript
79
+ import "server-only";
80
+ import { createITMPartnerClient } from "@itm-studio/partner-sdk";
81
+ ```
82
+
70
83
  For request-scoped mutations such as partner brand subscriptions, create the client inside the incoming request and forward `x-forwarded-for` and `user-agent` so the backend can enrich compliance metadata when those fields are omitted from `input.compliance`.
71
84
 
72
85
  ```typescript
@@ -223,6 +236,52 @@ basis points (`6000` = 60%). Refresh after `validUntil`. Because price is stored
223
236
  per tier, every upcoming admission window for a managed tier must fall within
224
237
  the configured horizon before that tier is eligible.
225
238
 
239
+ ## AgentMail
240
+
241
+ Queue one to ten personalized plain-text emails from the authenticated brand's
242
+ dedicated AgentMail inbox. Each item is a separate single-recipient message.
243
+ The mutation returns after the durable batch is accepted; query the batch for
244
+ final per-message provider status.
245
+
246
+ ```ts
247
+ const queued = await client.mutation({
248
+ sendPartnerAgentEmail: {
249
+ __args: {
250
+ input: {
251
+ idempotencyKey: "venue-outreach-2026-08-13",
252
+ messages: [
253
+ {
254
+ to: "bookings@venue.example",
255
+ subject: "October show inquiry",
256
+ text: "Would October 10 work for a 200-person show?",
257
+ },
258
+ ],
259
+ },
260
+ },
261
+ uid: true,
262
+ status: true,
263
+ acceptedCount: true,
264
+ messages: { uid: true, recipient: true, status: true },
265
+ },
266
+ });
267
+
268
+ const status = await client.query({
269
+ getPartnerAgentEmailBatch: {
270
+ __args: { batchUid: queued.sendPartnerAgentEmail.uid },
271
+ status: true,
272
+ messages: {
273
+ recipient: true,
274
+ status: true,
275
+ agentMailMessageId: true,
276
+ lastErrorCode: true,
277
+ },
278
+ },
279
+ });
280
+ ```
281
+
282
+ Reuse an idempotency key only for the exact same logical batch. `SENT` means
283
+ AgentMail accepted the message; it does not prove inbox delivery.
284
+
226
285
  ## Available Queries
227
286
 
228
287
  ### `getPartnerBrand`
@@ -264,6 +323,10 @@ const { getPartnerMomentsForBrand } = await itm.query({
264
323
  take: 20, // items per page (default: 50, omit to use default)
265
324
  cursor: nextCursor, // from previous response
266
325
  status: "UPCOMING", // UPCOMING | LIVE | ENDED
326
+ filters: {
327
+ search: "summer launch", // case-insensitive name or slug match
328
+ includePrivate: true, // include private moments owned by your brand
329
+ },
267
330
  sortOrder: "ASC", // ASC | DESC by start date (default: DESC)
268
331
  },
269
332
  moments: { uid: true, name: true, startDate: true },
@@ -274,6 +337,14 @@ const { getPartnerMomentsForBrand } = await itm.query({
274
337
  });
275
338
  ```
276
339
 
340
+ By default, only public moments are returned. Set
341
+ `filters.includePrivate` to `true` to return both public and private moments
342
+ owned by the brand associated with the partner token. Omitting `filters`, or
343
+ setting `includePrivate` to `false`, preserves the public-only behavior.
344
+ `filters.search` matches moment names and slugs case-insensitively, is limited
345
+ to 100 characters, and composes with visibility, status, sorting, and cursor
346
+ pagination.
347
+
277
348
  ### `getPartnerDrops`
278
349
 
279
350
  Get paginated brand drops for the brand associated with your partner token.
@@ -428,9 +499,13 @@ const { getMomentLineupByToken } = await itm.query({
428
499
 
429
500
  ### `getPartnerMomentStats`
430
501
 
431
- Get cached partner-facing counts for a moment owned by the authenticated partner's brand.
502
+ Get cached partner-facing counts for a moment owned by the authenticated partner's brand. Counts
503
+ can be up to five minutes old.
432
504
 
433
505
  - `ticketsCount` counts confirmed tickets only.
506
+ - `generatedAt` identifies when this cached count set was computed.
507
+ - `paidTicketsCount` counts confirmed tickets with a materialized price above zero.
508
+ - `freeTicketsCount` counts confirmed tickets with a zero materialized price.
434
509
  - `waitlistCount` counts active waitlist entries.
435
510
  - `externalRsvpCount` counts external RSVPs.
436
511
  - `ticketRsvpRequestsCount` counts ticket RSVP requests.
@@ -439,7 +514,10 @@ Get cached partner-facing counts for a moment owned by the authenticated partner
439
514
  const { getPartnerMomentStats } = await itm.query({
440
515
  getPartnerMomentStats: {
441
516
  __args: { momentSlug: "my-event-slug" },
517
+ generatedAt: true,
442
518
  ticketsCount: true,
519
+ paidTicketsCount: true,
520
+ freeTicketsCount: true,
443
521
  waitlistCount: true,
444
522
  externalRsvpCount: true,
445
523
  ticketRsvpRequestsCount: true,
package/dist/index.d.mts CHANGED
@@ -8,6 +8,8 @@ type Scalars = {
8
8
  Float: number;
9
9
  };
10
10
  type MomentStatus = 'UPCOMING' | 'LIVE' | 'ENDED';
11
+ type BrandAgentEmailSendBatchStatus = 'PENDING' | 'SENDING' | 'SENT' | 'PARTIAL' | 'FAILED' | 'UNKNOWN';
12
+ type BrandAgentEmailSendMessageStatus = 'PENDING' | 'SENDING' | 'SENT' | 'FAILED' | 'UNKNOWN';
11
13
  type MomentSortOrder = 'ASC' | 'DESC';
12
14
  type BrandDropCtaType = 'EXTERNAL_URL' | 'GATED_LINK' | 'MUSIC_LINK' | 'SUBSCRIBE';
13
15
  type MusicReleaseType = 'ALBUM' | 'EP' | 'SINGLE';
@@ -210,7 +212,12 @@ interface PartnerCustomer {
210
212
  __typename: 'PartnerCustomer';
211
213
  }
212
214
  interface PartnerMomentStats {
215
+ generatedAt: Scalars['DateTime'];
213
216
  ticketsCount: Scalars['Int'];
217
+ /** Confirmed tickets whose materialized price is greater than zero. */
218
+ paidTicketsCount: Scalars['Int'];
219
+ /** Confirmed tickets whose materialized price is zero. */
220
+ freeTicketsCount: Scalars['Int'];
214
221
  waitlistCount: Scalars['Int'];
215
222
  externalRsvpCount: Scalars['Int'];
216
223
  ticketRsvpRequestsCount: Scalars['Int'];
@@ -575,9 +582,35 @@ interface MomentLineupResponseResult {
575
582
  success: Scalars['Boolean'];
576
583
  __typename: 'MomentLineupResponseResult';
577
584
  }
585
+ interface BrandAgentEmailSendMessage {
586
+ uid: Scalars['String'];
587
+ position: Scalars['Int'];
588
+ recipient: Scalars['String'];
589
+ subject: Scalars['String'];
590
+ text: Scalars['String'];
591
+ status: BrandAgentEmailSendMessageStatus;
592
+ agentMailMessageId: (Scalars['String'] | null);
593
+ agentMailThreadId: (Scalars['String'] | null);
594
+ sentAt: (Scalars['DateTime'] | null);
595
+ failedAt: (Scalars['DateTime'] | null);
596
+ lastErrorCode: (Scalars['String'] | null);
597
+ lastErrorMessage: (Scalars['String'] | null);
598
+ __typename: 'BrandAgentEmailSendMessage';
599
+ }
600
+ interface BrandAgentEmailSendBatch {
601
+ uid: Scalars['String'];
602
+ createdAt: Scalars['DateTime'];
603
+ status: BrandAgentEmailSendBatchStatus;
604
+ senderEmailAddress: Scalars['String'];
605
+ acceptedCount: Scalars['Int'];
606
+ messages: BrandAgentEmailSendMessage[];
607
+ __typename: 'BrandAgentEmailSendBatch';
608
+ }
578
609
  interface Query {
579
610
  /** Get details for the brand associated with the partner token. */
580
611
  getPartnerBrand: PartnerBrand;
612
+ /** Retrieve one AgentMail send batch owned by the authenticated partner brand. */
613
+ getPartnerAgentEmailBatch: BrandAgentEmailSendBatch;
581
614
  /** Get paginated moments for the brand associated with the partner token. */
582
615
  getPartnerMomentsForBrand: GetPublicMomentsResponse;
583
616
  /** Get paginated drops for the brand associated with the partner token. */
@@ -691,6 +724,8 @@ interface Mutation {
691
724
  * When type is IRL, the venue field is required.
692
725
  */
693
726
  createPartnerMoment: Moment;
727
+ /** Queue one to ten emails from the authenticated brand's AgentMail inbox. */
728
+ sendPartnerAgentEmail: BrandAgentEmailSendBatch;
694
729
  /**
695
730
  * Bulk edit partner-owned ticket tiers for a moment.
696
731
  * Supports per-tier price, facility-fee, and supply updates.
@@ -899,7 +934,12 @@ interface PartnerCustomerGenqlSelection {
899
934
  __scalar?: boolean | number;
900
935
  }
901
936
  interface PartnerMomentStatsGenqlSelection {
937
+ generatedAt?: boolean | number;
902
938
  ticketsCount?: boolean | number;
939
+ /** Confirmed tickets whose materialized price is greater than zero. */
940
+ paidTicketsCount?: boolean | number;
941
+ /** Confirmed tickets whose materialized price is zero. */
942
+ freeTicketsCount?: boolean | number;
903
943
  waitlistCount?: boolean | number;
904
944
  externalRsvpCount?: boolean | number;
905
945
  ticketRsvpRequestsCount?: boolean | number;
@@ -1302,9 +1342,47 @@ interface MomentLineupResponseResultGenqlSelection {
1302
1342
  __typename?: boolean | number;
1303
1343
  __scalar?: boolean | number;
1304
1344
  }
1345
+ interface PartnerMomentsFiltersInput {
1346
+ /** Case-insensitive search over moment name and slug. Whitespace-only values are ignored. */
1347
+ search?: (Scalars['String'] | null);
1348
+ /** When true, includes private moments owned by the authenticated brand. Default: false. */
1349
+ includePrivate?: (Scalars['Boolean'] | null);
1350
+ }
1351
+ interface BrandAgentEmailSendMessageGenqlSelection {
1352
+ uid?: boolean | number;
1353
+ position?: boolean | number;
1354
+ recipient?: boolean | number;
1355
+ subject?: boolean | number;
1356
+ text?: boolean | number;
1357
+ status?: boolean | number;
1358
+ agentMailMessageId?: boolean | number;
1359
+ agentMailThreadId?: boolean | number;
1360
+ sentAt?: boolean | number;
1361
+ failedAt?: boolean | number;
1362
+ lastErrorCode?: boolean | number;
1363
+ lastErrorMessage?: boolean | number;
1364
+ __typename?: boolean | number;
1365
+ __scalar?: boolean | number;
1366
+ }
1367
+ interface BrandAgentEmailSendBatchGenqlSelection {
1368
+ uid?: boolean | number;
1369
+ createdAt?: boolean | number;
1370
+ status?: boolean | number;
1371
+ senderEmailAddress?: boolean | number;
1372
+ acceptedCount?: boolean | number;
1373
+ messages?: BrandAgentEmailSendMessageGenqlSelection;
1374
+ __typename?: boolean | number;
1375
+ __scalar?: boolean | number;
1376
+ }
1305
1377
  interface QueryGenqlSelection {
1306
1378
  /** Get details for the brand associated with the partner token. */
1307
1379
  getPartnerBrand?: PartnerBrandGenqlSelection;
1380
+ /** Retrieve one AgentMail send batch owned by the authenticated partner brand. */
1381
+ getPartnerAgentEmailBatch?: (BrandAgentEmailSendBatchGenqlSelection & {
1382
+ __args: {
1383
+ batchUid: Scalars['String'];
1384
+ };
1385
+ });
1308
1386
  /** Get paginated moments for the brand associated with the partner token. */
1309
1387
  getPartnerMomentsForBrand?: (GetPublicMomentsResponseGenqlSelection & {
1310
1388
  __args: {
@@ -1312,6 +1390,7 @@ interface QueryGenqlSelection {
1312
1390
  cursor?: (Scalars['String'] | null);
1313
1391
  take?: (Scalars['Int'] | null);
1314
1392
  status?: (MomentStatus | null);
1393
+ filters?: (PartnerMomentsFiltersInput | null);
1315
1394
  /** Sort order for moments by start date (default: DESC - newest to oldest) */
1316
1395
  sortOrder?: (MomentSortOrder | null);
1317
1396
  };
@@ -1449,6 +1528,18 @@ interface DimensionsInput {
1449
1528
  width: Scalars['Float'];
1450
1529
  height: Scalars['Float'];
1451
1530
  }
1531
+ interface BrandAgentEmailMessageInput {
1532
+ /** One normalized recipient. Each item is sent as a separate email. */
1533
+ to: Scalars['String'];
1534
+ subject: Scalars['String'];
1535
+ text: Scalars['String'];
1536
+ }
1537
+ interface SendPartnerAgentEmailInput {
1538
+ /** Stable business idempotency key for this logical batch. */
1539
+ idempotencyKey: Scalars['String'];
1540
+ /** One to ten personalized, single-recipient plain-text emails. */
1541
+ messages: BrandAgentEmailMessageInput[];
1542
+ }
1452
1543
  interface VenueInput {
1453
1544
  name: Scalars['String'];
1454
1545
  city: Scalars['String'];
@@ -1749,6 +1840,12 @@ interface MutationGenqlSelection {
1749
1840
  input: CreatePartnerMomentInput;
1750
1841
  };
1751
1842
  });
1843
+ /** Queue one to ten emails from the authenticated brand's AgentMail inbox. */
1844
+ sendPartnerAgentEmail?: (BrandAgentEmailSendBatchGenqlSelection & {
1845
+ __args: {
1846
+ input: SendPartnerAgentEmailInput;
1847
+ };
1848
+ });
1752
1849
  /**
1753
1850
  * Bulk edit partner-owned ticket tiers for a moment.
1754
1851
  * Supports per-tier price, facility-fee, and supply updates.
@@ -1893,4 +1990,4 @@ type ITMPartnerClient = Client;
1893
1990
  */
1894
1991
  declare function createITMPartnerClient(config: ITMPartnerClientConfig): ITMPartnerClient;
1895
1992
 
1896
- export { type ApplyDynamicPricingInput, type BrandDrop, type BrandDropCtaType, type BrandDropMusicLink, type BrandSubscription, type CreateMomentOnlineConfigInput, type CreatePartnerBrandSubscriptionInput, type CreatePartnerBrandSubscriptionResponse, type CreatePartnerMomentInput, type CreatePartnerTicketTierInput, type Currency, DEFAULT_API_URL, type Dimensions, type DimensionsInput, type DynamicPricingActorType, type DynamicPricingAdmissionWindow, type DynamicPricingBatch, type DynamicPricingBatchEvent, type DynamicPricingBatchEventType, type DynamicPricingBatchItem, type DynamicPricingBatchItemStatus, type DynamicPricingBatchStatus, type DynamicPricingContext, type DynamicPricingExecutionMode, type DynamicPricingInventoryGuardInput, type DynamicPricingInventoryGuardMode, type DynamicPricingInventoryMetric, type DynamicPricingMomentInput, type DynamicPricingTierContext, type DynamicPricingTierUpdateInput, type Echo, type EchoMediaAsset, type EchoType, type EditPartnerTicketTiersForMomentInput, type EventImportPlatform, type GetBrandEchoesForUserResponse, type GetMomentLineupsResponse, type GetPartnerCustomersResponse, type GetPartnerDropsResponse, type GetPartnerTicketTiersForMomentInput, type GetPartnerTicketTiersForMomentResponse, type GetPublicMomentsResponse, type GetTicketsResponse, type ITMPartnerClient, type ITMPartnerClientConfig, type ITMPartnerHeaders, type ITMPartnerHeadersObject, type MediaAsset, type MediaAssetUploadUrl, type MerchPurchase, type Moment, type MomentCategory, type MomentCollection, type MomentCollectionLink, type MomentDiscountCodeUsage, type MomentDynamicPricingPolicy, type MomentDynamicPricingTierRule, type MomentLineup, type MomentLineupDisplayLabel, type MomentLineupResponseResult, type MomentLineupStatus, type MomentLineupType, type MomentOnlineProvider, type MomentSortOrder, type MomentStatus, type MomentSubcategory, type MomentType, type MusicReleaseType, type Mutation, type PartnerBrand, type PartnerCustomer, type PartnerMomentAttendanceCount, type PartnerMomentAttendanceLookupInput, type PartnerMomentAttendanceStats, type PartnerMomentGuestlistAttendance, type PartnerMomentGuestlistLabelAttendance, type PartnerMomentStats, type PartnerMomentTicketAttendance, type PartnerMomentTicketTierAttendance, type PartnerTicketTier, type PartnerTicketTierUpdateInput, type Payment, type PaymentStatus, type PostSubscriptionEmailInput, type PostSubscriptionMessageInput, type PostSubscriptionPushInput, type PostSubscriptionSmsInput, type PublicMomentLineupInfo, type Query, type RespondToMomentLineupInput, type SubscriptionComplianceInput, type ThirdPartyEchoType, type Ticket, type TicketAdmissionWindowSource, type TicketAttendanceMode, type TicketExtension, type TicketExtensionStatus, type TicketTier, type User, type Venue, type VenueInput, type VerifyPartnerBrandSubscriptionInput, createITMPartnerClient, everything, generateMutationOp, generateQueryOp };
1993
+ export { type ApplyDynamicPricingInput, type BrandAgentEmailMessageInput, type BrandAgentEmailSendBatch, type BrandAgentEmailSendBatchStatus, type BrandAgentEmailSendMessage, type BrandAgentEmailSendMessageStatus, type BrandDrop, type BrandDropCtaType, type BrandDropMusicLink, type BrandSubscription, type CreateMomentOnlineConfigInput, type CreatePartnerBrandSubscriptionInput, type CreatePartnerBrandSubscriptionResponse, type CreatePartnerMomentInput, type CreatePartnerTicketTierInput, type Currency, DEFAULT_API_URL, type Dimensions, type DimensionsInput, type DynamicPricingActorType, type DynamicPricingAdmissionWindow, type DynamicPricingBatch, type DynamicPricingBatchEvent, type DynamicPricingBatchEventType, type DynamicPricingBatchItem, type DynamicPricingBatchItemStatus, type DynamicPricingBatchStatus, type DynamicPricingContext, type DynamicPricingExecutionMode, type DynamicPricingInventoryGuardInput, type DynamicPricingInventoryGuardMode, type DynamicPricingInventoryMetric, type DynamicPricingMomentInput, type DynamicPricingTierContext, type DynamicPricingTierUpdateInput, type Echo, type EchoMediaAsset, type EchoType, type EditPartnerTicketTiersForMomentInput, type EventImportPlatform, type GetBrandEchoesForUserResponse, type GetMomentLineupsResponse, type GetPartnerCustomersResponse, type GetPartnerDropsResponse, type GetPartnerTicketTiersForMomentInput, type GetPartnerTicketTiersForMomentResponse, type GetPublicMomentsResponse, type GetTicketsResponse, type ITMPartnerClient, type ITMPartnerClientConfig, type ITMPartnerHeaders, type ITMPartnerHeadersObject, type MediaAsset, type MediaAssetUploadUrl, type MerchPurchase, type Moment, type MomentCategory, type MomentCollection, type MomentCollectionLink, type MomentDiscountCodeUsage, type MomentDynamicPricingPolicy, type MomentDynamicPricingTierRule, type MomentLineup, type MomentLineupDisplayLabel, type MomentLineupResponseResult, type MomentLineupStatus, type MomentLineupType, type MomentOnlineProvider, type MomentSortOrder, type MomentStatus, type MomentSubcategory, type MomentType, type MusicReleaseType, type Mutation, type PartnerBrand, type PartnerCustomer, type PartnerMomentAttendanceCount, type PartnerMomentAttendanceLookupInput, type PartnerMomentAttendanceStats, type PartnerMomentGuestlistAttendance, type PartnerMomentGuestlistLabelAttendance, type PartnerMomentStats, type PartnerMomentTicketAttendance, type PartnerMomentTicketTierAttendance, type PartnerMomentsFiltersInput, type PartnerTicketTier, type PartnerTicketTierUpdateInput, type Payment, type PaymentStatus, type PostSubscriptionEmailInput, type PostSubscriptionMessageInput, type PostSubscriptionPushInput, type PostSubscriptionSmsInput, type PublicMomentLineupInfo, type Query, type RespondToMomentLineupInput, type SendPartnerAgentEmailInput, type SubscriptionComplianceInput, type ThirdPartyEchoType, type Ticket, type TicketAdmissionWindowSource, type TicketAttendanceMode, type TicketExtension, type TicketExtensionStatus, type TicketTier, type User, type Venue, type VenueInput, type VerifyPartnerBrandSubscriptionInput, createITMPartnerClient, everything, generateMutationOp, generateQueryOp };
package/dist/index.d.ts CHANGED
@@ -8,6 +8,8 @@ type Scalars = {
8
8
  Float: number;
9
9
  };
10
10
  type MomentStatus = 'UPCOMING' | 'LIVE' | 'ENDED';
11
+ type BrandAgentEmailSendBatchStatus = 'PENDING' | 'SENDING' | 'SENT' | 'PARTIAL' | 'FAILED' | 'UNKNOWN';
12
+ type BrandAgentEmailSendMessageStatus = 'PENDING' | 'SENDING' | 'SENT' | 'FAILED' | 'UNKNOWN';
11
13
  type MomentSortOrder = 'ASC' | 'DESC';
12
14
  type BrandDropCtaType = 'EXTERNAL_URL' | 'GATED_LINK' | 'MUSIC_LINK' | 'SUBSCRIBE';
13
15
  type MusicReleaseType = 'ALBUM' | 'EP' | 'SINGLE';
@@ -210,7 +212,12 @@ interface PartnerCustomer {
210
212
  __typename: 'PartnerCustomer';
211
213
  }
212
214
  interface PartnerMomentStats {
215
+ generatedAt: Scalars['DateTime'];
213
216
  ticketsCount: Scalars['Int'];
217
+ /** Confirmed tickets whose materialized price is greater than zero. */
218
+ paidTicketsCount: Scalars['Int'];
219
+ /** Confirmed tickets whose materialized price is zero. */
220
+ freeTicketsCount: Scalars['Int'];
214
221
  waitlistCount: Scalars['Int'];
215
222
  externalRsvpCount: Scalars['Int'];
216
223
  ticketRsvpRequestsCount: Scalars['Int'];
@@ -575,9 +582,35 @@ interface MomentLineupResponseResult {
575
582
  success: Scalars['Boolean'];
576
583
  __typename: 'MomentLineupResponseResult';
577
584
  }
585
+ interface BrandAgentEmailSendMessage {
586
+ uid: Scalars['String'];
587
+ position: Scalars['Int'];
588
+ recipient: Scalars['String'];
589
+ subject: Scalars['String'];
590
+ text: Scalars['String'];
591
+ status: BrandAgentEmailSendMessageStatus;
592
+ agentMailMessageId: (Scalars['String'] | null);
593
+ agentMailThreadId: (Scalars['String'] | null);
594
+ sentAt: (Scalars['DateTime'] | null);
595
+ failedAt: (Scalars['DateTime'] | null);
596
+ lastErrorCode: (Scalars['String'] | null);
597
+ lastErrorMessage: (Scalars['String'] | null);
598
+ __typename: 'BrandAgentEmailSendMessage';
599
+ }
600
+ interface BrandAgentEmailSendBatch {
601
+ uid: Scalars['String'];
602
+ createdAt: Scalars['DateTime'];
603
+ status: BrandAgentEmailSendBatchStatus;
604
+ senderEmailAddress: Scalars['String'];
605
+ acceptedCount: Scalars['Int'];
606
+ messages: BrandAgentEmailSendMessage[];
607
+ __typename: 'BrandAgentEmailSendBatch';
608
+ }
578
609
  interface Query {
579
610
  /** Get details for the brand associated with the partner token. */
580
611
  getPartnerBrand: PartnerBrand;
612
+ /** Retrieve one AgentMail send batch owned by the authenticated partner brand. */
613
+ getPartnerAgentEmailBatch: BrandAgentEmailSendBatch;
581
614
  /** Get paginated moments for the brand associated with the partner token. */
582
615
  getPartnerMomentsForBrand: GetPublicMomentsResponse;
583
616
  /** Get paginated drops for the brand associated with the partner token. */
@@ -691,6 +724,8 @@ interface Mutation {
691
724
  * When type is IRL, the venue field is required.
692
725
  */
693
726
  createPartnerMoment: Moment;
727
+ /** Queue one to ten emails from the authenticated brand's AgentMail inbox. */
728
+ sendPartnerAgentEmail: BrandAgentEmailSendBatch;
694
729
  /**
695
730
  * Bulk edit partner-owned ticket tiers for a moment.
696
731
  * Supports per-tier price, facility-fee, and supply updates.
@@ -899,7 +934,12 @@ interface PartnerCustomerGenqlSelection {
899
934
  __scalar?: boolean | number;
900
935
  }
901
936
  interface PartnerMomentStatsGenqlSelection {
937
+ generatedAt?: boolean | number;
902
938
  ticketsCount?: boolean | number;
939
+ /** Confirmed tickets whose materialized price is greater than zero. */
940
+ paidTicketsCount?: boolean | number;
941
+ /** Confirmed tickets whose materialized price is zero. */
942
+ freeTicketsCount?: boolean | number;
903
943
  waitlistCount?: boolean | number;
904
944
  externalRsvpCount?: boolean | number;
905
945
  ticketRsvpRequestsCount?: boolean | number;
@@ -1302,9 +1342,47 @@ interface MomentLineupResponseResultGenqlSelection {
1302
1342
  __typename?: boolean | number;
1303
1343
  __scalar?: boolean | number;
1304
1344
  }
1345
+ interface PartnerMomentsFiltersInput {
1346
+ /** Case-insensitive search over moment name and slug. Whitespace-only values are ignored. */
1347
+ search?: (Scalars['String'] | null);
1348
+ /** When true, includes private moments owned by the authenticated brand. Default: false. */
1349
+ includePrivate?: (Scalars['Boolean'] | null);
1350
+ }
1351
+ interface BrandAgentEmailSendMessageGenqlSelection {
1352
+ uid?: boolean | number;
1353
+ position?: boolean | number;
1354
+ recipient?: boolean | number;
1355
+ subject?: boolean | number;
1356
+ text?: boolean | number;
1357
+ status?: boolean | number;
1358
+ agentMailMessageId?: boolean | number;
1359
+ agentMailThreadId?: boolean | number;
1360
+ sentAt?: boolean | number;
1361
+ failedAt?: boolean | number;
1362
+ lastErrorCode?: boolean | number;
1363
+ lastErrorMessage?: boolean | number;
1364
+ __typename?: boolean | number;
1365
+ __scalar?: boolean | number;
1366
+ }
1367
+ interface BrandAgentEmailSendBatchGenqlSelection {
1368
+ uid?: boolean | number;
1369
+ createdAt?: boolean | number;
1370
+ status?: boolean | number;
1371
+ senderEmailAddress?: boolean | number;
1372
+ acceptedCount?: boolean | number;
1373
+ messages?: BrandAgentEmailSendMessageGenqlSelection;
1374
+ __typename?: boolean | number;
1375
+ __scalar?: boolean | number;
1376
+ }
1305
1377
  interface QueryGenqlSelection {
1306
1378
  /** Get details for the brand associated with the partner token. */
1307
1379
  getPartnerBrand?: PartnerBrandGenqlSelection;
1380
+ /** Retrieve one AgentMail send batch owned by the authenticated partner brand. */
1381
+ getPartnerAgentEmailBatch?: (BrandAgentEmailSendBatchGenqlSelection & {
1382
+ __args: {
1383
+ batchUid: Scalars['String'];
1384
+ };
1385
+ });
1308
1386
  /** Get paginated moments for the brand associated with the partner token. */
1309
1387
  getPartnerMomentsForBrand?: (GetPublicMomentsResponseGenqlSelection & {
1310
1388
  __args: {
@@ -1312,6 +1390,7 @@ interface QueryGenqlSelection {
1312
1390
  cursor?: (Scalars['String'] | null);
1313
1391
  take?: (Scalars['Int'] | null);
1314
1392
  status?: (MomentStatus | null);
1393
+ filters?: (PartnerMomentsFiltersInput | null);
1315
1394
  /** Sort order for moments by start date (default: DESC - newest to oldest) */
1316
1395
  sortOrder?: (MomentSortOrder | null);
1317
1396
  };
@@ -1449,6 +1528,18 @@ interface DimensionsInput {
1449
1528
  width: Scalars['Float'];
1450
1529
  height: Scalars['Float'];
1451
1530
  }
1531
+ interface BrandAgentEmailMessageInput {
1532
+ /** One normalized recipient. Each item is sent as a separate email. */
1533
+ to: Scalars['String'];
1534
+ subject: Scalars['String'];
1535
+ text: Scalars['String'];
1536
+ }
1537
+ interface SendPartnerAgentEmailInput {
1538
+ /** Stable business idempotency key for this logical batch. */
1539
+ idempotencyKey: Scalars['String'];
1540
+ /** One to ten personalized, single-recipient plain-text emails. */
1541
+ messages: BrandAgentEmailMessageInput[];
1542
+ }
1452
1543
  interface VenueInput {
1453
1544
  name: Scalars['String'];
1454
1545
  city: Scalars['String'];
@@ -1749,6 +1840,12 @@ interface MutationGenqlSelection {
1749
1840
  input: CreatePartnerMomentInput;
1750
1841
  };
1751
1842
  });
1843
+ /** Queue one to ten emails from the authenticated brand's AgentMail inbox. */
1844
+ sendPartnerAgentEmail?: (BrandAgentEmailSendBatchGenqlSelection & {
1845
+ __args: {
1846
+ input: SendPartnerAgentEmailInput;
1847
+ };
1848
+ });
1752
1849
  /**
1753
1850
  * Bulk edit partner-owned ticket tiers for a moment.
1754
1851
  * Supports per-tier price, facility-fee, and supply updates.
@@ -1893,4 +1990,4 @@ type ITMPartnerClient = Client;
1893
1990
  */
1894
1991
  declare function createITMPartnerClient(config: ITMPartnerClientConfig): ITMPartnerClient;
1895
1992
 
1896
- export { type ApplyDynamicPricingInput, type BrandDrop, type BrandDropCtaType, type BrandDropMusicLink, type BrandSubscription, type CreateMomentOnlineConfigInput, type CreatePartnerBrandSubscriptionInput, type CreatePartnerBrandSubscriptionResponse, type CreatePartnerMomentInput, type CreatePartnerTicketTierInput, type Currency, DEFAULT_API_URL, type Dimensions, type DimensionsInput, type DynamicPricingActorType, type DynamicPricingAdmissionWindow, type DynamicPricingBatch, type DynamicPricingBatchEvent, type DynamicPricingBatchEventType, type DynamicPricingBatchItem, type DynamicPricingBatchItemStatus, type DynamicPricingBatchStatus, type DynamicPricingContext, type DynamicPricingExecutionMode, type DynamicPricingInventoryGuardInput, type DynamicPricingInventoryGuardMode, type DynamicPricingInventoryMetric, type DynamicPricingMomentInput, type DynamicPricingTierContext, type DynamicPricingTierUpdateInput, type Echo, type EchoMediaAsset, type EchoType, type EditPartnerTicketTiersForMomentInput, type EventImportPlatform, type GetBrandEchoesForUserResponse, type GetMomentLineupsResponse, type GetPartnerCustomersResponse, type GetPartnerDropsResponse, type GetPartnerTicketTiersForMomentInput, type GetPartnerTicketTiersForMomentResponse, type GetPublicMomentsResponse, type GetTicketsResponse, type ITMPartnerClient, type ITMPartnerClientConfig, type ITMPartnerHeaders, type ITMPartnerHeadersObject, type MediaAsset, type MediaAssetUploadUrl, type MerchPurchase, type Moment, type MomentCategory, type MomentCollection, type MomentCollectionLink, type MomentDiscountCodeUsage, type MomentDynamicPricingPolicy, type MomentDynamicPricingTierRule, type MomentLineup, type MomentLineupDisplayLabel, type MomentLineupResponseResult, type MomentLineupStatus, type MomentLineupType, type MomentOnlineProvider, type MomentSortOrder, type MomentStatus, type MomentSubcategory, type MomentType, type MusicReleaseType, type Mutation, type PartnerBrand, type PartnerCustomer, type PartnerMomentAttendanceCount, type PartnerMomentAttendanceLookupInput, type PartnerMomentAttendanceStats, type PartnerMomentGuestlistAttendance, type PartnerMomentGuestlistLabelAttendance, type PartnerMomentStats, type PartnerMomentTicketAttendance, type PartnerMomentTicketTierAttendance, type PartnerTicketTier, type PartnerTicketTierUpdateInput, type Payment, type PaymentStatus, type PostSubscriptionEmailInput, type PostSubscriptionMessageInput, type PostSubscriptionPushInput, type PostSubscriptionSmsInput, type PublicMomentLineupInfo, type Query, type RespondToMomentLineupInput, type SubscriptionComplianceInput, type ThirdPartyEchoType, type Ticket, type TicketAdmissionWindowSource, type TicketAttendanceMode, type TicketExtension, type TicketExtensionStatus, type TicketTier, type User, type Venue, type VenueInput, type VerifyPartnerBrandSubscriptionInput, createITMPartnerClient, everything, generateMutationOp, generateQueryOp };
1993
+ export { type ApplyDynamicPricingInput, type BrandAgentEmailMessageInput, type BrandAgentEmailSendBatch, type BrandAgentEmailSendBatchStatus, type BrandAgentEmailSendMessage, type BrandAgentEmailSendMessageStatus, type BrandDrop, type BrandDropCtaType, type BrandDropMusicLink, type BrandSubscription, type CreateMomentOnlineConfigInput, type CreatePartnerBrandSubscriptionInput, type CreatePartnerBrandSubscriptionResponse, type CreatePartnerMomentInput, type CreatePartnerTicketTierInput, type Currency, DEFAULT_API_URL, type Dimensions, type DimensionsInput, type DynamicPricingActorType, type DynamicPricingAdmissionWindow, type DynamicPricingBatch, type DynamicPricingBatchEvent, type DynamicPricingBatchEventType, type DynamicPricingBatchItem, type DynamicPricingBatchItemStatus, type DynamicPricingBatchStatus, type DynamicPricingContext, type DynamicPricingExecutionMode, type DynamicPricingInventoryGuardInput, type DynamicPricingInventoryGuardMode, type DynamicPricingInventoryMetric, type DynamicPricingMomentInput, type DynamicPricingTierContext, type DynamicPricingTierUpdateInput, type Echo, type EchoMediaAsset, type EchoType, type EditPartnerTicketTiersForMomentInput, type EventImportPlatform, type GetBrandEchoesForUserResponse, type GetMomentLineupsResponse, type GetPartnerCustomersResponse, type GetPartnerDropsResponse, type GetPartnerTicketTiersForMomentInput, type GetPartnerTicketTiersForMomentResponse, type GetPublicMomentsResponse, type GetTicketsResponse, type ITMPartnerClient, type ITMPartnerClientConfig, type ITMPartnerHeaders, type ITMPartnerHeadersObject, type MediaAsset, type MediaAssetUploadUrl, type MerchPurchase, type Moment, type MomentCategory, type MomentCollection, type MomentCollectionLink, type MomentDiscountCodeUsage, type MomentDynamicPricingPolicy, type MomentDynamicPricingTierRule, type MomentLineup, type MomentLineupDisplayLabel, type MomentLineupResponseResult, type MomentLineupStatus, type MomentLineupType, type MomentOnlineProvider, type MomentSortOrder, type MomentStatus, type MomentSubcategory, type MomentType, type MusicReleaseType, type Mutation, type PartnerBrand, type PartnerCustomer, type PartnerMomentAttendanceCount, type PartnerMomentAttendanceLookupInput, type PartnerMomentAttendanceStats, type PartnerMomentGuestlistAttendance, type PartnerMomentGuestlistLabelAttendance, type PartnerMomentStats, type PartnerMomentTicketAttendance, type PartnerMomentTicketTierAttendance, type PartnerMomentsFiltersInput, type PartnerTicketTier, type PartnerTicketTierUpdateInput, type Payment, type PaymentStatus, type PostSubscriptionEmailInput, type PostSubscriptionMessageInput, type PostSubscriptionPushInput, type PostSubscriptionSmsInput, type PublicMomentLineupInfo, type Query, type RespondToMomentLineupInput, type SendPartnerAgentEmailInput, type SubscriptionComplianceInput, type ThirdPartyEchoType, type Ticket, type TicketAdmissionWindowSource, type TicketAttendanceMode, type TicketExtension, type TicketExtensionStatus, type TicketTier, type User, type Venue, type VenueInput, type VerifyPartnerBrandSubscriptionInput, createITMPartnerClient, everything, generateMutationOp, generateQueryOp };