From 238ade13849f7153b05c9697ba92c3ef0c05cfd7 Mon Sep 17 00:00:00 2001 From: Loewy Date: Wed, 5 Aug 2026 12:08:51 -0700 Subject: [PATCH] Add Session Coach generation status query --- src/index.tsx | 122 +++++++++++++++++++++++++++++++ src/operations/session-coach.gql | 16 ++++ src/schema.gql | 15 ++++ 3 files changed, 153 insertions(+) diff --git a/src/index.tsx b/src/index.tsx index da1a932..f268c40 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -3132,6 +3132,7 @@ export type Query = { getResolvedTier: ResolvedTierGql; getRuns: GetRunsResult; getSessionCoach: SessionCoachGql; + getSessionCoachGenerationStatus?: Maybe; getShotAnnotationTypes: Array; getShotTableState: ShotTableStateGql; getShots: Array; @@ -3293,6 +3294,11 @@ export type QueryGetSessionCoachArgs = { videoId: Scalars["Int"]["input"]; }; +export type QueryGetSessionCoachGenerationStatusArgs = { + generationId: Scalars["ID"]["input"]; + videoId: Scalars["Int"]["input"]; +}; + export type QueryGetShotAnnotationTypesArgs = { errorTypes?: InputMaybe; }; @@ -3772,6 +3778,18 @@ export enum SessionCoachGenerationStateEnum { Running = "RUNNING", } +export type SessionCoachGenerationStatusGql = { + __typename?: "SessionCoachGenerationStatusGQL"; + completedAt?: Maybe; + createdAt: Scalars["DateTime"]["output"]; + enqueueCount: Scalars["Int"]["output"]; + id: Scalars["ID"]["output"]; + lastEnqueuedAt?: Maybe; + startedAt?: Maybe; + state: SessionCoachGenerationStateEnum; + updatedAt: Scalars["DateTime"]["output"]; +}; + export enum SessionCoachIneligibilityReasonEnum { Multiplayer = "MULTIPLAYER", } @@ -7238,6 +7256,26 @@ export type GetSessionCoachQuery = { }; }; +export type GetSessionCoachGenerationStatusQueryVariables = Exact<{ + videoId: Scalars["Int"]["input"]; + generationId: Scalars["ID"]["input"]; +}>; + +export type GetSessionCoachGenerationStatusQuery = { + __typename?: "Query"; + getSessionCoachGenerationStatus?: { + __typename?: "SessionCoachGenerationStatusGQL"; + id: string; + state: SessionCoachGenerationStateEnum; + createdAt: any; + updatedAt: any; + startedAt?: any | null; + lastEnqueuedAt?: any | null; + enqueueCount: number; + completedAt?: any | null; + } | null; +}; + export type RequestSessionCoachGenerationMutationVariables = Exact<{ videoId: Scalars["Int"]["input"]; }>; @@ -15923,6 +15961,90 @@ export type GetSessionCoachQueryResult = Apollo.QueryResult< GetSessionCoachQuery, GetSessionCoachQueryVariables >; +export const GetSessionCoachGenerationStatusDocument = gql` + query GetSessionCoachGenerationStatus($videoId: Int!, $generationId: ID!) { + getSessionCoachGenerationStatus( + videoId: $videoId + generationId: $generationId + ) { + id + state + createdAt + updatedAt + startedAt + lastEnqueuedAt + enqueueCount + completedAt + } + } +`; + +/** + * __useGetSessionCoachGenerationStatusQuery__ + * + * To run a query within a React component, call `useGetSessionCoachGenerationStatusQuery` and pass it any options that fit your needs. + * When your component renders, `useGetSessionCoachGenerationStatusQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetSessionCoachGenerationStatusQuery({ + * variables: { + * videoId: // value for 'videoId' + * generationId: // value for 'generationId' + * }, + * }); + */ +export function useGetSessionCoachGenerationStatusQuery( + baseOptions: Apollo.QueryHookOptions< + GetSessionCoachGenerationStatusQuery, + GetSessionCoachGenerationStatusQueryVariables + >, +) { + const options = { ...defaultOptions, ...baseOptions }; + return Apollo.useQuery< + GetSessionCoachGenerationStatusQuery, + GetSessionCoachGenerationStatusQueryVariables + >(GetSessionCoachGenerationStatusDocument, options); +} +export function useGetSessionCoachGenerationStatusLazyQuery( + baseOptions?: Apollo.LazyQueryHookOptions< + GetSessionCoachGenerationStatusQuery, + GetSessionCoachGenerationStatusQueryVariables + >, +) { + const options = { ...defaultOptions, ...baseOptions }; + return Apollo.useLazyQuery< + GetSessionCoachGenerationStatusQuery, + GetSessionCoachGenerationStatusQueryVariables + >(GetSessionCoachGenerationStatusDocument, options); +} +export function useGetSessionCoachGenerationStatusSuspenseQuery( + baseOptions?: Apollo.SuspenseQueryHookOptions< + GetSessionCoachGenerationStatusQuery, + GetSessionCoachGenerationStatusQueryVariables + >, +) { + const options = { ...defaultOptions, ...baseOptions }; + return Apollo.useSuspenseQuery< + GetSessionCoachGenerationStatusQuery, + GetSessionCoachGenerationStatusQueryVariables + >(GetSessionCoachGenerationStatusDocument, options); +} +export type GetSessionCoachGenerationStatusQueryHookResult = ReturnType< + typeof useGetSessionCoachGenerationStatusQuery +>; +export type GetSessionCoachGenerationStatusLazyQueryHookResult = ReturnType< + typeof useGetSessionCoachGenerationStatusLazyQuery +>; +export type GetSessionCoachGenerationStatusSuspenseQueryHookResult = ReturnType< + typeof useGetSessionCoachGenerationStatusSuspenseQuery +>; +export type GetSessionCoachGenerationStatusQueryResult = Apollo.QueryResult< + GetSessionCoachGenerationStatusQuery, + GetSessionCoachGenerationStatusQueryVariables +>; export const RequestSessionCoachGenerationDocument = gql` mutation RequestSessionCoachGeneration($videoId: Int!) { requestSessionCoachGeneration(videoId: $videoId) { diff --git a/src/operations/session-coach.gql b/src/operations/session-coach.gql index 11b824d..79bdc03 100644 --- a/src/operations/session-coach.gql +++ b/src/operations/session-coach.gql @@ -36,6 +36,22 @@ query GetSessionCoach($videoId: Int!) { } } +query GetSessionCoachGenerationStatus($videoId: Int!, $generationId: ID!) { + getSessionCoachGenerationStatus( + videoId: $videoId + generationId: $generationId + ) { + id + state + createdAt + updatedAt + startedAt + lastEnqueuedAt + enqueueCount + completedAt + } +} + mutation RequestSessionCoachGeneration($videoId: Int!) { requestSessionCoachGeneration(videoId: $videoId) { state diff --git a/src/schema.gql b/src/schema.gql index a028fc9..c46b2b5 100644 --- a/src/schema.gql +++ b/src/schema.gql @@ -1081,6 +1081,10 @@ type Query { limit: Int! = 500 countRespectsLimit: Boolean! = false ): GetRunsResult! + getSessionCoachGenerationStatus( + videoId: Int! + generationId: ID! + ): SessionCoachGenerationStatusGQL getSessionCoach(videoId: Int!): SessionCoachGQL! videoPlayerClusters(videoId: Int!): [PlayerClusterGQL!]! getShotAnnotationTypes(errorTypes: Boolean = false): [ShotAnnotationTypeGQL!]! @@ -1473,6 +1477,17 @@ enum SessionCoachGenerationStateEnum { FAILED } +type SessionCoachGenerationStatusGQL { + id: ID! + state: SessionCoachGenerationStateEnum! + createdAt: DateTime! + updatedAt: DateTime! + startedAt: DateTime + lastEnqueuedAt: DateTime + enqueueCount: Int! + completedAt: DateTime +} + enum SessionCoachIneligibilityReasonEnum { MULTIPLAYER }