Compare commits

...

2 Commits

Author SHA1 Message Date
deb724b430 Add quota bucket status fields
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2026-05-25 16:26:57 -07:00
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
3 changed files with 41 additions and 0 deletions

View File

@@ -2701,9 +2701,11 @@ export type PlayerClusterGql = {
clusterId: Scalars["Int"]["output"];
confirmed: Scalars["Boolean"]["output"];
nShots: Scalars["Int"]["output"];
profileImageUri?: Maybe<Scalars["String"]["output"]>;
score?: Maybe<Scalars["Int"]["output"]>;
shots: Array<PlayerClusterShotGql>;
userId?: Maybe<Scalars["Int"]["output"]>;
username?: Maybe<Scalars["String"]["output"]>;
videoId: Scalars["Int"]["output"];
};
@@ -3021,15 +3023,29 @@ export type QueryWaitForArgs = {
duration: Scalars["Float"]["input"];
};
export type QuotaBucketStatusGql = {
__typename?: "QuotaBucketStatusGQL";
appliesToUploadKind: Scalars["String"]["output"];
canUpload: Scalars["Boolean"]["output"];
durationLimitSeconds?: Maybe<Scalars["Int"]["output"]>;
durationRemainingSeconds?: Maybe<Scalars["Float"]["output"]>;
durationUsedSeconds: Scalars["Float"]["output"];
periodEnd: Scalars["DateTime"]["output"];
periodStart: Scalars["DateTime"]["output"];
quotaKey: Scalars["String"]["output"];
};
export type QuotaStatusGql = {
__typename?: "QuotaStatusGQL";
canUpload: Scalars["Boolean"]["output"];
durationLimitSeconds?: Maybe<Scalars["Int"]["output"]>;
durationRemainingSeconds?: Maybe<Scalars["Float"]["output"]>;
durationUsedSeconds: Scalars["Float"]["output"];
importQuotaBuckets: Array<QuotaBucketStatusGql>;
maxVideoDurationSeconds?: Maybe<Scalars["Int"]["output"]>;
periodEnd: Scalars["DateTime"]["output"];
periodStart: Scalars["DateTime"]["output"];
recordingQuotaBuckets: Array<QuotaBucketStatusGql>;
tierName: Scalars["String"]["output"];
};
@@ -5040,6 +5056,8 @@ export type PlayerClusterFieldsFragment = {
clusterId: number;
nShots: number;
userId?: number | null;
username?: string | null;
profileImageUri?: string | null;
confirmed: boolean;
score?: number | null;
shots: Array<{
@@ -5068,6 +5086,8 @@ export type VideoPlayerClustersQuery = {
clusterId: number;
nShots: number;
userId?: number | null;
username?: string | null;
profileImageUri?: string | null;
confirmed: boolean;
score?: number | null;
shots: Array<{
@@ -5097,6 +5117,8 @@ export type FinalizePlayerAssignmentsMutation = {
clusterId: number;
nShots: number;
userId?: number | null;
username?: string | null;
profileImageUri?: string | null;
confirmed: boolean;
score?: number | null;
shots: Array<{
@@ -6874,6 +6896,8 @@ export const PlayerClusterFieldsFragmentDoc = gql`
clusterId
nShots
userId
username
profileImageUri
confirmed
score
shots {

View File

@@ -30,6 +30,8 @@ fragment PlayerClusterFields on PlayerClusterGQL {
clusterId
nShots
userId
username
profileImageUri
confirmed
score
shots {

View File

@@ -882,6 +882,8 @@ type PlayerClusterGQL {
clusterId: Int!
nShots: Int!
userId: Int
username: String
profileImageUri: String
confirmed: Boolean!
score: Int
shots: [PlayerClusterShotGQL!]!
@@ -1038,6 +1040,19 @@ type QuotaStatusGQL {
durationUsedSeconds: Float!
durationLimitSeconds: Int
maxVideoDurationSeconds: Int
importQuotaBuckets: [QuotaBucketStatusGQL!]!
recordingQuotaBuckets: [QuotaBucketStatusGQL!]!
durationRemainingSeconds: Float
canUpload: Boolean!
}
type QuotaBucketStatusGQL {
quotaKey: String!
appliesToUploadKind: String!
periodStart: DateTime!
periodEnd: DateTime!
durationUsedSeconds: Float!
durationLimitSeconds: Int
durationRemainingSeconds: Float
canUpload: Boolean!
}