Add playerSummaries to schema + Video fragments
All checks were successful
Tests / Tests (pull_request) Successful in 10s
All checks were successful
Tests / Tests (pull_request) Successful in 10s
Backs the multi-player vs UI: feed cards and the detail page both
read `video.playerSummaries`, a per-cluster rollup with username,
profile image, representative full-frame URL, makes/total/percentage.
- PlayerSummaryFields fragment in shooter.gql
- VideoCardFields (feed) and GetVideoDetails (detail) include
playerSummaries via the new fragment
- VideoCardFields tag selection extended to include tagClasses,
needed for the FE's player_count detection
Generated by `just gql` from the BE additions in railbird PR
dean/video-player-summaries.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
110
src/index.tsx
110
src/index.tsx
@@ -2718,6 +2718,18 @@ export type PlayerClusterShotGql = {
|
||||
shotId: Scalars["Int"]["output"];
|
||||
};
|
||||
|
||||
export type PlayerSummaryGql = {
|
||||
__typename?: "PlayerSummaryGQL";
|
||||
clusterId: Scalars["Int"]["output"];
|
||||
makePercentage: Scalars["Float"]["output"];
|
||||
profileImageUri?: Maybe<Scalars["String"]["output"]>;
|
||||
representativeFullFrameUrl?: Maybe<Scalars["String"]["output"]>;
|
||||
totalShots: Scalars["Int"]["output"];
|
||||
totalShotsMade: Scalars["Int"]["output"];
|
||||
userId?: Maybe<Scalars["Int"]["output"]>;
|
||||
username?: Maybe<Scalars["String"]["output"]>;
|
||||
};
|
||||
|
||||
export enum PocketEnum {
|
||||
Corner = "CORNER",
|
||||
Side = "SIDE",
|
||||
@@ -3557,6 +3569,7 @@ export type VideoGql = {
|
||||
medianRun?: Maybe<Scalars["Float"]["output"]>;
|
||||
name?: Maybe<Scalars["String"]["output"]>;
|
||||
owner?: Maybe<UserGql>;
|
||||
playerSummaries: Array<PlayerSummaryGql>;
|
||||
playlist?: Maybe<HlsPlaylistGql>;
|
||||
pocketSize?: Maybe<Scalars["Float"]["output"]>;
|
||||
private: Scalars["Boolean"]["output"];
|
||||
@@ -4174,7 +4187,22 @@ export type GetFeedQuery = {
|
||||
lastIntendedSegmentBound?: number | null;
|
||||
streamSegmentType: StreamSegmentTypeEnum;
|
||||
} | null;
|
||||
tags: Array<{ __typename?: "VideoTag"; name: string }>;
|
||||
tags: Array<{
|
||||
__typename?: "VideoTag";
|
||||
name: string;
|
||||
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
|
||||
}>;
|
||||
playerSummaries: Array<{
|
||||
__typename?: "PlayerSummaryGQL";
|
||||
clusterId: number;
|
||||
userId?: number | null;
|
||||
username?: string | null;
|
||||
profileImageUri?: string | null;
|
||||
representativeFullFrameUrl?: string | null;
|
||||
totalShots: number;
|
||||
totalShotsMade: number;
|
||||
makePercentage: number;
|
||||
}>;
|
||||
currentProcessing?: {
|
||||
__typename?: "VideoProcessingGQL";
|
||||
id: number;
|
||||
@@ -4259,7 +4287,22 @@ export type VideoCardFieldsFragment = {
|
||||
lastIntendedSegmentBound?: number | null;
|
||||
streamSegmentType: StreamSegmentTypeEnum;
|
||||
} | null;
|
||||
tags: Array<{ __typename?: "VideoTag"; name: string }>;
|
||||
tags: Array<{
|
||||
__typename?: "VideoTag";
|
||||
name: string;
|
||||
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
|
||||
}>;
|
||||
playerSummaries: Array<{
|
||||
__typename?: "PlayerSummaryGQL";
|
||||
clusterId: number;
|
||||
userId?: number | null;
|
||||
username?: string | null;
|
||||
profileImageUri?: string | null;
|
||||
representativeFullFrameUrl?: string | null;
|
||||
totalShots: number;
|
||||
totalShotsMade: number;
|
||||
makePercentage: number;
|
||||
}>;
|
||||
currentProcessing?: {
|
||||
__typename?: "VideoProcessingGQL";
|
||||
id: number;
|
||||
@@ -4358,7 +4401,22 @@ export type GetVideoFeedQuery = {
|
||||
lastIntendedSegmentBound?: number | null;
|
||||
streamSegmentType: StreamSegmentTypeEnum;
|
||||
} | null;
|
||||
tags: Array<{ __typename?: "VideoTag"; name: string }>;
|
||||
tags: Array<{
|
||||
__typename?: "VideoTag";
|
||||
name: string;
|
||||
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
|
||||
}>;
|
||||
playerSummaries: Array<{
|
||||
__typename?: "PlayerSummaryGQL";
|
||||
clusterId: number;
|
||||
userId?: number | null;
|
||||
username?: string | null;
|
||||
profileImageUri?: string | null;
|
||||
representativeFullFrameUrl?: string | null;
|
||||
totalShots: number;
|
||||
totalShotsMade: number;
|
||||
makePercentage: number;
|
||||
}>;
|
||||
currentProcessing?: {
|
||||
__typename?: "VideoProcessingGQL";
|
||||
id: number;
|
||||
@@ -4929,6 +4987,18 @@ export type GetRunsWithTimestampsQuery = {
|
||||
};
|
||||
};
|
||||
|
||||
export type PlayerSummaryFieldsFragment = {
|
||||
__typename?: "PlayerSummaryGQL";
|
||||
clusterId: number;
|
||||
userId?: number | null;
|
||||
username?: string | null;
|
||||
profileImageUri?: string | null;
|
||||
representativeFullFrameUrl?: string | null;
|
||||
totalShots: number;
|
||||
totalShotsMade: number;
|
||||
makePercentage: number;
|
||||
};
|
||||
|
||||
export type PlayerClusterShotFieldsFragment = {
|
||||
__typename?: "PlayerClusterShotGQL";
|
||||
shotId: number;
|
||||
@@ -5955,6 +6025,17 @@ export type GetVideoDetailsQuery = {
|
||||
name: string;
|
||||
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
|
||||
}>;
|
||||
playerSummaries: Array<{
|
||||
__typename?: "PlayerSummaryGQL";
|
||||
clusterId: number;
|
||||
userId?: number | null;
|
||||
username?: string | null;
|
||||
profileImageUri?: string | null;
|
||||
representativeFullFrameUrl?: string | null;
|
||||
totalShots: number;
|
||||
totalShotsMade: number;
|
||||
makePercentage: number;
|
||||
}>;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -6612,6 +6693,18 @@ export type GetUploadStreamsWithDetailsQuery = {
|
||||
};
|
||||
};
|
||||
|
||||
export const PlayerSummaryFieldsFragmentDoc = gql`
|
||||
fragment PlayerSummaryFields on PlayerSummaryGQL {
|
||||
clusterId
|
||||
userId
|
||||
username
|
||||
profileImageUri
|
||||
representativeFullFrameUrl
|
||||
totalShots
|
||||
totalShotsMade
|
||||
makePercentage
|
||||
}
|
||||
`;
|
||||
export const UserSocialsFieldsFragmentDoc = gql`
|
||||
fragment UserSocialsFields on UserGQL {
|
||||
id
|
||||
@@ -6646,6 +6739,12 @@ export const VideoCardFieldsFragmentDoc = gql`
|
||||
pocketSize
|
||||
tags {
|
||||
name
|
||||
tagClasses {
|
||||
name
|
||||
}
|
||||
}
|
||||
playerSummaries {
|
||||
...PlayerSummaryFields
|
||||
}
|
||||
currentProcessing {
|
||||
id
|
||||
@@ -6673,6 +6772,7 @@ export const VideoCardFieldsFragmentDoc = gql`
|
||||
}
|
||||
}
|
||||
}
|
||||
${PlayerSummaryFieldsFragmentDoc}
|
||||
${UserSocialsFieldsFragmentDoc}
|
||||
`;
|
||||
export const MedalFieldsFragmentDoc = gql`
|
||||
@@ -12666,8 +12766,12 @@ export const GetVideoDetailsDocument = gql`
|
||||
}
|
||||
name
|
||||
}
|
||||
playerSummaries {
|
||||
...PlayerSummaryFields
|
||||
}
|
||||
}
|
||||
}
|
||||
${PlayerSummaryFieldsFragmentDoc}
|
||||
`;
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user