Compare commits

..

2 Commits

Author SHA1 Message Date
61799bd4de Add Apple IAP product config to subscription options
All checks were successful
Tests / Tests (pull_request) Successful in 10s
2026-06-16 14:22:35 -07:00
113a2e457c Add Apple subscription mobile operations 2026-06-16 14:22:35 -07:00
7 changed files with 13 additions and 121 deletions

View File

@@ -83,7 +83,6 @@ export type AppleIapSubscriptionOptionsGql = {
__typename?: "AppleIapSubscriptionOptionsGQL";
enabled: Scalars["Boolean"]["output"];
proMonthlyProductId?: Maybe<Scalars["String"]["output"]>;
productIds: Array<Scalars["String"]["output"]>;
};
export type BankFeaturesGql = {
@@ -327,7 +326,6 @@ export type EditShotReturn = {
export type EditUserInputGql = {
agreesToMarketing?: InputMaybe<Scalars["Boolean"]["input"]>;
bio?: InputMaybe<Scalars["String"]["input"]>;
fargoRating?: InputMaybe<Scalars["Int"]["input"]>;
username?: InputMaybe<Scalars["String"]["input"]>;
videosPrivateByDefault?: InputMaybe<Scalars["Boolean"]["input"]>;
@@ -2756,7 +2754,6 @@ export type PlayerSummaryGql = {
representativeFullFrameUrl?: Maybe<Scalars["String"]["output"]>;
runLengths: Array<Scalars["Int"]["output"]>;
score?: Maybe<Scalars["Int"]["output"]>;
spinTypeBreakdown: SpinTypeBreakdownGql;
totalShots: Scalars["Int"]["output"];
totalShotsMade: Scalars["Int"]["output"];
userId?: Maybe<Scalars["Int"]["output"]>;
@@ -3348,13 +3345,6 @@ export type ShotsOrderingComponent =
videoId: IntOrdering;
};
export type SpinTypeBreakdownGql = {
__typename?: "SpinTypeBreakdownGQL";
center: Scalars["Int"]["output"];
draw: Scalars["Int"]["output"];
follow: Scalars["Int"]["output"];
};
export type SpinTypeCountsGql = {
__typename?: "SpinTypeCountsGQL";
center: Scalars["Int"]["output"];
@@ -3541,7 +3531,6 @@ export type UploadStreamGql = {
initPlaylistUploadStatus?: Maybe<InitPlaylistUploadStatusEnum>;
isCompleted: Scalars["Boolean"]["output"];
lastIntendedSegmentBound?: Maybe<Scalars["Int"]["output"]>;
lastSegmentUploadedAt?: Maybe<Scalars["DateTime"]["output"]>;
linksRequested: Scalars["Int"]["output"];
lowestUnuploadedSegmentIndex: Scalars["Int"]["output"];
resolution: VideoResolutionGql;
@@ -3558,7 +3547,6 @@ export type UserGql = {
__typename?: "UserGQL";
activeVideoId?: Maybe<Scalars["Int"]["output"]>;
agreesToMarketing?: Maybe<Scalars["Boolean"]["output"]>;
bio?: Maybe<Scalars["String"]["output"]>;
createdAt?: Maybe<Scalars["DateTime"]["output"]>;
fargoRating?: Maybe<Scalars["Int"]["output"]>;
firebaseUid?: Maybe<Scalars["String"]["output"]>;
@@ -3683,7 +3671,6 @@ export type VideoGql = {
export type VideoHistoryGql = {
__typename?: "VideoHistoryGQL";
followingCount: Scalars["Int"]["output"];
hasFollowing: Scalars["Boolean"]["output"];
pageInfo: PageInfoGql;
videos: Array<VideoGql>;
@@ -4284,8 +4271,6 @@ export type GetFeedQuery = {
id: string;
lastIntendedSegmentBound?: number | null;
streamSegmentType: StreamSegmentTypeEnum;
isCompleted: boolean;
lastSegmentUploadedAt?: any | null;
} | null;
tags: Array<{
__typename?: "VideoTag";
@@ -4307,12 +4292,6 @@ export type GetFeedQuery = {
runLengths: Array<number>;
averageDifficulty?: number | null;
averageTimeBetweenShots?: number | null;
spinTypeBreakdown: {
__typename?: "SpinTypeBreakdownGQL";
draw: number;
center: number;
follow: number;
};
}>;
currentProcessing?: {
__typename?: "VideoProcessingGQL";
@@ -4397,8 +4376,6 @@ export type VideoCardFieldsFragment = {
id: string;
lastIntendedSegmentBound?: number | null;
streamSegmentType: StreamSegmentTypeEnum;
isCompleted: boolean;
lastSegmentUploadedAt?: any | null;
} | null;
tags: Array<{
__typename?: "VideoTag";
@@ -4420,12 +4397,6 @@ export type VideoCardFieldsFragment = {
runLengths: Array<number>;
averageDifficulty?: number | null;
averageTimeBetweenShots?: number | null;
spinTypeBreakdown: {
__typename?: "SpinTypeBreakdownGQL";
draw: number;
center: number;
follow: number;
};
}>;
currentProcessing?: {
__typename?: "VideoProcessingGQL";
@@ -4517,7 +4488,6 @@ export type GetVideoFeedQuery = {
getFeedVideos: {
__typename?: "VideoHistoryGQL";
hasFollowing: boolean;
followingCount: number;
videos: Array<{
__typename?: "VideoGQL";
id: number;
@@ -4543,8 +4513,6 @@ export type GetVideoFeedQuery = {
id: string;
lastIntendedSegmentBound?: number | null;
streamSegmentType: StreamSegmentTypeEnum;
isCompleted: boolean;
lastSegmentUploadedAt?: any | null;
} | null;
tags: Array<{
__typename?: "VideoTag";
@@ -4566,12 +4534,6 @@ export type GetVideoFeedQuery = {
runLengths: Array<number>;
averageDifficulty?: number | null;
averageTimeBetweenShots?: number | null;
spinTypeBreakdown: {
__typename?: "SpinTypeBreakdownGQL";
draw: number;
center: number;
follow: number;
};
}>;
currentProcessing?: {
__typename?: "VideoProcessingGQL";
@@ -4700,7 +4662,6 @@ export type GetDrillRunLeaderboardQuery = {
__typename?: "VideoGQL";
tableSize: number;
pocketSize?: number | null;
createdAt?: any | null;
};
user: {
__typename?: "UserGQL";
@@ -5051,6 +5012,11 @@ export type GetAvailableSubscriptionOptionsQuery = {
getAvailableSubscriptionOptions: {
__typename?: "StripeSubscriptionOptionsGQL";
trialPeriodDays?: number | null;
appleIap: {
__typename?: "AppleIapSubscriptionOptionsGQL";
enabled: boolean;
proMonthlyProductId?: string | null;
};
products: Array<{
__typename?: "StripeProductGQL";
id: string;
@@ -5068,12 +5034,6 @@ export type GetAvailableSubscriptionOptionsQuery = {
active: boolean;
}>;
}>;
appleIap: {
__typename?: "AppleIapSubscriptionOptionsGQL";
enabled: boolean;
proMonthlyProductId?: string | null;
productIds: Array<string>;
};
};
};
@@ -5261,12 +5221,6 @@ export type PlayerSummaryFieldsFragment = {
runLengths: Array<number>;
averageDifficulty?: number | null;
averageTimeBetweenShots?: number | null;
spinTypeBreakdown: {
__typename?: "SpinTypeBreakdownGQL";
draw: number;
center: number;
follow: number;
};
};
export type PlayerClusterShotFieldsFragment = {
@@ -5949,7 +5903,6 @@ export type EditProfileImageUriMutation = {
username: string;
isAdmin?: boolean | null;
profileImageUri?: string | null;
bio?: string | null;
fargoRating?: number | null;
activeVideoId?: number | null;
createdAt?: any | null;
@@ -5970,7 +5923,6 @@ export type GetLoggedInUserQuery = {
username: string;
isAdmin?: boolean | null;
profileImageUri?: string | null;
bio?: string | null;
fargoRating?: number | null;
activeVideoId?: number | null;
createdAt?: any | null;
@@ -5993,7 +5945,6 @@ export type GetUserQuery = {
username: string;
isAdmin?: boolean | null;
profileImageUri?: string | null;
bio?: string | null;
fargoRating?: number | null;
activeVideoId?: number | null;
createdAt?: any | null;
@@ -6183,7 +6134,6 @@ export type EditUserMutationVariables = Exact<{
fargoRating?: InputMaybe<Scalars["Int"]["input"]>;
videosPrivateByDefault?: InputMaybe<Scalars["Boolean"]["input"]>;
agreesToMarketing?: InputMaybe<Scalars["Boolean"]["input"]>;
bio?: InputMaybe<Scalars["String"]["input"]>;
}>;
export type EditUserMutation = {
@@ -6197,7 +6147,6 @@ export type EditUserMutation = {
updatedAt?: any | null;
videosPrivateByDefault?: boolean | null;
agreesToMarketing?: boolean | null;
bio?: string | null;
};
};
@@ -6215,7 +6164,6 @@ export type UserFragmentFragment = {
username: string;
isAdmin?: boolean | null;
profileImageUri?: string | null;
bio?: string | null;
fargoRating?: number | null;
activeVideoId?: number | null;
createdAt?: any | null;
@@ -6239,7 +6187,6 @@ export type GetUsersMatchingQuery = {
username: string;
isAdmin?: boolean | null;
profileImageUri?: string | null;
bio?: string | null;
fargoRating?: number | null;
activeVideoId?: number | null;
createdAt?: any | null;
@@ -6400,12 +6347,6 @@ export type GetVideoDetailsQuery = {
runLengths: Array<number>;
averageDifficulty?: number | null;
averageTimeBetweenShots?: number | null;
spinTypeBreakdown: {
__typename?: "SpinTypeBreakdownGQL";
draw: number;
center: number;
follow: number;
};
}>;
};
};
@@ -6505,8 +6446,6 @@ export type GetVideoCardQuery = {
id: string;
lastIntendedSegmentBound?: number | null;
streamSegmentType: StreamSegmentTypeEnum;
isCompleted: boolean;
lastSegmentUploadedAt?: any | null;
} | null;
tags: Array<{
__typename?: "VideoTag";
@@ -6528,12 +6467,6 @@ export type GetVideoCardQuery = {
runLengths: Array<number>;
averageDifficulty?: number | null;
averageTimeBetweenShots?: number | null;
spinTypeBreakdown: {
__typename?: "SpinTypeBreakdownGQL";
draw: number;
center: number;
follow: number;
};
}>;
currentProcessing?: {
__typename?: "VideoProcessingGQL";
@@ -7182,11 +7115,6 @@ export const PlayerSummaryFieldsFragmentDoc = gql`
score
longestRun
runLengths
spinTypeBreakdown {
draw
center
follow
}
averageDifficulty
averageTimeBetweenShots
}
@@ -7220,8 +7148,6 @@ export const VideoCardFieldsFragmentDoc = gql`
id
lastIntendedSegmentBound
streamSegmentType
isCompleted
lastSegmentUploadedAt
}
tableSize
pocketSize
@@ -7423,7 +7349,6 @@ export const UserFragmentFragmentDoc = gql`
username
isAdmin
profileImageUri
bio
fargoRating
activeVideoId
createdAt
@@ -9547,7 +9472,6 @@ export const GetVideoFeedDocument = gql`
endCursor
}
hasFollowing
followingCount
}
}
${VideoCardFieldsFragmentDoc}
@@ -9818,7 +9742,6 @@ export const GetDrillRunLeaderboardDocument = gql`
video {
tableSize
pocketSize
createdAt
}
user {
id
@@ -10714,6 +10637,10 @@ export const GetAvailableSubscriptionOptionsDocument = gql`
query GetAvailableSubscriptionOptions {
getAvailableSubscriptionOptions {
trialPeriodDays
appleIap {
enabled
proMonthlyProductId
}
products {
id
name
@@ -10729,11 +10656,6 @@ export const GetAvailableSubscriptionOptionsDocument = gql`
active
}
}
appleIap {
enabled
proMonthlyProductId
productIds
}
}
}
`;
@@ -13427,7 +13349,6 @@ export const EditUserDocument = gql`
$fargoRating: Int
$videosPrivateByDefault: Boolean
$agreesToMarketing: Boolean
$bio: String
) {
editUser(
input: {
@@ -13435,7 +13356,6 @@ export const EditUserDocument = gql`
fargoRating: $fargoRating
videosPrivateByDefault: $videosPrivateByDefault
agreesToMarketing: $agreesToMarketing
bio: $bio
}
) {
id
@@ -13445,7 +13365,6 @@ export const EditUserDocument = gql`
updatedAt
videosPrivateByDefault
agreesToMarketing
bio
}
}
`;
@@ -13471,7 +13390,6 @@ export type EditUserMutationFn = Apollo.MutationFunction<
* fargoRating: // value for 'fargoRating'
* videosPrivateByDefault: // value for 'videosPrivateByDefault'
* agreesToMarketing: // value for 'agreesToMarketing'
* bio: // value for 'bio'
* },
* });
*/

View File

@@ -42,8 +42,6 @@ fragment VideoCardFields on VideoGQL {
id
lastIntendedSegmentBound
streamSegmentType
isCompleted
lastSegmentUploadedAt
}
tableSize
pocketSize
@@ -148,6 +146,5 @@ query GetVideoFeed(
endCursor
}
hasFollowing
followingCount
}
}

View File

@@ -56,7 +56,6 @@ query GetDrillRunLeaderboard(
video {
tableSize
pocketSize
createdAt
}
user {
id

View File

@@ -29,6 +29,10 @@ mutation CreateCustomerPortalSession {
query GetAvailableSubscriptionOptions {
getAvailableSubscriptionOptions {
trialPeriodDays
appleIap {
enabled
proMonthlyProductId
}
products {
id
name
@@ -44,11 +48,6 @@ query GetAvailableSubscriptionOptions {
active
}
}
appleIap {
enabled
proMonthlyProductId
productIds
}
}
}

View File

@@ -10,11 +10,6 @@ fragment PlayerSummaryFields on PlayerSummaryGQL {
score
longestRun
runLengths
spinTypeBreakdown {
draw
center
follow
}
averageDifficulty
averageTimeBetweenShots
}

View File

@@ -177,7 +177,6 @@ mutation editUser(
$fargoRating: Int
$videosPrivateByDefault: Boolean
$agreesToMarketing: Boolean
$bio: String
) {
editUser(
input: {
@@ -185,7 +184,6 @@ mutation editUser(
fargoRating: $fargoRating
videosPrivateByDefault: $videosPrivateByDefault
agreesToMarketing: $agreesToMarketing
bio: $bio
}
) {
id
@@ -195,7 +193,6 @@ mutation editUser(
updatedAt
videosPrivateByDefault
agreesToMarketing
bio
}
}
@@ -209,7 +206,6 @@ fragment UserFragment on UserGQL {
username
isAdmin
profileImageUri
bio
fargoRating
activeVideoId
createdAt

View File

@@ -356,7 +356,6 @@ type UserGQL {
activeVideoId: Int
stripeCustomerId: String
profileImageUri: String
bio: String
createdAt: DateTime
updatedAt: DateTime
videosPrivateByDefault: Boolean
@@ -530,7 +529,6 @@ type UploadStreamGQL {
initPlaylistUploadStatus: InitPlaylistUploadStatusEnum
lowestUnuploadedSegmentIndex: Int!
uploadCompletionCursor: Int!
lastSegmentUploadedAt: DateTime
errors: [StreamErrorGQL!]!
createdAt: DateTime!
updatedAt: DateTime!
@@ -691,17 +689,10 @@ type PlayerSummaryGQL {
score: Int
longestRun: Int!
runLengths: [Int!]!
spinTypeBreakdown: SpinTypeBreakdownGQL!
averageDifficulty: Float
averageTimeBetweenShots: Float
}
type SpinTypeBreakdownGQL {
draw: Int!
center: Int!
follow: Int!
}
type DeployedConfigGQL {
allowNewUsers: Boolean!
firebase: Boolean!
@@ -734,7 +725,6 @@ type VideoHistoryGQL {
videos: [VideoGQL!]!
pageInfo: PageInfoGQL!
hasFollowing: Boolean!
followingCount: Int!
}
type PageInfoGQL {
@@ -1036,7 +1026,6 @@ type StripePriceGQL {
type AppleIapSubscriptionOptionsGQL {
enabled: Boolean!
proMonthlyProductId: String
productIds: [String!]!
}
type UserSubscriptionStatusGQL {
@@ -1366,7 +1355,6 @@ input EditUserInputGQL {
fargoRating: Int = null
videosPrivateByDefault: Boolean = null
agreesToMarketing: Boolean = null
bio: String = null
}
type SyncAppleSubscriptionResultGQL {