Compare commits

..

2 Commits

Author SHA1 Message Date
Dean Wenstrand
9250e4c639 Add username + profileImageUri to PlayerClusterGQL
All checks were successful
Tests / Tests (pull_request) Successful in 9s
The labeling UI was falling back to "user N" for any assigned cluster
whose user wasn't the video owner — e.g. an admin re-labels a video
they don't own. With the resolver now resolving usernames for every
confirmed cluster, the FE can render real names regardless of who's
viewing.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 17:25:34 -07:00
Dean Wenstrand
5cf2dbaf01 Add averageDifficulty to PlayerSummaryFields
All checks were successful
Tests / Tests (pull_request) Successful in 9s
Regenerated via `just gql` after BE added average_difficulty to
PlayerSummaryGQL.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 15:34:25 -07:00
3 changed files with 32 additions and 0 deletions

View File

@@ -2701,9 +2701,11 @@ export type PlayerClusterGql = {
clusterId: Scalars["Int"]["output"]; clusterId: Scalars["Int"]["output"];
confirmed: Scalars["Boolean"]["output"]; confirmed: Scalars["Boolean"]["output"];
nShots: Scalars["Int"]["output"]; nShots: Scalars["Int"]["output"];
profileImageUri?: Maybe<Scalars["String"]["output"]>;
score?: Maybe<Scalars["Int"]["output"]>; score?: Maybe<Scalars["Int"]["output"]>;
shots: Array<PlayerClusterShotGql>; shots: Array<PlayerClusterShotGql>;
userId?: Maybe<Scalars["Int"]["output"]>; userId?: Maybe<Scalars["Int"]["output"]>;
username?: Maybe<Scalars["String"]["output"]>;
videoId: Scalars["Int"]["output"]; videoId: Scalars["Int"]["output"];
}; };
@@ -2722,6 +2724,8 @@ export type PlayerClusterShotGql = {
export type PlayerSummaryGql = { export type PlayerSummaryGql = {
__typename?: "PlayerSummaryGQL"; __typename?: "PlayerSummaryGQL";
averageDifficulty?: Maybe<Scalars["Float"]["output"]>;
averageTimeBetweenShots?: Maybe<Scalars["Float"]["output"]>;
clusterId: Scalars["Int"]["output"]; clusterId: Scalars["Int"]["output"];
longestRun: Scalars["Int"]["output"]; longestRun: Scalars["Int"]["output"];
makePercentage: Scalars["Float"]["output"]; makePercentage: Scalars["Float"]["output"];
@@ -4208,6 +4212,8 @@ export type GetFeedQuery = {
makePercentage: number; makePercentage: number;
score?: number | null; score?: number | null;
longestRun: number; longestRun: number;
averageDifficulty?: number | null;
averageTimeBetweenShots?: number | null;
}>; }>;
currentProcessing?: { currentProcessing?: {
__typename?: "VideoProcessingGQL"; __typename?: "VideoProcessingGQL";
@@ -4310,6 +4316,8 @@ export type VideoCardFieldsFragment = {
makePercentage: number; makePercentage: number;
score?: number | null; score?: number | null;
longestRun: number; longestRun: number;
averageDifficulty?: number | null;
averageTimeBetweenShots?: number | null;
}>; }>;
currentProcessing?: { currentProcessing?: {
__typename?: "VideoProcessingGQL"; __typename?: "VideoProcessingGQL";
@@ -4426,6 +4434,8 @@ export type GetVideoFeedQuery = {
makePercentage: number; makePercentage: number;
score?: number | null; score?: number | null;
longestRun: number; longestRun: number;
averageDifficulty?: number | null;
averageTimeBetweenShots?: number | null;
}>; }>;
currentProcessing?: { currentProcessing?: {
__typename?: "VideoProcessingGQL"; __typename?: "VideoProcessingGQL";
@@ -5009,6 +5019,8 @@ export type PlayerSummaryFieldsFragment = {
makePercentage: number; makePercentage: number;
score?: number | null; score?: number | null;
longestRun: number; longestRun: number;
averageDifficulty?: number | null;
averageTimeBetweenShots?: number | null;
}; };
export type PlayerClusterShotFieldsFragment = { export type PlayerClusterShotFieldsFragment = {
@@ -5030,6 +5042,8 @@ export type PlayerClusterFieldsFragment = {
clusterId: number; clusterId: number;
nShots: number; nShots: number;
userId?: number | null; userId?: number | null;
username?: string | null;
profileImageUri?: string | null;
confirmed: boolean; confirmed: boolean;
score?: number | null; score?: number | null;
shots: Array<{ shots: Array<{
@@ -5058,6 +5072,8 @@ export type VideoPlayerClustersQuery = {
clusterId: number; clusterId: number;
nShots: number; nShots: number;
userId?: number | null; userId?: number | null;
username?: string | null;
profileImageUri?: string | null;
confirmed: boolean; confirmed: boolean;
score?: number | null; score?: number | null;
shots: Array<{ shots: Array<{
@@ -5087,6 +5103,8 @@ export type FinalizePlayerAssignmentsMutation = {
clusterId: number; clusterId: number;
nShots: number; nShots: number;
userId?: number | null; userId?: number | null;
username?: string | null;
profileImageUri?: string | null;
confirmed: boolean; confirmed: boolean;
score?: number | null; score?: number | null;
shots: Array<{ shots: Array<{
@@ -6052,6 +6070,8 @@ export type GetVideoDetailsQuery = {
makePercentage: number; makePercentage: number;
score?: number | null; score?: number | null;
longestRun: number; longestRun: number;
averageDifficulty?: number | null;
averageTimeBetweenShots?: number | null;
}>; }>;
}; };
}; };
@@ -6722,6 +6742,8 @@ export const PlayerSummaryFieldsFragmentDoc = gql`
makePercentage makePercentage
score score
longestRun longestRun
averageDifficulty
averageTimeBetweenShots
} }
`; `;
export const UserSocialsFieldsFragmentDoc = gql` export const UserSocialsFieldsFragmentDoc = gql`
@@ -6860,6 +6882,8 @@ export const PlayerClusterFieldsFragmentDoc = gql`
clusterId clusterId
nShots nShots
userId userId
username
profileImageUri
confirmed confirmed
score score
shots { shots {

View File

@@ -9,6 +9,8 @@ fragment PlayerSummaryFields on PlayerSummaryGQL {
makePercentage makePercentage
score score
longestRun longestRun
averageDifficulty
averageTimeBetweenShots
} }
fragment PlayerClusterShotFields on PlayerClusterShotGQL { fragment PlayerClusterShotFields on PlayerClusterShotGQL {
@@ -28,6 +30,8 @@ fragment PlayerClusterFields on PlayerClusterGQL {
clusterId clusterId
nShots nShots
userId userId
username
profileImageUri
confirmed confirmed
score score
shots { shots {

View File

@@ -677,6 +677,8 @@ type PlayerSummaryGQL {
makePercentage: Float! makePercentage: Float!
score: Int score: Int
longestRun: Int! longestRun: Int!
averageDifficulty: Float
averageTimeBetweenShots: Float
} }
type DeployedConfigGQL { type DeployedConfigGQL {
@@ -880,6 +882,8 @@ type PlayerClusterGQL {
clusterId: Int! clusterId: Int!
nShots: Int! nShots: Int!
userId: Int userId: Int
username: String
profileImageUri: String
confirmed: Boolean! confirmed: Boolean!
score: Int score: Int
shots: [PlayerClusterShotGQL!]! shots: [PlayerClusterShotGQL!]!