Compare commits
14 Commits
19bdf69830
...
dean/drill
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eb5217e070 | ||
| bfaed33c89 | |||
|
|
1ce3aaed1b | ||
| 1bd03f2bbe | |||
|
|
4a1c41aae1 | ||
|
|
4122284bbd | ||
| b30dbd01f5 | |||
| 6d13dc3eb1 | |||
| e3524cab97 | |||
| 20a70fad2a | |||
|
|
35c7c23ba9 | ||
|
|
40c4b82a59 | ||
| 9ebe2e61df | |||
| dc02fd8387 |
137
src/index.tsx
137
src/index.tsx
@@ -260,6 +260,15 @@ export type ClusterAssignmentInput = {
|
||||
userId?: InputMaybe<Scalars["Int"]["input"]>;
|
||||
};
|
||||
|
||||
export type CohortStatsGql = {
|
||||
__typename?: "CohortStatsGQL";
|
||||
activated7d: Scalars["Int"]["output"];
|
||||
activatedNotPaid7d: Scalars["Int"]["output"];
|
||||
paid7d: Scalars["Int"]["output"];
|
||||
signups: Scalars["Int"]["output"];
|
||||
weekStart: Scalars["Date"]["output"];
|
||||
};
|
||||
|
||||
export type CommentGql = {
|
||||
__typename?: "CommentGQL";
|
||||
id: Scalars["Int"]["output"];
|
||||
@@ -384,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>;
|
||||
@@ -3993,6 +4012,7 @@ export type UsageStatsDailyGql = {
|
||||
|
||||
export type UsageStatsGql = {
|
||||
__typename?: "UsageStatsGQL";
|
||||
cohorts: Array<CohortStatsGql>;
|
||||
daily: Array<UsageStatsDailyGql>;
|
||||
funnel: FunnelStatsGql;
|
||||
processingLast24h: Array<ProcessingStatusCountGql>;
|
||||
@@ -4145,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"];
|
||||
@@ -4774,6 +4795,7 @@ export type GetFeedQuery = {
|
||||
__typename?: "UploadStreamGQL";
|
||||
id: string;
|
||||
lastIntendedSegmentBound?: number | null;
|
||||
uploadCompletionCursor: number;
|
||||
streamSegmentType: StreamSegmentTypeEnum;
|
||||
isCompleted: boolean;
|
||||
lastSegmentUploadedAt?: any | null;
|
||||
@@ -4784,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;
|
||||
@@ -4888,6 +4919,7 @@ export type VideoCardFieldsFragment = {
|
||||
__typename?: "UploadStreamGQL";
|
||||
id: string;
|
||||
lastIntendedSegmentBound?: number | null;
|
||||
uploadCompletionCursor: number;
|
||||
streamSegmentType: StreamSegmentTypeEnum;
|
||||
isCompleted: boolean;
|
||||
lastSegmentUploadedAt?: any | null;
|
||||
@@ -4898,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;
|
||||
@@ -5035,6 +5076,7 @@ export type GetVideoFeedQuery = {
|
||||
__typename?: "UploadStreamGQL";
|
||||
id: string;
|
||||
lastIntendedSegmentBound?: number | null;
|
||||
uploadCompletionCursor: number;
|
||||
streamSegmentType: StreamSegmentTypeEnum;
|
||||
isCompleted: boolean;
|
||||
lastSegmentUploadedAt?: any | null;
|
||||
@@ -5045,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;
|
||||
@@ -6647,6 +6698,34 @@ export type GetRecordedStreamShotsQuery = {
|
||||
videoId: number;
|
||||
startFrame: number;
|
||||
endFrame: number;
|
||||
serializedShotPaths?: {
|
||||
__typename?: "SerializedShotPathsGQL";
|
||||
b64EncodedBuffer?: string | null;
|
||||
} | null;
|
||||
cueObjectFeatures?: {
|
||||
__typename?: "CueObjectFeaturesGQL";
|
||||
cueObjectDistance?: number | null;
|
||||
cueObjectAngle?: number | null;
|
||||
cueBallSpeed?: number | null;
|
||||
shotDirection?: ShotDirectionEnum | null;
|
||||
spinType?: SpinTypeEnum | null;
|
||||
} | null;
|
||||
pocketingIntentionFeatures?: {
|
||||
__typename?: "PocketingIntentionFeaturesGQL";
|
||||
make?: boolean | null;
|
||||
targetPocketDistance?: number | null;
|
||||
targetPocketAngle?: number | null;
|
||||
targetPocketAngleDirection?: ShotDirectionEnum | null;
|
||||
marginOfErrorInDegrees?: number | null;
|
||||
intendedPocketType?: PocketEnum | null;
|
||||
difficulty?: number | null;
|
||||
} | null;
|
||||
pocketingIntentionInfo?: {
|
||||
__typename?: "PocketingIntentionInfoGQL";
|
||||
ballId: number;
|
||||
pocketId: PocketIdentifier;
|
||||
pathMetadataIndex: number;
|
||||
} | null;
|
||||
}>;
|
||||
};
|
||||
};
|
||||
@@ -7527,6 +7606,14 @@ export type GetUsageStatsQuery = {
|
||||
retentionPrevActive: number;
|
||||
retentionReturned: number;
|
||||
};
|
||||
cohorts: Array<{
|
||||
__typename?: "CohortStatsGQL";
|
||||
weekStart: any;
|
||||
signups: number;
|
||||
activated7d: number;
|
||||
paid7d: number;
|
||||
activatedNotPaid7d: number;
|
||||
}>;
|
||||
windows: Array<{
|
||||
__typename?: "UsageStatsWindowGQL";
|
||||
label: string;
|
||||
@@ -8147,6 +8234,7 @@ export type GetVideoCardQuery = {
|
||||
__typename?: "UploadStreamGQL";
|
||||
id: string;
|
||||
lastIntendedSegmentBound?: number | null;
|
||||
uploadCompletionCursor: number;
|
||||
streamSegmentType: StreamSegmentTypeEnum;
|
||||
isCompleted: boolean;
|
||||
lastSegmentUploadedAt?: any | null;
|
||||
@@ -8157,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;
|
||||
@@ -8974,6 +9071,7 @@ export const VideoCardFieldsFragmentDoc = gql`
|
||||
stream {
|
||||
id
|
||||
lastIntendedSegmentBound
|
||||
uploadCompletionCursor
|
||||
streamSegmentType
|
||||
isCompleted
|
||||
lastSegmentUploadedAt
|
||||
@@ -8987,6 +9085,14 @@ export const VideoCardFieldsFragmentDoc = gql`
|
||||
name
|
||||
}
|
||||
}
|
||||
drillResult {
|
||||
drillTag
|
||||
longestRun
|
||||
longestRunId
|
||||
prRank
|
||||
isPersonalBest
|
||||
attemptCount
|
||||
}
|
||||
playerSummaries {
|
||||
...PlayerSummaryFields
|
||||
}
|
||||
@@ -14355,6 +14461,30 @@ export const GetRecordedStreamShotsDocument = gql`
|
||||
videoId
|
||||
startFrame
|
||||
endFrame
|
||||
serializedShotPaths {
|
||||
b64EncodedBuffer
|
||||
}
|
||||
cueObjectFeatures {
|
||||
cueObjectDistance
|
||||
cueObjectAngle
|
||||
cueBallSpeed
|
||||
shotDirection
|
||||
spinType
|
||||
}
|
||||
pocketingIntentionFeatures {
|
||||
make
|
||||
targetPocketDistance
|
||||
targetPocketAngle
|
||||
targetPocketAngleDirection
|
||||
marginOfErrorInDegrees
|
||||
intendedPocketType
|
||||
difficulty
|
||||
}
|
||||
pocketingIntentionInfo {
|
||||
ballId
|
||||
pocketId
|
||||
pathMetadataIndex
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -16090,6 +16220,13 @@ export const GetUsageStatsDocument = gql`
|
||||
retentionPrevActive
|
||||
retentionReturned
|
||||
}
|
||||
cohorts {
|
||||
weekStart
|
||||
signups
|
||||
activated7d
|
||||
paid7d
|
||||
activatedNotPaid7d
|
||||
}
|
||||
totalUsers
|
||||
totalVideos
|
||||
totalShots
|
||||
|
||||
@@ -41,6 +41,7 @@ fragment VideoCardFields on VideoGQL {
|
||||
stream {
|
||||
id
|
||||
lastIntendedSegmentBound
|
||||
uploadCompletionCursor
|
||||
streamSegmentType
|
||||
isCompleted
|
||||
lastSegmentUploadedAt
|
||||
@@ -54,6 +55,14 @@ fragment VideoCardFields on VideoGQL {
|
||||
name
|
||||
}
|
||||
}
|
||||
drillResult {
|
||||
drillTag
|
||||
longestRun
|
||||
longestRunId
|
||||
prRank
|
||||
isPersonalBest
|
||||
attemptCount
|
||||
}
|
||||
playerSummaries {
|
||||
...PlayerSummaryFields
|
||||
}
|
||||
|
||||
@@ -33,6 +33,30 @@ query GetRecordedStreamShots($videoId: Int!, $limit: Int! = 200) {
|
||||
videoId
|
||||
startFrame
|
||||
endFrame
|
||||
serializedShotPaths {
|
||||
b64EncodedBuffer
|
||||
}
|
||||
cueObjectFeatures {
|
||||
cueObjectDistance
|
||||
cueObjectAngle
|
||||
cueBallSpeed
|
||||
shotDirection
|
||||
spinType
|
||||
}
|
||||
pocketingIntentionFeatures {
|
||||
make
|
||||
targetPocketDistance
|
||||
targetPocketAngle
|
||||
targetPocketAngleDirection
|
||||
marginOfErrorInDegrees
|
||||
intendedPocketType
|
||||
difficulty
|
||||
}
|
||||
pocketingIntentionInfo {
|
||||
ballId
|
||||
pocketId
|
||||
pathMetadataIndex
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,13 @@ query getUsageStats($days: Int! = 30) {
|
||||
retentionPrevActive
|
||||
retentionReturned
|
||||
}
|
||||
cohorts {
|
||||
weekStart
|
||||
signups
|
||||
activated7d
|
||||
paid7d
|
||||
activatedNotPaid7d
|
||||
}
|
||||
totalUsers
|
||||
totalVideos
|
||||
totalShots
|
||||
|
||||
@@ -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!
|
||||
@@ -1183,6 +1193,7 @@ type UsageStatsGQL {
|
||||
totalVideos: Int!
|
||||
totalShots: Int!
|
||||
totalRuns: Int!
|
||||
cohorts: [CohortStatsGQL!]!
|
||||
windows: [UsageStatsWindowGQL!]!
|
||||
daily: [UsageStatsDailyGQL!]!
|
||||
processingLast24h: [ProcessingStatusCountGQL!]!
|
||||
@@ -1201,6 +1212,14 @@ type FunnelStatsGQL {
|
||||
retentionReturned: Int!
|
||||
}
|
||||
|
||||
type CohortStatsGQL {
|
||||
weekStart: Date!
|
||||
signups: Int!
|
||||
activated7d: Int!
|
||||
paid7d: Int!
|
||||
activatedNotPaid7d: Int!
|
||||
}
|
||||
|
||||
type UsageStatsWindowGQL {
|
||||
label: String!
|
||||
newUsers: Int!
|
||||
|
||||
Reference in New Issue
Block a user