diff --git a/src/index.tsx b/src/index.tsx index 15d1c7d..22be4b2 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -140,6 +140,39 @@ export type BucketSetInputGql = { feature: Scalars["String"]["input"]; }; +export type CameraClaimSession = { + __typename?: "CameraClaimSession"; + camera: PoolHallCamera; + cameraId: Scalars["ID"]["output"]; + challengeCode: Scalars["String"]["output"]; + createdAt: Scalars["DateTime"]["output"]; + detectedAt?: Maybe; + expiresAt: Scalars["DateTime"]["output"]; + failedAt?: Maybe; + failureReason?: Maybe; + id: Scalars["ID"]["output"]; + status: Scalars["String"]["output"]; + updatedAt: Scalars["DateTime"]["output"]; + userId: Scalars["ID"]["output"]; +}; + +export type CameraLease = { + __typename?: "CameraLease"; + camera: PoolHallCamera; + cameraId: Scalars["ID"]["output"]; + claimSessionId?: Maybe; + createdAt: Scalars["DateTime"]["output"]; + endReason?: Maybe; + endedAt?: Maybe; + expiresAt?: Maybe; + id: Scalars["ID"]["output"]; + startedAt: Scalars["DateTime"]["output"]; + status: Scalars["String"]["output"]; + updatedAt: Scalars["DateTime"]["output"]; + userId: Scalars["ID"]["output"]; + videoId?: Maybe; +}; + export type CancellationFeedbackMetadataInput = { appVersion?: InputMaybe; gitRevision?: InputMaybe; @@ -235,6 +268,21 @@ export type CreateCustomerPortalSessionResultGql = { portalUrl: Scalars["String"]["output"]; }; +export type CreatePoolHallCameraInput = { + name: Scalars["String"]["input"]; + poolHallId: Scalars["ID"]["input"]; + streamPath?: InputMaybe; + tableLabel?: InputMaybe; +}; + +export type CreatePoolHallInput = { + address?: InputMaybe; + latitude?: InputMaybe; + longitude?: InputMaybe; + name: Scalars["String"]["input"]; + timezone?: InputMaybe; +}; + export type CreateSubscriptionResultGql = { __typename?: "CreateSubscriptionResultGQL"; checkoutUrl: Scalars["String"]["output"]; @@ -290,6 +338,7 @@ export type DeployedConfigGql = { environment: Scalars["String"]["output"]; firebase: Scalars["Boolean"]["output"]; minimumAllowedAppVersion: Scalars["String"]["output"]; + quotaEnforcementEnabled: Scalars["Boolean"]["output"]; subscriptionGatingEnabled: Scalars["Boolean"]["output"]; }; @@ -2386,11 +2435,15 @@ export type Mutation = { addAnnotationToShot: AddShotAnnotationReturn; blockContent: Scalars["Boolean"]["output"]; blockUser: Scalars["Boolean"]["output"]; + cancelCameraClaimSession: CameraClaimSession; cancelSubscription: UserSubscriptionStatusGql; commentOnVideo: Scalars["Boolean"]["output"]; createBucketSet: BucketSetGql; + createCameraClaimSession: CameraClaimSession; createChallenge: Challenge; createCustomerPortalSession: CreateCustomerPortalSessionResultGql; + createPoolHall: PoolHall; + createPoolHallCamera: PoolHallCameraStreamCredentials; createRuleSet: RuleSet; createSubscription: CreateSubscriptionResultGql; createUploadStream: CreateUploadStreamReturn; @@ -2423,6 +2476,7 @@ export type Mutation = { respondToChallengeInvitation: ChallengeInvitation; retireTags: Scalars["Boolean"]["output"]; revokeManualEntitlement: UserSubscriptionStatusGql; + rotatePoolHallCameraStreamKey: PoolHallCameraStreamCredentials; setLoggerLevel: Scalars["Boolean"]["output"]; setSegmentDuration: Scalars["Boolean"]["output"]; startChallenge: ChallengeEntry; @@ -2430,6 +2484,8 @@ export type Mutation = { submitChallengeEntry: ChallengeEntry; undismissChallenge: Scalars["Boolean"]["output"]; unfollowUser: UserGql; + updatePoolHall: PoolHall; + updatePoolHallCamera: PoolHallCamera; updateShotAnnotations: UpdateShotAnnotationReturn; }; @@ -2447,6 +2503,10 @@ export type MutationBlockUserArgs = { userId: Scalars["Int"]["input"]; }; +export type MutationCancelCameraClaimSessionArgs = { + claimSessionId: Scalars["ID"]["input"]; +}; + export type MutationCommentOnVideoArgs = { message: Scalars["String"]["input"]; parentCommentId?: InputMaybe; @@ -2457,6 +2517,10 @@ export type MutationCreateBucketSetArgs = { params: CreateBucketSetInput; }; +export type MutationCreateCameraClaimSessionArgs = { + cameraId: Scalars["ID"]["input"]; +}; + export type MutationCreateChallengeArgs = { description?: InputMaybe; endDate: Scalars["DateTime"]["input"]; @@ -2470,6 +2534,14 @@ export type MutationCreateChallengeArgs = { startDate: Scalars["DateTime"]["input"]; }; +export type MutationCreatePoolHallArgs = { + input: CreatePoolHallInput; +}; + +export type MutationCreatePoolHallCameraArgs = { + input: CreatePoolHallCameraInput; +}; + export type MutationCreateRuleSetArgs = { description?: InputMaybe; name: Scalars["String"]["input"]; @@ -2605,6 +2677,10 @@ export type MutationRevokeManualEntitlementArgs = { userId: Scalars["Int"]["input"]; }; +export type MutationRotatePoolHallCameraStreamKeyArgs = { + cameraId: Scalars["ID"]["input"]; +}; + export type MutationSetLoggerLevelArgs = { level: Scalars["String"]["input"]; path: Scalars["String"]["input"]; @@ -2639,6 +2715,14 @@ export type MutationUnfollowUserArgs = { followedUserId: Scalars["Int"]["input"]; }; +export type MutationUpdatePoolHallArgs = { + input: UpdatePoolHallInput; +}; + +export type MutationUpdatePoolHallCameraArgs = { + input: UpdatePoolHallCameraInput; +}; + export type MutationUpdateShotAnnotationsArgs = { annotations: Array; shotId: Scalars["Int"]["input"]; @@ -2790,6 +2874,41 @@ export type PocketingIntentionInfoGql = { pocketId: PocketIdentifier; }; +export type PoolHall = { + __typename?: "PoolHall"; + address?: Maybe; + createdAt: Scalars["DateTime"]["output"]; + id: Scalars["ID"]["output"]; + latitude?: Maybe; + longitude?: Maybe; + name: Scalars["String"]["output"]; + status: Scalars["String"]["output"]; + timezone?: Maybe; + updatedAt: Scalars["DateTime"]["output"]; +}; + +export type PoolHallCamera = { + __typename?: "PoolHallCamera"; + createdAt: Scalars["DateTime"]["output"]; + id: Scalars["ID"]["output"]; + lastPublishedAt?: Maybe; + lastUnpublishedAt?: Maybe; + name: Scalars["String"]["output"]; + poolHall: PoolHall; + poolHallId: Scalars["ID"]["output"]; + status: Scalars["String"]["output"]; + streamPath: Scalars["String"]["output"]; + tableLabel?: Maybe; + updatedAt: Scalars["DateTime"]["output"]; +}; + +export type PoolHallCameraStreamCredentials = { + __typename?: "PoolHallCameraStreamCredentials"; + camera: PoolHallCamera; + rtmpPath: Scalars["String"]["output"]; + streamKey: Scalars["String"]["output"]; +}; + export type ProcessingFailedErr = { __typename?: "ProcessingFailedErr"; processing: VideoProcessingGql; @@ -2808,9 +2927,13 @@ export enum ProcessingStatusEnum { export type Query = { __typename?: "Query"; + activeCameraLease?: Maybe; + cameraClaimSession?: Maybe; challenge?: Maybe; challengeLeaderboard: Array; challenges: Array; + claimableCameras: Array; + claimablePoolHalls: Array; doesUsernameExist: Scalars["Boolean"]["output"]; getAggregatedShotMetrics: Array; getAvailableSubscriptionOptions: StripeSubscriptionOptionsGql; @@ -2846,12 +2969,18 @@ export type Query = { myChallengeInvitations: Array; myDismissedChallenges: Array; notifications: NotificationConnection; + poolHallCameras: Array; + poolHalls: Array; ruleSets: Array; unreadNotificationCount: Scalars["Int"]["output"]; videoPlayerClusters: Array; waitFor: Scalars["Float"]["output"]; }; +export type QueryCameraClaimSessionArgs = { + id: Scalars["ID"]["input"]; +}; + export type QueryChallengeArgs = { id: Scalars["ID"]["input"]; }; @@ -2865,6 +2994,10 @@ export type QueryChallengesArgs = { includeDismissed?: Scalars["Boolean"]["input"]; }; +export type QueryClaimableCamerasArgs = { + poolHallId: Scalars["ID"]["input"]; +}; + export type QueryDoesUsernameExistArgs = { candidateUsername: Scalars["String"]["input"]; }; @@ -3015,6 +3148,10 @@ export type QueryNotificationsArgs = { offset?: Scalars["Int"]["input"]; }; +export type QueryPoolHallCamerasArgs = { + poolHallId: Scalars["ID"]["input"]; +}; + export type QueryVideoPlayerClustersArgs = { videoId: Scalars["Int"]["input"]; }; @@ -3431,6 +3568,23 @@ export type UpdateAnnotationInputGql = { notes?: InputMaybe; }; +export type UpdatePoolHallCameraInput = { + id: Scalars["ID"]["input"]; + name?: InputMaybe; + status?: InputMaybe; + tableLabel?: InputMaybe; +}; + +export type UpdatePoolHallInput = { + address?: InputMaybe; + id: Scalars["ID"]["input"]; + latitude?: InputMaybe; + longitude?: InputMaybe; + name?: InputMaybe; + status?: InputMaybe; + timezone?: InputMaybe; +}; + export type UpdateShotAnnotationReturn = { __typename?: "UpdateShotAnnotationReturn"; error?: Maybe; @@ -4133,6 +4287,7 @@ export type GetDeployedConfigQuery = { firebase: boolean; minimumAllowedAppVersion: string; subscriptionGatingEnabled: boolean; + quotaEnforcementEnabled: boolean; defaultAndroidRecordingFormat: StreamSegmentTypeEnum; bucketUrl: string; bannerMessages: Array<{ @@ -8591,6 +8746,7 @@ export const GetDeployedConfigDocument = gql` firebase minimumAllowedAppVersion subscriptionGatingEnabled + quotaEnforcementEnabled bannerMessages { color dismissible diff --git a/src/operations/config.gql b/src/operations/config.gql index 5f60e08..67ad05d 100644 --- a/src/operations/config.gql +++ b/src/operations/config.gql @@ -6,6 +6,7 @@ query getDeployedConfig { firebase minimumAllowedAppVersion subscriptionGatingEnabled + quotaEnforcementEnabled bannerMessages { color dismissible diff --git a/src/schema.gql b/src/schema.gql index a907316..3af0c3a 100644 --- a/src/schema.gql +++ b/src/schema.gql @@ -42,6 +42,12 @@ type Query { filters: NotificationFilters = null ): NotificationConnection! unreadNotificationCount: Int! + poolHalls: [PoolHall!]! + claimablePoolHalls: [PoolHall!]! + poolHallCameras(poolHallId: ID!): [PoolHallCamera!]! + claimableCameras(poolHallId: ID!): [PoolHallCamera!]! + cameraClaimSession(id: ID!): CameraClaimSession + activeCameraLease: CameraLease getRuns( filterInput: RunFilterInput! runIds: [Int!] = null @@ -688,6 +694,7 @@ type DeployedConfigGQL { environment: String! minimumAllowedAppVersion: String! subscriptionGatingEnabled: Boolean! + quotaEnforcementEnabled: Boolean! bannerMessages: [BannerGQL!]! defaultAndroidRecordingFormat: StreamSegmentTypeEnum! bucketUrl: String! @@ -839,6 +846,63 @@ input NotificationFilters { notificationTypes: [NotificationTypeEnum!] = null } +type PoolHall { + id: ID! + name: String! + address: String + latitude: Float + longitude: Float + timezone: String + status: String! + createdAt: DateTime! + updatedAt: DateTime! +} + +type PoolHallCamera { + id: ID! + poolHallId: ID! + name: String! + tableLabel: String + streamPath: String! + status: String! + lastPublishedAt: DateTime + lastUnpublishedAt: DateTime + createdAt: DateTime! + updatedAt: DateTime! + poolHall: PoolHall! +} + +type CameraClaimSession { + id: ID! + cameraId: ID! + userId: ID! + challengeCode: String! + status: String! + expiresAt: DateTime! + detectedAt: DateTime + failedAt: DateTime + failureReason: String + createdAt: DateTime! + updatedAt: DateTime! + camera: PoolHallCamera! +} + +type CameraLease { + id: ID! + cameraId: ID! + claimSessionId: ID + userId: ID! + videoId: ID + status: String! + startedAt: DateTime! + endedAt: DateTime + expiresAt: DateTime + endReason: String + createdAt: DateTime! + updatedAt: DateTime! + camera: PoolHallCamera! +} + type GetRunsResult { runs: [RunGQL!]! count: Int @@ -1148,6 +1212,15 @@ type Mutation { markAllNotificationsAsRead: Boolean! markNotificationsAsRead(notificationIds: [Int!]!): Boolean! deleteNotification(notificationId: Int!): Boolean! + createPoolHall(input: CreatePoolHallInput!): PoolHall! + updatePoolHall(input: UpdatePoolHallInput!): PoolHall! + createPoolHallCamera( + input: CreatePoolHallCameraInput! + ): PoolHallCameraStreamCredentials! + updatePoolHallCamera(input: UpdatePoolHallCameraInput!): PoolHallCamera! + rotatePoolHallCameraStreamKey(cameraId: ID!): PoolHallCameraStreamCredentials! + createCameraClaimSession(cameraId: ID!): CameraClaimSession! + cancelCameraClaimSession(claimSessionId: ID!): CameraClaimSession! finalizePlayerAssignments( input: FinalizePlayerAssignmentsInput! ): [PlayerClusterGQL!]! @@ -1222,6 +1295,44 @@ enum ReportReasonEnum { OTHER } +input CreatePoolHallInput { + name: String! + address: String = null + latitude: Float = null + longitude: Float = null + timezone: String = null +} + +input UpdatePoolHallInput { + id: ID! + name: String = null + address: String = null + latitude: Float = null + longitude: Float = null + timezone: String = null + status: String = null +} + +type PoolHallCameraStreamCredentials { + camera: PoolHallCamera! + streamKey: String! + rtmpPath: String! +} + +input CreatePoolHallCameraInput { + poolHallId: ID! + name: String! + tableLabel: String = null + streamPath: String = null +} + +input UpdatePoolHallCameraInput { + id: ID! + name: String = null + tableLabel: String = null + status: String = null +} + input FinalizePlayerAssignmentsInput { videoId: Int! clusterAssignments: [ClusterAssignmentInput!]! = []