From 3ce2a7be6153cf087826c5c15c1f5975ca2282d6 Mon Sep 17 00:00:00 2001 From: Dean Wenstrand Date: Mon, 6 Jul 2026 18:21:58 -0700 Subject: [PATCH] Add per-camera recording policy (terms + private allowance) to schema allowsPrivateVideos / claimTermsText / claimTermsVersion on PoolHallCamera, agreedTermsVersion on CameraClaimSession + the create-claim mutation. Co-Authored-By: Claude Opus 4.8 --- src/index.tsx | 69 ++++++++++++++++++++++++++++++++++++ src/operations/pool_hall.gql | 6 ++++ src/schema.gql | 9 +++++ 3 files changed, 84 insertions(+) diff --git a/src/index.tsx b/src/index.tsx index cdb4d67..7a431b9 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -157,6 +157,7 @@ export type BucketSetInputGql = { export type CameraClaimSession = { __typename?: "CameraClaimSession"; + agreedTermsVersion?: Maybe; camera: PoolHallCamera; cameraId: Scalars["ID"]["output"]; challengeCode: Scalars["String"]["output"]; @@ -284,6 +285,8 @@ export type CreateCustomerPortalSessionResultGql = { }; export type CreatePoolHallCameraInput = { + allowsPrivateVideos?: InputMaybe; + claimTermsText?: InputMaybe; name: Scalars["String"]["input"]; pocketSize?: InputMaybe; poolHallId: Scalars["ID"]["input"]; @@ -2563,6 +2566,7 @@ export type MutationCreateBucketSetArgs = { }; export type MutationCreateCameraClaimSessionArgs = { + agreedTermsVersion?: InputMaybe; cameraId: Scalars["ID"]["input"]; durationMinutes?: InputMaybe; videoName?: InputMaybe; @@ -2963,6 +2967,9 @@ export type PoolHall = { export type PoolHallCamera = { __typename?: "PoolHallCamera"; + allowsPrivateVideos: Scalars["Boolean"]["output"]; + claimTermsText?: Maybe; + claimTermsVersion?: Maybe; createdAt: Scalars["DateTime"]["output"]; id: Scalars["ID"]["output"]; inUse: Scalars["Boolean"]["output"]; @@ -3825,6 +3832,8 @@ export type UpdateAnnotationInputGql = { }; export type UpdatePoolHallCameraInput = { + allowsPrivateVideos?: InputMaybe; + claimTermsText?: InputMaybe; id: Scalars["ID"]["input"]; name?: InputMaybe; pocketSize?: InputMaybe; @@ -5560,6 +5569,9 @@ export type PoolHallCameraFieldsFragment = { status: string; tableSize?: number | null; pocketSize?: number | null; + allowsPrivateVideos: boolean; + claimTermsText?: string | null; + claimTermsVersion?: number | null; inUse: boolean; lastPublishedAt?: any | null; lastUnpublishedAt?: any | null; @@ -5577,6 +5589,9 @@ export type PoolHallCameraWithHallFieldsFragment = { status: string; tableSize?: number | null; pocketSize?: number | null; + allowsPrivateVideos: boolean; + claimTermsText?: string | null; + claimTermsVersion?: number | null; inUse: boolean; lastPublishedAt?: any | null; lastUnpublishedAt?: any | null; @@ -5612,6 +5627,9 @@ export type PoolHallCameraStreamCredentialsFieldsFragment = { status: string; tableSize?: number | null; pocketSize?: number | null; + allowsPrivateVideos: boolean; + claimTermsText?: string | null; + claimTermsVersion?: number | null; inUse: boolean; lastPublishedAt?: any | null; lastUnpublishedAt?: any | null; @@ -5645,6 +5663,7 @@ export type CameraClaimSessionFieldsFragment = { detectedAt?: any | null; failedAt?: any | null; failureReason?: string | null; + agreedTermsVersion?: number | null; createdAt: any; updatedAt: any; camera: { @@ -5657,6 +5676,9 @@ export type CameraClaimSessionFieldsFragment = { status: string; tableSize?: number | null; pocketSize?: number | null; + allowsPrivateVideos: boolean; + claimTermsText?: string | null; + claimTermsVersion?: number | null; inUse: boolean; lastPublishedAt?: any | null; lastUnpublishedAt?: any | null; @@ -5703,6 +5725,9 @@ export type CameraLeaseFieldsFragment = { status: string; tableSize?: number | null; pocketSize?: number | null; + allowsPrivateVideos: boolean; + claimTermsText?: string | null; + claimTermsVersion?: number | null; inUse: boolean; lastPublishedAt?: any | null; lastUnpublishedAt?: any | null; @@ -5783,6 +5808,9 @@ export type GetPoolHallCamerasQuery = { status: string; tableSize?: number | null; pocketSize?: number | null; + allowsPrivateVideos: boolean; + claimTermsText?: string | null; + claimTermsVersion?: number | null; inUse: boolean; lastPublishedAt?: any | null; lastUnpublishedAt?: any | null; @@ -5821,6 +5849,9 @@ export type GetClaimableCamerasQuery = { status: string; tableSize?: number | null; pocketSize?: number | null; + allowsPrivateVideos: boolean; + claimTermsText?: string | null; + claimTermsVersion?: number | null; inUse: boolean; lastPublishedAt?: any | null; lastUnpublishedAt?: any | null; @@ -5860,6 +5891,7 @@ export type GetCameraClaimSessionQuery = { detectedAt?: any | null; failedAt?: any | null; failureReason?: string | null; + agreedTermsVersion?: number | null; createdAt: any; updatedAt: any; camera: { @@ -5872,6 +5904,9 @@ export type GetCameraClaimSessionQuery = { status: string; tableSize?: number | null; pocketSize?: number | null; + allowsPrivateVideos: boolean; + claimTermsText?: string | null; + claimTermsVersion?: number | null; inUse: boolean; lastPublishedAt?: any | null; lastUnpublishedAt?: any | null; @@ -5925,6 +5960,9 @@ export type GetActiveCameraLeaseQuery = { status: string; tableSize?: number | null; pocketSize?: number | null; + allowsPrivateVideos: boolean; + claimTermsText?: string | null; + claimTermsVersion?: number | null; inUse: boolean; lastPublishedAt?: any | null; lastUnpublishedAt?: any | null; @@ -6012,6 +6050,9 @@ export type CreatePoolHallCameraMutation = { status: string; tableSize?: number | null; pocketSize?: number | null; + allowsPrivateVideos: boolean; + claimTermsText?: string | null; + claimTermsVersion?: number | null; inUse: boolean; lastPublishedAt?: any | null; lastUnpublishedAt?: any | null; @@ -6051,6 +6092,9 @@ export type UpdatePoolHallCameraMutation = { status: string; tableSize?: number | null; pocketSize?: number | null; + allowsPrivateVideos: boolean; + claimTermsText?: string | null; + claimTermsVersion?: number | null; inUse: boolean; lastPublishedAt?: any | null; lastUnpublishedAt?: any | null; @@ -6093,6 +6137,9 @@ export type RotatePoolHallCameraStreamKeyMutation = { status: string; tableSize?: number | null; pocketSize?: number | null; + allowsPrivateVideos: boolean; + claimTermsText?: string | null; + claimTermsVersion?: number | null; inUse: boolean; lastPublishedAt?: any | null; lastUnpublishedAt?: any | null; @@ -6121,6 +6168,7 @@ export type CreateCameraClaimSessionMutationVariables = Exact<{ durationMinutes?: InputMaybe; videoName?: InputMaybe; videoPrivate?: InputMaybe; + agreedTermsVersion?: InputMaybe; }>; export type CreateCameraClaimSessionMutation = { @@ -6136,6 +6184,7 @@ export type CreateCameraClaimSessionMutation = { detectedAt?: any | null; failedAt?: any | null; failureReason?: string | null; + agreedTermsVersion?: number | null; createdAt: any; updatedAt: any; camera: { @@ -6148,6 +6197,9 @@ export type CreateCameraClaimSessionMutation = { status: string; tableSize?: number | null; pocketSize?: number | null; + allowsPrivateVideos: boolean; + claimTermsText?: string | null; + claimTermsVersion?: number | null; inUse: boolean; lastPublishedAt?: any | null; lastUnpublishedAt?: any | null; @@ -6188,6 +6240,7 @@ export type CancelCameraClaimSessionMutation = { detectedAt?: any | null; failedAt?: any | null; failureReason?: string | null; + agreedTermsVersion?: number | null; createdAt: any; updatedAt: any; camera: { @@ -6200,6 +6253,9 @@ export type CancelCameraClaimSessionMutation = { status: string; tableSize?: number | null; pocketSize?: number | null; + allowsPrivateVideos: boolean; + claimTermsText?: string | null; + claimTermsVersion?: number | null; inUse: boolean; lastPublishedAt?: any | null; lastUnpublishedAt?: any | null; @@ -6253,6 +6309,9 @@ export type EndCameraLeaseMutation = { status: string; tableSize?: number | null; pocketSize?: number | null; + allowsPrivateVideos: boolean; + claimTermsText?: string | null; + claimTermsVersion?: number | null; inUse: boolean; lastPublishedAt?: any | null; lastUnpublishedAt?: any | null; @@ -6307,6 +6366,9 @@ export type ExtendCameraLeaseMutation = { status: string; tableSize?: number | null; pocketSize?: number | null; + allowsPrivateVideos: boolean; + claimTermsText?: string | null; + claimTermsVersion?: number | null; inUse: boolean; lastPublishedAt?: any | null; lastUnpublishedAt?: any | null; @@ -8649,6 +8711,9 @@ export const PoolHallCameraFieldsFragmentDoc = gql` status tableSize pocketSize + allowsPrivateVideos + claimTermsText + claimTermsVersion inUse lastPublishedAt lastUnpublishedAt @@ -8702,6 +8767,7 @@ export const CameraClaimSessionFieldsFragmentDoc = gql` detectedAt failedAt failureReason + agreedTermsVersion createdAt updatedAt camera { @@ -13283,12 +13349,14 @@ export const CreateCameraClaimSessionDocument = gql` $durationMinutes: Int $videoName: String $videoPrivate: Boolean + $agreedTermsVersion: Int ) { createCameraClaimSession( cameraId: $cameraId durationMinutes: $durationMinutes videoName: $videoName videoPrivate: $videoPrivate + agreedTermsVersion: $agreedTermsVersion ) { ...CameraClaimSessionFields } @@ -13317,6 +13385,7 @@ export type CreateCameraClaimSessionMutationFn = Apollo.MutationFunction< * durationMinutes: // value for 'durationMinutes' * videoName: // value for 'videoName' * videoPrivate: // value for 'videoPrivate' + * agreedTermsVersion: // value for 'agreedTermsVersion' * }, * }); */ diff --git a/src/operations/pool_hall.gql b/src/operations/pool_hall.gql index d815baa..81ef995 100644 --- a/src/operations/pool_hall.gql +++ b/src/operations/pool_hall.gql @@ -21,6 +21,9 @@ fragment PoolHallCameraFields on PoolHallCamera { status tableSize pocketSize + allowsPrivateVideos + claimTermsText + claimTermsVersion inUse lastPublishedAt lastUnpublishedAt @@ -53,6 +56,7 @@ fragment CameraClaimSessionFields on CameraClaimSession { detectedAt failedAt failureReason + agreedTermsVersion createdAt updatedAt camera { @@ -149,12 +153,14 @@ mutation CreateCameraClaimSession( $durationMinutes: Int $videoName: String $videoPrivate: Boolean + $agreedTermsVersion: Int ) { createCameraClaimSession( cameraId: $cameraId durationMinutes: $durationMinutes videoName: $videoName videoPrivate: $videoPrivate + agreedTermsVersion: $agreedTermsVersion ) { ...CameraClaimSessionFields } diff --git a/src/schema.gql b/src/schema.gql index d0b2c89..fa8945d 100644 --- a/src/schema.gql +++ b/src/schema.gql @@ -911,6 +911,9 @@ type PoolHallCamera { status: String! tableSize: Float pocketSize: Float + allowsPrivateVideos: Boolean! + claimTermsText: String + claimTermsVersion: Int lastPublishedAt: DateTime lastUnpublishedAt: DateTime createdAt: DateTime! @@ -929,6 +932,7 @@ type CameraClaimSession { detectedAt: DateTime failedAt: DateTime failureReason: String + agreedTermsVersion: Int createdAt: DateTime! updatedAt: DateTime! camera: PoolHallCamera! @@ -1411,6 +1415,7 @@ type Mutation { durationMinutes: Int = null videoName: String = null videoPrivate: Boolean = null + agreedTermsVersion: Int = null ): CameraClaimSession! cancelCameraClaimSession(claimSessionId: ID!): CameraClaimSession! endCameraLease(leaseId: ID!): CameraLease! @@ -1529,6 +1534,8 @@ input CreatePoolHallCameraInput { streamPath: String = null tableSize: Float = null pocketSize: Float = null + allowsPrivateVideos: Boolean = null + claimTermsText: String = null } input UpdatePoolHallCameraInput { @@ -1538,6 +1545,8 @@ input UpdatePoolHallCameraInput { status: String = null tableSize: Float = null pocketSize: Float = null + allowsPrivateVideos: Boolean = null + claimTermsText: String = null } input FinalizePlayerAssignmentsInput {