Compare commits

..

9 Commits

Author SHA1 Message Date
caea1b9572 Add pocket angle features 2024-09-19 18:28:18 -06:00
0a255f161a Merge pull request 'Add shot direction counts' (#57) from shot-direction-counts into master
Reviewed-on: #57
Reviewed-by: Ivan Malison <ivanmalison@gmail.com>
2024-09-19 12:02:51 -06:00
85a2da4b5c Add shot direction counts
All checks were successful
Tests / Tests (pull_request) Successful in 15s
2024-09-19 10:46:20 -07:00
647ef3049b Add spin type counts 2024-09-18 16:58:46 -06:00
7b48a5b6e2 Merge pull request 'Add DatetimeRangeAggregation' (#56) from mk/datetime-range-aggregation into master
Reviewed-on: #56
Reviewed-by: Ivan Malison <ivanmalison@gmail.com>
2024-09-18 15:31:31 -06:00
ec2e3da513 Add DatetimeRangeAggregation
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2024-09-18 13:48:52 -07:00
72729e410b Merge pull request 'Add serializedShotPaths to GetShots' (#55) from loewy/add-shot-deserialization-to-operation into master
Reviewed-on: #55
2024-09-16 17:56:23 -06:00
5a9205a9b8 was on the wrong gql operation, updated
All checks were successful
Tests / Tests (pull_request) Successful in 7s
2024-09-16 15:44:22 -07:00
a33601158f add serializedShotPaths to GetShots
All checks were successful
Tests / Tests (pull_request) Successful in 8s
2024-09-16 11:55:30 -07:00
3 changed files with 305 additions and 7 deletions

View File

@@ -62,8 +62,13 @@ export type AggregationIdentifierGql = {
};
export type AggregationInput =
| { bucketSet: BucketSetInputGql; enum?: never }
| { bucketSet?: never; enum: EnumAggregation };
| { bucketSet: BucketSetInputGql; datetimeRange?: never; enum?: never }
| {
bucketSet?: never;
datetimeRange: DatetimeRangeAggregationInput;
enum?: never;
}
| { bucketSet?: never; datetimeRange?: never; enum: EnumAggregation };
export type BankFeaturesGql = {
__typename?: "BankFeaturesGQL";
@@ -127,6 +132,12 @@ export type CueObjectFeaturesGql = {
spinType?: Maybe<SpinTypeEnum>;
};
export type DatetimeRangeAggregationInput = {
endDatetime: Scalars["DateTime"]["input"];
interval: TimeInterval;
startDatetime: Scalars["DateTime"]["input"];
};
export type DeployedConfigGql = {
__typename?: "DeployedConfigGQL";
allowNewUsers: Scalars["Boolean"]["output"];
@@ -160,6 +171,7 @@ export type FilterInput =
| {
andFilters: Array<FilterInput>;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -185,6 +197,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -192,6 +206,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations: Array<ShotAnnotationInput>;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -217,6 +232,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -224,6 +241,42 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut: Array<Scalars["Boolean"]["input"]>;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
cueBallSpeed?: never;
cueObjectAngle?: never;
cueObjectDistance?: never;
cueSpeedAfterObject?: never;
difficulty?: never;
falsePositiveScore?: never;
intendedPocketType?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
isRight?: never;
isRightMiss?: never;
isStraight?: never;
kickAngle?: never;
kickDistance?: never;
make?: never;
notFilter?: never;
orFilters?: never;
shotDirection?: never;
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
}
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle: RangeFilter;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -249,6 +302,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -256,6 +311,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance: RangeFilter;
cueAngleAfterObject?: never;
@@ -281,6 +337,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -288,6 +346,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject: RangeFilter;
@@ -313,6 +372,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -320,6 +381,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -345,6 +407,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -352,6 +416,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -377,6 +442,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -384,6 +451,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -409,6 +477,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -416,6 +486,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -441,6 +512,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -448,6 +521,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -473,6 +547,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -480,6 +556,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -505,6 +582,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -512,6 +591,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -537,6 +617,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -544,6 +626,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -569,6 +652,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -576,6 +661,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -601,6 +687,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -608,6 +696,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -633,6 +722,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -640,6 +731,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -665,6 +757,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -672,6 +766,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -697,6 +792,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -704,6 +801,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -729,6 +827,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -736,6 +836,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -761,6 +862,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -768,6 +871,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -793,6 +897,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -800,6 +906,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -825,6 +932,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -832,6 +941,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -857,6 +967,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -864,6 +976,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -889,6 +1002,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -896,6 +1011,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -921,6 +1037,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -928,6 +1046,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -953,6 +1072,8 @@ export type FilterInput =
spinType: Array<SpinTypeEnum>;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -960,6 +1081,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -985,6 +1107,8 @@ export type FilterInput =
spinType?: never;
tableSize: RangeFilter;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -992,6 +1116,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -1017,6 +1142,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags: Array<VideoTagInput>;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -1024,6 +1151,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -1049,6 +1177,78 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle: RangeFilter;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
}
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
cueBallSpeed?: never;
cueObjectAngle?: never;
cueObjectDistance?: never;
cueSpeedAfterObject?: never;
difficulty?: never;
falsePositiveScore?: never;
intendedPocketType?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
isRight?: never;
isRightMiss?: never;
isStraight?: never;
kickAngle?: never;
kickDistance?: never;
make?: never;
notFilter?: never;
orFilters?: never;
shotDirection?: never;
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection: Array<ShotDirectionEnum>;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
}
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
cueBallSpeed?: never;
cueObjectAngle?: never;
cueObjectDistance?: never;
cueSpeedAfterObject?: never;
difficulty?: never;
falsePositiveScore?: never;
intendedPocketType?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
isRight?: never;
isRightMiss?: never;
isStraight?: never;
kickAngle?: never;
kickDistance?: never;
make?: never;
notFilter?: never;
orFilters?: never;
shotDirection?: never;
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance: RangeFilter;
userId?: never;
videoId?: never;
@@ -1056,6 +1256,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -1081,6 +1282,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId: Array<Scalars["Int"]["input"]>;
videoId?: never;
@@ -1088,6 +1291,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -1113,6 +1317,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId: Array<Scalars["Int"]["input"]>;
@@ -1310,9 +1516,12 @@ export type PocketPointsGql = {
export type PocketingIntentionFeaturesGql = {
__typename?: "PocketingIntentionFeaturesGQL";
backcut?: Maybe<Scalars["Boolean"]["output"]>;
difficulty?: Maybe<Scalars["Float"]["output"]>;
intendedPocketType?: Maybe<PocketEnum>;
make?: Maybe<Scalars["Boolean"]["output"]>;
targetPocketAngle?: Maybe<Scalars["Float"]["output"]>;
targetPocketAngleDirection?: Maybe<ShotDirectionEnum>;
targetPocketDistance?: Maybe<Scalars["Float"]["output"]>;
};
@@ -1455,6 +1664,13 @@ export type ShotAnnotationTypeGql = {
name: Scalars["String"]["output"];
};
export type ShotDirectionCountsGql = {
__typename?: "ShotDirectionCountsGQL";
left: Scalars["Int"]["output"];
right: Scalars["Int"]["output"];
straight: Scalars["Int"]["output"];
};
export enum ShotDirectionEnum {
Left = "LEFT",
Right = "RIGHT",
@@ -1479,6 +1695,14 @@ export type ShotGql = {
videoId: Scalars["Int"]["output"];
};
export type SpinTypeCountsGql = {
__typename?: "SpinTypeCountsGQL";
center: Scalars["Int"]["output"];
draw: Scalars["Int"]["output"];
follow: Scalars["Int"]["output"];
unknown: Scalars["Int"]["output"];
};
export enum SpinTypeEnum {
Center = "CENTER",
Draw = "DRAW",
@@ -1517,6 +1741,21 @@ export type TargetMetricsGql = {
averageDifficulty?: Maybe<Scalars["Float"]["output"]>;
count: Scalars["Int"]["output"];
makePercentage?: Maybe<Scalars["Float"]["output"]>;
shotDirectionCounts?: Maybe<ShotDirectionCountsGql>;
spinTypeCounts?: Maybe<SpinTypeCountsGql>;
};
export type TimeInterval = {
days?: InputMaybe<Scalars["Int"]["input"]>;
hours?: InputMaybe<Scalars["Int"]["input"]>;
minutes?: InputMaybe<Scalars["Int"]["input"]>;
/** Assumes a month is 30 days long */
months?: InputMaybe<Scalars["Int"]["input"]>;
/** A second is the base unit and cannot be subdivided */
seconds?: InputMaybe<Scalars["Int"]["input"]>;
weeks?: InputMaybe<Scalars["Int"]["input"]>;
/** Assumes a year is 365 days long */
years?: InputMaybe<Scalars["Int"]["input"]>;
};
export type TooManyInitUploadsErr = {
@@ -1934,6 +2173,10 @@ export type GetShotsWithMetadataQuery = {
};
} | null;
} | null;
serializedShotPaths?: {
__typename?: "SerializedShotPathsGQL";
b64EncodedBuffer?: string | null;
} | null;
cueObjectFeatures?: {
__typename?: "CueObjectFeaturesGQL";
cueObjectDistance?: number | null;
@@ -3159,6 +3402,9 @@ export const GetShotsWithMetadataDocument = gql`
}
}
}
serializedShotPaths {
b64EncodedBuffer
}
createdAt @include(if: $includeCreatedAt)
updatedAt @include(if: $includeUpdatedAt)
cueObjectFeatures @include(if: $includeCueObjectFeatures) {

View File

@@ -113,6 +113,9 @@ query GetShotsWithMetadata(
}
}
}
serializedShotPaths {
b64EncodedBuffer
}
createdAt @include(if: $includeCreatedAt)
updatedAt @include(if: $includeUpdatedAt)
cueObjectFeatures @include(if: $includeCueObjectFeatures) {

View File

@@ -53,6 +53,21 @@ type TargetMetricsGQL {
count: Int!
makePercentage: Float
averageDifficulty: Float
spinTypeCounts: SpinTypeCountsGQL
shotDirectionCounts: ShotDirectionCountsGQL
}
type SpinTypeCountsGQL {
follow: Int!
draw: Int!
center: Int!
unknown: Int!
}
type ShotDirectionCountsGQL {
left: Int!
right: Int!
straight: Int!
}
input AggregateInputGQL {
@@ -63,6 +78,7 @@ input AggregateInputGQL {
input AggregationInput @oneOf {
bucketSet: BucketSetInputGQL
enum: EnumAggregation
datetimeRange: DatetimeRangeAggregationInput
}
input BucketSetInputGQL {
@@ -79,6 +95,38 @@ input EnumAggregation {
feature: String!
}
input DatetimeRangeAggregationInput {
startDatetime: DateTime!
endDatetime: DateTime!
interval: TimeInterval!
}
"""
Date with time (isoformat)
"""
scalar DateTime
input TimeInterval {
"""
A second is the base unit and cannot be subdivided
"""
seconds: Int = 0
minutes: Int = 0
hours: Int = 0
days: Int = 0
weeks: Int = 0
"""
Assumes a month is 30 days long
"""
months: Int = 0
"""
Assumes a year is 365 days long
"""
years: Int = 0
}
input FilterInput @oneOf {
andFilters: [FilterInput!]
orFilters: [FilterInput!]
@@ -110,6 +158,9 @@ input FilterInput @oneOf {
spinType: [SpinTypeEnum!]
cueSpeedAfterObject: RangeFilter
falsePositiveScore: RangeFilter
backcut: [Boolean!]
targetPocketAngleDirection: [ShotDirectionEnum!]
targetPocketAngle: RangeFilter
}
input RangeFilter {
@@ -198,11 +249,6 @@ type ShotGQL {
video: VideoGQL
}
"""
Date with time (isoformat)
"""
scalar DateTime
type CueObjectFeaturesGQL {
cueObjectDistance: Float
cueObjectAngle: Float
@@ -216,6 +262,9 @@ type PocketingIntentionFeaturesGQL {
make: Boolean
intendedPocketType: PocketEnum
difficulty: Float
targetPocketAngle: Float
targetPocketAngleDirection: ShotDirectionEnum
backcut: Boolean
}
type BankFeaturesGQL {