From eb5217e070a5fc9300196f2c5d00665900f0e8d8 Mon Sep 17 00:00:00 2001 From: Dean Wenstrand Date: Fri, 17 Jul 2026 10:48:21 -0700 Subject: [PATCH] Add DrillResultGQL + drillResult on VideoCardFields Session card drill outcome: longest run + owner's personal-best rank (1/2/3 medal) among their sessions on the same drill + table/pocket setup. Co-Authored-By: Claude Fable 5 --- src/index.tsx | 55 +++++++++++++++++++++++++++++++++++++++++ src/operations/feed.gql | 8 ++++++ src/schema.gql | 10 ++++++++ 3 files changed, 73 insertions(+) diff --git a/src/index.tsx b/src/index.tsx index ab28aee..2feae95 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -393,6 +393,16 @@ export type DoesNotOwnShotErrOtherErrorNeedsNote = | DoesNotOwnShotErr | OtherErrorNeedsNote; +export type DrillResultGql = { + __typename?: "DrillResultGQL"; + attemptCount: Scalars["Int"]["output"]; + drillTag: Scalars["String"]["output"]; + isPersonalBest: Scalars["Boolean"]["output"]; + longestRun: Scalars["Int"]["output"]; + longestRunId?: Maybe; + prRank: Scalars["Int"]["output"]; +}; + export type DrillRunLeaderboardGql = { __typename?: "DrillRunLeaderboardGQL"; entries: Array; @@ -4155,6 +4165,7 @@ export type VideoGql = { createdAt?: Maybe; currentHomography?: Maybe; currentProcessing?: Maybe; + drillResult?: Maybe; elapsedTime?: Maybe; endTime?: Maybe; framesPerSecond: Scalars["Float"]["output"]; @@ -4795,6 +4806,15 @@ export type GetFeedQuery = { name: string; tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>; }>; + drillResult?: { + __typename?: "DrillResultGQL"; + drillTag: string; + longestRun: number; + longestRunId?: number | null; + prRank: number; + isPersonalBest: boolean; + attemptCount: number; + } | null; playerSummaries: Array<{ __typename?: "PlayerSummaryGQL"; clusterId: number; @@ -4910,6 +4930,15 @@ export type VideoCardFieldsFragment = { name: string; tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>; }>; + drillResult?: { + __typename?: "DrillResultGQL"; + drillTag: string; + longestRun: number; + longestRunId?: number | null; + prRank: number; + isPersonalBest: boolean; + attemptCount: number; + } | null; playerSummaries: Array<{ __typename?: "PlayerSummaryGQL"; clusterId: number; @@ -5058,6 +5087,15 @@ export type GetVideoFeedQuery = { name: string; tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>; }>; + drillResult?: { + __typename?: "DrillResultGQL"; + drillTag: string; + longestRun: number; + longestRunId?: number | null; + prRank: number; + isPersonalBest: boolean; + attemptCount: number; + } | null; playerSummaries: Array<{ __typename?: "PlayerSummaryGQL"; clusterId: number; @@ -8207,6 +8245,15 @@ export type GetVideoCardQuery = { name: string; tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>; }>; + drillResult?: { + __typename?: "DrillResultGQL"; + drillTag: string; + longestRun: number; + longestRunId?: number | null; + prRank: number; + isPersonalBest: boolean; + attemptCount: number; + } | null; playerSummaries: Array<{ __typename?: "PlayerSummaryGQL"; clusterId: number; @@ -9038,6 +9085,14 @@ export const VideoCardFieldsFragmentDoc = gql` name } } + drillResult { + drillTag + longestRun + longestRunId + prRank + isPersonalBest + attemptCount + } playerSummaries { ...PlayerSummaryFields } diff --git a/src/operations/feed.gql b/src/operations/feed.gql index dfc9499..db23c24 100644 --- a/src/operations/feed.gql +++ b/src/operations/feed.gql @@ -55,6 +55,14 @@ fragment VideoCardFields on VideoGQL { name } } + drillResult { + drillTag + longestRun + longestRunId + prRank + isPersonalBest + attemptCount + } playerSummaries { ...PlayerSummaryFields } diff --git a/src/schema.gql b/src/schema.gql index 8c13c59..1fd08ee 100644 --- a/src/schema.gql +++ b/src/schema.gql @@ -438,6 +438,7 @@ type VideoGQL { reactions: [ReactionGQL!]! comments: [CommentGQL!]! playerSummaries: [PlayerSummaryGQL!]! + drillResult: DrillResultGQL } type ShotGQL { @@ -721,6 +722,15 @@ type SpinTypeBreakdownGQL { follow: Int! } +type DrillResultGQL { + drillTag: String! + longestRun: Int! + longestRunId: Int + prRank: Int! + isPersonalBest: Boolean! + attemptCount: Int! +} + type DeployedConfigGQL { allowNewUsers: Boolean! firebase: Boolean!