diff --git a/src/index.tsx b/src/index.tsx index b10591c..8edd05e 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -49,14 +49,9 @@ export type AggregationIdentifierGql = { groupName: Scalars["String"]["output"]; }; -export type AggregationInput = { - bucketSet?: InputMaybe; - enum?: InputMaybe; -}; - -export type AndFilter = { - filters: Array; -}; +export type AggregationInput = + | { bucketSet: BucketSetInputGql; enum?: never } + | { bucketSet?: never; enum: EnumAggregation }; export type BankFeaturesGql = { __typename?: "BankFeaturesGQL"; @@ -133,21 +128,202 @@ export type EnumAggregation = { feature: Scalars["String"]["input"]; }; -export type FilterInput = { - andFilters?: InputMaybe; - cueBallSpeed?: InputMaybe; - cueObjectAngle?: InputMaybe; - cueObjectDistance?: InputMaybe; - difficulty?: InputMaybe; - intendedPocketType?: InputMaybe>; - make?: InputMaybe>; - orFilters?: InputMaybe; - shotDirection?: InputMaybe>; - tags?: InputMaybe>; - targetPocketDistance?: InputMaybe; - userId?: InputMaybe>; - videoId?: InputMaybe>; -}; +export type FilterInput = + | { + andFilters: Array; + cueBallSpeed?: never; + cueObjectAngle?: never; + cueObjectDistance?: never; + difficulty?: never; + intendedPocketType?: never; + make?: never; + orFilters?: never; + shotDirection?: never; + tags?: never; + targetPocketDistance?: never; + userId?: never; + videoId?: never; + } + | { + andFilters?: never; + cueBallSpeed: RangeFilter; + cueObjectAngle?: never; + cueObjectDistance?: never; + difficulty?: never; + intendedPocketType?: never; + make?: never; + orFilters?: never; + shotDirection?: never; + tags?: never; + targetPocketDistance?: never; + userId?: never; + videoId?: never; + } + | { + andFilters?: never; + cueBallSpeed?: never; + cueObjectAngle: RangeFilter; + cueObjectDistance?: never; + difficulty?: never; + intendedPocketType?: never; + make?: never; + orFilters?: never; + shotDirection?: never; + tags?: never; + targetPocketDistance?: never; + userId?: never; + videoId?: never; + } + | { + andFilters?: never; + cueBallSpeed?: never; + cueObjectAngle?: never; + cueObjectDistance: RangeFilter; + difficulty?: never; + intendedPocketType?: never; + make?: never; + orFilters?: never; + shotDirection?: never; + tags?: never; + targetPocketDistance?: never; + userId?: never; + videoId?: never; + } + | { + andFilters?: never; + cueBallSpeed?: never; + cueObjectAngle?: never; + cueObjectDistance?: never; + difficulty: RangeFilter; + intendedPocketType?: never; + make?: never; + orFilters?: never; + shotDirection?: never; + tags?: never; + targetPocketDistance?: never; + userId?: never; + videoId?: never; + } + | { + andFilters?: never; + cueBallSpeed?: never; + cueObjectAngle?: never; + cueObjectDistance?: never; + difficulty?: never; + intendedPocketType: Array; + make?: never; + orFilters?: never; + shotDirection?: never; + tags?: never; + targetPocketDistance?: never; + userId?: never; + videoId?: never; + } + | { + andFilters?: never; + cueBallSpeed?: never; + cueObjectAngle?: never; + cueObjectDistance?: never; + difficulty?: never; + intendedPocketType?: never; + make: Array; + orFilters?: never; + shotDirection?: never; + tags?: never; + targetPocketDistance?: never; + userId?: never; + videoId?: never; + } + | { + andFilters?: never; + cueBallSpeed?: never; + cueObjectAngle?: never; + cueObjectDistance?: never; + difficulty?: never; + intendedPocketType?: never; + make?: never; + orFilters: Array; + shotDirection?: never; + tags?: never; + targetPocketDistance?: never; + userId?: never; + videoId?: never; + } + | { + andFilters?: never; + cueBallSpeed?: never; + cueObjectAngle?: never; + cueObjectDistance?: never; + difficulty?: never; + intendedPocketType?: never; + make?: never; + orFilters?: never; + shotDirection: Array; + tags?: never; + targetPocketDistance?: never; + userId?: never; + videoId?: never; + } + | { + andFilters?: never; + cueBallSpeed?: never; + cueObjectAngle?: never; + cueObjectDistance?: never; + difficulty?: never; + intendedPocketType?: never; + make?: never; + orFilters?: never; + shotDirection?: never; + tags: Array; + targetPocketDistance?: never; + userId?: never; + videoId?: never; + } + | { + andFilters?: never; + cueBallSpeed?: never; + cueObjectAngle?: never; + cueObjectDistance?: never; + difficulty?: never; + intendedPocketType?: never; + make?: never; + orFilters?: never; + shotDirection?: never; + tags?: never; + targetPocketDistance: RangeFilter; + userId?: never; + videoId?: never; + } + | { + andFilters?: never; + cueBallSpeed?: never; + cueObjectAngle?: never; + cueObjectDistance?: never; + difficulty?: never; + intendedPocketType?: never; + make?: never; + orFilters?: never; + shotDirection?: never; + tags?: never; + targetPocketDistance?: never; + userId: Array; + videoId?: never; + } + | { + andFilters?: never; + cueBallSpeed?: never; + cueObjectAngle?: never; + cueObjectDistance?: never; + difficulty?: never; + intendedPocketType?: never; + make?: never; + orFilters?: never; + shotDirection?: never; + tags?: never; + targetPocketDistance?: never; + userId?: never; + videoId: Array; + }; export type GetUploadLinkReturn = { __typename?: "GetUploadLinkReturn"; @@ -236,10 +412,6 @@ export type MutationSetLoggerLevelArgs = { path: Scalars["String"]["input"]; }; -export type OrFilter = { - filters: Array; -}; - export type PageInfoGql = { __typename?: "PageInfoGQL"; endCursor?: Maybe; diff --git a/src/schema.gql b/src/schema.gql index b0735b1..c229a1b 100644 --- a/src/schema.gql +++ b/src/schema.gql @@ -43,9 +43,9 @@ input AggregateInputGQL { filterInput: FilterInput } -input AggregationInput { - bucketSet: BucketSetInputGQL = null - enum: EnumAggregation = null +input AggregationInput @oneOf { + bucketSet: BucketSetInputGQL + enum: EnumAggregation } input BucketSetInputGQL { @@ -62,28 +62,20 @@ input EnumAggregation { feature: String! } -input FilterInput { - andFilters: AndFilter = null - orFilters: OrFilter = null - cueObjectDistance: RangeFilter = null - targetPocketDistance: RangeFilter = null - cueObjectAngle: RangeFilter = null - cueBallSpeed: RangeFilter = null - difficulty: RangeFilter = null - intendedPocketType: [PocketEnum!] = null - shotDirection: [ShotDirectionEnum!] = null - videoId: [Int!] = null - userId: [Int!] = null - make: [Boolean!] = null - tags: [VideoTagInput!] = null -} - -input AndFilter { - filters: [FilterInput!]! -} - -input OrFilter { - filters: [FilterInput!]! +input FilterInput @oneOf { + andFilters: [FilterInput!] + orFilters: [FilterInput!] + cueObjectDistance: RangeFilter + targetPocketDistance: RangeFilter + cueObjectAngle: RangeFilter + cueBallSpeed: RangeFilter + difficulty: RangeFilter + intendedPocketType: [PocketEnum!] + shotDirection: [ShotDirectionEnum!] + videoId: [Int!] + userId: [Int!] + make: [Boolean!] + tags: [VideoTagInput!] } input RangeFilter {