Compare commits

..

13 Commits

Author SHA1 Message Date
c013228f79 Make range filters generic 2024-09-20 13:25:36 -06:00
740daf95ae Merge pull request 'Add Pocketing Intention Info' (#58) from mk/pocketing-intention-info into master
Reviewed-on: #58
Reviewed-by: Ivan Malison <ivanmalison@gmail.com>
2024-09-19 23:19:36 -06:00
768d29f93e Pocketing Intention Info Schema Changes
All checks were successful
Tests / Tests (pull_request) Successful in 7s
2024-09-19 22:59:36 -06:00
837e084a5a Add miss angle in degrees 2024-09-19 22:03:59 -06:00
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 549 additions and 50 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -113,6 +113,10 @@ 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,15 +95,47 @@ 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!]
notFilter: FilterInput
cueObjectDistance: RangeFilter
targetPocketDistance: RangeFilter
cueObjectAngle: RangeFilter
cueBallSpeed: RangeFilter
difficulty: RangeFilter
cueObjectDistance: FloatRangeFilter
targetPocketDistance: FloatRangeFilter
cueObjectAngle: FloatRangeFilter
cueBallSpeed: FloatRangeFilter
difficulty: FloatRangeFilter
intendedPocketType: [PocketEnum!]
shotDirection: [ShotDirectionEnum!]
videoId: [Int!]
@@ -101,18 +149,23 @@ input FilterInput @oneOf {
isLeftMiss: [Boolean!]
isRightMiss: [Boolean!]
isDirect: [Boolean!]
tableSize: RangeFilter
bankAngle: RangeFilter
bankDistance: RangeFilter
kickAngle: RangeFilter
kickDistance: RangeFilter
cueAngleAfterObject: RangeFilter
tableSize: FloatRangeFilter
bankAngle: FloatRangeFilter
bankDistance: FloatRangeFilter
kickAngle: FloatRangeFilter
kickDistance: FloatRangeFilter
cueAngleAfterObject: FloatRangeFilter
spinType: [SpinTypeEnum!]
cueSpeedAfterObject: RangeFilter
falsePositiveScore: RangeFilter
cueSpeedAfterObject: FloatRangeFilter
falsePositiveScore: FloatRangeFilter
backcut: [Boolean!]
targetPocketAngleDirection: [ShotDirectionEnum!]
targetPocketAngle: FloatRangeFilter
missAngleInDegrees: FloatRangeFilter
createdAt: DateRangeFilter
}
input RangeFilter {
input FloatRangeFilter {
lessThan: Float = null
greaterThanEqualTo: Float = null
greaterThan: Float = null
@@ -152,6 +205,20 @@ enum SpinTypeEnum {
UNKNOWN
}
input DateRangeFilter {
lessThan: Date = null
greaterThanEqualTo: Date = null
greaterThan: Date = null
includeOnNone: Boolean! = false
lessThanInclusive: Boolean! = false
greaterThanInclusive: Boolean! = true
}
"""
Date (isoformat)
"""
scalar Date
type BucketSetGQL {
keyName: String!
feature: String!
@@ -190,6 +257,7 @@ type ShotGQL {
updatedAt: DateTime
cueObjectFeatures: CueObjectFeaturesGQL
pocketingIntentionFeatures: PocketingIntentionFeaturesGQL
pocketingIntentionInfo: PocketingIntentionInfoGQL
bankFeatures: BankFeaturesGQL
serializedShotPaths: SerializedShotPathsGQL
user: UserGQL
@@ -198,11 +266,6 @@ type ShotGQL {
video: VideoGQL
}
"""
Date with time (isoformat)
"""
scalar DateTime
type CueObjectFeaturesGQL {
cueObjectDistance: Float
cueObjectAngle: Float
@@ -216,6 +279,24 @@ type PocketingIntentionFeaturesGQL {
make: Boolean
intendedPocketType: PocketEnum
difficulty: Float
targetPocketAngle: Float
targetPocketAngleDirection: ShotDirectionEnum
backcut: Boolean
}
type PocketingIntentionInfoGQL {
ballId: Int!
pocketId: PocketIdentifier!
pathMetadataIndex: Int!
}
enum PocketIdentifier {
TOP_LEFT
TOP_SIDE
TOP_RIGHT
BOTTOM_LEFT
BOTTOM_SIDE
BOTTOM_RIGHT
}
type BankFeaturesGQL {