From fc921c3ae77a80aa492846facd5e34c4395a6dc2 Mon Sep 17 00:00:00 2001 From: Dean Wenstrand Date: Mon, 6 Jul 2026 16:59:15 -0700 Subject: [PATCH 1/2] Add city/state to PoolHall type + create/update inputs Full address stays on `address`; city/state let the UI show a compact locality. Co-Authored-By: Claude Opus 4.8 --- src/index.tsx | 48 ++++++++++++++++++++++++++++++++++++ src/operations/pool_hall.gql | 2 ++ src/schema.gql | 6 +++++ 3 files changed, 56 insertions(+) diff --git a/src/index.tsx b/src/index.tsx index 4c3fe89..cdb4d67 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -294,9 +294,11 @@ export type CreatePoolHallCameraInput = { export type CreatePoolHallInput = { address?: InputMaybe; + city?: InputMaybe; latitude?: InputMaybe; longitude?: InputMaybe; name: Scalars["String"]["input"]; + state?: InputMaybe; timezone?: InputMaybe; }; @@ -2947,11 +2949,13 @@ export type PocketingIntentionInfoGql = { export type PoolHall = { __typename?: "PoolHall"; address?: Maybe; + city?: Maybe; createdAt: Scalars["DateTime"]["output"]; id: Scalars["ID"]["output"]; latitude?: Maybe; longitude?: Maybe; name: Scalars["String"]["output"]; + state?: Maybe; status: Scalars["String"]["output"]; timezone?: Maybe; updatedAt: Scalars["DateTime"]["output"]; @@ -3831,10 +3835,12 @@ export type UpdatePoolHallCameraInput = { export type UpdatePoolHallInput = { address?: InputMaybe; + city?: InputMaybe; id: Scalars["ID"]["input"]; latitude?: InputMaybe; longitude?: InputMaybe; name?: InputMaybe; + state?: InputMaybe; status?: InputMaybe; timezone?: InputMaybe; }; @@ -5534,6 +5540,8 @@ export type PoolHallFieldsFragment = { id: string; name: string; address?: string | null; + city?: string | null; + state?: string | null; latitude?: number | null; longitude?: number | null; timezone?: string | null; @@ -5579,6 +5587,8 @@ export type PoolHallCameraWithHallFieldsFragment = { id: string; name: string; address?: string | null; + city?: string | null; + state?: string | null; latitude?: number | null; longitude?: number | null; timezone?: string | null; @@ -5612,6 +5622,8 @@ export type PoolHallCameraStreamCredentialsFieldsFragment = { id: string; name: string; address?: string | null; + city?: string | null; + state?: string | null; latitude?: number | null; longitude?: number | null; timezone?: string | null; @@ -5655,6 +5667,8 @@ export type CameraClaimSessionFieldsFragment = { id: string; name: string; address?: string | null; + city?: string | null; + state?: string | null; latitude?: number | null; longitude?: number | null; timezone?: string | null; @@ -5699,6 +5713,8 @@ export type CameraLeaseFieldsFragment = { id: string; name: string; address?: string | null; + city?: string | null; + state?: string | null; latitude?: number | null; longitude?: number | null; timezone?: string | null; @@ -5718,6 +5734,8 @@ export type GetPoolHallsQuery = { id: string; name: string; address?: string | null; + city?: string | null; + state?: string | null; latitude?: number | null; longitude?: number | null; timezone?: string | null; @@ -5738,6 +5756,8 @@ export type GetClaimablePoolHallsQuery = { id: string; name: string; address?: string | null; + city?: string | null; + state?: string | null; latitude?: number | null; longitude?: number | null; timezone?: string | null; @@ -5773,6 +5793,8 @@ export type GetPoolHallCamerasQuery = { id: string; name: string; address?: string | null; + city?: string | null; + state?: string | null; latitude?: number | null; longitude?: number | null; timezone?: string | null; @@ -5809,6 +5831,8 @@ export type GetClaimableCamerasQuery = { id: string; name: string; address?: string | null; + city?: string | null; + state?: string | null; latitude?: number | null; longitude?: number | null; timezone?: string | null; @@ -5858,6 +5882,8 @@ export type GetCameraClaimSessionQuery = { id: string; name: string; address?: string | null; + city?: string | null; + state?: string | null; latitude?: number | null; longitude?: number | null; timezone?: string | null; @@ -5909,6 +5935,8 @@ export type GetActiveCameraLeaseQuery = { id: string; name: string; address?: string | null; + city?: string | null; + state?: string | null; latitude?: number | null; longitude?: number | null; timezone?: string | null; @@ -5931,6 +5959,8 @@ export type CreatePoolHallMutation = { id: string; name: string; address?: string | null; + city?: string | null; + state?: string | null; latitude?: number | null; longitude?: number | null; timezone?: string | null; @@ -5951,6 +5981,8 @@ export type UpdatePoolHallMutation = { id: string; name: string; address?: string | null; + city?: string | null; + state?: string | null; latitude?: number | null; longitude?: number | null; timezone?: string | null; @@ -5990,6 +6022,8 @@ export type CreatePoolHallCameraMutation = { id: string; name: string; address?: string | null; + city?: string | null; + state?: string | null; latitude?: number | null; longitude?: number | null; timezone?: string | null; @@ -6027,6 +6061,8 @@ export type UpdatePoolHallCameraMutation = { id: string; name: string; address?: string | null; + city?: string | null; + state?: string | null; latitude?: number | null; longitude?: number | null; timezone?: string | null; @@ -6067,6 +6103,8 @@ export type RotatePoolHallCameraStreamKeyMutation = { id: string; name: string; address?: string | null; + city?: string | null; + state?: string | null; latitude?: number | null; longitude?: number | null; timezone?: string | null; @@ -6120,6 +6158,8 @@ export type CreateCameraClaimSessionMutation = { id: string; name: string; address?: string | null; + city?: string | null; + state?: string | null; latitude?: number | null; longitude?: number | null; timezone?: string | null; @@ -6170,6 +6210,8 @@ export type CancelCameraClaimSessionMutation = { id: string; name: string; address?: string | null; + city?: string | null; + state?: string | null; latitude?: number | null; longitude?: number | null; timezone?: string | null; @@ -6221,6 +6263,8 @@ export type EndCameraLeaseMutation = { id: string; name: string; address?: string | null; + city?: string | null; + state?: string | null; latitude?: number | null; longitude?: number | null; timezone?: string | null; @@ -6273,6 +6317,8 @@ export type ExtendCameraLeaseMutation = { id: string; name: string; address?: string | null; + city?: string | null; + state?: string | null; latitude?: number | null; longitude?: number | null; timezone?: string | null; @@ -8615,6 +8661,8 @@ export const PoolHallFieldsFragmentDoc = gql` id name address + city + state latitude longitude timezone diff --git a/src/operations/pool_hall.gql b/src/operations/pool_hall.gql index da8a3c6..d815baa 100644 --- a/src/operations/pool_hall.gql +++ b/src/operations/pool_hall.gql @@ -2,6 +2,8 @@ fragment PoolHallFields on PoolHall { id name address + city + state latitude longitude timezone diff --git a/src/schema.gql b/src/schema.gql index 1367f66..d0b2c89 100644 --- a/src/schema.gql +++ b/src/schema.gql @@ -892,6 +892,8 @@ type PoolHall { id: ID! name: String! address: String + city: String + state: String latitude: Float longitude: Float timezone: String @@ -1495,6 +1497,8 @@ enum ReportReasonEnum { input CreatePoolHallInput { name: String! address: String = null + city: String = null + state: String = null latitude: Float = null longitude: Float = null timezone: String = null @@ -1504,6 +1508,8 @@ input UpdatePoolHallInput { id: ID! name: String = null address: String = null + city: String = null + state: String = null latitude: Float = null longitude: Float = null timezone: String = null -- 2.49.1 From 3ce2a7be6153cf087826c5c15c1f5975ca2282d6 Mon Sep 17 00:00:00 2001 From: Dean Wenstrand Date: Mon, 6 Jul 2026 18:21:58 -0700 Subject: [PATCH 2/2] 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 { -- 2.49.1