Compare commits

...

2 Commits

Author SHA1 Message Date
Dean Wenstrand
eb5217e070 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 <noreply@anthropic.com>
2026-07-17 10:48:21 -07:00
bfaed33c89 Merge pull request 'feed: select uploadCompletionCursor on VideoCardFields stream' (#296) from dean/feed-upload-completion-cursor into master
Reviewed-on: #296
2026-07-14 18:24:54 +00:00
3 changed files with 73 additions and 0 deletions

View File

@@ -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<Scalars["Int"]["output"]>;
prRank: Scalars["Int"]["output"];
};
export type DrillRunLeaderboardGql = {
__typename?: "DrillRunLeaderboardGQL";
entries: Array<RunGql>;
@@ -4155,6 +4165,7 @@ export type VideoGql = {
createdAt?: Maybe<Scalars["DateTime"]["output"]>;
currentHomography?: Maybe<HomographyInfoGql>;
currentProcessing?: Maybe<VideoProcessingGql>;
drillResult?: Maybe<DrillResultGql>;
elapsedTime?: Maybe<Scalars["Float"]["output"]>;
endTime?: Maybe<Scalars["DateTime"]["output"]>;
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
}

View File

@@ -55,6 +55,14 @@ fragment VideoCardFields on VideoGQL {
name
}
}
drillResult {
drillTag
longestRun
longestRunId
prRank
isPersonalBest
attemptCount
}
playerSummaries {
...PlayerSummaryFields
}

View File

@@ -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!