Compare commits

..

3 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
2 changed files with 219 additions and 0 deletions

View File

@@ -171,6 +171,7 @@ export type FilterInput =
| {
andFilters: Array<FilterInput>;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -196,6 +197,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -203,6 +206,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations: Array<ShotAnnotationInput>;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -228,6 +232,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -235,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;
@@ -260,6 +302,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -267,6 +311,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance: RangeFilter;
cueAngleAfterObject?: never;
@@ -292,6 +337,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -299,6 +346,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject: RangeFilter;
@@ -324,6 +372,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -331,6 +381,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -356,6 +407,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -363,6 +416,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -388,6 +442,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -395,6 +451,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -420,6 +477,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -427,6 +486,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -452,6 +512,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -459,6 +521,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -484,6 +547,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -491,6 +556,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -516,6 +582,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -523,6 +591,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -548,6 +617,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -555,6 +626,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -580,6 +652,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -587,6 +661,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -612,6 +687,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -619,6 +696,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -644,6 +722,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -651,6 +731,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -676,6 +757,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -683,6 +766,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -708,6 +792,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -715,6 +801,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -740,6 +827,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -747,6 +836,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -772,6 +862,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -779,6 +871,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -804,6 +897,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -811,6 +906,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -836,6 +932,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -843,6 +941,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -868,6 +967,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -875,6 +976,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -900,6 +1002,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -907,6 +1011,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -932,6 +1037,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -939,6 +1046,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -964,6 +1072,8 @@ export type FilterInput =
spinType: Array<SpinTypeEnum>;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -971,6 +1081,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -996,6 +1107,8 @@ export type FilterInput =
spinType?: never;
tableSize: RangeFilter;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -1003,6 +1116,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -1028,6 +1142,8 @@ export type FilterInput =
spinType?: never;
tableSize?: never;
tags: Array<VideoTagInput>;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
userId?: never;
videoId?: never;
@@ -1035,6 +1151,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -1060,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;
@@ -1067,6 +1256,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -1092,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;
@@ -1099,6 +1291,7 @@ export type FilterInput =
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
cueAngleAfterObject?: never;
@@ -1124,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"]>;
@@ -1321,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"]>;
};
@@ -1466,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",
@@ -1536,6 +1741,7 @@ export type TargetMetricsGql = {
averageDifficulty?: Maybe<Scalars["Float"]["output"]>;
count: Scalars["Int"]["output"];
makePercentage?: Maybe<Scalars["Float"]["output"]>;
shotDirectionCounts?: Maybe<ShotDirectionCountsGql>;
spinTypeCounts?: Maybe<SpinTypeCountsGql>;
};

View File

@@ -54,6 +54,7 @@ type TargetMetricsGQL {
makePercentage: Float
averageDifficulty: Float
spinTypeCounts: SpinTypeCountsGQL
shotDirectionCounts: ShotDirectionCountsGQL
}
type SpinTypeCountsGQL {
@@ -63,6 +64,12 @@ type SpinTypeCountsGQL {
unknown: Int!
}
type ShotDirectionCountsGQL {
left: Int!
right: Int!
straight: Int!
}
input AggregateInputGQL {
aggregations: [AggregationInput!]!
filterInput: FilterInput
@@ -151,6 +158,9 @@ input FilterInput @oneOf {
spinType: [SpinTypeEnum!]
cueSpeedAfterObject: RangeFilter
falsePositiveScore: RangeFilter
backcut: [Boolean!]
targetPocketAngleDirection: [ShotDirectionEnum!]
targetPocketAngle: RangeFilter
}
input RangeFilter {
@@ -252,6 +262,9 @@ type PocketingIntentionFeaturesGQL {
make: Boolean
intendedPocketType: PocketEnum
difficulty: Float
targetPocketAngle: Float
targetPocketAngleDirection: ShotDirectionEnum
backcut: Boolean
}
type BankFeaturesGQL {