@itm-studio/partner-sdk 0.2.5 → 0.2.7
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 +474 -158
- package/dist/index.d.mts +618 -9
- package/dist/index.d.ts +618 -9
- package/dist/index.js +1233 -383
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1233 -383
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/schema/partner.graphql +460 -7
package/schema/partner.graphql
CHANGED
|
@@ -20,11 +20,37 @@ enum MomentSortOrder {
|
|
|
20
20
|
DESC
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
enum BrandDropCtaType {
|
|
24
|
+
EXTERNAL_URL
|
|
25
|
+
GATED_LINK
|
|
26
|
+
MUSIC_LINK
|
|
27
|
+
SUBSCRIBE
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
enum MusicReleaseType {
|
|
31
|
+
ALBUM
|
|
32
|
+
EP
|
|
33
|
+
SINGLE
|
|
34
|
+
}
|
|
35
|
+
|
|
23
36
|
enum MomentType {
|
|
24
37
|
DIGITAL
|
|
38
|
+
HYBRID
|
|
25
39
|
IRL
|
|
26
40
|
}
|
|
27
41
|
|
|
42
|
+
enum MomentOnlineProvider {
|
|
43
|
+
GOOGLE_MEET
|
|
44
|
+
MS_TEAMS
|
|
45
|
+
OTHER
|
|
46
|
+
ZOOM
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
enum TicketAttendanceMode {
|
|
50
|
+
IN_PERSON
|
|
51
|
+
ONLINE
|
|
52
|
+
}
|
|
53
|
+
|
|
28
54
|
enum MomentCategory {
|
|
29
55
|
ACTIVATION
|
|
30
56
|
CONCERT
|
|
@@ -297,6 +323,24 @@ type Currency {
|
|
|
297
323
|
updatedAt: DateTime!
|
|
298
324
|
}
|
|
299
325
|
|
|
326
|
+
"""
|
|
327
|
+
The authenticated partner's brand identity and public-facing details.
|
|
328
|
+
The brand is derived from the partner token and cannot be selected by UID or slug.
|
|
329
|
+
"""
|
|
330
|
+
type PartnerBrand {
|
|
331
|
+
uid: ID!
|
|
332
|
+
createdAt: DateTime!
|
|
333
|
+
updatedAt: DateTime!
|
|
334
|
+
name: String!
|
|
335
|
+
slug: String!
|
|
336
|
+
bio: String
|
|
337
|
+
publicUrl: String!
|
|
338
|
+
customDomain: String
|
|
339
|
+
customDomainVerifiedAt: DateTime
|
|
340
|
+
spotifyUrl: String
|
|
341
|
+
youtubeEmbedUrl: String
|
|
342
|
+
}
|
|
343
|
+
|
|
300
344
|
type Venue {
|
|
301
345
|
uid: ID!
|
|
302
346
|
name: String!
|
|
@@ -335,11 +379,13 @@ type Moment {
|
|
|
335
379
|
soldOut: Boolean!
|
|
336
380
|
timezone: String!
|
|
337
381
|
minimumAge: Int!
|
|
382
|
+
"""Tracks the overall capacity of the moment."""
|
|
383
|
+
capacity: Int
|
|
338
384
|
externalUrl: String
|
|
339
385
|
"""Display label to use when rendering the public lineup section."""
|
|
340
386
|
lineupDisplayLabel: MomentLineupDisplayLabel!
|
|
341
387
|
"""Cover image for the moment. Null if no cover image is set."""
|
|
342
|
-
coverImage: MomentCoverImage
|
|
388
|
+
coverImage: MomentCoverImage!
|
|
343
389
|
venue: Venue
|
|
344
390
|
ticketTiers: [TicketTier!]!
|
|
345
391
|
createdAt: DateTime!
|
|
@@ -368,6 +414,7 @@ type TicketTier {
|
|
|
368
414
|
description: String
|
|
369
415
|
price: Float!
|
|
370
416
|
currency: Currency!
|
|
417
|
+
attendanceMode: TicketAttendanceMode!
|
|
371
418
|
isActive: Boolean!
|
|
372
419
|
isPrivate: Boolean!
|
|
373
420
|
maxPerUser: Int!
|
|
@@ -382,7 +429,7 @@ type TicketTier {
|
|
|
382
429
|
type User {
|
|
383
430
|
uid: ID!
|
|
384
431
|
name: String
|
|
385
|
-
phoneNumber: String
|
|
432
|
+
phoneNumber: String
|
|
386
433
|
primaryEmail: String
|
|
387
434
|
instagramProfile: String
|
|
388
435
|
twitterProfile: String
|
|
@@ -531,6 +578,46 @@ type Echo {
|
|
|
531
578
|
updatedAt: DateTime!
|
|
532
579
|
}
|
|
533
580
|
|
|
581
|
+
type BrandDrop {
|
|
582
|
+
uid: ID!
|
|
583
|
+
name: String!
|
|
584
|
+
slug: String!
|
|
585
|
+
subtitle: String
|
|
586
|
+
disclosures: String
|
|
587
|
+
isPublic: Boolean!
|
|
588
|
+
ctaType: BrandDropCtaType!
|
|
589
|
+
ctaUrl: String
|
|
590
|
+
ctaConfig: JSON
|
|
591
|
+
captureName: Boolean!
|
|
592
|
+
captureEmail: Boolean!
|
|
593
|
+
consentText: String
|
|
594
|
+
coverImage: MediaAsset!
|
|
595
|
+
coverImageMobile: MediaAsset
|
|
596
|
+
isActive: Boolean!
|
|
597
|
+
musicLink: BrandDropMusicLink
|
|
598
|
+
createdAt: DateTime!
|
|
599
|
+
updatedAt: DateTime!
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
type BrandDropMusicLink {
|
|
603
|
+
uid: ID!
|
|
604
|
+
releaseType: MusicReleaseType!
|
|
605
|
+
title: String!
|
|
606
|
+
artistName: String!
|
|
607
|
+
isrcCode: String
|
|
608
|
+
upcCode: String
|
|
609
|
+
releaseDate: DateTime
|
|
610
|
+
thumbnailUrl: String
|
|
611
|
+
thumbnailWidth: Int
|
|
612
|
+
thumbnailHeight: Int
|
|
613
|
+
subscriberOnly: Boolean!
|
|
614
|
+
sourceUrl: String!
|
|
615
|
+
odesliPageUrl: String
|
|
616
|
+
lastSyncedAt: DateTime
|
|
617
|
+
createdAt: DateTime!
|
|
618
|
+
updatedAt: DateTime!
|
|
619
|
+
}
|
|
620
|
+
|
|
534
621
|
# ─── Paginated Responses ─────────────────────────────────────────────────────
|
|
535
622
|
|
|
536
623
|
type GetPublicMomentsResponse {
|
|
@@ -540,6 +627,13 @@ type GetPublicMomentsResponse {
|
|
|
540
627
|
nextCursor: String
|
|
541
628
|
}
|
|
542
629
|
|
|
630
|
+
type GetPartnerDropsResponse {
|
|
631
|
+
drops: [BrandDrop!]!
|
|
632
|
+
totalCount: Int!
|
|
633
|
+
hasNextPage: Boolean!
|
|
634
|
+
nextCursor: String
|
|
635
|
+
}
|
|
636
|
+
|
|
543
637
|
type GetMomentLineupsResponse {
|
|
544
638
|
lineups: [MomentLineup!]!
|
|
545
639
|
totalCount: Int!
|
|
@@ -568,6 +662,201 @@ type GetBrandEchoesForUserResponse {
|
|
|
568
662
|
nextCursor: String
|
|
569
663
|
}
|
|
570
664
|
|
|
665
|
+
type PartnerTicketTier {
|
|
666
|
+
"""Sold-through fill rate as a 0-1 ratio."""
|
|
667
|
+
fillRate: Float!
|
|
668
|
+
isActive: Boolean!
|
|
669
|
+
isPrivate: Boolean!
|
|
670
|
+
label: String
|
|
671
|
+
labelColor: String
|
|
672
|
+
name: String!
|
|
673
|
+
price: Int!
|
|
674
|
+
facilityFee: Int!
|
|
675
|
+
remainingSupply: Int!
|
|
676
|
+
slotDate: DateTime
|
|
677
|
+
slotDurationHours: Int
|
|
678
|
+
supply: Int!
|
|
679
|
+
uid: String!
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
type GetPartnerTicketTiersForMomentResponse {
|
|
683
|
+
ticketTiers: [PartnerTicketTier!]!
|
|
684
|
+
totalCount: Int!
|
|
685
|
+
hasNextPage: Boolean!
|
|
686
|
+
nextCursor: String
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
enum DynamicPricingActorType {
|
|
690
|
+
ADMIN
|
|
691
|
+
PARTNER_API
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
enum DynamicPricingExecutionMode {
|
|
695
|
+
APPLY
|
|
696
|
+
PREVIEW
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
enum DynamicPricingBatchStatus {
|
|
700
|
+
APPLIED
|
|
701
|
+
CONFLICTED
|
|
702
|
+
FAILED
|
|
703
|
+
NO_CHANGES
|
|
704
|
+
PREVIEWED
|
|
705
|
+
PROCESSING
|
|
706
|
+
REJECTED
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
enum DynamicPricingBatchItemStatus {
|
|
710
|
+
APPLIED
|
|
711
|
+
BLOCKED_BY_BATCH
|
|
712
|
+
CONFLICTED
|
|
713
|
+
NO_CHANGE
|
|
714
|
+
REJECTED
|
|
715
|
+
WOULD_APPLY
|
|
716
|
+
WOULD_NOT_CHANGE
|
|
717
|
+
FAILED
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
enum DynamicPricingBatchEventType {
|
|
721
|
+
APPLIED
|
|
722
|
+
CONFLICTED
|
|
723
|
+
FAILED
|
|
724
|
+
IDEMPOTENCY_CONFLICT
|
|
725
|
+
NO_CHANGES
|
|
726
|
+
PREVIEWED
|
|
727
|
+
PROCESSING
|
|
728
|
+
RECEIVED
|
|
729
|
+
REJECTED
|
|
730
|
+
REPLAYED
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
enum DynamicPricingInventoryGuardMode {
|
|
734
|
+
INDEPENDENT
|
|
735
|
+
RANGE
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
enum DynamicPricingInventoryMetric {
|
|
739
|
+
REMAINING_SUPPLY
|
|
740
|
+
FILL_RATE_BPS
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
enum TicketAdmissionWindowSource {
|
|
744
|
+
EXPLICIT
|
|
745
|
+
LEGACY_SLOT
|
|
746
|
+
DEFAULT_MOMENT
|
|
747
|
+
MOMENT_OCCURRENCE
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
type MomentDynamicPricingTierRule {
|
|
751
|
+
uid: String!
|
|
752
|
+
ticketTierUid: String!
|
|
753
|
+
minPrice: Int!
|
|
754
|
+
maxPrice: Int!
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
type MomentDynamicPricingPolicy {
|
|
758
|
+
uid: String!
|
|
759
|
+
momentUid: String!
|
|
760
|
+
enabled: Boolean!
|
|
761
|
+
version: Int!
|
|
762
|
+
advanceBookingHorizonDays: Int!
|
|
763
|
+
tierRules: [MomentDynamicPricingTierRule!]!
|
|
764
|
+
createdAt: DateTime!
|
|
765
|
+
updatedAt: DateTime!
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
type DynamicPricingAdmissionWindow {
|
|
769
|
+
uid: String!
|
|
770
|
+
startsAt: DateTime!
|
|
771
|
+
endsAt: DateTime!
|
|
772
|
+
checkInOpensAt: DateTime
|
|
773
|
+
checkInClosesAt: DateTime
|
|
774
|
+
label: String
|
|
775
|
+
source: TicketAdmissionWindowSource!
|
|
776
|
+
sortOrder: Int!
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
type DynamicPricingTierContext {
|
|
780
|
+
ticketTierUid: String!
|
|
781
|
+
name: String!
|
|
782
|
+
currency: String!
|
|
783
|
+
currentPrice: Int!
|
|
784
|
+
facilityFee: Int!
|
|
785
|
+
minPrice: Int!
|
|
786
|
+
maxPrice: Int!
|
|
787
|
+
supply: Int!
|
|
788
|
+
remainingSupply: Int!
|
|
789
|
+
consumedSupply: Int!
|
|
790
|
+
fillRateBps: Int!
|
|
791
|
+
isActive: Boolean!
|
|
792
|
+
eligible: Boolean!
|
|
793
|
+
ineligibilityReasons: [String!]!
|
|
794
|
+
pricingContextVersion: String!
|
|
795
|
+
lastDynamicPriceChangeAt: DateTime
|
|
796
|
+
admissionWindows: [DynamicPricingAdmissionWindow!]!
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
type DynamicPricingContext {
|
|
800
|
+
serverNow: DateTime!
|
|
801
|
+
horizonEndsAt: DateTime!
|
|
802
|
+
validUntil: DateTime
|
|
803
|
+
momentUid: String!
|
|
804
|
+
momentSlug: String!
|
|
805
|
+
timezone: String!
|
|
806
|
+
policy: MomentDynamicPricingPolicy!
|
|
807
|
+
tiers: [DynamicPricingTierContext!]!
|
|
808
|
+
}
|
|
809
|
+
|
|
810
|
+
type DynamicPricingBatchItem {
|
|
811
|
+
uid: String!
|
|
812
|
+
ticketTierUid: String!
|
|
813
|
+
expectedPrice: Int!
|
|
814
|
+
requestedPrice: Int!
|
|
815
|
+
previousPrice: Int
|
|
816
|
+
resultingPrice: Int
|
|
817
|
+
expectedPricingContextVersion: String!
|
|
818
|
+
actualPricingContextVersion: String
|
|
819
|
+
status: DynamicPricingBatchItemStatus!
|
|
820
|
+
failureCode: String
|
|
821
|
+
failureMessage: String
|
|
822
|
+
contextSnapshot: JSON
|
|
823
|
+
externalSignals: JSON
|
|
824
|
+
}
|
|
825
|
+
|
|
826
|
+
type DynamicPricingBatchEvent {
|
|
827
|
+
uid: String!
|
|
828
|
+
type: DynamicPricingBatchEventType!
|
|
829
|
+
requestHash: String
|
|
830
|
+
details: JSON
|
|
831
|
+
createdAt: DateTime!
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
type DynamicPricingBatch {
|
|
835
|
+
uid: String!
|
|
836
|
+
momentUidRequested: String!
|
|
837
|
+
actorType: DynamicPricingActorType!
|
|
838
|
+
actorUid: String!
|
|
839
|
+
executionMode: DynamicPricingExecutionMode!
|
|
840
|
+
status: DynamicPricingBatchStatus!
|
|
841
|
+
idempotencyKey: String!
|
|
842
|
+
requestHash: String!
|
|
843
|
+
replayCount: Int!
|
|
844
|
+
idempotencyConflictCount: Int!
|
|
845
|
+
policyVersion: Int!
|
|
846
|
+
reason: String!
|
|
847
|
+
strategyKey: String
|
|
848
|
+
strategyVersion: String
|
|
849
|
+
externalReference: String
|
|
850
|
+
metadata: JSON
|
|
851
|
+
failureCode: String
|
|
852
|
+
failureMessage: String
|
|
853
|
+
items: [DynamicPricingBatchItem!]!
|
|
854
|
+
events: [DynamicPricingBatchEvent!]!
|
|
855
|
+
createdAt: DateTime!
|
|
856
|
+
updatedAt: DateTime!
|
|
857
|
+
completedAt: DateTime
|
|
858
|
+
}
|
|
859
|
+
|
|
571
860
|
type BrandSubscription {
|
|
572
861
|
uid: ID!
|
|
573
862
|
isActive: Boolean!
|
|
@@ -594,6 +883,11 @@ type MomentLineupResponseResult {
|
|
|
594
883
|
# ─── Queries ─────────────────────────────────────────────────────────────────
|
|
595
884
|
|
|
596
885
|
type Query {
|
|
886
|
+
"""
|
|
887
|
+
Get details for the brand associated with the partner token.
|
|
888
|
+
"""
|
|
889
|
+
getPartnerBrand: PartnerBrand!
|
|
890
|
+
|
|
597
891
|
"""
|
|
598
892
|
Get paginated moments for the brand associated with the partner token.
|
|
599
893
|
"""
|
|
@@ -606,6 +900,19 @@ type Query {
|
|
|
606
900
|
sortOrder: MomentSortOrder
|
|
607
901
|
): GetPublicMomentsResponse!
|
|
608
902
|
|
|
903
|
+
"""
|
|
904
|
+
Get paginated drops for the brand associated with the partner token.
|
|
905
|
+
"""
|
|
906
|
+
getPartnerDrops(
|
|
907
|
+
"""Cursor UID for pagination"""
|
|
908
|
+
cursor: String
|
|
909
|
+
take: Int
|
|
910
|
+
"""Case-insensitive search over name, subtitle, and slug"""
|
|
911
|
+
search: String
|
|
912
|
+
isPublic: Boolean
|
|
913
|
+
ctaType: BrandDropCtaType
|
|
914
|
+
): GetPartnerDropsResponse!
|
|
915
|
+
|
|
609
916
|
"""
|
|
610
917
|
Get a single moment by slug.
|
|
611
918
|
"""
|
|
@@ -659,6 +966,27 @@ type Query {
|
|
|
659
966
|
take: Int
|
|
660
967
|
): GetBrandEchoesForUserResponse!
|
|
661
968
|
|
|
969
|
+
"""
|
|
970
|
+
Get paginated ticket tiers for a partner-owned moment.
|
|
971
|
+
Provide either momentSlug or momentUid. Omitted isActive defaults to active tiers only.
|
|
972
|
+
"""
|
|
973
|
+
getPartnerTicketTiersForMoment(
|
|
974
|
+
input: GetPartnerTicketTiersForMomentInput!
|
|
975
|
+
): GetPartnerTicketTiersForMomentResponse!
|
|
976
|
+
|
|
977
|
+
"""
|
|
978
|
+
Get a policy-bounded, admission-window-aware snapshot for dynamic pricing.
|
|
979
|
+
Use each tier's currentPrice and pricingContextVersion as apply preconditions.
|
|
980
|
+
"""
|
|
981
|
+
getPartnerMomentDynamicPricingContext(
|
|
982
|
+
input: DynamicPricingMomentInput!
|
|
983
|
+
): DynamicPricingContext!
|
|
984
|
+
|
|
985
|
+
"""
|
|
986
|
+
Retrieve one dynamic pricing batch owned by the authenticated partner brand.
|
|
987
|
+
"""
|
|
988
|
+
getPartnerDynamicPricingBatch(batchUid: String!): DynamicPricingBatch!
|
|
989
|
+
|
|
662
990
|
"""
|
|
663
991
|
Get approved public lineup entries for a moment.
|
|
664
992
|
Use getPartnerMoment to resolve a moment slug to uid before calling this query.
|
|
@@ -680,14 +1008,14 @@ type Query {
|
|
|
680
1008
|
# ─── Input Types ──────────────────────────────────────────────────────────────
|
|
681
1009
|
|
|
682
1010
|
input DimensionsInput {
|
|
683
|
-
width:
|
|
684
|
-
height:
|
|
1011
|
+
width: Float!
|
|
1012
|
+
height: Float!
|
|
685
1013
|
}
|
|
686
1014
|
|
|
687
1015
|
input VenueInput {
|
|
688
1016
|
name: String!
|
|
689
1017
|
city: String!
|
|
690
|
-
country: String
|
|
1018
|
+
country: String
|
|
691
1019
|
address: String
|
|
692
1020
|
postalCode: String
|
|
693
1021
|
}
|
|
@@ -710,30 +1038,139 @@ input CreatePartnerTicketTierInput {
|
|
|
710
1038
|
isPrivate: Boolean
|
|
711
1039
|
"""Default: true."""
|
|
712
1040
|
isActive: Boolean
|
|
1041
|
+
"""
|
|
1042
|
+
Required for HYBRID moments. Defaults from parent type for IRL and DIGITAL moments.
|
|
1043
|
+
"""
|
|
1044
|
+
attendanceMode: TicketAttendanceMode
|
|
1045
|
+
}
|
|
1046
|
+
|
|
1047
|
+
input CreateMomentOnlineConfigInput {
|
|
1048
|
+
hostInstructions: String
|
|
1049
|
+
meetingId: String
|
|
1050
|
+
meetingPasscode: String
|
|
1051
|
+
meetingUrl: String!
|
|
1052
|
+
provider: MomentOnlineProvider!
|
|
713
1053
|
}
|
|
714
1054
|
|
|
715
1055
|
input CreatePartnerMomentInput {
|
|
716
1056
|
name: String!
|
|
717
1057
|
description: String!
|
|
718
|
-
blurb: String
|
|
1058
|
+
blurb: String
|
|
719
1059
|
startDate: DateTime!
|
|
720
1060
|
endDate: DateTime!
|
|
721
1061
|
"""IANA timezone (e.g. "America/New_York")."""
|
|
722
1062
|
timezone: String!
|
|
723
|
-
"""IRL (in-person) or
|
|
1063
|
+
"""IRL (in-person), DIGITAL, or HYBRID."""
|
|
724
1064
|
type: MomentType!
|
|
725
1065
|
"""UID of a previously uploaded media asset. If omitted, uses the brand default cover image."""
|
|
726
1066
|
coverImageUid: String
|
|
727
1067
|
"""Required when type is IRL."""
|
|
728
1068
|
venue: VenueInput
|
|
1069
|
+
"""Allowed when type is DIGITAL or HYBRID."""
|
|
1070
|
+
onlineConfig: CreateMomentOnlineConfigInput
|
|
729
1071
|
"""Default: false."""
|
|
730
1072
|
isPrivate: Boolean
|
|
1073
|
+
"""Tracks the overall capacity of the moment."""
|
|
1074
|
+
capacity: Int
|
|
731
1075
|
category: MomentCategory
|
|
732
1076
|
subcategory: MomentSubcategory
|
|
733
1077
|
"""Ticket tiers to create along with the moment."""
|
|
734
1078
|
ticketTiers: [CreatePartnerTicketTierInput!]
|
|
735
1079
|
}
|
|
736
1080
|
|
|
1081
|
+
input GetPartnerTicketTiersForMomentInput {
|
|
1082
|
+
"""Moment UID to search ticket tiers for. Provide this or momentSlug."""
|
|
1083
|
+
momentUid: String
|
|
1084
|
+
"""Moment slug to search ticket tiers for. Provide this or momentUid."""
|
|
1085
|
+
momentSlug: String
|
|
1086
|
+
cursor: String
|
|
1087
|
+
take: Int
|
|
1088
|
+
"""Optional ticket tier UIDs to return."""
|
|
1089
|
+
ticketTierUids: [String!]
|
|
1090
|
+
"""Case-insensitive search over tier name and label."""
|
|
1091
|
+
search: String
|
|
1092
|
+
isActive: Boolean
|
|
1093
|
+
isPrivate: Boolean
|
|
1094
|
+
"""
|
|
1095
|
+
Filter by payment type: true = paid tiers only, false = free tiers only.
|
|
1096
|
+
"""
|
|
1097
|
+
isPaid: Boolean
|
|
1098
|
+
"""Exact tier price in cents."""
|
|
1099
|
+
price: Int
|
|
1100
|
+
"""Minimum tier price in cents."""
|
|
1101
|
+
minPrice: Int
|
|
1102
|
+
"""Maximum tier price in cents."""
|
|
1103
|
+
maxPrice: Int
|
|
1104
|
+
supply: Int
|
|
1105
|
+
minSupply: Int
|
|
1106
|
+
maxSupply: Int
|
|
1107
|
+
remainingSupply: Int
|
|
1108
|
+
minRemainingSupply: Int
|
|
1109
|
+
maxRemainingSupply: Int
|
|
1110
|
+
"""Minimum sold-through fill rate as a 0-1 ratio."""
|
|
1111
|
+
minFillRate: Float
|
|
1112
|
+
"""Maximum sold-through fill rate as a 0-1 ratio."""
|
|
1113
|
+
maxFillRate: Float
|
|
1114
|
+
"""Filter to tiers with an admission window ending after this date."""
|
|
1115
|
+
startsAt: DateTime
|
|
1116
|
+
"""Filter to tiers with an admission window starting before this date."""
|
|
1117
|
+
endsAt: DateTime
|
|
1118
|
+
"""Filter to tiers with slotDate on or after this date."""
|
|
1119
|
+
slotDateStart: DateTime
|
|
1120
|
+
"""Filter to tiers with slotDate on or before this date."""
|
|
1121
|
+
slotDateEnd: DateTime
|
|
1122
|
+
}
|
|
1123
|
+
|
|
1124
|
+
input PartnerTicketTierUpdateInput {
|
|
1125
|
+
ticketTierUid: String!
|
|
1126
|
+
price: Int
|
|
1127
|
+
facilityFee: Int
|
|
1128
|
+
supply: Int
|
|
1129
|
+
}
|
|
1130
|
+
|
|
1131
|
+
input EditPartnerTicketTiersForMomentInput {
|
|
1132
|
+
"""Moment UID containing the ticket tiers. Provide this or momentSlug."""
|
|
1133
|
+
momentUid: String
|
|
1134
|
+
"""Moment slug containing the ticket tiers. Provide this or momentUid."""
|
|
1135
|
+
momentSlug: String
|
|
1136
|
+
updates: [PartnerTicketTierUpdateInput!]!
|
|
1137
|
+
}
|
|
1138
|
+
|
|
1139
|
+
input DynamicPricingMomentInput {
|
|
1140
|
+
momentUid: String
|
|
1141
|
+
momentSlug: String
|
|
1142
|
+
}
|
|
1143
|
+
|
|
1144
|
+
input DynamicPricingTierUpdateInput {
|
|
1145
|
+
ticketTierUid: String!
|
|
1146
|
+
newPrice: Int!
|
|
1147
|
+
expectedPrice: Int!
|
|
1148
|
+
expectedPricingContextVersion: String!
|
|
1149
|
+
inventoryGuard: DynamicPricingInventoryGuardInput!
|
|
1150
|
+
externalSignals: JSON
|
|
1151
|
+
}
|
|
1152
|
+
|
|
1153
|
+
input DynamicPricingInventoryGuardInput {
|
|
1154
|
+
mode: DynamicPricingInventoryGuardMode!
|
|
1155
|
+
metric: DynamicPricingInventoryMetric
|
|
1156
|
+
minimum: Int
|
|
1157
|
+
maximum: Int
|
|
1158
|
+
}
|
|
1159
|
+
|
|
1160
|
+
input ApplyDynamicPricingInput {
|
|
1161
|
+
momentUid: String
|
|
1162
|
+
momentSlug: String
|
|
1163
|
+
mode: DynamicPricingExecutionMode!
|
|
1164
|
+
idempotencyKey: String!
|
|
1165
|
+
policyVersion: Int!
|
|
1166
|
+
reason: String!
|
|
1167
|
+
strategyKey: String
|
|
1168
|
+
strategyVersion: String
|
|
1169
|
+
externalReference: String
|
|
1170
|
+
metadata: JSON
|
|
1171
|
+
updates: [DynamicPricingTierUpdateInput!]!
|
|
1172
|
+
}
|
|
1173
|
+
|
|
737
1174
|
input RespondToMomentLineupInput {
|
|
738
1175
|
token: String!
|
|
739
1176
|
status: MomentLineupStatus!
|
|
@@ -896,6 +1333,22 @@ type Mutation {
|
|
|
896
1333
|
"""
|
|
897
1334
|
createPartnerMoment(input: CreatePartnerMomentInput!): Moment!
|
|
898
1335
|
|
|
1336
|
+
"""
|
|
1337
|
+
Bulk edit partner-owned ticket tiers for a moment.
|
|
1338
|
+
Supports per-tier price, facility-fee, and supply updates.
|
|
1339
|
+
"""
|
|
1340
|
+
editPartnerTicketTiersForMoment(
|
|
1341
|
+
input: EditPartnerTicketTiersForMomentInput!
|
|
1342
|
+
): [PartnerTicketTier!]!
|
|
1343
|
+
|
|
1344
|
+
"""
|
|
1345
|
+
Preview or atomically apply absolute prices to explicitly selected,
|
|
1346
|
+
policy-enrolled ticket tiers.
|
|
1347
|
+
"""
|
|
1348
|
+
applyPartnerMomentDynamicPricing(
|
|
1349
|
+
input: ApplyDynamicPricingInput!
|
|
1350
|
+
): DynamicPricingBatch!
|
|
1351
|
+
|
|
899
1352
|
"""
|
|
900
1353
|
Complete a partner brand subscription that was created with requireOtpVerification=true.
|
|
901
1354
|
"""
|