From dfb0e026307b11875c00e151034d58894c24cf47 Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Sun, 22 Mar 2026 11:23:11 -0700 Subject: [PATCH] Add manual entitlement GraphQL schema fields --- src/index.tsx | 24 ++++++++++++++++++++++++ src/schema.gql | 18 ++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/src/index.tsx b/src/index.tsx index faa29f4..441158d 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -316,6 +316,13 @@ export type EditableShotFieldInputGql = { targetPocketAngleDirection?: InputMaybe; }; +export enum EntitlementSourceTypeEnum { + Admin = "ADMIN", + AlphaLegacy = "ALPHA_LEGACY", + Manual = "MANUAL", + Stripe = "STRIPE", +} + export type EnumAggregation = { feature: Scalars["String"]["input"]; }; @@ -2366,6 +2373,7 @@ export type Mutation = { getHlsInitUploadLink: GetUploadLinkReturn; getProfileImageUploadLink: GetProfileUploadLinkReturn; getUploadLink: GetUploadLinkReturn; + grantManualEntitlement: UserSubscriptionStatusGql; inviteUsersToChallenge: Array; markAllNotificationsAsRead: Scalars["Boolean"]["output"]; markNotificationAsRead: Scalars["Boolean"]["output"]; @@ -2375,6 +2383,7 @@ export type Mutation = { reportContent: Scalars["Boolean"]["output"]; respondToChallengeInvitation: ChallengeInvitation; retireTags: Scalars["Boolean"]["output"]; + revokeManualEntitlement: UserSubscriptionStatusGql; setLoggerLevel: Scalars["Boolean"]["output"]; setSegmentDuration: Scalars["Boolean"]["output"]; startChallenge: ChallengeEntry; @@ -2504,6 +2513,14 @@ export type MutationGetUploadLinkArgs = { videoId: Scalars["Int"]["input"]; }; +export type MutationGrantManualEntitlementArgs = { + endsAt?: InputMaybe; + reason?: InputMaybe; + startsAt?: InputMaybe; + tierName?: Scalars["String"]["input"]; + userId: Scalars["Int"]["input"]; +}; + export type MutationInviteUsersToChallengeArgs = { challengeId: Scalars["ID"]["input"]; userIds: Array; @@ -2541,6 +2558,10 @@ export type MutationRetireTagsArgs = { tagIds: Array; }; +export type MutationRevokeManualEntitlementArgs = { + userId: Scalars["Int"]["input"]; +}; + export type MutationSetLoggerLevelArgs = { level: Scalars["String"]["input"]; path: Scalars["String"]["input"]; @@ -3395,6 +3416,9 @@ export type UserSubscriptionStatusGql = { __typename?: "UserSubscriptionStatusGQL"; currentPeriodEnd?: Maybe; currentPeriodStart?: Maybe; + entitlementEndsAt?: Maybe; + entitlementSource?: Maybe; + entitlementStartsAt?: Maybe; hasActiveSubscription: Scalars["Boolean"]["output"]; stripePriceId?: Maybe; stripeSubscriptionId?: Maybe; diff --git a/src/schema.gql b/src/schema.gql index e6bf3aa..ff19f88 100644 --- a/src/schema.gql +++ b/src/schema.gql @@ -961,6 +961,9 @@ type StripePriceGQL { type UserSubscriptionStatusGQL { hasActiveSubscription: Boolean! + entitlementSource: EntitlementSourceTypeEnum + entitlementStartsAt: DateTime + entitlementEndsAt: DateTime subscriptionStatus: StripeSubscriptionStatusEnum currentPeriodStart: DateTime currentPeriodEnd: DateTime @@ -969,6 +972,13 @@ type UserSubscriptionStatusGQL { stripeSubscriptionId: String } +enum EntitlementSourceTypeEnum { + ADMIN + MANUAL + STRIPE + ALPHA_LEGACY +} + enum StripeSubscriptionStatusEnum { INCOMPLETE INCOMPLETE_EXPIRED @@ -1088,6 +1098,14 @@ type Mutation { deleteUser: Boolean! createSubscription(priceId: String!): CreateSubscriptionResultGQL! cancelSubscription: UserSubscriptionStatusGQL! + grantManualEntitlement( + userId: Int! + tierName: String! = "pro" + startsAt: DateTime = null + endsAt: DateTime = null + reason: String = null + ): UserSubscriptionStatusGQL! + revokeManualEntitlement(userId: Int!): UserSubscriptionStatusGQL! submitCancellationFeedback( reasons: [CancellationReasonEnum!] = null feedback: String = null