Add per-camera recording policy (terms + private allowance) to schema
All checks were successful
Tests / Tests (pull_request) Successful in 10s

allowsPrivateVideos / claimTermsText / claimTermsVersion on PoolHallCamera,
agreedTermsVersion on CameraClaimSession + the create-claim mutation.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Dean Wenstrand
2026-07-06 18:21:58 -07:00
parent fc921c3ae7
commit 3ce2a7be61
3 changed files with 84 additions and 0 deletions

View File

@@ -157,6 +157,7 @@ export type BucketSetInputGql = {
export type CameraClaimSession = {
__typename?: "CameraClaimSession";
agreedTermsVersion?: Maybe<Scalars["Int"]["output"]>;
camera: PoolHallCamera;
cameraId: Scalars["ID"]["output"];
challengeCode: Scalars["String"]["output"];
@@ -284,6 +285,8 @@ export type CreateCustomerPortalSessionResultGql = {
};
export type CreatePoolHallCameraInput = {
allowsPrivateVideos?: InputMaybe<Scalars["Boolean"]["input"]>;
claimTermsText?: InputMaybe<Scalars["String"]["input"]>;
name: Scalars["String"]["input"];
pocketSize?: InputMaybe<Scalars["Float"]["input"]>;
poolHallId: Scalars["ID"]["input"];
@@ -2563,6 +2566,7 @@ export type MutationCreateBucketSetArgs = {
};
export type MutationCreateCameraClaimSessionArgs = {
agreedTermsVersion?: InputMaybe<Scalars["Int"]["input"]>;
cameraId: Scalars["ID"]["input"];
durationMinutes?: InputMaybe<Scalars["Int"]["input"]>;
videoName?: InputMaybe<Scalars["String"]["input"]>;
@@ -2963,6 +2967,9 @@ export type PoolHall = {
export type PoolHallCamera = {
__typename?: "PoolHallCamera";
allowsPrivateVideos: Scalars["Boolean"]["output"];
claimTermsText?: Maybe<Scalars["String"]["output"]>;
claimTermsVersion?: Maybe<Scalars["Int"]["output"]>;
createdAt: Scalars["DateTime"]["output"];
id: Scalars["ID"]["output"];
inUse: Scalars["Boolean"]["output"];
@@ -3825,6 +3832,8 @@ export type UpdateAnnotationInputGql = {
};
export type UpdatePoolHallCameraInput = {
allowsPrivateVideos?: InputMaybe<Scalars["Boolean"]["input"]>;
claimTermsText?: InputMaybe<Scalars["String"]["input"]>;
id: Scalars["ID"]["input"];
name?: InputMaybe<Scalars["String"]["input"]>;
pocketSize?: InputMaybe<Scalars["Float"]["input"]>;
@@ -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<Scalars["Int"]["input"]>;
videoName?: InputMaybe<Scalars["String"]["input"]>;
videoPrivate?: InputMaybe<Scalars["Boolean"]["input"]>;
agreedTermsVersion?: InputMaybe<Scalars["Int"]["input"]>;
}>;
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'
* },
* });
*/

View File

@@ -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
}

View File

@@ -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 {