diff --git a/graphql/codegen/.gitignore b/graphql/codegen/.gitignore new file mode 100644 index 000000000..258e38780 --- /dev/null +++ b/graphql/codegen/.gitignore @@ -0,0 +1,19 @@ +# Build output +dist/ + +# Generated SDK output (for testing) +output-rq +output-orm/ + +# Dependencies +node_modules/ + +# IDE +.idea/ +.vscode/ + +# OS +.DS_Store + +# Logs +*.log diff --git a/graphql/codegen/CHANGELOG.md b/graphql/codegen/CHANGELOG.md index 1731c6915..98513e533 100644 --- a/graphql/codegen/CHANGELOG.md +++ b/graphql/codegen/CHANGELOG.md @@ -13,12 +13,31 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline ## [2.17.50](https://github.com/constructive-io/constructive/compare/@constructive-io/graphql-codegen@2.17.49...@constructive-io/graphql-codegen@2.17.50) (2026-01-05) -**Note:** Version bump only for package @constructive-io/graphql-codegen +### BREAKING CHANGES + +- **Complete package migration**: This package has been completely replaced with the code from `@constructive-io/graphql-sdk` (dashboard/packages/graphql-sdk) +- New CLI-based GraphQL SDK generator for PostGraphile endpoints with React Query hooks and Prisma-like ORM support +- Build system changed from `makage` to `tsup` +- Test framework changed from `jest` to `jest` (with ESM support) +- New CLI binary: `graphql-codegen` +- Added peer dependencies: `@tanstack/react-query`, `react` +- Uses workspace dependency for `gql-ast` + +### Features -## [2.17.49](https://github.com/constructive-io/constructive/compare/@constructive-io/graphql-codegen@2.17.48...@constructive-io/graphql-codegen@2.17.49) (2026-01-05) +- CLI commands: `init`, `generate`, `generate-orm` +- React Query hooks generation +- Prisma-like ORM client generation +- Watch mode with schema change detection +- Full TypeScript support with type inference + +--- + +## [2.17.49](https://github.com/constructive-io/constructive/compare/@constructive-io/graphql-codegen@2.17.49...@constructive-io/graphql-codegen@2.17.50) (2026-01-04) **Note:** Version bump only for package @constructive-io/graphql-codegen + ## [2.17.48](https://github.com/constructive-io/constructive/compare/@constructive-io/graphql-codegen@2.17.47...@constructive-io/graphql-codegen@2.17.48) (2026-01-03) **Note:** Version bump only for package @constructive-io/graphql-codegen diff --git a/graphql/codegen/README.md b/graphql/codegen/README.md index 2b8845047..8f58f0e2a 100644 --- a/graphql/codegen/README.md +++ b/graphql/codegen/README.md @@ -1,171 +1,1876 @@ -# @constructive-io/graphql-codegen +# @constructive-io/graphql-sdk -

- -

+CLI-based GraphQL SDK generator for PostGraphile endpoints. Generate type-safe React Query hooks or a Prisma-like ORM client from your GraphQL schema. -

- - - - - -

+## Features -Generate GraphQL mutations/queries +- **Two Output Modes**: React Query hooks OR Prisma-like ORM client +- **Full Schema Coverage**: Generates code for ALL queries and mutations, not just table CRUD +- **PostGraphile Optimized**: Uses `_meta` query for table metadata and `__schema` introspection for custom operations +- **React Query Integration**: Generates `useQuery` and `useMutation` hooks with proper typing +- **Prisma-like ORM**: Fluent API with `db.user.findMany()`, `db.mutation.login()`, etc. +- **Advanced Type Inference**: Const generics for narrowed return types based on select clauses +- **Relation Support**: Typed nested selects for belongsTo, hasMany, and manyToMany relations +- **Error Handling**: Discriminated unions with `.unwrap()`, `.unwrapOr()`, `.unwrapOrElse()` methods +- **AST-Based Generation**: Uses `ts-morph` for reliable code generation +- **Configurable**: Filter tables, queries, and mutations with glob patterns +- **Type-Safe**: Full TypeScript support with generated interfaces -```sh -npm install @constructive-io/graphql-codegen +## Table of Contents + +- [Installation](#installation) +- [Quick Start](#quick-start) +- [CLI Commands](#cli-commands) +- [Configuration](#configuration) +- [React Query Hooks](#react-query-hooks) +- [ORM Client](#orm-client) + - [Basic Usage](#basic-usage) + - [Select & Type Inference](#select--type-inference) + - [Relations](#relations) + - [Filtering & Ordering](#filtering--ordering) + - [Pagination](#pagination) + - [Error Handling](#error-handling) + - [Custom Operations](#custom-operations) +- [Architecture](#architecture) +- [Generated Types](#generated-types) +- [Development](#development) +- [Roadmap](#roadmap) + +## Installation + +```bash +pnpm add @constructive-io/graphql-sdk +``` + +## Quick Start + +### 1. Initialize Config (Optional) + +```bash +npx graphql-sdk init +``` + +Creates a `graphql-sdk.config.ts` file: + +```typescript +import { defineConfig } from '@constructive-io/graphql-sdk'; + +export default defineConfig({ + endpoint: 'https://api.example.com/graphql', + output: './generated/graphql', + headers: { + Authorization: 'Bearer ', + }, +}); +``` + +### 2. Generate SDK + +```bash +# Generate React Query hooks +npx graphql-sdk generate -e https://api.example.com/graphql -o ./generated/hooks + +# Generate ORM client +npx graphql-sdk generate-orm -e https://api.example.com/graphql -o ./generated/orm +``` + +### 3. Use the Generated Code + +```typescript +// ORM Client +import { createClient } from './generated/orm'; + +const db = createClient({ endpoint: 'https://api.example.com/graphql' }); + +const users = await db.user.findMany({ + select: { id: true, username: true }, + first: 10, +}).execute(); + +// React Query Hooks +import { useCarsQuery } from './generated/hooks'; + +function CarList() { + const { data } = useCarsQuery({ first: 10 }); + return ; +} +``` + +## CLI Commands + +### `graphql-sdk generate` + +Generate React Query hooks from a PostGraphile endpoint. + +```bash +Options: + -e, --endpoint GraphQL endpoint URL (overrides config) + -o, --output Output directory (default: ./generated/graphql) + -c, --config Path to config file + -a, --authorization Authorization header value + --dry-run Preview without writing files + --skip-custom-operations Only generate table CRUD hooks + -v, --verbose Show detailed output +``` + +### `graphql-sdk generate-orm` + +Generate Prisma-like ORM client from a PostGraphile endpoint. + +```bash +Options: + -e, --endpoint GraphQL endpoint URL + -o, --output Output directory (default: ./generated/orm) + -c, --config Path to config file + -a, --authorization Authorization header value + --skip-custom-operations Only generate table models + --dry-run Preview without writing files + -v, --verbose Show detailed output +``` + +### `graphql-sdk init` + +Create a configuration file. + +```bash +Options: + -f, --format Config format: ts, js, json (default: ts) + -o, --output Output path for config file +``` + +### `graphql-sdk introspect` + +Inspect schema without generating code. + +```bash +Options: + -e, --endpoint GraphQL endpoint URL + --json Output as JSON + -v, --verbose Show detailed output ``` -## introspecting via GraphQL +## Configuration + +```typescript +interface GraphQLSDKConfig { + // Required + endpoint: string; + + // Output + output?: string; // default: './generated/graphql' + + // Authentication + headers?: Record; + + // Table filtering (for CRUD operations from _meta) + tables?: { + include?: string[]; // default: ['*'] + exclude?: string[]; // default: [] + }; + + // Query filtering (for ALL queries from __schema) + queries?: { + include?: string[]; // default: ['*'] + exclude?: string[]; // default: ['_meta', 'query'] + }; -```js -import { - generate -} from '@constructive-io/graphql-codegen'; -import { print } from 'graphql/language'; + // Mutation filtering (for ALL mutations from __schema) + mutations?: { + include?: string[]; // default: ['*'] + exclude?: string[]; // default: [] + }; -const gen = generate(resultOfIntrospectionQuery); -const output = Object.keys(gen).reduce((m, key) => { - m[key] = print(gen[key].ast); - return m; -}, {}); + // Code generation options + codegen?: { + maxFieldDepth?: number; // default: 2 + skipQueryField?: boolean; // default: true + }; -console.log(output); + // ORM-specific config + orm?: { + output?: string; // default: './generated/orm' + useSharedTypes?: boolean; // default: true + }; +} ``` -# output +### Glob Patterns -which will output the entire API as an object with the mutations and queries as values +Filter patterns support wildcards: +- `*` - matches any string +- `?` - matches single character -```json +Examples: +```typescript { - "createApiTokenMutation": "mutation createApiTokenMutation($id: UUID, $userId: UUID!, $accessToken: String, $accessTokenExpiresAt: Datetime) { - createApiToken(input: {apiToken: {id: $id, userId: $userId, accessToken: $accessToken, accessTokenExpiresAt: $accessTokenExpiresAt}}) { - apiToken { - id - userId - accessToken - accessTokenExpiresAt - } + tables: { + include: ['User', 'Product', 'Order*'], + exclude: ['*_archive', 'temp_*'], + }, + queries: { + exclude: ['_meta', 'query', '*Debug*'], + }, + mutations: { + include: ['create*', 'update*', 'delete*', 'login', 'register', 'logout'], + }, +} +``` + +## React Query Hooks + +The React Query hooks generator creates type-safe `useQuery` and `useMutation` hooks for your PostGraphile API, fully integrated with TanStack Query (React Query v5). + +### Generated Output Structure + +``` +generated/hooks/ +├── index.ts # Main barrel export (configure, hooks, types) +├── client.ts # configure() and execute() functions +├── types.ts # Entity interfaces, filter types, enums +├── hooks.ts # All hooks re-exported +├── queries/ +│ ├── index.ts # Query hooks barrel +│ ├── useCarsQuery.ts # Table list query (findMany) +│ ├── useCarQuery.ts # Table single item query (findOne) +│ ├── useCurrentUserQuery.ts # Custom query +│ └── ... +└── mutations/ + ├── index.ts # Mutation hooks barrel + ├── useCreateCarMutation.ts + ├── useUpdateCarMutation.ts + ├── useDeleteCarMutation.ts + ├── useLoginMutation.ts # Custom mutation + └── ... +``` + +### Setup & Configuration + +#### 1. Configure the Client + +Configure the GraphQL client once at your app's entry point: + +```tsx +// App.tsx or main.tsx +import { configure } from './generated/hooks'; + +// Basic configuration +configure({ + endpoint: 'https://api.example.com/graphql', +}); + +// With authentication +configure({ + endpoint: 'https://api.example.com/graphql', + headers: { + Authorization: 'Bearer ', + 'X-Custom-Header': 'value', + }, +}); +``` + +#### 2. Update Headers at Runtime + +```tsx +import { configure } from './generated/hooks'; + +// After login, update the authorization header +function handleLoginSuccess(token: string) { + configure({ + endpoint: 'https://api.example.com/graphql', + headers: { + Authorization: `Bearer ${token}`, + }, + }); +} +``` + +### Table Query Hooks + +For each table, two query hooks are generated: + +#### List Query (`use{Table}sQuery`) + +Fetches multiple records with pagination, filtering, and ordering: + +```tsx +import { useCarsQuery } from './generated/hooks'; + +function CarList() { + const { + data, + isLoading, + isError, + error, + refetch, + isFetching, + } = useCarsQuery({ + // Pagination + first: 10, // First N records + // last: 10, // Last N records + // after: 'cursor', // Cursor-based pagination + // before: 'cursor', + // offset: 20, // Offset pagination + + // Filtering + filter: { + brand: { equalTo: 'Tesla' }, + price: { greaterThan: 50000 }, + }, + + // Ordering + orderBy: ['CREATED_AT_DESC', 'NAME_ASC'], + }); + + if (isLoading) return
Loading...
; + if (isError) return
Error: {error.message}
; + + return ( +
+

Total: {data?.cars.totalCount}

+
    + {data?.cars.nodes.map(car => ( +
  • {car.brand} - ${car.price}
  • + ))} +
+ + {/* Pagination info */} + {data?.cars.pageInfo.hasNextPage && ( + + )} +
+ ); +} +``` + +#### Single Item Query (`use{Table}Query`) + +Fetches a single record by ID: + +```tsx +import { useCarQuery } from './generated/hooks'; + +function CarDetails({ carId }: { carId: string }) { + const { data, isLoading, isError } = useCarQuery({ + id: carId, + }); + + if (isLoading) return
Loading...
; + if (isError) return
Car not found
; + + return ( +
+

{data?.car?.brand}

+

Price: ${data?.car?.price}

+

Created: {data?.car?.createdAt}

+
+ ); +} +``` + +### Mutation Hooks + +For each table, three mutation hooks are generated: + +#### Create Mutation (`useCreate{Table}Mutation`) + +```tsx +import { useCreateCarMutation } from './generated/hooks'; + +function CreateCarForm() { + const createCar = useCreateCarMutation({ + onSuccess: (data) => { + console.log('Created car:', data.createCar.car.id); + // Invalidate queries, redirect, show toast, etc. + }, + onError: (error) => { + console.error('Failed to create car:', error); + }, + }); + + const handleSubmit = (formData: { brand: string; price: number }) => { + createCar.mutate({ + input: { + car: { + brand: formData.brand, + price: formData.price, + }, + }, + }); + }; + + return ( +
{ e.preventDefault(); handleSubmit({ brand: 'Tesla', price: 80000 }); }}> + {/* form fields */} + + {createCar.isError &&

Error: {createCar.error.message}

} +
+ ); +} +``` + +#### Update Mutation (`useUpdate{Table}Mutation`) + +```tsx +import { useUpdateCarMutation } from './generated/hooks'; + +function EditCarForm({ carId, currentBrand }: { carId: string; currentBrand: string }) { + const updateCar = useUpdateCarMutation({ + onSuccess: (data) => { + console.log('Updated car:', data.updateCar.car.brand); + }, + }); + + const handleUpdate = (newBrand: string) => { + updateCar.mutate({ + input: { + id: carId, + patch: { + brand: newBrand, + }, + }, + }); + }; + + return ( + + ); +} +``` + +#### Delete Mutation (`useDelete{Table}Mutation`) + +```tsx +import { useDeleteCarMutation } from './generated/hooks'; + +function DeleteCarButton({ carId }: { carId: string }) { + const deleteCar = useDeleteCarMutation({ + onSuccess: () => { + console.log('Car deleted'); + // Navigate away, refetch list, etc. + }, + }); + + return ( + + ); +} +``` + +### Custom Query Hooks + +Custom queries from your schema (like `currentUser`, `nodeById`, etc.) get their own hooks: + +```tsx +import { useCurrentUserQuery, useNodeByIdQuery } from './generated/hooks'; + +// Simple custom query +function UserProfile() { + const { data, isLoading } = useCurrentUserQuery(); + + if (isLoading) return
Loading...
; + if (!data?.currentUser) return
Not logged in
; + + return ( +
+

Welcome, {data.currentUser.username}

+

Email: {data.currentUser.email}

+
+ ); +} + +// Custom query with arguments +function NodeViewer({ nodeId }: { nodeId: string }) { + const { data } = useNodeByIdQuery({ + id: nodeId, + }); + + return
{JSON.stringify(data?.node, null, 2)}
; +} +``` + +### Custom Mutation Hooks + +Custom mutations (like `login`, `register`, `logout`) get dedicated hooks: + +```tsx +import { + useLoginMutation, + useRegisterMutation, + useLogoutMutation, + useForgotPasswordMutation, +} from './generated/hooks'; + +// Login +function LoginForm() { + const login = useLoginMutation({ + onSuccess: (data) => { + const token = data.login.apiToken?.accessToken; + if (token) { + localStorage.setItem('token', token); + // Reconfigure client with new token + configure({ + endpoint: 'https://api.example.com/graphql', + headers: { Authorization: `Bearer ${token}` }, + }); + } + }, + onError: (error) => { + alert('Login failed: ' + error.message); + }, + }); + + const handleLogin = (email: string, password: string) => { + login.mutate({ + input: { email, password }, + }); + }; + + return ( +
{ e.preventDefault(); handleLogin('user@example.com', 'password'); }}> + {/* email and password inputs */} + +
+ ); +} + +// Register +function RegisterForm() { + const register = useRegisterMutation({ + onSuccess: () => { + alert('Registration successful! Please check your email.'); + }, + }); + + const handleRegister = (data: { email: string; password: string; username: string }) => { + register.mutate({ + input: { + email: data.email, + password: data.password, + username: data.username, + }, + }); + }; + + return ( + + ); +} + +// Logout +function LogoutButton() { + const logout = useLogoutMutation({ + onSuccess: () => { + localStorage.removeItem('token'); + window.location.href = '/login'; + }, + }); + + return ( + + ); +} + +// Forgot Password +function ForgotPasswordForm() { + const forgotPassword = useForgotPasswordMutation({ + onSuccess: () => { + alert('Password reset email sent!'); + }, + }); + + return ( + + ); +} +``` + +### Filtering + +All filter types from your PostGraphile schema are available: + +```tsx +// String filters +useCarsQuery({ + filter: { + brand: { + equalTo: 'Tesla', + notEqualTo: 'Ford', + in: ['Tesla', 'BMW', 'Mercedes'], + notIn: ['Unknown'], + contains: 'es', // LIKE '%es%' + startsWith: 'Tes', // LIKE 'Tes%' + endsWith: 'la', // LIKE '%la' + includesInsensitive: 'TESLA', // Case-insensitive + }, + }, +}); + +// Number filters +useProductsQuery({ + filter: { + price: { + equalTo: 100, + greaterThan: 50, + greaterThanOrEqualTo: 50, + lessThan: 200, + lessThanOrEqualTo: 200, + }, + }, +}); + +// Boolean filters +useUsersQuery({ + filter: { + isActive: { equalTo: true }, + isAdmin: { equalTo: false }, + }, +}); + +// Date/DateTime filters +useOrdersQuery({ + filter: { + createdAt: { + greaterThan: '2024-01-01T00:00:00Z', + lessThan: '2024-12-31T23:59:59Z', + }, + }, +}); + +// Null checks +useUsersQuery({ + filter: { + deletedAt: { isNull: true }, // Only non-deleted + }, +}); + +// Logical operators +useUsersQuery({ + filter: { + // AND (implicit) + isActive: { equalTo: true }, + role: { equalTo: 'ADMIN' }, + }, +}); + +useUsersQuery({ + filter: { + // OR + or: [ + { role: { equalTo: 'ADMIN' } }, + { role: { equalTo: 'MODERATOR' } }, + ], + }, +}); + +useUsersQuery({ + filter: { + // Complex: active AND (admin OR moderator) + and: [ + { isActive: { equalTo: true } }, + { + or: [ + { role: { equalTo: 'ADMIN' } }, + { role: { equalTo: 'MODERATOR' } }, + ], + }, + ], + }, +}); + +useUsersQuery({ + filter: { + // NOT + not: { status: { equalTo: 'DELETED' } }, + }, +}); +``` + +### Ordering + +```tsx +// Single order +useCarsQuery({ + orderBy: ['CREATED_AT_DESC'], +}); + +// Multiple orders (fallback) +useCarsQuery({ + orderBy: ['BRAND_ASC', 'CREATED_AT_DESC'], +}); + +// Available OrderBy values per table: +// - PRIMARY_KEY_ASC / PRIMARY_KEY_DESC +// - NATURAL +// - {FIELD_NAME}_ASC / {FIELD_NAME}_DESC +``` + +### Pagination + +```tsx +// First N records +useCarsQuery({ first: 10 }); + +// Last N records +useCarsQuery({ last: 10 }); + +// Offset pagination +useCarsQuery({ first: 10, offset: 20 }); // Skip 20, take 10 + +// Cursor-based pagination +function PaginatedList() { + const [cursor, setCursor] = useState(null); + + const { data } = useCarsQuery({ + first: 10, + after: cursor, + }); + + return ( +
+ {data?.cars.nodes.map(car =>
{car.brand}
)} + + {data?.cars.pageInfo.hasNextPage && ( + + )} +
+ ); +} + +// PageInfo structure +// { +// hasNextPage: boolean; +// hasPreviousPage: boolean; +// startCursor: string | null; +// endCursor: string | null; +// } +``` + +### React Query Options + +All hooks accept standard React Query options: + +```tsx +// Query hooks +useCarsQuery( + { first: 10 }, // Variables + { + // React Query options + enabled: isAuthenticated, // Conditional fetching + refetchInterval: 30000, // Poll every 30s + refetchOnWindowFocus: true, // Refetch on tab focus + staleTime: 5 * 60 * 1000, // Consider fresh for 5 min + gcTime: 30 * 60 * 1000, // Keep in cache for 30 min + retry: 3, // Retry failed requests + retryDelay: (attemptIndex) => Math.min(1000 * 2 ** attemptIndex, 30000), + placeholderData: previousData, // Show previous data while loading + select: (data) => data.cars.nodes, // Transform data } +); + +// Mutation hooks +useCreateCarMutation({ + onSuccess: (data, variables, context) => { + console.log('Created:', data); + queryClient.invalidateQueries({ queryKey: ['cars'] }); + }, + onError: (error, variables, context) => { + console.error('Error:', error); + }, + onSettled: (data, error, variables, context) => { + console.log('Mutation completed'); + }, + onMutate: async (variables) => { + // Optimistic update + await queryClient.cancelQueries({ queryKey: ['cars'] }); + const previousCars = queryClient.getQueryData(['cars']); + queryClient.setQueryData(['cars'], (old) => ({ + ...old, + cars: { + ...old.cars, + nodes: [...old.cars.nodes, { id: 'temp', ...variables.input.car }], + }, + })); + return { previousCars }; + }, +}); +``` + +### Cache Invalidation + +```tsx +import { useQueryClient } from '@tanstack/react-query'; +import { useCreateCarMutation, useCarsQuery } from './generated/hooks'; + +function CreateCarWithInvalidation() { + const queryClient = useQueryClient(); + + const createCar = useCreateCarMutation({ + onSuccess: () => { + // Invalidate all car queries to refetch + queryClient.invalidateQueries({ queryKey: ['cars'] }); + + // Or invalidate specific queries + queryClient.invalidateQueries({ queryKey: ['cars', { first: 10 }] }); + }, + }); + + // ... } ``` -## Codegen (types, operations, SDK, React Query) +### Prefetching -Programmatic codegen generates files to disk from a schema SDL file or from a live endpoint via introspection. +```tsx +import { useQueryClient } from '@tanstack/react-query'; -```js -import { runCodegen, defaultGraphQLCodegenOptions } from '@constructive-io/graphql-codegen' +function CarListItem({ car }: { car: Car }) { + const queryClient = useQueryClient(); -await runCodegen({ - input: { schema: './schema.graphql' }, // or: { endpoint: 'http://localhost:3000/graphql', headers: { Host: 'meta8.localhost' } } - output: defaultGraphQLCodegenOptions.output, // root/typesFile/operationsDir/sdkFile/reactQueryFile - documents: defaultGraphQLCodegenOptions.documents, // format: 'gql'|'ts', naming convention - features: { emitTypes: true, emitOperations: true, emitSdk: true, emitReactQuery: true }, - reactQuery: { fetcher: 'graphql-request' } -}, process.cwd()) + // Prefetch details on hover + const handleHover = () => { + queryClient.prefetchQuery({ + queryKey: ['car', { id: car.id }], + queryFn: () => execute(carQuery, { id: car.id }), + }); + }; + + return ( + + {car.brand} + + ); +} ``` -Outputs under `output.root`: -- `types/generated.ts` (schema types) -- `operations/*` (queries/mutations/Fragments) -- `sdk.ts` (typed GraphQL Request client) -- `react-query.ts` (typed React Query hooks; generated when `emitReactQuery: true`) +### Type Exports + +All generated types are exported for use in your application: + +```tsx +import type { + // Entity types + Car, + User, + Product, + Order, + + // Filter types + CarFilter, + UserFilter, + StringFilter, + IntFilter, + UUIDFilter, + DatetimeFilter, + + // OrderBy types + CarsOrderBy, + UsersOrderBy, + + // Input types + CreateCarInput, + UpdateCarInput, + CarPatch, + LoginInput, + + // Payload types + LoginPayload, + CreateCarPayload, +} from './generated/hooks'; + +// Use in your components +interface CarListProps { + filter?: CarFilter; + orderBy?: CarsOrderBy[]; +} + +function CarList({ filter, orderBy }: CarListProps) { + const { data } = useCarsQuery({ filter, orderBy, first: 10 }); + // ... +} +``` -Documents options: -- `format`: `'gql' | 'ts'` -- `convention`: `'dashed' | 'underscore' | 'camelcase' | 'camelUpper'` -- `allowQueries`, `excludeQueries`, `excludePatterns` to control which root fields become operations +### Error Handling -Endpoint introspection: -- Set `input.endpoint` and optional `input.headers` -- If your dev server routes by hostname, add `headers: { Host: 'meta8.localhost' }` +```tsx +function CarList() { + const { data, isLoading, isError, error, failureCount } = useCarsQuery({ + first: 10, + }); -## Selection Options + if (isLoading) { + return
Loading...
; + } -Configure mutation input style and connection pagination shape. + if (isError) { + // error is typed as Error + return ( +
+

Error: {error.message}

+

Failed {failureCount} times

+ +
+ ); + } -```ts -selection: { - mutationInputMode?: 'expanded' | 'model' | 'raw' | 'patchCollapsed' - connectionStyle?: 'nodes' | 'edges' - forceModelOutput?: boolean + return
{/* render data */}
; } + +// Global error handling +const queryClient = new QueryClient({ + defaultOptions: { + queries: { + onError: (error) => { + console.error('Query error:', error); + // Show toast, log to monitoring, etc. + }, + }, + mutations: { + onError: (error) => { + console.error('Mutation error:', error); + }, + }, + }, +}); ``` -- `mutationInputMode` - - Controls how mutation variables and `input` are generated. - - `expanded`: one variable per input property; `input` is a flat object of those variables. - - `model`: one variable per property; variables are nested under the singular model key inside `input`. - - `raw`: a single `$input: !` variable passed directly as `input: $input`. - - `patchCollapsed`: a single `$patch: !` plus required locator(s) (e.g., `$id`), passed as `input: { id: $id, patch: $patch }`. +### Generated Types Reference -- `connectionStyle` - - Standardizes connection queries and nested many selections. - - `nodes`: emits `totalCount` and `nodes { ... }`. - - `edges`: emits `totalCount`, `pageInfo { ... }`, and `edges { cursor node { ... } }`. +```typescript +// Query hook return type +type UseQueryResult = { + data: TData | undefined; + error: Error | null; + isLoading: boolean; + isFetching: boolean; + isError: boolean; + isSuccess: boolean; + refetch: () => Promise>; + // ... more React Query properties +}; + +// Mutation hook return type +type UseMutationResult = { + data: TData | undefined; + error: Error | null; + isLoading: boolean; // deprecated, use isPending + isPending: boolean; + isError: boolean; + isSuccess: boolean; + mutate: (variables: TVariables) => void; + mutateAsync: (variables: TVariables) => Promise; + reset: () => void; + // ... more React Query properties +}; + +// Connection result (for list queries) +interface CarsConnection { + nodes: Car[]; + totalCount: number; + pageInfo: PageInfo; +} + +interface PageInfo { + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; + endCursor: string | null; +} +``` -- `forceModelOutput` - - When `true`, ensures the object payload selection is emitted to avoid a payload with only `clientMutationId`. +--- -### Examples +## ORM Client -Create mutation with raw input: +The ORM client provides a Prisma-like fluent API for GraphQL operations without React dependencies. -```graphql -mutation createDomain($input: CreateDomainInput!) { - createDomain(input: $input) { - domain { id, domain, subdomain } +### Generated Output Structure + +``` +generated/orm/ +├── index.ts # createClient() factory + re-exports +├── client.ts # OrmClient class (GraphQL executor) +├── query-builder.ts # QueryBuilder with execute(), unwrap(), etc. +├── select-types.ts # Type utilities for select inference +├── input-types.ts # All generated types (entities, filters, inputs, etc.) +├── types.ts # Re-exports from input-types +├── models/ +│ ├── index.ts # Barrel export for all models +│ ├── user.ts # UserModel class +│ ├── product.ts # ProductModel class +│ ├── order.ts # OrderModel class +│ └── ... +├── query/ +│ └── index.ts # Custom query operations (currentUser, etc.) +└── mutation/ + └── index.ts # Custom mutation operations (login, register, etc.) +``` + +### Basic Usage + +```typescript +import { createClient } from './generated/orm'; + +// Create client instance +const db = createClient({ + endpoint: 'https://api.example.com/graphql', + headers: { Authorization: 'Bearer ' }, +}); + +// Query users +const result = await db.user.findMany({ + select: { id: true, username: true, email: true }, + first: 20, +}).execute(); + +if (result.ok) { + console.log(result.data.users.nodes); +} else { + console.error(result.errors); +} + +// Find first matching user +const user = await db.user.findFirst({ + select: { id: true, username: true }, + where: { username: { equalTo: 'john' } }, +}).execute(); + +// Create a user +const newUser = await db.user.create({ + data: { username: 'john', email: 'john@example.com' }, + select: { id: true, username: true }, +}).execute(); + +// Update a user +const updated = await db.user.update({ + where: { id: 'user-id' }, + data: { displayName: 'John Doe' }, + select: { id: true, displayName: true }, +}).execute(); + +// Delete a user +const deleted = await db.user.delete({ + where: { id: 'user-id' }, +}).execute(); +``` + +### Select & Type Inference + +The ORM uses **const generics** to infer return types based on your select clause. Only the fields you select will be in the return type. + +```typescript +// Select specific fields - return type is narrowed +const users = await db.user.findMany({ + select: { id: true, username: true } // Only id and username +}).unwrap(); + +// TypeScript knows the exact shape: +// users.users.nodes[0] is { id: string; username: string | null } + +// If you try to access a field you didn't select, TypeScript will error: +// users.users.nodes[0].email // Error: Property 'email' does not exist + +// Without select, you get the full entity type +const allFields = await db.user.findMany({}).unwrap(); +// allFields.users.nodes[0] has all User fields +``` + +### Relations + +Relations are fully typed in Select types. The ORM supports all PostGraphile relation types: + +#### BelongsTo Relations (Single Entity) + +```typescript +// Order.customer is a belongsTo relation to User +const orders = await db.order.findMany({ + select: { + id: true, + orderNumber: true, + // Nested select for belongsTo relation + customer: { + select: { id: true, username: true, displayName: true } + } + } +}).unwrap(); + +// TypeScript knows: +// orders.orders.nodes[0].customer is { id: string; username: string | null; displayName: string | null } +``` + +#### HasMany Relations (Connection/Collection) + +```typescript +// Order.orderItems is a hasMany relation to OrderItem +const orders = await db.order.findMany({ + select: { + id: true, + // HasMany with pagination and filtering + orderItems: { + select: { id: true, quantity: true, price: true }, + first: 10, // Pagination + filter: { quantity: { greaterThan: 0 } }, // Filtering + orderBy: ['QUANTITY_DESC'] // Ordering + } + } +}).unwrap(); + +// orders.orders.nodes[0].orderItems is a connection: +// { nodes: Array<{ id: string; quantity: number | null; price: number | null }>, totalCount: number, pageInfo: PageInfo } +``` + +#### ManyToMany Relations + +```typescript +// Order.productsByOrderItemOrderIdAndProductId is a manyToMany through OrderItem +const orders = await db.order.findMany({ + select: { + id: true, + productsByOrderItemOrderIdAndProductId: { + select: { id: true, name: true, price: true }, + first: 5 + } + } +}).unwrap(); +``` + +#### Deeply Nested Relations + +```typescript +// Multiple levels of nesting +const products = await db.product.findMany({ + select: { + id: true, + name: true, + // BelongsTo: Product -> User (seller) + seller: { + select: { + id: true, + username: true, + // Even deeper nesting if needed + } + }, + // BelongsTo: Product -> Category + category: { + select: { id: true, name: true } + }, + // HasMany: Product -> Review + reviews: { + select: { + id: true, + rating: true, + comment: true + }, + first: 5, + orderBy: ['CREATED_AT_DESC'] + } + } +}).unwrap(); +``` + +### Filtering & Ordering + +#### Filter Types + +Each entity has a generated Filter type with field-specific operators: + +```typescript +// String filters +where: { + username: { + equalTo: 'john', + notEqualTo: 'jane', + in: ['john', 'jane', 'bob'], + notIn: ['admin'], + contains: 'oh', // LIKE '%oh%' + startsWith: 'j', // LIKE 'j%' + endsWith: 'n', // LIKE '%n' + includesInsensitive: 'OH', // Case-insensitive + } +} + +// Number filters (Int, Float, BigInt, BigFloat) +where: { + price: { + equalTo: 100, + greaterThan: 50, + greaterThanOrEqualTo: 50, + lessThan: 200, + lessThanOrEqualTo: 200, + in: [100, 200, 300], } } + +// Boolean filters +where: { + isActive: { equalTo: true } +} + +// UUID filters +where: { + id: { + equalTo: 'uuid-string', + in: ['uuid-1', 'uuid-2'], + } +} + +// DateTime filters +where: { + createdAt: { + greaterThan: '2024-01-01T00:00:00Z', + lessThan: '2024-12-31T23:59:59Z', + } +} + +// JSON filters +where: { + metadata: { + contains: { key: 'value' }, + containsKey: 'key', + containsAllKeys: ['key1', 'key2'], + } +} + +// Null checks (all filters) +where: { + deletedAt: { isNull: true } +} +``` + +#### Logical Operators + +```typescript +// AND (implicit - all conditions must match) +where: { + isActive: { equalTo: true }, + username: { startsWith: 'j' } +} + +// AND (explicit) +where: { + and: [ + { isActive: { equalTo: true } }, + { username: { startsWith: 'j' } } + ] +} + +// OR +where: { + or: [ + { status: { equalTo: 'ACTIVE' } }, + { status: { equalTo: 'PENDING' } } + ] +} + +// NOT +where: { + not: { status: { equalTo: 'DELETED' } } +} + +// Complex combinations +where: { + and: [ + { isActive: { equalTo: true } }, + { + or: [ + { role: { equalTo: 'ADMIN' } }, + { role: { equalTo: 'MODERATOR' } } + ] + } + ] +} ``` -Patch mutation with collapsed patch: +#### Ordering -```graphql -mutation updateDomain($id: UUID!, $patch: DomainPatch!) { - updateDomain(input: { id: $id, patch: $patch }) { - domain { id } - clientMutationId +```typescript +const users = await db.user.findMany({ + select: { id: true, username: true, createdAt: true }, + orderBy: [ + 'CREATED_AT_DESC', // Newest first + 'USERNAME_ASC', // Then alphabetical + ] +}).unwrap(); + +// Available OrderBy values (generated per entity): +// - PRIMARY_KEY_ASC / PRIMARY_KEY_DESC +// - NATURAL +// - {FIELD_NAME}_ASC / {FIELD_NAME}_DESC +``` + +### Pagination + +The ORM supports cursor-based and offset pagination: + +```typescript +// First N records +const first10 = await db.user.findMany({ + select: { id: true }, + first: 10 +}).unwrap(); + +// Last N records +const last10 = await db.user.findMany({ + select: { id: true }, + last: 10 +}).unwrap(); + +// Cursor-based pagination (after/before) +const page1 = await db.user.findMany({ + select: { id: true }, + first: 10 +}).unwrap(); + +const endCursor = page1.users.pageInfo.endCursor; + +const page2 = await db.user.findMany({ + select: { id: true }, + first: 10, + after: endCursor // Get records after this cursor +}).unwrap(); + +// Offset pagination +const page3 = await db.user.findMany({ + select: { id: true }, + first: 10, + offset: 20 // Skip first 20 records +}).unwrap(); + +// PageInfo structure +// { +// hasNextPage: boolean; +// hasPreviousPage: boolean; +// startCursor: string | null; +// endCursor: string | null; +// } + +// Total count is always included +console.log(page1.users.totalCount); // Total matching records +``` + +### Error Handling + +The ORM provides multiple ways to handle errors: + +#### Discriminated Union (Recommended) + +```typescript +const result = await db.user.findMany({ + select: { id: true } +}).execute(); + +if (result.ok) { + // TypeScript knows result.data is non-null + console.log(result.data.users.nodes); + // result.errors is undefined in this branch +} else { + // TypeScript knows result.errors is non-null + console.error(result.errors[0].message); + // result.data is null in this branch +} +``` + +#### `.unwrap()` - Throw on Error + +```typescript +import { GraphQLRequestError } from './generated/orm'; + +try { + // Throws GraphQLRequestError if query fails + const data = await db.user.findMany({ + select: { id: true } + }).unwrap(); + + console.log(data.users.nodes); +} catch (error) { + if (error instanceof GraphQLRequestError) { + console.error('GraphQL errors:', error.errors); + console.error('Message:', error.message); } } ``` -Edges‑style connection query: +#### `.unwrapOr()` - Default Value on Error -```graphql -query getDomainsPaginated($first: Int, $after: Cursor) { - domains(first: $first, after: $after) { - totalCount - pageInfo { hasNextPage hasPreviousPage endCursor startCursor } - edges { cursor node { id domain subdomain } } +```typescript +// Returns default value if query fails (no throwing) +const data = await db.user.findMany({ + select: { id: true } +}).unwrapOr({ + users: { + nodes: [], + totalCount: 0, + pageInfo: { hasNextPage: false, hasPreviousPage: false } } +}); + +// Always returns data (either real or default) +console.log(data.users.nodes); +``` + +#### `.unwrapOrElse()` - Callback on Error + +```typescript +// Call a function to handle errors and return fallback +const data = await db.user.findMany({ + select: { id: true } +}).unwrapOrElse((errors) => { + // Log errors, send to monitoring, etc. + console.error('Query failed:', errors.map(e => e.message).join(', ')); + + // Return fallback data + return { + users: { + nodes: [], + totalCount: 0, + pageInfo: { hasNextPage: false, hasPreviousPage: false } + } + }; +}); +``` + +#### Error Types + +```typescript +interface GraphQLError { + message: string; + locations?: { line: number; column: number }[]; + path?: (string | number)[]; + extensions?: Record; +} + +class GraphQLRequestError extends Error { + readonly errors: GraphQLError[]; + readonly data: unknown; // Partial data if available } + +type QueryResult = + | { ok: true; data: T; errors: undefined } + | { ok: false; data: null; errors: GraphQLError[] }; ``` -## Custom Scalars and Type Overrides +### Custom Operations -- When your schema exposes custom scalars that are not available in the printed SDL or differ across environments, you can configure both TypeScript scalar typings and GraphQL type names used in generated operations. +Custom queries and mutations (like `login`, `currentUser`, etc.) are available on `db.query` and `db.mutation`: -- Add these to your config object: +#### Custom Queries -```json -{ - "scalars": { - "LaunchqlInternalTypeHostname": "string", - "PgpmInternalTypeHostname": "string" - }, - "typeNameOverrides": { - "LaunchqlInternalTypeHostname": "String", - "PgpmInternalTypeHostname": "String" +```typescript +// Query with select +const currentUser = await db.query.currentUser({ + select: { id: true, username: true, email: true } +}).unwrap(); + +// Query without select (returns full type) +const me = await db.query.currentUser({}).unwrap(); + +// Query with arguments +const node = await db.query.nodeById({ + id: 'some-node-id' +}, { + select: { id: true } +}).unwrap(); +``` + +#### Custom Mutations + +```typescript +// Login mutation with typed select +const login = await db.mutation.login({ + input: { + email: 'user@example.com', + password: 'secret123' + } +}, { + select: { + clientMutationId: true, + apiToken: { + select: { + accessToken: true, + accessTokenExpiresAt: true + } + } + } +}).unwrap(); + +console.log(login.login.apiToken?.accessToken); + +// Register mutation +const register = await db.mutation.register({ + input: { + email: 'new@example.com', + password: 'secret123', + username: 'newuser' } +}).unwrap(); + +// Logout mutation +await db.mutation.logout({ + input: { clientMutationId: 'optional-id' } +}).execute(); +``` + +### Query Builder API + +Every operation returns a `QueryBuilder` that can be inspected before execution: + +```typescript +const query = db.user.findMany({ + select: { id: true, username: true }, + where: { isActive: { equalTo: true } }, + first: 10 +}); + +// Inspect the generated GraphQL +console.log(query.toGraphQL()); +// query UserQuery($where: UserFilter, $first: Int) { +// users(filter: $where, first: $first) { +// nodes { id username } +// totalCount +// pageInfo { hasNextPage hasPreviousPage startCursor endCursor } +// } +// } + +// Get variables +console.log(query.getVariables()); +// { where: { isActive: { equalTo: true } }, first: 10 } + +// Execute when ready +const result = await query.execute(); +// Or: const data = await query.unwrap(); +``` + +### Client Configuration + +```typescript +import { createClient } from './generated/orm'; + +// Basic configuration +const db = createClient({ + endpoint: 'https://api.example.com/graphql', +}); + +// With authentication +const db = createClient({ + endpoint: 'https://api.example.com/graphql', + headers: { + Authorization: 'Bearer ', + 'X-Custom-Header': 'value', + }, +}); + +// Update headers at runtime +db.setHeaders({ + Authorization: 'Bearer ', +}); + +// Get current endpoint +console.log(db.getEndpoint()); +``` + +--- + +## Architecture + +### How It Works + +1. **Fetch `_meta`**: Gets table metadata from PostGraphile's `_meta` query including: + - Table names and fields + - Relations (belongsTo, hasMany, manyToMany) + - Constraints (primary key, foreign key, unique) + - Inflection rules (query names, type names) + +2. **Fetch `__schema`**: Gets full schema introspection for ALL operations: + - All queries (including custom ones like `currentUser`) + - All mutations (including custom ones like `login`, `register`) + - All types (entities, inputs, enums, scalars) + +3. **Filter Operations**: Removes table CRUD from custom operations to avoid duplicates + +4. **Generate Code**: Creates type-safe code using AST-based generation (`ts-morph`) + +### Code Generation Pipeline + +``` +PostGraphile Endpoint + │ + ▼ +┌───────────────────┐ +│ Introspection │ +│ - _meta query │ +│ - __schema │ +└───────────────────┘ + │ + ▼ +┌───────────────────┐ +│ Schema Parser │ +│ - CleanTable │ +│ - CleanOperation │ +│ - TypeRegistry │ +└───────────────────┘ + │ + ▼ +┌───────────────────┐ +│ Code Generators │ +│ - Models │ +│ - Types │ +│ - Client │ +│ - Custom Ops │ +└───────────────────┘ + │ + ▼ +┌───────────────────┐ +│ Output Files │ +│ - TypeScript │ +│ - Formatted │ +└───────────────────┘ +``` + +### Key Concepts + +#### Type Inference with Const Generics + +The ORM uses TypeScript const generics to infer return types: + +```typescript +// Model method signature +findMany( + args?: FindManyArgs +): QueryBuilder<{ users: ConnectionResult> }> + +// InferSelectResult maps select object to result type +type InferSelectResult = { + [K in keyof TSelect & keyof TEntity as TSelect[K] extends false | undefined + ? never + : K]: TSelect[K] extends true + ? TEntity[K] + : TSelect[K] extends { select: infer NestedSelect } + ? /* handle nested select */ + : TEntity[K]; +}; +``` + +#### Select Types with Relations + +Select types include relation fields with proper typing: + +```typescript +export type OrderSelect = { + // Scalar fields + id?: boolean; + orderNumber?: boolean; + status?: boolean; + + // BelongsTo relation + customer?: boolean | { select?: UserSelect }; + + // HasMany relation + orderItems?: boolean | { + select?: OrderItemSelect; + first?: number; + filter?: OrderItemFilter; + orderBy?: OrderItemsOrderBy[]; + }; + + // ManyToMany relation + productsByOrderItemOrderIdAndProductId?: boolean | { + select?: ProductSelect; + first?: number; + filter?: ProductFilter; + orderBy?: ProductsOrderBy[]; + }; +}; +``` + +--- + +## Generated Types + +### Entity Types + +```typescript +export interface User { + id: string; + username?: string | null; + displayName?: string | null; + email?: string | null; + createdAt?: string | null; + updatedAt?: string | null; +} +``` + +### Filter Types + +```typescript +export interface UserFilter { + id?: UUIDFilter; + username?: StringFilter; + email?: StringFilter; + isActive?: BooleanFilter; + createdAt?: DatetimeFilter; + and?: UserFilter[]; + or?: UserFilter[]; + not?: UserFilter; +} + +export interface StringFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + in?: string[]; + notIn?: string[]; + contains?: string; + startsWith?: string; + endsWith?: string; + // ... more operators } ``` -- `scalars`: maps GraphQL scalar names to TypeScript types for `typescript`/`typescript-operations`/`typescript-graphql-request`/`typescript-react-query` plugins. -- `typeNameOverrides`: rewrites scalar names in generated GraphQL AST so variable definitions and input fields use compatible built‑in GraphQL types. +### OrderBy Types + +```typescript +export type UsersOrderBy = + | 'PRIMARY_KEY_ASC' + | 'PRIMARY_KEY_DESC' + | 'NATURAL' + | 'ID_ASC' + | 'ID_DESC' + | 'USERNAME_ASC' + | 'USERNAME_DESC' + | 'CREATED_AT_ASC' + | 'CREATED_AT_DESC'; +``` + +### Input Types + +```typescript +export interface CreateUserInput { + clientMutationId?: string; + user: { + username?: string; + email?: string; + displayName?: string; + }; +} + +export interface UpdateUserInput { + clientMutationId?: string; + id: string; + patch: UserPatch; +} + +export interface UserPatch { + username?: string | null; + email?: string | null; + displayName?: string | null; +} +``` + +### Payload Types (Custom Operations) + +```typescript +export interface LoginPayload { + clientMutationId?: string | null; + apiToken?: ApiToken | null; +} + +export interface ApiToken { + accessToken: string; + accessTokenExpiresAt?: string | null; +} + +export type LoginPayloadSelect = { + clientMutationId?: boolean; + apiToken?: boolean | { select?: ApiTokenSelect }; +}; +``` + +--- + +## Development + +```bash +# Install dependencies +pnpm install + +# Build the package +pnpm build + +# Run in watch mode +pnpm dev + +# Test React Query hooks generation +node bin/graphql-sdk.js generate \ + -e http://public-0e394519.localhost:3000/graphql \ + -o ./output-rq \ + --verbose + +# Test ORM client generation +node bin/graphql-sdk.js generate-orm \ + -e http://public-0e394519.localhost:3000/graphql \ + -o ./output-orm \ + --verbose + +# Type check generated output +npx tsc --noEmit output-orm/*.ts output-orm/**/*.ts \ + --skipLibCheck --target ES2022 --module ESNext \ + --moduleResolution bundler --strict + +# Run example tests +npx tsx examples/test-orm.ts +npx tsx examples/type-inference-test.ts + +# Type check +pnpm lint:types + +# Run tests +pnpm test +``` + +--- + +## Roadmap + +- [x] **Relations**: Typed nested select with relation loading +- [x] **Type Inference**: Const generics for narrowed return types +- [x] **Error Handling**: Discriminated unions with unwrap methods +- [ ] **Aggregations**: Count, sum, avg operations +- [ ] **Batch Operations**: Bulk create/update/delete +- [ ] **Transactions**: Transaction support where available +- [ ] **Subscriptions**: Real-time subscription support +- [ ] **Custom Scalars**: Better handling of PostGraphile custom types +- [ ] **Query Caching**: Optional caching layer for ORM client +- [ ] **Middleware**: Request/response interceptors +- [ ] **Connection Pooling**: For high-throughput scenarios + +## Requirements + +- Node.js >= 18 +- PostGraphile endpoint with `_meta` query enabled +- React Query v5 (peer dependency for React Query hooks) +- No dependencies for ORM client (uses native fetch) + +## License -- These options are also available programmatically through `LaunchQLGenOptions`. +MIT diff --git a/graphql/codegen/__fixtures__/api.json b/graphql/codegen/__fixtures__/api.json deleted file mode 100644 index 57e02b836..000000000 --- a/graphql/codegen/__fixtures__/api.json +++ /dev/null @@ -1,36076 +0,0 @@ -{ - "data": { - "__schema": { - "queryType": { - "name": "Query" - }, - "mutationType": { - "name": "Mutation" - }, - "subscriptionType": null, - "types": [ - { - "kind": "OBJECT", - "name": "Query", - "description": "The root query type which gives access points into the data universe.", - "fields": [ - { - "name": "query", - "description": "Exposes the root query type nested one level down. This is helpful for Relay 1 which can only query top level fields if they are in a particular form.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionItems", - "description": "Reads and enables pagination through a set of `ActionItem`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `ActionItem`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ActionItemsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionItemCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionItemFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "ActionItemsConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionResults", - "description": "Reads and enables pagination through a set of `ActionResult`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `ActionResult`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ActionResultsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionResultCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionResultFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "ActionResultsConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actions", - "description": "Reads and enables pagination through a set of `Action`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `Action`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ActionsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "ActionsConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "goals", - "description": "Reads and enables pagination through a set of `Goal`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `Goal`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "GoalsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "GoalCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "GoalFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "GoalsConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "locations", - "description": "Reads and enables pagination through a set of `Location`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `Location`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "LocationsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "LocationCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "LocationFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "LocationsConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "newsUpdates", - "description": "Reads and enables pagination through a set of `NewsUpdate`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `NewsUpdate`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "NewsUpdatesOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "NewsUpdateCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "NewsUpdateFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "NewsUpdatesConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionItems", - "description": "Reads and enables pagination through a set of `UserActionItem`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserActionItem`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionItemsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionItemCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionItemFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserActionItemsConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionResults", - "description": "Reads and enables pagination through a set of `UserActionResult`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserActionResult`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionResultsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionResultCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionResultFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserActionResultsConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActions", - "description": "Reads and enables pagination through a set of `UserAction`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserAction`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserActionsConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userCharacteristics", - "description": "Reads and enables pagination through a set of `UserCharacteristic`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserCharacteristic`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserCharacteristicsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserCharacteristicCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserCharacteristicFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserCharacteristicsConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userConnections", - "description": "Reads and enables pagination through a set of `UserConnection`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserConnection`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserConnectionsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserConnectionCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserConnectionFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserConnectionsConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userContacts", - "description": "Reads and enables pagination through a set of `UserContact`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserContact`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserContactsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserContactCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserContactFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserContactsConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userEmails", - "description": "Reads and enables pagination through a set of `UserEmail`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserEmail`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserEmailsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserEmailCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserEmailFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserEmailsConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userProfiles", - "description": "Reads and enables pagination through a set of `UserProfile`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserProfile`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserProfilesOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserProfileCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserProfileFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserProfilesConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userSettings", - "description": "Reads and enables pagination through a set of `UserSetting`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserSetting`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserSettingsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserSettingCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserSettingFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserSettingsConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "users", - "description": "Reads and enables pagination through a set of `User`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `User`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UsersOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UsersConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionItem", - "description": null, - "args": [ - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "ActionItem", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionResult", - "description": null, - "args": [ - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "ActionResult", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": null, - "args": [ - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "goal", - "description": null, - "args": [ - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "Goal", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "location", - "description": null, - "args": [ - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "Location", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "newsUpdate", - "description": null, - "args": [ - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "NewsUpdate", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionItem", - "description": null, - "args": [ - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserActionItem", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionResult", - "description": null, - "args": [ - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserActionResult", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userAction", - "description": null, - "args": [ - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserAction", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userCharacteristic", - "description": null, - "args": [ - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserCharacteristic", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userCharacteristicByUserId", - "description": null, - "args": [ - { - "name": "userId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserCharacteristic", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userConnection", - "description": null, - "args": [ - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userContact", - "description": null, - "args": [ - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserContact", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userEmail", - "description": null, - "args": [ - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserEmail", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userEmailByEmail", - "description": null, - "args": [ - { - "name": "email", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserEmail", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userProfile", - "description": null, - "args": [ - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserProfile", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userProfileByUserId", - "description": null, - "args": [ - { - "name": "userId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserProfile", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userSetting", - "description": null, - "args": [ - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserSetting", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userSettingByUserId", - "description": null, - "args": [ - { - "name": "userId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserSetting", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": null, - "args": [ - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "getCurrentRoleIds", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "getCurrentUser", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "getCurrentUserId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "_meta", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "Metaschema", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Int", - "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Cursor", - "description": "A location in a connection that can be used for resuming pagination.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "ActionItemsOrderBy", - "description": "Methods to use when ordering `ActionItem`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NATURAL", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NAME_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NAME_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DESCRIPTION_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DESCRIPTION_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LINK_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LINK_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TYPE_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TYPE_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ITEM_ORDER_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ITEM_ORDER_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REQUIRED_ITEM_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REQUIRED_ITEM_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NOTIFICATION_TEXT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NOTIFICATION_TEXT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "EMBED_CODE_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "EMBED_CODE_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACTION_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACTION_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OWNER_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OWNER_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ActionItemCondition", - "description": "A condition to be used against `ActionItem` object types. All fields are tested for equality and combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Checks for equality with the object’s `id` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "name", - "description": "Checks for equality with the object’s `name` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "description", - "description": "Checks for equality with the object’s `description` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "link", - "description": "Checks for equality with the object’s `link` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "type", - "description": "Checks for equality with the object’s `type` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "itemOrder", - "description": "Checks for equality with the object’s `itemOrder` field.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "requiredItem", - "description": "Checks for equality with the object’s `requiredItem` field.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notificationText", - "description": "Checks for equality with the object’s `notificationText` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "embedCode", - "description": "Checks for equality with the object’s `embedCode` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Checks for equality with the object’s `createdBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Checks for equality with the object’s `updatedBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Checks for equality with the object’s `createdAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Checks for equality with the object’s `updatedAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionId", - "description": "Checks for equality with the object’s `actionId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "ownerId", - "description": "Checks for equality with the object’s `ownerId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "UUID", - "description": "A universally unique identifier as defined by [RFC 4122](https://tools.ietf.org/html/rfc4122).", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "String", - "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Boolean", - "description": "The `Boolean` scalar type represents `true` or `false`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Datetime", - "description": "A point in time as described by the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) standard. May or may not include a timezone.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ActionItemFilter", - "description": "A filter to be used against `ActionItem` object types. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "name", - "description": "Filter by the object’s `name` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "description", - "description": "Filter by the object’s `description` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "link", - "description": "Filter by the object’s `link` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "type", - "description": "Filter by the object’s `type` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "itemOrder", - "description": "Filter by the object’s `itemOrder` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "requiredItem", - "description": "Filter by the object’s `requiredItem` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "BooleanFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notificationText", - "description": "Filter by the object’s `notificationText` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "embedCode", - "description": "Filter by the object’s `embedCode` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Filter by the object’s `createdBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Filter by the object’s `updatedBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Filter by the object’s `createdAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Filter by the object’s `updatedAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionId", - "description": "Filter by the object’s `actionId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "ownerId", - "description": "Filter by the object’s `ownerId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "and", - "description": "Checks for all expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "ActionItemFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "or", - "description": "Checks for any expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "ActionItemFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "not", - "description": "Negates the expression.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionItemFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "description": "A filter to be used against UUID fields. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "isNull", - "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "equalTo", - "description": "Equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notEqualTo", - "description": "Not equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "distinctFrom", - "description": "Not equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notDistinctFrom", - "description": "Equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "in", - "description": "Included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "notIn", - "description": "Not included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "lessThan", - "description": "Less than the specified value.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "lessThanOrEqualTo", - "description": "Less than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThan", - "description": "Greater than the specified value.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThanOrEqualTo", - "description": "Greater than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "description": "A filter to be used against String fields. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "isNull", - "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "equalTo", - "description": "Equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notEqualTo", - "description": "Not equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "distinctFrom", - "description": "Not equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notDistinctFrom", - "description": "Equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "in", - "description": "Included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "notIn", - "description": "Not included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "lessThan", - "description": "Less than the specified value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "lessThanOrEqualTo", - "description": "Less than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThan", - "description": "Greater than the specified value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThanOrEqualTo", - "description": "Greater than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "includes", - "description": "Contains the specified string (case-sensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notIncludes", - "description": "Does not contain the specified string (case-sensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "includesInsensitive", - "description": "Contains the specified string (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notIncludesInsensitive", - "description": "Does not contain the specified string (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "startsWith", - "description": "Starts with the specified string (case-sensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notStartsWith", - "description": "Does not start with the specified string (case-sensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "startsWithInsensitive", - "description": "Starts with the specified string (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notStartsWithInsensitive", - "description": "Does not start with the specified string (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "endsWith", - "description": "Ends with the specified string (case-sensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notEndsWith", - "description": "Does not end with the specified string (case-sensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "endsWithInsensitive", - "description": "Ends with the specified string (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notEndsWithInsensitive", - "description": "Does not end with the specified string (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "like", - "description": "Matches the specified pattern (case-sensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notLike", - "description": "Does not match the specified pattern (case-sensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "likeInsensitive", - "description": "Matches the specified pattern (case-insensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notLikeInsensitive", - "description": "Does not match the specified pattern (case-insensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "equalToInsensitive", - "description": "Equal to the specified value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notEqualToInsensitive", - "description": "Not equal to the specified value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "distinctFromInsensitive", - "description": "Not equal to the specified value, treating null like an ordinary value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notDistinctFromInsensitive", - "description": "Equal to the specified value, treating null like an ordinary value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "inInsensitive", - "description": "Included in the specified list (case-insensitive).", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "notInInsensitive", - "description": "Not included in the specified list (case-insensitive).", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "lessThanInsensitive", - "description": "Less than the specified value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "lessThanOrEqualToInsensitive", - "description": "Less than or equal to the specified value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThanInsensitive", - "description": "Greater than the specified value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThanOrEqualToInsensitive", - "description": "Greater than or equal to the specified value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "description": "A filter to be used against Int fields. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "isNull", - "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "equalTo", - "description": "Equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notEqualTo", - "description": "Not equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "distinctFrom", - "description": "Not equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notDistinctFrom", - "description": "Equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "in", - "description": "Included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "notIn", - "description": "Not included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "lessThan", - "description": "Less than the specified value.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "lessThanOrEqualTo", - "description": "Less than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThan", - "description": "Greater than the specified value.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThanOrEqualTo", - "description": "Greater than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "BooleanFilter", - "description": "A filter to be used against Boolean fields. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "isNull", - "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "equalTo", - "description": "Equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notEqualTo", - "description": "Not equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "distinctFrom", - "description": "Not equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notDistinctFrom", - "description": "Equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "in", - "description": "Included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "notIn", - "description": "Not included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "lessThan", - "description": "Less than the specified value.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "lessThanOrEqualTo", - "description": "Less than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThan", - "description": "Greater than the specified value.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThanOrEqualTo", - "description": "Greater than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "description": "A filter to be used against Datetime fields. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "isNull", - "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "equalTo", - "description": "Equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notEqualTo", - "description": "Not equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "distinctFrom", - "description": "Not equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notDistinctFrom", - "description": "Equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "in", - "description": "Included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "notIn", - "description": "Not included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "lessThan", - "description": "Less than the specified value.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "lessThanOrEqualTo", - "description": "Less than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThan", - "description": "Greater than the specified value.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThanOrEqualTo", - "description": "Greater than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ActionItemsConnection", - "description": "A connection to a list of `ActionItem` values.", - "fields": [ - { - "name": "nodes", - "description": "A list of `ActionItem` objects.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ActionItem", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "edges", - "description": "A list of edges which contains the `ActionItem` and cursor to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ActionItemsEdge", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "The count of *all* `ActionItem` you could get from the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ActionItem", - "description": null, - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "link", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "itemOrder", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requiredItem", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notificationText", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "embedCode", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ownerId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "Reads a single `Action` that is related to this `ActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "Reads a single `User` that is related to this `ActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionItems", - "description": "Reads and enables pagination through a set of `UserActionItem`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserActionItem`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionItemsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionItemCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionItemFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserActionItemsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Action", - "description": null, - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "photo", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "title", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "locationRadius", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "timeRequired", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "startDate", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "endDate", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "approved", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "rewardAmount", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "activityFeedText", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "callToAction", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "completedActionText", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "descriptionHeader", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "tags", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "locationId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ownerId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "location", - "description": "Reads a single `Location` that is related to this `Action`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Location", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "Reads a single `User` that is related to this `Action`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionResults", - "description": "Reads and enables pagination through a set of `ActionResult`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `ActionResult`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ActionResultsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionResultCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionResultFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ActionResultsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionItems", - "description": "Reads and enables pagination through a set of `ActionItem`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `ActionItem`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ActionItemsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionItemCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionItemFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ActionItemsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActions", - "description": "Reads and enables pagination through a set of `UserAction`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserAction`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserActionsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionResults", - "description": "Reads and enables pagination through a set of `UserActionResult`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserActionResult`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionResultsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionResultCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionResultFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserActionResultsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionItems", - "description": "Reads and enables pagination through a set of `UserActionItem`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserActionItem`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionItemsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionItemCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionItemFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserActionItemsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "JSON", - "description": "The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "BigFloat", - "description": "A floating point number that requires more precision than IEEE 754 binary 64", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Location", - "description": null, - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "geo", - "description": null, - "args": [], - "type": { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actions", - "description": "Reads and enables pagination through a set of `Action`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `Action`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ActionsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ActionsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "description": "All geometry types implement this interface", - "fields": [ - { - "name": "geojson", - "description": "Converts the object to GeoJSON", - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": "Spatial reference identifier (SRID)", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "GeometryPoint", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryPointM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryPointZ", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryPointZM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryLineString", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryLineStringM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryLineStringZ", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryLineStringZM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryPolygon", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryPolygonM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryPolygonZ", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryPolygonZM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPoint", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPointM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPointZ", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPointZM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiLineString", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiLineStringM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiLineStringZ", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiLineStringZM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPolygon", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPolygonM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPolygonZ", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPolygonZM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryGeometryCollection", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryGeometryCollectionM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryGeometryCollectionZ", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryGeometryCollectionZM", - "ofType": null - } - ] - }, - { - "kind": "SCALAR", - "name": "GeoJSON", - "description": "The `GeoJSON` scalar type represents GeoJSON values as specified by[RFC 7946](https://tools.ietf.org/html/rfc7946).", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "ActionsOrderBy", - "description": "Methods to use when ordering `Action`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NATURAL", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NAME_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NAME_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PHOTO_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PHOTO_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TITLE_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TITLE_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DESCRIPTION_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DESCRIPTION_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LOCATION_RADIUS_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LOCATION_RADIUS_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "URL_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "URL_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TIME_REQUIRED_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TIME_REQUIRED_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "START_DATE_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "START_DATE_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "END_DATE_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "END_DATE_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "APPROVED_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "APPROVED_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REWARD_AMOUNT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REWARD_AMOUNT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACTIVITY_FEED_TEXT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACTIVITY_FEED_TEXT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CALL_TO_ACTION_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CALL_TO_ACTION_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "COMPLETED_ACTION_TEXT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "COMPLETED_ACTION_TEXT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DESCRIPTION_HEADER_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DESCRIPTION_HEADER_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TAGS_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TAGS_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LOCATION_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LOCATION_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OWNER_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OWNER_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ActionCondition", - "description": "A condition to be used against `Action` object types. All fields are tested for equality and combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Checks for equality with the object’s `id` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "name", - "description": "Checks for equality with the object’s `name` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "photo", - "description": "Checks for equality with the object’s `photo` field.", - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "title", - "description": "Checks for equality with the object’s `title` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "description", - "description": "Checks for equality with the object’s `description` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "locationRadius", - "description": "Checks for equality with the object’s `locationRadius` field.", - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "url", - "description": "Checks for equality with the object’s `url` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "timeRequired", - "description": "Checks for equality with the object’s `timeRequired` field.", - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "startDate", - "description": "Checks for equality with the object’s `startDate` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "endDate", - "description": "Checks for equality with the object’s `endDate` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "approved", - "description": "Checks for equality with the object’s `approved` field.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "rewardAmount", - "description": "Checks for equality with the object’s `rewardAmount` field.", - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "activityFeedText", - "description": "Checks for equality with the object’s `activityFeedText` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "callToAction", - "description": "Checks for equality with the object’s `callToAction` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "completedActionText", - "description": "Checks for equality with the object’s `completedActionText` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "descriptionHeader", - "description": "Checks for equality with the object’s `descriptionHeader` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "tags", - "description": "Checks for equality with the object’s `tags` field.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Checks for equality with the object’s `createdBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Checks for equality with the object’s `updatedBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Checks for equality with the object’s `createdAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Checks for equality with the object’s `updatedAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "locationId", - "description": "Checks for equality with the object’s `locationId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "ownerId", - "description": "Checks for equality with the object’s `ownerId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ActionFilter", - "description": "A filter to be used against `Action` object types. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "name", - "description": "Filter by the object’s `name` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "photo", - "description": "Filter by the object’s `photo` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "JSONFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "title", - "description": "Filter by the object’s `title` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "description", - "description": "Filter by the object’s `description` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "locationRadius", - "description": "Filter by the object’s `locationRadius` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "BigFloatFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "url", - "description": "Filter by the object’s `url` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "timeRequired", - "description": "Filter by the object’s `timeRequired` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "BigFloatFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "startDate", - "description": "Filter by the object’s `startDate` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "endDate", - "description": "Filter by the object’s `endDate` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "approved", - "description": "Filter by the object’s `approved` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "BooleanFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "rewardAmount", - "description": "Filter by the object’s `rewardAmount` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "BigFloatFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "activityFeedText", - "description": "Filter by the object’s `activityFeedText` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "callToAction", - "description": "Filter by the object’s `callToAction` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "completedActionText", - "description": "Filter by the object’s `completedActionText` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "descriptionHeader", - "description": "Filter by the object’s `descriptionHeader` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "tags", - "description": "Filter by the object’s `tags` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringListFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Filter by the object’s `createdBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Filter by the object’s `updatedBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Filter by the object’s `createdAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Filter by the object’s `updatedAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "locationId", - "description": "Filter by the object’s `locationId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "ownerId", - "description": "Filter by the object’s `ownerId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "and", - "description": "Checks for all expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "ActionFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "or", - "description": "Checks for any expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "ActionFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "not", - "description": "Negates the expression.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "JSONFilter", - "description": "A filter to be used against JSON fields. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "isNull", - "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "equalTo", - "description": "Equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notEqualTo", - "description": "Not equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "distinctFrom", - "description": "Not equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notDistinctFrom", - "description": "Equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "in", - "description": "Included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "notIn", - "description": "Not included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "lessThan", - "description": "Less than the specified value.", - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "lessThanOrEqualTo", - "description": "Less than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThan", - "description": "Greater than the specified value.", - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThanOrEqualTo", - "description": "Greater than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "contains", - "description": "Contains the specified JSON.", - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "containsKey", - "description": "Contains the specified key.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "containsAllKeys", - "description": "Contains all of the specified keys.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "containsAnyKeys", - "description": "Contains any of the specified keys.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "containedBy", - "description": "Contained by the specified JSON.", - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "BigFloatFilter", - "description": "A filter to be used against BigFloat fields. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "isNull", - "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "equalTo", - "description": "Equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notEqualTo", - "description": "Not equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "distinctFrom", - "description": "Not equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notDistinctFrom", - "description": "Equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "in", - "description": "Included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "notIn", - "description": "Not included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "lessThan", - "description": "Less than the specified value.", - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "lessThanOrEqualTo", - "description": "Less than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThan", - "description": "Greater than the specified value.", - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThanOrEqualTo", - "description": "Greater than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "StringListFilter", - "description": "A filter to be used against String List fields. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "isNull", - "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "equalTo", - "description": "Equal to the specified value.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "notEqualTo", - "description": "Not equal to the specified value.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "distinctFrom", - "description": "Not equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "notDistinctFrom", - "description": "Equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "lessThan", - "description": "Less than the specified value.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "lessThanOrEqualTo", - "description": "Less than or equal to the specified value.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "greaterThan", - "description": "Greater than the specified value.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "greaterThanOrEqualTo", - "description": "Greater than or equal to the specified value.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "contains", - "description": "Contains the specified list of values.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "containedBy", - "description": "Contained by the specified list of values.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "overlaps", - "description": "Overlaps the specified list of values.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "anyEqualTo", - "description": "Any array item is equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "anyNotEqualTo", - "description": "Any array item is not equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "anyLessThan", - "description": "Any array item is less than the specified value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "anyLessThanOrEqualTo", - "description": "Any array item is less than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "anyGreaterThan", - "description": "Any array item is greater than the specified value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "anyGreaterThanOrEqualTo", - "description": "Any array item is greater than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ActionsConnection", - "description": "A connection to a list of `Action` values.", - "fields": [ - { - "name": "nodes", - "description": "A list of `Action` objects.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "edges", - "description": "A list of edges which contains the `Action` and cursor to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ActionsEdge", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "The count of *all* `Action` you could get from the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ActionsEdge", - "description": "A `Action` edge in the connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The `Action` at the end of the edge.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PageInfo", - "description": "Information about pagination in a connection.", - "fields": [ - { - "name": "hasNextPage", - "description": "When paginating forwards, are there more items?", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasPreviousPage", - "description": "When paginating backwards, are there more items?", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "startCursor", - "description": "When paginating backwards, the cursor to continue.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "endCursor", - "description": "When paginating forwards, the cursor to continue.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "User", - "description": null, - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userEmails", - "description": "Reads and enables pagination through a set of `UserEmail`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserEmail`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserEmailsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserEmailCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserEmailFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserEmailsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userProfile", - "description": "Reads a single `UserProfile` that is related to this `User`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserProfile", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userProfiles", - "description": "Reads and enables pagination through a set of `UserProfile`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserProfile`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserProfilesOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserProfileCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserProfileFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserProfilesConnection", - "ofType": null - } - }, - "isDeprecated": true, - "deprecationReason": "Please use userProfile instead" - }, - { - "name": "userSetting", - "description": "Reads a single `UserSetting` that is related to this `User`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserSetting", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userSettings", - "description": "Reads and enables pagination through a set of `UserSetting`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserSetting`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserSettingsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserSettingCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserSettingFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserSettingsConnection", - "ofType": null - } - }, - "isDeprecated": true, - "deprecationReason": "Please use userSetting instead" - }, - { - "name": "userCharacteristic", - "description": "Reads a single `UserCharacteristic` that is related to this `User`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserCharacteristic", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userCharacteristics", - "description": "Reads and enables pagination through a set of `UserCharacteristic`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserCharacteristic`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserCharacteristicsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserCharacteristicCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserCharacteristicFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserCharacteristicsConnection", - "ofType": null - } - }, - "isDeprecated": true, - "deprecationReason": "Please use userCharacteristic instead" - }, - { - "name": "userContacts", - "description": "Reads and enables pagination through a set of `UserContact`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserContact`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserContactsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserContactCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserContactFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserContactsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userConnectionsByRequesterId", - "description": "Reads and enables pagination through a set of `UserConnection`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserConnection`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserConnectionsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserConnectionCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserConnectionFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserConnectionsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userConnectionsByResponderId", - "description": "Reads and enables pagination through a set of `UserConnection`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserConnection`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserConnectionsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserConnectionCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserConnectionFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserConnectionsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ownedActions", - "description": "Reads and enables pagination through a set of `Action`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `Action`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ActionsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ActionsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ownedActionResults", - "description": "Reads and enables pagination through a set of `ActionResult`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `ActionResult`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ActionResultsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionResultCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionResultFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ActionResultsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ownedActionItems", - "description": "Reads and enables pagination through a set of `ActionItem`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `ActionItem`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ActionItemsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionItemCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionItemFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ActionItemsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActions", - "description": "Reads and enables pagination through a set of `UserAction`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserAction`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserActionsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionsByVerifierId", - "description": "Reads and enables pagination through a set of `UserAction`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserAction`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserActionsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionResults", - "description": "Reads and enables pagination through a set of `UserActionResult`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserActionResult`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionResultsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionResultCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionResultFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserActionResultsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionItems", - "description": "Reads and enables pagination through a set of `UserActionItem`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserActionItem`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionItemsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionItemCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionItemFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserActionItemsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "UserEmailsOrderBy", - "description": "Methods to use when ordering `UserEmail`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NATURAL", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "EMAIL_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "EMAIL_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "IS_VERIFIED_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "IS_VERIFIED_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserEmailCondition", - "description": "A condition to be used against `UserEmail` object types. All fields are tested for equality and combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Checks for equality with the object’s `id` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": "Checks for equality with the object’s `userId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "email", - "description": "Checks for equality with the object’s `email` field.", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "isVerified", - "description": "Checks for equality with the object’s `isVerified` field.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "description": "", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserEmailFilter", - "description": "A filter to be used against `UserEmail` object types. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": "Filter by the object’s `userId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "email", - "description": "Filter by the object’s `email` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "LaunchqlInternalTypeEmailFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "isVerified", - "description": "Filter by the object’s `isVerified` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "BooleanFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "and", - "description": "Checks for all expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserEmailFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "or", - "description": "Checks for any expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserEmailFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "not", - "description": "Negates the expression.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserEmailFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "LaunchqlInternalTypeEmailFilter", - "description": "A filter to be used against LaunchqlInternalTypeEmail fields. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "isNull", - "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "equalTo", - "description": "Equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notEqualTo", - "description": "Not equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "distinctFrom", - "description": "Not equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notDistinctFrom", - "description": "Equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "in", - "description": "Included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "notIn", - "description": "Not included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "lessThan", - "description": "Less than the specified value.", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "lessThanOrEqualTo", - "description": "Less than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThan", - "description": "Greater than the specified value.", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThanOrEqualTo", - "description": "Greater than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "includes", - "description": "Contains the specified string (case-sensitive).", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notIncludes", - "description": "Does not contain the specified string (case-sensitive).", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "includesInsensitive", - "description": "Contains the specified string (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notIncludesInsensitive", - "description": "Does not contain the specified string (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "startsWith", - "description": "Starts with the specified string (case-sensitive).", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notStartsWith", - "description": "Does not start with the specified string (case-sensitive).", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "startsWithInsensitive", - "description": "Starts with the specified string (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notStartsWithInsensitive", - "description": "Does not start with the specified string (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "endsWith", - "description": "Ends with the specified string (case-sensitive).", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notEndsWith", - "description": "Does not end with the specified string (case-sensitive).", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "endsWithInsensitive", - "description": "Ends with the specified string (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notEndsWithInsensitive", - "description": "Does not end with the specified string (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "like", - "description": "Matches the specified pattern (case-sensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters.", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notLike", - "description": "Does not match the specified pattern (case-sensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters.", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "likeInsensitive", - "description": "Matches the specified pattern (case-insensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters.", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notLikeInsensitive", - "description": "Does not match the specified pattern (case-insensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters.", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "equalToInsensitive", - "description": "Equal to the specified value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notEqualToInsensitive", - "description": "Not equal to the specified value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "distinctFromInsensitive", - "description": "Not equal to the specified value, treating null like an ordinary value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notDistinctFromInsensitive", - "description": "Equal to the specified value, treating null like an ordinary value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "inInsensitive", - "description": "Included in the specified list (case-insensitive).", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "notInInsensitive", - "description": "Not included in the specified list (case-insensitive).", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "lessThanInsensitive", - "description": "Less than the specified value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "lessThanOrEqualToInsensitive", - "description": "Less than or equal to the specified value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThanInsensitive", - "description": "Greater than the specified value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThanOrEqualToInsensitive", - "description": "Greater than or equal to the specified value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserEmailsConnection", - "description": "A connection to a list of `UserEmail` values.", - "fields": [ - { - "name": "nodes", - "description": "A list of `UserEmail` objects.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserEmail", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "edges", - "description": "A list of edges which contains the `UserEmail` and cursor to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserEmailsEdge", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "The count of *all* `UserEmail` you could get from the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserEmail", - "description": null, - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "email", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isVerified", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserEmail`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserEmailsEdge", - "description": "A `UserEmail` edge in the connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The `UserEmail` at the end of the edge.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserEmail", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserProfile", - "description": null, - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "profilePicture", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bio", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reputation", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "firstName", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lastName", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "tags", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserProfile`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "UserProfilesOrderBy", - "description": "Methods to use when ordering `UserProfile`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NATURAL", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PROFILE_PICTURE_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PROFILE_PICTURE_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "BIO_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "BIO_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REPUTATION_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REPUTATION_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIRST_NAME_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIRST_NAME_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LAST_NAME_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LAST_NAME_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TAGS_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TAGS_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserProfileCondition", - "description": "A condition to be used against `UserProfile` object types. All fields are tested for equality and combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Checks for equality with the object’s `id` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "profilePicture", - "description": "Checks for equality with the object’s `profilePicture` field.", - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "bio", - "description": "Checks for equality with the object’s `bio` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "reputation", - "description": "Checks for equality with the object’s `reputation` field.", - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "firstName", - "description": "Checks for equality with the object’s `firstName` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "lastName", - "description": "Checks for equality with the object’s `lastName` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "tags", - "description": "Checks for equality with the object’s `tags` field.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Checks for equality with the object’s `createdBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Checks for equality with the object’s `updatedBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Checks for equality with the object’s `createdAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Checks for equality with the object’s `updatedAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": "Checks for equality with the object’s `userId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserProfileFilter", - "description": "A filter to be used against `UserProfile` object types. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "profilePicture", - "description": "Filter by the object’s `profilePicture` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "JSONFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "bio", - "description": "Filter by the object’s `bio` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "reputation", - "description": "Filter by the object’s `reputation` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "BigFloatFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "firstName", - "description": "Filter by the object’s `firstName` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "lastName", - "description": "Filter by the object’s `lastName` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "tags", - "description": "Filter by the object’s `tags` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringListFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Filter by the object’s `createdBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Filter by the object’s `updatedBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Filter by the object’s `createdAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Filter by the object’s `updatedAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": "Filter by the object’s `userId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "and", - "description": "Checks for all expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserProfileFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "or", - "description": "Checks for any expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserProfileFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "not", - "description": "Negates the expression.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserProfileFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserProfilesConnection", - "description": "A connection to a list of `UserProfile` values.", - "fields": [ - { - "name": "nodes", - "description": "A list of `UserProfile` objects.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserProfile", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "edges", - "description": "A list of edges which contains the `UserProfile` and cursor to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserProfilesEdge", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "The count of *all* `UserProfile` you could get from the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserProfilesEdge", - "description": "A `UserProfile` edge in the connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The `UserProfile` at the end of the edge.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserProfile", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserSetting", - "description": null, - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "searchRadius", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "zip", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "geo", - "description": null, - "args": [], - "type": { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserSetting`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "UserSettingsOrderBy", - "description": "Methods to use when ordering `UserSetting`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NATURAL", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SEARCH_RADIUS_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SEARCH_RADIUS_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ZIP_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ZIP_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "GEO_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "GEO_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserSettingCondition", - "description": "A condition to be used against `UserSetting` object types. All fields are tested for equality and combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Checks for equality with the object’s `id` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "searchRadius", - "description": "Checks for equality with the object’s `searchRadius` field.", - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "zip", - "description": "Checks for equality with the object’s `zip` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "geo", - "description": "Checks for equality with the object’s `geo` field.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Checks for equality with the object’s `createdBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Checks for equality with the object’s `updatedBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Checks for equality with the object’s `createdAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Checks for equality with the object’s `updatedAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": "Checks for equality with the object’s `userId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserSettingFilter", - "description": "A filter to be used against `UserSetting` object types. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "searchRadius", - "description": "Filter by the object’s `searchRadius` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "BigFloatFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "zip", - "description": "Filter by the object’s `zip` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "geo", - "description": "Filter by the object’s `geo` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "GeometryInterfaceFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Filter by the object’s `createdBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Filter by the object’s `updatedBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Filter by the object’s `createdAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Filter by the object’s `updatedAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": "Filter by the object’s `userId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "and", - "description": "Checks for all expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserSettingFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "or", - "description": "Checks for any expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserSettingFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "not", - "description": "Negates the expression.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserSettingFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "GeometryInterfaceFilter", - "description": "A filter to be used against GeometryInterface fields. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "bboxAbove", - "description": "Bounding box is strictly above the specified geometry's bounding box.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "bboxBelow", - "description": "Bounding box is strictly below the specified geometry's bounding box.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "bboxContains", - "description": "Bounding box contains the specified geometry's bounding box.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "bboxEquals", - "description": "Bounding box is the same as the specified geometry's bounding box.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "bboxIntersects2D", - "description": "2D bounding box intersects the specified geometry's 2D bounding box.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "bboxIntersectsND", - "description": "n-D bounding box intersects the specified geometry's n-D bounding box.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "bboxLeftOf", - "description": "Bounding box is strictly to the left of the specified geometry's bounding box.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "bboxOverlapsOrAbove", - "description": "Bounding box overlaps or is above the specified geometry's bounding box.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "bboxOverlapsOrBelow", - "description": "Bounding box overlaps or is below the specified geometry's bounding box.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "bboxOverlapsOrLeftOf", - "description": "Bounding box overlaps or is to the left of the specified geometry's bounding box.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "bboxOverlapsOrRightOf", - "description": "Bounding box overlaps or is to the right of the specified geometry's bounding box.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "bboxRightOf", - "description": "Bounding box is strictly to the right of the specified geometry's bounding box.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "contains", - "description": "No points of the specified geometry lie in the exterior, and at least one point of the interior of the specified geometry lies in the interior.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "containsProperly", - "description": "The specified geometry intersects the interior but not the boundary (or exterior).", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "coveredBy", - "description": "No point is outside the specified geometry.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "covers", - "description": "No point in the specified geometry is outside.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "crosses", - "description": "They have some, but not all, interior points in common.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "disjoint", - "description": "They do not share any space together.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "equals", - "description": "They represent the same geometry. Directionality is ignored.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "exactlyEquals", - "description": "Coordinates and coordinate order are the same as specified geometry.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "intersects", - "description": "They share any portion of space in 2D.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "intersects3D", - "description": "They share any portion of space in 3D.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderingEquals", - "description": "They represent the same geometry and points are in the same directional order.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "overlaps", - "description": "They share space, are of the same dimension, but are not completely contained by each other.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "touches", - "description": "They have at least one point in common, but their interiors do not intersect.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "within", - "description": "Completely inside the specified geometry.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserSettingsConnection", - "description": "A connection to a list of `UserSetting` values.", - "fields": [ - { - "name": "nodes", - "description": "A list of `UserSetting` objects.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserSetting", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "edges", - "description": "A list of edges which contains the `UserSetting` and cursor to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserSettingsEdge", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "The count of *all* `UserSetting` you could get from the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserSettingsEdge", - "description": "A `UserSetting` edge in the connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The `UserSetting` at the end of the edge.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserSetting", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserCharacteristic", - "description": null, - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "income", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "gender", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "race", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "age", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dob", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Date", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "education", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "homeOwnership", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "treeHuggerLevel", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "freeTime", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "researchToDoer", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserCharacteristic`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Date", - "description": "The day, does not include a time.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "UserCharacteristicsOrderBy", - "description": "Methods to use when ordering `UserCharacteristic`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NATURAL", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INCOME_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INCOME_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "GENDER_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "GENDER_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "RACE_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "RACE_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "AGE_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "AGE_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DOB_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DOB_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "EDUCATION_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "EDUCATION_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "HOME_OWNERSHIP_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "HOME_OWNERSHIP_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TREE_HUGGER_LEVEL_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TREE_HUGGER_LEVEL_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FREE_TIME_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FREE_TIME_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "RESEARCH_TO_DOER_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "RESEARCH_TO_DOER_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserCharacteristicCondition", - "description": "A condition to be used against `UserCharacteristic` object types. All fields are tested for equality and combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Checks for equality with the object’s `id` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "income", - "description": "Checks for equality with the object’s `income` field.", - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "gender", - "description": "Checks for equality with the object’s `gender` field.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "race", - "description": "Checks for equality with the object’s `race` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "age", - "description": "Checks for equality with the object’s `age` field.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "dob", - "description": "Checks for equality with the object’s `dob` field.", - "type": { - "kind": "SCALAR", - "name": "Date", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "education", - "description": "Checks for equality with the object’s `education` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "homeOwnership", - "description": "Checks for equality with the object’s `homeOwnership` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "treeHuggerLevel", - "description": "Checks for equality with the object’s `treeHuggerLevel` field.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "freeTime", - "description": "Checks for equality with the object’s `freeTime` field.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "researchToDoer", - "description": "Checks for equality with the object’s `researchToDoer` field.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Checks for equality with the object’s `createdBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Checks for equality with the object’s `updatedBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Checks for equality with the object’s `createdAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Checks for equality with the object’s `updatedAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": "Checks for equality with the object’s `userId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserCharacteristicFilter", - "description": "A filter to be used against `UserCharacteristic` object types. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "income", - "description": "Filter by the object’s `income` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "BigFloatFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "gender", - "description": "Filter by the object’s `gender` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "race", - "description": "Filter by the object’s `race` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "age", - "description": "Filter by the object’s `age` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "dob", - "description": "Filter by the object’s `dob` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DateFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "education", - "description": "Filter by the object’s `education` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "homeOwnership", - "description": "Filter by the object’s `homeOwnership` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "treeHuggerLevel", - "description": "Filter by the object’s `treeHuggerLevel` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "freeTime", - "description": "Filter by the object’s `freeTime` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "researchToDoer", - "description": "Filter by the object’s `researchToDoer` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Filter by the object’s `createdBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Filter by the object’s `updatedBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Filter by the object’s `createdAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Filter by the object’s `updatedAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": "Filter by the object’s `userId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "and", - "description": "Checks for all expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserCharacteristicFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "or", - "description": "Checks for any expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserCharacteristicFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "not", - "description": "Negates the expression.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserCharacteristicFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DateFilter", - "description": "A filter to be used against Date fields. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "isNull", - "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "equalTo", - "description": "Equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Date", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notEqualTo", - "description": "Not equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Date", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "distinctFrom", - "description": "Not equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "Date", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notDistinctFrom", - "description": "Equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "Date", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "in", - "description": "Included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Date", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "notIn", - "description": "Not included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Date", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "lessThan", - "description": "Less than the specified value.", - "type": { - "kind": "SCALAR", - "name": "Date", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "lessThanOrEqualTo", - "description": "Less than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Date", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThan", - "description": "Greater than the specified value.", - "type": { - "kind": "SCALAR", - "name": "Date", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "greaterThanOrEqualTo", - "description": "Greater than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Date", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserCharacteristicsConnection", - "description": "A connection to a list of `UserCharacteristic` values.", - "fields": [ - { - "name": "nodes", - "description": "A list of `UserCharacteristic` objects.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserCharacteristic", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "edges", - "description": "A list of edges which contains the `UserCharacteristic` and cursor to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserCharacteristicsEdge", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "The count of *all* `UserCharacteristic` you could get from the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserCharacteristicsEdge", - "description": "A `UserCharacteristic` edge in the connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The `UserCharacteristic` at the end of the edge.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserCharacteristic", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "UserContactsOrderBy", - "description": "Methods to use when ordering `UserContact`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NATURAL", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VCF_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VCF_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FULL_NAME_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FULL_NAME_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "EMAILS_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "EMAILS_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DEVICE_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DEVICE_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserContactCondition", - "description": "A condition to be used against `UserContact` object types. All fields are tested for equality and combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Checks for equality with the object’s `id` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "vcf", - "description": "Checks for equality with the object’s `vcf` field.", - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "fullName", - "description": "Checks for equality with the object’s `fullName` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "emails", - "description": "Checks for equality with the object’s `emails` field.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "device", - "description": "Checks for equality with the object’s `device` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Checks for equality with the object’s `createdBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Checks for equality with the object’s `updatedBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Checks for equality with the object’s `createdAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Checks for equality with the object’s `updatedAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": "Checks for equality with the object’s `userId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserContactFilter", - "description": "A filter to be used against `UserContact` object types. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "vcf", - "description": "Filter by the object’s `vcf` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "JSONFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "fullName", - "description": "Filter by the object’s `fullName` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "emails", - "description": "Filter by the object’s `emails` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "LaunchqlInternalTypeEmailListFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "device", - "description": "Filter by the object’s `device` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Filter by the object’s `createdBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Filter by the object’s `updatedBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Filter by the object’s `createdAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Filter by the object’s `updatedAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": "Filter by the object’s `userId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "and", - "description": "Checks for all expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserContactFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "or", - "description": "Checks for any expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserContactFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "not", - "description": "Negates the expression.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserContactFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "LaunchqlInternalTypeEmailListFilter", - "description": "A filter to be used against LaunchqlInternalTypeEmail List fields. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "isNull", - "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "equalTo", - "description": "Equal to the specified value.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "notEqualTo", - "description": "Not equal to the specified value.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "distinctFrom", - "description": "Not equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "notDistinctFrom", - "description": "Equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "lessThan", - "description": "Less than the specified value.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "lessThanOrEqualTo", - "description": "Less than or equal to the specified value.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "greaterThan", - "description": "Greater than the specified value.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "greaterThanOrEqualTo", - "description": "Greater than or equal to the specified value.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "contains", - "description": "Contains the specified list of values.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "containedBy", - "description": "Contained by the specified list of values.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "overlaps", - "description": "Overlaps the specified list of values.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "anyEqualTo", - "description": "Any array item is equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "anyNotEqualTo", - "description": "Any array item is not equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "anyLessThan", - "description": "Any array item is less than the specified value.", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "anyLessThanOrEqualTo", - "description": "Any array item is less than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "anyGreaterThan", - "description": "Any array item is greater than the specified value.", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "anyGreaterThanOrEqualTo", - "description": "Any array item is greater than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserContactsConnection", - "description": "A connection to a list of `UserContact` values.", - "fields": [ - { - "name": "nodes", - "description": "A list of `UserContact` objects.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserContact", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "edges", - "description": "A list of edges which contains the `UserContact` and cursor to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserContactsEdge", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "The count of *all* `UserContact` you could get from the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserContact", - "description": null, - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "vcf", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "fullName", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "emails", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "device", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserContact`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserContactsEdge", - "description": "A `UserContact` edge in the connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The `UserContact` at the end of the edge.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserContact", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "UserConnectionsOrderBy", - "description": "Methods to use when ordering `UserConnection`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NATURAL", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACCEPTED_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACCEPTED_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REQUESTER_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REQUESTER_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "RESPONDER_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "RESPONDER_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserConnectionCondition", - "description": "A condition to be used against `UserConnection` object types. All fields are tested for equality and combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Checks for equality with the object’s `id` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "accepted", - "description": "Checks for equality with the object’s `accepted` field.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Checks for equality with the object’s `createdBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Checks for equality with the object’s `updatedBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Checks for equality with the object’s `createdAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Checks for equality with the object’s `updatedAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "requesterId", - "description": "Checks for equality with the object’s `requesterId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "responderId", - "description": "Checks for equality with the object’s `responderId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserConnectionFilter", - "description": "A filter to be used against `UserConnection` object types. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "accepted", - "description": "Filter by the object’s `accepted` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "BooleanFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Filter by the object’s `createdBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Filter by the object’s `updatedBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Filter by the object’s `createdAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Filter by the object’s `updatedAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "requesterId", - "description": "Filter by the object’s `requesterId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "responderId", - "description": "Filter by the object’s `responderId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "and", - "description": "Checks for all expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserConnectionFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "or", - "description": "Checks for any expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserConnectionFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "not", - "description": "Negates the expression.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserConnectionFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserConnectionsConnection", - "description": "A connection to a list of `UserConnection` values.", - "fields": [ - { - "name": "nodes", - "description": "A list of `UserConnection` objects.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserConnection", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "edges", - "description": "A list of edges which contains the `UserConnection` and cursor to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserConnectionsEdge", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "The count of *all* `UserConnection` you could get from the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserConnection", - "description": null, - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "accepted", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requesterId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "responderId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requester", - "description": "Reads a single `User` that is related to this `UserConnection`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "responder", - "description": "Reads a single `User` that is related to this `UserConnection`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserConnectionsEdge", - "description": "A `UserConnection` edge in the connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The `UserConnection` at the end of the edge.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "ActionResultsOrderBy", - "description": "Methods to use when ordering `ActionResult`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NATURAL", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACTION_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACTION_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OWNER_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OWNER_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ActionResultCondition", - "description": "A condition to be used against `ActionResult` object types. All fields are tested for equality and combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Checks for equality with the object’s `id` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Checks for equality with the object’s `createdBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Checks for equality with the object’s `updatedBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Checks for equality with the object’s `createdAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Checks for equality with the object’s `updatedAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionId", - "description": "Checks for equality with the object’s `actionId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "ownerId", - "description": "Checks for equality with the object’s `ownerId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ActionResultFilter", - "description": "A filter to be used against `ActionResult` object types. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Filter by the object’s `createdBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Filter by the object’s `updatedBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Filter by the object’s `createdAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Filter by the object’s `updatedAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionId", - "description": "Filter by the object’s `actionId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "ownerId", - "description": "Filter by the object’s `ownerId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "and", - "description": "Checks for all expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "ActionResultFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "or", - "description": "Checks for any expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "ActionResultFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "not", - "description": "Negates the expression.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ActionResultFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ActionResultsConnection", - "description": "A connection to a list of `ActionResult` values.", - "fields": [ - { - "name": "nodes", - "description": "A list of `ActionResult` objects.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ActionResult", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "edges", - "description": "A list of edges which contains the `ActionResult` and cursor to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ActionResultsEdge", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "The count of *all* `ActionResult` you could get from the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ActionResult", - "description": null, - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ownerId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "Reads a single `Action` that is related to this `ActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "Reads a single `User` that is related to this `ActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionResults", - "description": "Reads and enables pagination through a set of `UserActionResult`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserActionResult`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionResultsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionResultCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionResultFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserActionResultsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "UserActionResultsOrderBy", - "description": "Methods to use when ordering `UserActionResult`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NATURAL", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DATE_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DATE_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VALUE_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VALUE_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACTION_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACTION_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ACTION_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ACTION_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACTION_RESULT_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACTION_RESULT_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserActionResultCondition", - "description": "A condition to be used against `UserActionResult` object types. All fields are tested for equality and combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Checks for equality with the object’s `id` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "date", - "description": "Checks for equality with the object’s `date` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "value", - "description": "Checks for equality with the object’s `value` field.", - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Checks for equality with the object’s `createdBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Checks for equality with the object’s `updatedBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Checks for equality with the object’s `createdAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Checks for equality with the object’s `updatedAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": "Checks for equality with the object’s `userId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionId", - "description": "Checks for equality with the object’s `actionId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userActionId", - "description": "Checks for equality with the object’s `userActionId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionResultId", - "description": "Checks for equality with the object’s `actionResultId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserActionResultFilter", - "description": "A filter to be used against `UserActionResult` object types. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "date", - "description": "Filter by the object’s `date` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "value", - "description": "Filter by the object’s `value` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "JSONFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Filter by the object’s `createdBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Filter by the object’s `updatedBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Filter by the object’s `createdAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Filter by the object’s `updatedAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": "Filter by the object’s `userId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionId", - "description": "Filter by the object’s `actionId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userActionId", - "description": "Filter by the object’s `userActionId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionResultId", - "description": "Filter by the object’s `actionResultId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "and", - "description": "Checks for all expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserActionResultFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "or", - "description": "Checks for any expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserActionResultFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "not", - "description": "Negates the expression.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionResultFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserActionResultsConnection", - "description": "A connection to a list of `UserActionResult` values.", - "fields": [ - { - "name": "nodes", - "description": "A list of `UserActionResult` objects.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserActionResult", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "edges", - "description": "A list of edges which contains the `UserActionResult` and cursor to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserActionResultsEdge", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "The count of *all* `UserActionResult` you could get from the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserActionResult", - "description": null, - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "date", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "value", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionResultId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "Reads a single `Action` that is related to this `UserActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userAction", - "description": "Reads a single `UserAction` that is related to this `UserActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserAction", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionResult", - "description": "Reads a single `ActionResult` that is related to this `UserActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActionResult", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserAction", - "description": null, - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionStarted", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "verified", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "verifiedDate", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "status", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userRating", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "rejected", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "rejectedReason", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "verifierId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserAction`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "verifier", - "description": "Reads a single `User` that is related to this `UserAction`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "Reads a single `Action` that is related to this `UserAction`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionResults", - "description": "Reads and enables pagination through a set of `UserActionResult`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserActionResult`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionResultsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionResultCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionResultFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserActionResultsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionItems", - "description": "Reads and enables pagination through a set of `UserActionItem`.", - "args": [ - { - "name": "first", - "description": "Only read the first `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `UserActionItem`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionItemsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionItemCondition", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionItemFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserActionItemsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "UserActionItemsOrderBy", - "description": "Methods to use when ordering `UserActionItem`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NATURAL", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DATE_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DATE_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VALUE_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VALUE_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "STATUS_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "STATUS_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACTION_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACTION_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ACTION_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ACTION_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACTION_ITEM_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACTION_ITEM_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserActionItemCondition", - "description": "A condition to be used against `UserActionItem` object types. All fields are tested for equality and combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Checks for equality with the object’s `id` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "date", - "description": "Checks for equality with the object’s `date` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "value", - "description": "Checks for equality with the object’s `value` field.", - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "status", - "description": "Checks for equality with the object’s `status` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Checks for equality with the object’s `createdBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Checks for equality with the object’s `updatedBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Checks for equality with the object’s `createdAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Checks for equality with the object’s `updatedAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": "Checks for equality with the object’s `userId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionId", - "description": "Checks for equality with the object’s `actionId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userActionId", - "description": "Checks for equality with the object’s `userActionId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionItemId", - "description": "Checks for equality with the object’s `actionItemId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserActionItemFilter", - "description": "A filter to be used against `UserActionItem` object types. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "date", - "description": "Filter by the object’s `date` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "value", - "description": "Filter by the object’s `value` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "JSONFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "status", - "description": "Filter by the object’s `status` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Filter by the object’s `createdBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Filter by the object’s `updatedBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Filter by the object’s `createdAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Filter by the object’s `updatedAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": "Filter by the object’s `userId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionId", - "description": "Filter by the object’s `actionId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userActionId", - "description": "Filter by the object’s `userActionId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionItemId", - "description": "Filter by the object’s `actionItemId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "and", - "description": "Checks for all expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserActionItemFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "or", - "description": "Checks for any expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserActionItemFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "not", - "description": "Negates the expression.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionItemFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserActionItemsConnection", - "description": "A connection to a list of `UserActionItem` values.", - "fields": [ - { - "name": "nodes", - "description": "A list of `UserActionItem` objects.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserActionItem", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "edges", - "description": "A list of edges which contains the `UserActionItem` and cursor to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserActionItemsEdge", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "The count of *all* `UserActionItem` you could get from the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserActionItem", - "description": null, - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "date", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "value", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "status", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionItemId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "Reads a single `Action` that is related to this `UserActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userAction", - "description": "Reads a single `UserAction` that is related to this `UserActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserAction", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionItem", - "description": "Reads a single `ActionItem` that is related to this `UserActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActionItem", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserActionItemsEdge", - "description": "A `UserActionItem` edge in the connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The `UserActionItem` at the end of the edge.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserActionItem", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserActionResultsEdge", - "description": "A `UserActionResult` edge in the connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The `UserActionResult` at the end of the edge.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserActionResult", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ActionResultsEdge", - "description": "A `ActionResult` edge in the connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The `ActionResult` at the end of the edge.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ActionResult", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "UserActionsOrderBy", - "description": "Methods to use when ordering `UserAction`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NATURAL", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACTION_STARTED_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACTION_STARTED_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VERIFIED_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VERIFIED_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VERIFIED_DATE_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VERIFIED_DATE_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "STATUS_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "STATUS_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_RATING_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_RATING_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REJECTED_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REJECTED_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REJECTED_REASON_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REJECTED_REASON_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VERIFIER_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VERIFIER_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACTION_ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACTION_ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserActionCondition", - "description": "A condition to be used against `UserAction` object types. All fields are tested for equality and combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Checks for equality with the object’s `id` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionStarted", - "description": "Checks for equality with the object’s `actionStarted` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "verified", - "description": "Checks for equality with the object’s `verified` field.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "verifiedDate", - "description": "Checks for equality with the object’s `verifiedDate` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "status", - "description": "Checks for equality with the object’s `status` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userRating", - "description": "Checks for equality with the object’s `userRating` field.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "rejected", - "description": "Checks for equality with the object’s `rejected` field.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "rejectedReason", - "description": "Checks for equality with the object’s `rejectedReason` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Checks for equality with the object’s `createdBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Checks for equality with the object’s `updatedBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Checks for equality with the object’s `createdAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Checks for equality with the object’s `updatedAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": "Checks for equality with the object’s `userId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "verifierId", - "description": "Checks for equality with the object’s `verifierId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionId", - "description": "Checks for equality with the object’s `actionId` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserActionFilter", - "description": "A filter to be used against `UserAction` object types. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionStarted", - "description": "Filter by the object’s `actionStarted` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "verified", - "description": "Filter by the object’s `verified` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "BooleanFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "verifiedDate", - "description": "Filter by the object’s `verifiedDate` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "status", - "description": "Filter by the object’s `status` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userRating", - "description": "Filter by the object’s `userRating` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "rejected", - "description": "Filter by the object’s `rejected` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "BooleanFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "rejectedReason", - "description": "Filter by the object’s `rejectedReason` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Filter by the object’s `createdBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Filter by the object’s `updatedBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Filter by the object’s `createdAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Filter by the object’s `updatedAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": "Filter by the object’s `userId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "verifierId", - "description": "Filter by the object’s `verifierId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionId", - "description": "Filter by the object’s `actionId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "and", - "description": "Checks for all expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserActionFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "or", - "description": "Checks for any expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserActionFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "not", - "description": "Negates the expression.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserActionFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserActionsConnection", - "description": "A connection to a list of `UserAction` values.", - "fields": [ - { - "name": "nodes", - "description": "A list of `UserAction` objects.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserAction", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "edges", - "description": "A list of edges which contains the `UserAction` and cursor to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserActionsEdge", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "The count of *all* `UserAction` you could get from the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserActionsEdge", - "description": "A `UserAction` edge in the connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The `UserAction` at the end of the edge.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserAction", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ActionItemsEdge", - "description": "A `ActionItem` edge in the connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The `ActionItem` at the end of the edge.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ActionItem", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "GoalsOrderBy", - "description": "Methods to use when ordering `Goal`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NATURAL", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NAME_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NAME_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SHORT_NAME_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SHORT_NAME_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ICON_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ICON_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SUB_HEAD_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SUB_HEAD_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "AUDIO_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "AUDIO_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "AUDIO_DURATION_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "AUDIO_DURATION_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "EXPLANATION_TITLE_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "EXPLANATION_TITLE_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "EXPLANATION_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "EXPLANATION_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "GoalCondition", - "description": "A condition to be used against `Goal` object types. All fields are tested for equality and combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Checks for equality with the object’s `id` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "name", - "description": "Checks for equality with the object’s `name` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "shortName", - "description": "Checks for equality with the object’s `shortName` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "icon", - "description": "Checks for equality with the object’s `icon` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "subHead", - "description": "Checks for equality with the object’s `subHead` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "audio", - "description": "Checks for equality with the object’s `audio` field.", - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "audioDuration", - "description": "Checks for equality with the object’s `audioDuration` field.", - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "explanationTitle", - "description": "Checks for equality with the object’s `explanationTitle` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "explanation", - "description": "Checks for equality with the object’s `explanation` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Checks for equality with the object’s `createdBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Checks for equality with the object’s `updatedBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Checks for equality with the object’s `createdAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Checks for equality with the object’s `updatedAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "GoalFilter", - "description": "A filter to be used against `Goal` object types. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "name", - "description": "Filter by the object’s `name` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "shortName", - "description": "Filter by the object’s `shortName` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "icon", - "description": "Filter by the object’s `icon` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "subHead", - "description": "Filter by the object’s `subHead` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "audio", - "description": "Filter by the object’s `audio` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "JSONFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "audioDuration", - "description": "Filter by the object’s `audioDuration` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "BigFloatFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "explanationTitle", - "description": "Filter by the object’s `explanationTitle` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "explanation", - "description": "Filter by the object’s `explanation` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Filter by the object’s `createdBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Filter by the object’s `updatedBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Filter by the object’s `createdAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Filter by the object’s `updatedAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "and", - "description": "Checks for all expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "GoalFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "or", - "description": "Checks for any expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "GoalFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "not", - "description": "Negates the expression.", - "type": { - "kind": "INPUT_OBJECT", - "name": "GoalFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GoalsConnection", - "description": "A connection to a list of `Goal` values.", - "fields": [ - { - "name": "nodes", - "description": "A list of `Goal` objects.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Goal", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "edges", - "description": "A list of edges which contains the `Goal` and cursor to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GoalsEdge", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "The count of *all* `Goal` you could get from the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Goal", - "description": null, - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "shortName", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "icon", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subHead", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "audio", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "audioDuration", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "explanationTitle", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "explanation", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GoalsEdge", - "description": "A `Goal` edge in the connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The `Goal` at the end of the edge.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Goal", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "LocationsOrderBy", - "description": "Methods to use when ordering `Location`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NATURAL", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "GEO_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "GEO_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "LocationCondition", - "description": "A condition to be used against `Location` object types. All fields are tested for equality and combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Checks for equality with the object’s `id` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "geo", - "description": "Checks for equality with the object’s `geo` field.", - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Checks for equality with the object’s `createdBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Checks for equality with the object’s `updatedBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Checks for equality with the object’s `createdAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Checks for equality with the object’s `updatedAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "LocationFilter", - "description": "A filter to be used against `Location` object types. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "geo", - "description": "Filter by the object’s `geo` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "GeometryInterfaceFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Filter by the object’s `createdBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Filter by the object’s `updatedBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Filter by the object’s `createdAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Filter by the object’s `updatedAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "and", - "description": "Checks for all expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "LocationFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "or", - "description": "Checks for any expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "LocationFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "not", - "description": "Negates the expression.", - "type": { - "kind": "INPUT_OBJECT", - "name": "LocationFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "LocationsConnection", - "description": "A connection to a list of `Location` values.", - "fields": [ - { - "name": "nodes", - "description": "A list of `Location` objects.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Location", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "edges", - "description": "A list of edges which contains the `Location` and cursor to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "LocationsEdge", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "The count of *all* `Location` you could get from the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "LocationsEdge", - "description": "A `Location` edge in the connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The `Location` at the end of the edge.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Location", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "NewsUpdatesOrderBy", - "description": "Methods to use when ordering `NewsUpdate`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NATURAL", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NAME_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NAME_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DESCRIPTION_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DESCRIPTION_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PHOTO_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PHOTO_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_BY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "NewsUpdateCondition", - "description": "A condition to be used against `NewsUpdate` object types. All fields are tested for equality and combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Checks for equality with the object’s `id` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "name", - "description": "Checks for equality with the object’s `name` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "description", - "description": "Checks for equality with the object’s `description` field.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "photo", - "description": "Checks for equality with the object’s `photo` field.", - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Checks for equality with the object’s `createdBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Checks for equality with the object’s `updatedBy` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Checks for equality with the object’s `createdAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Checks for equality with the object’s `updatedAt` field.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "NewsUpdateFilter", - "description": "A filter to be used against `NewsUpdate` object types. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "name", - "description": "Filter by the object’s `name` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "description", - "description": "Filter by the object’s `description` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "photo", - "description": "Filter by the object’s `photo` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "JSONFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "Filter by the object’s `createdBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": "Filter by the object’s `updatedBy` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": "Filter by the object’s `createdAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": "Filter by the object’s `updatedAt` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "and", - "description": "Checks for all expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "NewsUpdateFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "or", - "description": "Checks for any expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "NewsUpdateFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "not", - "description": "Negates the expression.", - "type": { - "kind": "INPUT_OBJECT", - "name": "NewsUpdateFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "NewsUpdatesConnection", - "description": "A connection to a list of `NewsUpdate` values.", - "fields": [ - { - "name": "nodes", - "description": "A list of `NewsUpdate` objects.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "NewsUpdate", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "edges", - "description": "A list of edges which contains the `NewsUpdate` and cursor to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "NewsUpdatesEdge", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "The count of *all* `NewsUpdate` you could get from the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "NewsUpdate", - "description": null, - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "photo", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedBy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "NewsUpdatesEdge", - "description": "A `NewsUpdate` edge in the connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The `NewsUpdate` at the end of the edge.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "NewsUpdate", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "UsersOrderBy", - "description": "Methods to use when ordering `User`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NATURAL", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ID_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TYPE_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TYPE_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_ASC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIMARY_KEY_DESC", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserCondition", - "description": "A condition to be used against `User` object types. All fields are tested for equality and combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Checks for equality with the object’s `id` field.", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "type", - "description": "Checks for equality with the object’s `type` field.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserFilter", - "description": "A filter to be used against `User` object types. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UUIDFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "type", - "description": "Filter by the object’s `type` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "and", - "description": "Checks for all expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "or", - "description": "Checks for any expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserFilter", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "not", - "description": "Negates the expression.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UsersConnection", - "description": "A connection to a list of `User` values.", - "fields": [ - { - "name": "nodes", - "description": "A list of `User` objects.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "User", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "edges", - "description": "A list of edges which contains the `User` and cursor to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UsersEdge", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "The count of *all* `User` you could get from the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UsersEdge", - "description": "A `User` edge in the connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The `User` at the end of the edge.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "User", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Metaschema", - "description": null, - "fields": [ - { - "name": "tables", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MetaschemaTable", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MetaschemaTable", - "description": null, - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "fields", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MetaschemaField", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "constraints", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "UNION", - "name": "MetaschemaConstraint", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "foreignKeyConstraints", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MetaschemaForeignKeyConstraint", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "primaryKeyConstraints", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MetaschemaPrimaryKeyConstraint", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "uniqueConstraints", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MetaschemaUniqueConstraint", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "checkConstraints", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MetaschemaCheckConstraint", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "exclusionConstraints", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MetaschemaExclusionConstraint", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MetaschemaField", - "description": null, - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MetaschemaType", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MetaschemaType", - "description": null, - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "MetaschemaConstraint", - "description": null, - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "MetaschemaForeignKeyConstraint", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "MetaschemaUniqueConstraint", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "MetaschemaPrimaryKeyConstraint", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "MetaschemaCheckConstraint", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "MetaschemaExclusionConstraint", - "ofType": null - } - ] - }, - { - "kind": "OBJECT", - "name": "MetaschemaForeignKeyConstraint", - "description": null, - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "fields", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MetaschemaField", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "refTable", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "MetaschemaTable", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "refFields", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MetaschemaField", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MetaschemaUniqueConstraint", - "description": null, - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "fields", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MetaschemaField", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MetaschemaPrimaryKeyConstraint", - "description": null, - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "fields", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MetaschemaField", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MetaschemaCheckConstraint", - "description": null, - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "fields", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MetaschemaField", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MetaschemaExclusionConstraint", - "description": null, - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "fields", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MetaschemaField", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Mutation", - "description": "The root mutation type which contains root level fields which mutate data.", - "fields": [ - { - "name": "createActionItem", - "description": "Creates a single `ActionItem`.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateActionItemInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateActionItemPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createActionResult", - "description": "Creates a single `ActionResult`.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateActionResultInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateActionResultPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createAction", - "description": "Creates a single `Action`.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateActionInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateActionPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createGoal", - "description": "Creates a single `Goal`.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateGoalInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateGoalPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createLocation", - "description": "Creates a single `Location`.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateLocationInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateLocationPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createNewsUpdate", - "description": "Creates a single `NewsUpdate`.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateNewsUpdateInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateNewsUpdatePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createUserActionItem", - "description": "Creates a single `UserActionItem`.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateUserActionItemInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateUserActionItemPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createUserActionResult", - "description": "Creates a single `UserActionResult`.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateUserActionResultInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateUserActionResultPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createUserAction", - "description": "Creates a single `UserAction`.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateUserActionInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateUserActionPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createUserCharacteristic", - "description": "Creates a single `UserCharacteristic`.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateUserCharacteristicInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateUserCharacteristicPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createUserConnection", - "description": "Creates a single `UserConnection`.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateUserConnectionInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateUserConnectionPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createUserContact", - "description": "Creates a single `UserContact`.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateUserContactInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateUserContactPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createUserEmail", - "description": "Creates a single `UserEmail`.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateUserEmailInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateUserEmailPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createUserProfile", - "description": "Creates a single `UserProfile`.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateUserProfileInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateUserProfilePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createUserSetting", - "description": "Creates a single `UserSetting`.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateUserSettingInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateUserSettingPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createUser", - "description": "Creates a single `User`.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateUserInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateUserPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateActionItem", - "description": "Updates a single `ActionItem` using a unique key and a patch.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateActionItemInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateActionItemPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateActionResult", - "description": "Updates a single `ActionResult` using a unique key and a patch.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateActionResultInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateActionResultPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateAction", - "description": "Updates a single `Action` using a unique key and a patch.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateActionInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateActionPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateGoal", - "description": "Updates a single `Goal` using a unique key and a patch.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateGoalInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateGoalPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateLocation", - "description": "Updates a single `Location` using a unique key and a patch.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateLocationInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateLocationPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateNewsUpdate", - "description": "Updates a single `NewsUpdate` using a unique key and a patch.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateNewsUpdateInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateNewsUpdatePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateUserActionItem", - "description": "Updates a single `UserActionItem` using a unique key and a patch.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateUserActionItemInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateUserActionItemPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateUserActionResult", - "description": "Updates a single `UserActionResult` using a unique key and a patch.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateUserActionResultInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateUserActionResultPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateUserAction", - "description": "Updates a single `UserAction` using a unique key and a patch.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateUserActionInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateUserActionPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateUserCharacteristic", - "description": "Updates a single `UserCharacteristic` using a unique key and a patch.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateUserCharacteristicInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateUserCharacteristicPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateUserCharacteristicByUserId", - "description": "Updates a single `UserCharacteristic` using a unique key and a patch.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateUserCharacteristicByUserIdInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateUserCharacteristicPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateUserConnection", - "description": "Updates a single `UserConnection` using a unique key and a patch.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateUserConnectionInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateUserConnectionPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateUserContact", - "description": "Updates a single `UserContact` using a unique key and a patch.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateUserContactInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateUserContactPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateUserEmail", - "description": "Updates a single `UserEmail` using a unique key and a patch.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateUserEmailInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateUserEmailPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateUserEmailByEmail", - "description": "Updates a single `UserEmail` using a unique key and a patch.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateUserEmailByEmailInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateUserEmailPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateUserProfile", - "description": "Updates a single `UserProfile` using a unique key and a patch.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateUserProfileInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateUserProfilePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateUserProfileByUserId", - "description": "Updates a single `UserProfile` using a unique key and a patch.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateUserProfileByUserIdInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateUserProfilePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateUserSetting", - "description": "Updates a single `UserSetting` using a unique key and a patch.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateUserSettingInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateUserSettingPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateUserSettingByUserId", - "description": "Updates a single `UserSetting` using a unique key and a patch.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateUserSettingByUserIdInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateUserSettingPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateUser", - "description": "Updates a single `User` using a unique key and a patch.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateUserInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateUserPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteActionItem", - "description": "Deletes a single `ActionItem` using a unique key.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteActionItemInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteActionItemPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteActionResult", - "description": "Deletes a single `ActionResult` using a unique key.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteActionResultInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteActionResultPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteAction", - "description": "Deletes a single `Action` using a unique key.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteActionInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteActionPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteGoal", - "description": "Deletes a single `Goal` using a unique key.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteGoalInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteGoalPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteLocation", - "description": "Deletes a single `Location` using a unique key.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteLocationInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteLocationPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteNewsUpdate", - "description": "Deletes a single `NewsUpdate` using a unique key.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteNewsUpdateInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteNewsUpdatePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteUserActionItem", - "description": "Deletes a single `UserActionItem` using a unique key.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteUserActionItemInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteUserActionItemPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteUserActionResult", - "description": "Deletes a single `UserActionResult` using a unique key.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteUserActionResultInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteUserActionResultPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteUserAction", - "description": "Deletes a single `UserAction` using a unique key.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteUserActionInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteUserActionPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteUserCharacteristic", - "description": "Deletes a single `UserCharacteristic` using a unique key.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteUserCharacteristicInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteUserCharacteristicPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteUserCharacteristicByUserId", - "description": "Deletes a single `UserCharacteristic` using a unique key.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteUserCharacteristicByUserIdInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteUserCharacteristicPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteUserConnection", - "description": "Deletes a single `UserConnection` using a unique key.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteUserConnectionInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteUserConnectionPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteUserContact", - "description": "Deletes a single `UserContact` using a unique key.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteUserContactInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteUserContactPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteUserEmail", - "description": "Deletes a single `UserEmail` using a unique key.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteUserEmailInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteUserEmailPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteUserEmailByEmail", - "description": "Deletes a single `UserEmail` using a unique key.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteUserEmailByEmailInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteUserEmailPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteUserProfile", - "description": "Deletes a single `UserProfile` using a unique key.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteUserProfileInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteUserProfilePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteUserProfileByUserId", - "description": "Deletes a single `UserProfile` using a unique key.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteUserProfileByUserIdInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteUserProfilePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteUserSetting", - "description": "Deletes a single `UserSetting` using a unique key.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteUserSettingInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteUserSettingPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteUserSettingByUserId", - "description": "Deletes a single `UserSetting` using a unique key.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteUserSettingByUserIdInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteUserSettingPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteUser", - "description": "Deletes a single `User` using a unique key.", - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteUserInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteUserPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "login", - "description": null, - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "LoginInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "LoginPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "register", - "description": null, - "args": [ - { - "name": "input", - "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RegisterInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "RegisterPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateActionItemInput", - "description": "All input for the create `ActionItem` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionItem", - "description": "The `ActionItem` to be created by this mutation.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "ActionItemInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ActionItemInput", - "description": "An input for mutations affecting `ActionItem`", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "name", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "description", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "link", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "type", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "itemOrder", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "requiredItem", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notificationText", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "embedCode", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "ownerId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateActionItemPayload", - "description": "The output of our create `ActionItem` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionItem", - "description": "The `ActionItem` that was created by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActionItem", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "Reads a single `Action` that is related to this `ActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "Reads a single `User` that is related to this `ActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionItemEdge", - "description": "An edge for our `ActionItem`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `ActionItem`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ActionItemsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "ActionItemsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateActionResultInput", - "description": "All input for the create `ActionResult` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionResult", - "description": "The `ActionResult` to be created by this mutation.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "ActionResultInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ActionResultInput", - "description": "An input for mutations affecting `ActionResult`", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "ownerId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateActionResultPayload", - "description": "The output of our create `ActionResult` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionResult", - "description": "The `ActionResult` that was created by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActionResult", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "Reads a single `Action` that is related to this `ActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "Reads a single `User` that is related to this `ActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionResultEdge", - "description": "An edge for our `ActionResult`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `ActionResult`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ActionResultsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "ActionResultsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateActionInput", - "description": "All input for the create `Action` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "action", - "description": "The `Action` to be created by this mutation.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "ActionInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ActionInput", - "description": "An input for mutations affecting `Action`", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "name", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "photo", - "description": null, - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "title", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "description", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "locationRadius", - "description": null, - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "url", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "timeRequired", - "description": null, - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "startDate", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "endDate", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "approved", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "rewardAmount", - "description": null, - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "activityFeedText", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "callToAction", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "completedActionText", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "descriptionHeader", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "tags", - "description": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "locationId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "ownerId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "photoUpload", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Upload", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Upload", - "description": "The `Upload` scalar type represents a file upload.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateActionPayload", - "description": "The output of our create `Action` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "The `Action` that was created by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "location", - "description": "Reads a single `Location` that is related to this `Action`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Location", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "Reads a single `User` that is related to this `Action`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionEdge", - "description": "An edge for our `Action`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `Action`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ActionsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "ActionsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateGoalInput", - "description": "All input for the create `Goal` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "goal", - "description": "The `Goal` to be created by this mutation.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "GoalInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "GoalInput", - "description": "An input for mutations affecting `Goal`", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "name", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "shortName", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "icon", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "subHead", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "audio", - "description": null, - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "audioDuration", - "description": null, - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "explanationTitle", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "explanation", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "audioUpload", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Upload", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateGoalPayload", - "description": "The output of our create `Goal` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "goal", - "description": "The `Goal` that was created by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Goal", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "goalEdge", - "description": "An edge for our `Goal`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `Goal`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "GoalsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "GoalsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateLocationInput", - "description": "All input for the create `Location` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "location", - "description": "The `Location` to be created by this mutation.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "LocationInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "LocationInput", - "description": "An input for mutations affecting `Location`", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "geo", - "description": null, - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateLocationPayload", - "description": "The output of our create `Location` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "location", - "description": "The `Location` that was created by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Location", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "locationEdge", - "description": "An edge for our `Location`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `Location`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "LocationsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "LocationsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateNewsUpdateInput", - "description": "All input for the create `NewsUpdate` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "newsUpdate", - "description": "The `NewsUpdate` to be created by this mutation.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "NewsUpdateInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "NewsUpdateInput", - "description": "An input for mutations affecting `NewsUpdate`", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "name", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "description", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "photo", - "description": null, - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "photoUpload", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Upload", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateNewsUpdatePayload", - "description": "The output of our create `NewsUpdate` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "newsUpdate", - "description": "The `NewsUpdate` that was created by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "NewsUpdate", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "newsUpdateEdge", - "description": "An edge for our `NewsUpdate`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `NewsUpdate`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "NewsUpdatesOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "NewsUpdatesEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateUserActionItemInput", - "description": "All input for the create `UserActionItem` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userActionItem", - "description": "The `UserActionItem` to be created by this mutation.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserActionItemInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserActionItemInput", - "description": "An input for mutations affecting `UserActionItem`", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "date", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "value", - "description": null, - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "status", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "actionId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "userActionId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "actionItemId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateUserActionItemPayload", - "description": "The output of our create `UserActionItem` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionItem", - "description": "The `UserActionItem` that was created by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserActionItem", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "Reads a single `Action` that is related to this `UserActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userAction", - "description": "Reads a single `UserAction` that is related to this `UserActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserAction", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionItem", - "description": "Reads a single `ActionItem` that is related to this `UserActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActionItem", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionItemEdge", - "description": "An edge for our `UserActionItem`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserActionItem`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionItemsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserActionItemsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateUserActionResultInput", - "description": "All input for the create `UserActionResult` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userActionResult", - "description": "The `UserActionResult` to be created by this mutation.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserActionResultInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserActionResultInput", - "description": "An input for mutations affecting `UserActionResult`", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "date", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "value", - "description": null, - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "actionId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "userActionId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "actionResultId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateUserActionResultPayload", - "description": "The output of our create `UserActionResult` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionResult", - "description": "The `UserActionResult` that was created by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserActionResult", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "Reads a single `Action` that is related to this `UserActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userAction", - "description": "Reads a single `UserAction` that is related to this `UserActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserAction", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionResult", - "description": "Reads a single `ActionResult` that is related to this `UserActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActionResult", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionResultEdge", - "description": "An edge for our `UserActionResult`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserActionResult`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionResultsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserActionResultsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateUserActionInput", - "description": "All input for the create `UserAction` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userAction", - "description": "The `UserAction` to be created by this mutation.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserActionInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserActionInput", - "description": "An input for mutations affecting `UserAction`", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionStarted", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "verified", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "verifiedDate", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "status", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userRating", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "rejected", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "rejectedReason", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "verifierId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateUserActionPayload", - "description": "The output of our create `UserAction` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userAction", - "description": "The `UserAction` that was created by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserAction", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserAction`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "verifier", - "description": "Reads a single `User` that is related to this `UserAction`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "Reads a single `Action` that is related to this `UserAction`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionEdge", - "description": "An edge for our `UserAction`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserAction`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserActionsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateUserCharacteristicInput", - "description": "All input for the create `UserCharacteristic` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userCharacteristic", - "description": "The `UserCharacteristic` to be created by this mutation.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserCharacteristicInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserCharacteristicInput", - "description": "An input for mutations affecting `UserCharacteristic`", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "income", - "description": null, - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "gender", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "race", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "age", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "dob", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Date", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "education", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "homeOwnership", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "treeHuggerLevel", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "freeTime", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "researchToDoer", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateUserCharacteristicPayload", - "description": "The output of our create `UserCharacteristic` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userCharacteristic", - "description": "The `UserCharacteristic` that was created by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserCharacteristic", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserCharacteristic`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userCharacteristicEdge", - "description": "An edge for our `UserCharacteristic`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserCharacteristic`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserCharacteristicsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserCharacteristicsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateUserConnectionInput", - "description": "All input for the create `UserConnection` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userConnection", - "description": "The `UserConnection` to be created by this mutation.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserConnectionInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserConnectionInput", - "description": "An input for mutations affecting `UserConnection`", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "accepted", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "requesterId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "responderId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateUserConnectionPayload", - "description": "The output of our create `UserConnection` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userConnection", - "description": "The `UserConnection` that was created by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requester", - "description": "Reads a single `User` that is related to this `UserConnection`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "responder", - "description": "Reads a single `User` that is related to this `UserConnection`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userConnectionEdge", - "description": "An edge for our `UserConnection`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserConnection`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserConnectionsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserConnectionsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateUserContactInput", - "description": "All input for the create `UserContact` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userContact", - "description": "The `UserContact` to be created by this mutation.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserContactInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserContactInput", - "description": "An input for mutations affecting `UserContact`", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "vcf", - "description": null, - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "fullName", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "emails", - "description": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "device", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateUserContactPayload", - "description": "The output of our create `UserContact` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userContact", - "description": "The `UserContact` that was created by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserContact", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserContact`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userContactEdge", - "description": "An edge for our `UserContact`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserContact`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserContactsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserContactsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateUserEmailInput", - "description": "All input for the create `UserEmail` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userEmail", - "description": "The `UserEmail` to be created by this mutation.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserEmailInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserEmailInput", - "description": "An input for mutations affecting `UserEmail`", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "email", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "isVerified", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateUserEmailPayload", - "description": "The output of our create `UserEmail` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userEmail", - "description": "The `UserEmail` that was created by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserEmail", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserEmail`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userEmailEdge", - "description": "An edge for our `UserEmail`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserEmail`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserEmailsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserEmailsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateUserProfileInput", - "description": "All input for the create `UserProfile` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userProfile", - "description": "The `UserProfile` to be created by this mutation.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserProfileInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserProfileInput", - "description": "An input for mutations affecting `UserProfile`", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "profilePicture", - "description": null, - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "bio", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "reputation", - "description": null, - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "firstName", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "lastName", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "tags", - "description": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "profilePictureUpload", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Upload", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateUserProfilePayload", - "description": "The output of our create `UserProfile` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userProfile", - "description": "The `UserProfile` that was created by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserProfile", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserProfile`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userProfileEdge", - "description": "An edge for our `UserProfile`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserProfile`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserProfilesOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserProfilesEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateUserSettingInput", - "description": "All input for the create `UserSetting` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userSetting", - "description": "The `UserSetting` to be created by this mutation.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserSettingInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserSettingInput", - "description": "An input for mutations affecting `UserSetting`", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "searchRadius", - "description": null, - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "zip", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "geo", - "description": null, - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateUserSettingPayload", - "description": "The output of our create `UserSetting` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userSetting", - "description": "The `UserSetting` that was created by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserSetting", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserSetting`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userSettingEdge", - "description": "An edge for our `UserSetting`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserSetting`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserSettingsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserSettingsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateUserInput", - "description": "All input for the create `User` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "user", - "description": "The `User` to be created by this mutation.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserInput", - "description": "An input for mutations affecting `User`", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "type", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateUserPayload", - "description": "The output of our create `User` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The `User` that was created by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userEdge", - "description": "An edge for our `User`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `User`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UsersOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UsersEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateActionItemInput", - "description": "All input for the `updateActionItem` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "patch", - "description": "An object where the defined keys will be set on the `ActionItem` being updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "ActionItemPatch", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ActionItemPatch", - "description": "Represents an update to a `ActionItem`. Fields that are set will be updated.", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "name", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "description", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "link", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "type", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "itemOrder", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "requiredItem", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "notificationText", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "embedCode", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "ownerId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateActionItemPayload", - "description": "The output of our update `ActionItem` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionItem", - "description": "The `ActionItem` that was updated by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActionItem", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "Reads a single `Action` that is related to this `ActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "Reads a single `User` that is related to this `ActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionItemEdge", - "description": "An edge for our `ActionItem`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `ActionItem`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ActionItemsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "ActionItemsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateActionResultInput", - "description": "All input for the `updateActionResult` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "patch", - "description": "An object where the defined keys will be set on the `ActionResult` being updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "ActionResultPatch", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ActionResultPatch", - "description": "Represents an update to a `ActionResult`. Fields that are set will be updated.", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "ownerId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateActionResultPayload", - "description": "The output of our update `ActionResult` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionResult", - "description": "The `ActionResult` that was updated by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActionResult", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "Reads a single `Action` that is related to this `ActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "Reads a single `User` that is related to this `ActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionResultEdge", - "description": "An edge for our `ActionResult`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `ActionResult`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ActionResultsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "ActionResultsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateActionInput", - "description": "All input for the `updateAction` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "patch", - "description": "An object where the defined keys will be set on the `Action` being updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "ActionPatch", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ActionPatch", - "description": "Represents an update to a `Action`. Fields that are set will be updated.", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "name", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "photo", - "description": null, - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "title", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "description", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "locationRadius", - "description": null, - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "url", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "timeRequired", - "description": null, - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "startDate", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "endDate", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "approved", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "rewardAmount", - "description": null, - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "activityFeedText", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "callToAction", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "completedActionText", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "descriptionHeader", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "tags", - "description": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "locationId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "ownerId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "photoUpload", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Upload", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateActionPayload", - "description": "The output of our update `Action` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "The `Action` that was updated by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "location", - "description": "Reads a single `Location` that is related to this `Action`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Location", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "Reads a single `User` that is related to this `Action`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionEdge", - "description": "An edge for our `Action`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `Action`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ActionsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "ActionsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateGoalInput", - "description": "All input for the `updateGoal` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "patch", - "description": "An object where the defined keys will be set on the `Goal` being updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "GoalPatch", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "GoalPatch", - "description": "Represents an update to a `Goal`. Fields that are set will be updated.", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "name", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "shortName", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "icon", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "subHead", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "audio", - "description": null, - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "audioDuration", - "description": null, - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "explanationTitle", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "explanation", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "audioUpload", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Upload", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateGoalPayload", - "description": "The output of our update `Goal` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "goal", - "description": "The `Goal` that was updated by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Goal", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "goalEdge", - "description": "An edge for our `Goal`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `Goal`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "GoalsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "GoalsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateLocationInput", - "description": "All input for the `updateLocation` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "patch", - "description": "An object where the defined keys will be set on the `Location` being updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "LocationPatch", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "LocationPatch", - "description": "Represents an update to a `Location`. Fields that are set will be updated.", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "geo", - "description": null, - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateLocationPayload", - "description": "The output of our update `Location` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "location", - "description": "The `Location` that was updated by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Location", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "locationEdge", - "description": "An edge for our `Location`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `Location`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "LocationsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "LocationsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateNewsUpdateInput", - "description": "All input for the `updateNewsUpdate` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "patch", - "description": "An object where the defined keys will be set on the `NewsUpdate` being updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "NewsUpdatePatch", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "NewsUpdatePatch", - "description": "Represents an update to a `NewsUpdate`. Fields that are set will be updated.", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "name", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "description", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "photo", - "description": null, - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "photoUpload", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Upload", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateNewsUpdatePayload", - "description": "The output of our update `NewsUpdate` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "newsUpdate", - "description": "The `NewsUpdate` that was updated by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "NewsUpdate", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "newsUpdateEdge", - "description": "An edge for our `NewsUpdate`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `NewsUpdate`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "NewsUpdatesOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "NewsUpdatesEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateUserActionItemInput", - "description": "All input for the `updateUserActionItem` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "patch", - "description": "An object where the defined keys will be set on the `UserActionItem` being updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserActionItemPatch", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserActionItemPatch", - "description": "Represents an update to a `UserActionItem`. Fields that are set will be updated.", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "date", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "value", - "description": null, - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "status", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userActionId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionItemId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateUserActionItemPayload", - "description": "The output of our update `UserActionItem` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionItem", - "description": "The `UserActionItem` that was updated by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserActionItem", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "Reads a single `Action` that is related to this `UserActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userAction", - "description": "Reads a single `UserAction` that is related to this `UserActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserAction", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionItem", - "description": "Reads a single `ActionItem` that is related to this `UserActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActionItem", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionItemEdge", - "description": "An edge for our `UserActionItem`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserActionItem`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionItemsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserActionItemsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateUserActionResultInput", - "description": "All input for the `updateUserActionResult` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "patch", - "description": "An object where the defined keys will be set on the `UserActionResult` being updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserActionResultPatch", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserActionResultPatch", - "description": "Represents an update to a `UserActionResult`. Fields that are set will be updated.", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "date", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "value", - "description": null, - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userActionId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionResultId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateUserActionResultPayload", - "description": "The output of our update `UserActionResult` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionResult", - "description": "The `UserActionResult` that was updated by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserActionResult", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "Reads a single `Action` that is related to this `UserActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userAction", - "description": "Reads a single `UserAction` that is related to this `UserActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserAction", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionResult", - "description": "Reads a single `ActionResult` that is related to this `UserActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActionResult", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionResultEdge", - "description": "An edge for our `UserActionResult`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserActionResult`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionResultsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserActionResultsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateUserActionInput", - "description": "All input for the `updateUserAction` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "patch", - "description": "An object where the defined keys will be set on the `UserAction` being updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserActionPatch", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserActionPatch", - "description": "Represents an update to a `UserAction`. Fields that are set will be updated.", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionStarted", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "verified", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "verifiedDate", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "status", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userRating", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "rejected", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "rejectedReason", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "verifierId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actionId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateUserActionPayload", - "description": "The output of our update `UserAction` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userAction", - "description": "The `UserAction` that was updated by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserAction", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserAction`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "verifier", - "description": "Reads a single `User` that is related to this `UserAction`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "Reads a single `Action` that is related to this `UserAction`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionEdge", - "description": "An edge for our `UserAction`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserAction`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserActionsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateUserCharacteristicInput", - "description": "All input for the `updateUserCharacteristic` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "patch", - "description": "An object where the defined keys will be set on the `UserCharacteristic` being updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserCharacteristicPatch", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserCharacteristicPatch", - "description": "Represents an update to a `UserCharacteristic`. Fields that are set will be updated.", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "income", - "description": null, - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "gender", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "race", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "age", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "dob", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Date", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "education", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "homeOwnership", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "treeHuggerLevel", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "freeTime", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "researchToDoer", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateUserCharacteristicPayload", - "description": "The output of our update `UserCharacteristic` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userCharacteristic", - "description": "The `UserCharacteristic` that was updated by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserCharacteristic", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserCharacteristic`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userCharacteristicEdge", - "description": "An edge for our `UserCharacteristic`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserCharacteristic`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserCharacteristicsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserCharacteristicsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateUserCharacteristicByUserIdInput", - "description": "All input for the `updateUserCharacteristicByUserId` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "patch", - "description": "An object where the defined keys will be set on the `UserCharacteristic` being updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserCharacteristicPatch", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateUserConnectionInput", - "description": "All input for the `updateUserConnection` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "patch", - "description": "An object where the defined keys will be set on the `UserConnection` being updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserConnectionPatch", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserConnectionPatch", - "description": "Represents an update to a `UserConnection`. Fields that are set will be updated.", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "accepted", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "requesterId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "responderId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateUserConnectionPayload", - "description": "The output of our update `UserConnection` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userConnection", - "description": "The `UserConnection` that was updated by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requester", - "description": "Reads a single `User` that is related to this `UserConnection`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "responder", - "description": "Reads a single `User` that is related to this `UserConnection`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userConnectionEdge", - "description": "An edge for our `UserConnection`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserConnection`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserConnectionsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserConnectionsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateUserContactInput", - "description": "All input for the `updateUserContact` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "patch", - "description": "An object where the defined keys will be set on the `UserContact` being updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserContactPatch", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserContactPatch", - "description": "Represents an update to a `UserContact`. Fields that are set will be updated.", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "vcf", - "description": null, - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "fullName", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "emails", - "description": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "device", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateUserContactPayload", - "description": "The output of our update `UserContact` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userContact", - "description": "The `UserContact` that was updated by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserContact", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserContact`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userContactEdge", - "description": "An edge for our `UserContact`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserContact`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserContactsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserContactsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateUserEmailInput", - "description": "All input for the `updateUserEmail` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "patch", - "description": "An object where the defined keys will be set on the `UserEmail` being updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserEmailPatch", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserEmailPatch", - "description": "Represents an update to a `UserEmail`. Fields that are set will be updated.", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "email", - "description": null, - "type": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "isVerified", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateUserEmailPayload", - "description": "The output of our update `UserEmail` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userEmail", - "description": "The `UserEmail` that was updated by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserEmail", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserEmail`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userEmailEdge", - "description": "An edge for our `UserEmail`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserEmail`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserEmailsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserEmailsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateUserEmailByEmailInput", - "description": "All input for the `updateUserEmailByEmail` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "patch", - "description": "An object where the defined keys will be set on the `UserEmail` being updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserEmailPatch", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "email", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateUserProfileInput", - "description": "All input for the `updateUserProfile` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "patch", - "description": "An object where the defined keys will be set on the `UserProfile` being updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserProfilePatch", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserProfilePatch", - "description": "Represents an update to a `UserProfile`. Fields that are set will be updated.", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "profilePicture", - "description": null, - "type": { - "kind": "SCALAR", - "name": "JSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "bio", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "reputation", - "description": null, - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "firstName", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "lastName", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "tags", - "description": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "profilePictureUpload", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Upload", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateUserProfilePayload", - "description": "The output of our update `UserProfile` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userProfile", - "description": "The `UserProfile` that was updated by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserProfile", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserProfile`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userProfileEdge", - "description": "An edge for our `UserProfile`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserProfile`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserProfilesOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserProfilesEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateUserProfileByUserIdInput", - "description": "All input for the `updateUserProfileByUserId` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "patch", - "description": "An object where the defined keys will be set on the `UserProfile` being updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserProfilePatch", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateUserSettingInput", - "description": "All input for the `updateUserSetting` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "patch", - "description": "An object where the defined keys will be set on the `UserSetting` being updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserSettingPatch", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserSettingPatch", - "description": "Represents an update to a `UserSetting`. Fields that are set will be updated.", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "searchRadius", - "description": null, - "type": { - "kind": "SCALAR", - "name": "BigFloat", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "zip", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "geo", - "description": null, - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedBy", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "createdAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateUserSettingPayload", - "description": "The output of our update `UserSetting` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userSetting", - "description": "The `UserSetting` that was updated by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserSetting", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserSetting`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userSettingEdge", - "description": "An edge for our `UserSetting`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserSetting`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserSettingsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserSettingsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateUserSettingByUserIdInput", - "description": "All input for the `updateUserSettingByUserId` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "patch", - "description": "An object where the defined keys will be set on the `UserSetting` being updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserSettingPatch", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateUserInput", - "description": "All input for the `updateUser` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "patch", - "description": "An object where the defined keys will be set on the `User` being updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UserPatch", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserPatch", - "description": "Represents an update to a `User`. Fields that are set will be updated.", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "type", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateUserPayload", - "description": "The output of our update `User` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The `User` that was updated by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userEdge", - "description": "An edge for our `User`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `User`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UsersOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UsersEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteActionItemInput", - "description": "All input for the `deleteActionItem` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteActionItemPayload", - "description": "The output of our delete `ActionItem` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionItem", - "description": "The `ActionItem` that was deleted by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActionItem", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedActionItemNodeId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "Reads a single `Action` that is related to this `ActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "Reads a single `User` that is related to this `ActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionItemEdge", - "description": "An edge for our `ActionItem`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `ActionItem`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ActionItemsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "ActionItemsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "ID", - "description": "The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `\"4\"`) or integer (such as `4`) input value will be accepted as an ID.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteActionResultInput", - "description": "All input for the `deleteActionResult` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteActionResultPayload", - "description": "The output of our delete `ActionResult` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionResult", - "description": "The `ActionResult` that was deleted by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActionResult", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedActionResultNodeId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "Reads a single `Action` that is related to this `ActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "Reads a single `User` that is related to this `ActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionResultEdge", - "description": "An edge for our `ActionResult`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `ActionResult`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ActionResultsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "ActionResultsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteActionInput", - "description": "All input for the `deleteAction` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteActionPayload", - "description": "The output of our delete `Action` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "The `Action` that was deleted by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedActionNodeId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "location", - "description": "Reads a single `Location` that is related to this `Action`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Location", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "Reads a single `User` that is related to this `Action`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionEdge", - "description": "An edge for our `Action`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `Action`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ActionsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "ActionsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteGoalInput", - "description": "All input for the `deleteGoal` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteGoalPayload", - "description": "The output of our delete `Goal` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "goal", - "description": "The `Goal` that was deleted by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Goal", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedGoalNodeId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "goalEdge", - "description": "An edge for our `Goal`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `Goal`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "GoalsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "GoalsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteLocationInput", - "description": "All input for the `deleteLocation` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteLocationPayload", - "description": "The output of our delete `Location` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "location", - "description": "The `Location` that was deleted by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Location", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedLocationNodeId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "locationEdge", - "description": "An edge for our `Location`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `Location`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "LocationsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "LocationsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteNewsUpdateInput", - "description": "All input for the `deleteNewsUpdate` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteNewsUpdatePayload", - "description": "The output of our delete `NewsUpdate` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "newsUpdate", - "description": "The `NewsUpdate` that was deleted by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "NewsUpdate", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedNewsUpdateNodeId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "newsUpdateEdge", - "description": "An edge for our `NewsUpdate`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `NewsUpdate`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "NewsUpdatesOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "NewsUpdatesEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteUserActionItemInput", - "description": "All input for the `deleteUserActionItem` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteUserActionItemPayload", - "description": "The output of our delete `UserActionItem` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionItem", - "description": "The `UserActionItem` that was deleted by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserActionItem", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedUserActionItemNodeId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "Reads a single `Action` that is related to this `UserActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userAction", - "description": "Reads a single `UserAction` that is related to this `UserActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserAction", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionItem", - "description": "Reads a single `ActionItem` that is related to this `UserActionItem`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActionItem", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionItemEdge", - "description": "An edge for our `UserActionItem`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserActionItem`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionItemsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserActionItemsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteUserActionResultInput", - "description": "All input for the `deleteUserActionResult` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteUserActionResultPayload", - "description": "The output of our delete `UserActionResult` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionResult", - "description": "The `UserActionResult` that was deleted by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserActionResult", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedUserActionResultNodeId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "Reads a single `Action` that is related to this `UserActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userAction", - "description": "Reads a single `UserAction` that is related to this `UserActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserAction", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actionResult", - "description": "Reads a single `ActionResult` that is related to this `UserActionResult`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActionResult", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionResultEdge", - "description": "An edge for our `UserActionResult`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserActionResult`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionResultsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserActionResultsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteUserActionInput", - "description": "All input for the `deleteUserAction` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteUserActionPayload", - "description": "The output of our delete `UserAction` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userAction", - "description": "The `UserAction` that was deleted by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserAction", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedUserActionNodeId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserAction`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "verifier", - "description": "Reads a single `User` that is related to this `UserAction`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "action", - "description": "Reads a single `Action` that is related to this `UserAction`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userActionEdge", - "description": "An edge for our `UserAction`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserAction`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserActionsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserActionsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteUserCharacteristicInput", - "description": "All input for the `deleteUserCharacteristic` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteUserCharacteristicPayload", - "description": "The output of our delete `UserCharacteristic` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userCharacteristic", - "description": "The `UserCharacteristic` that was deleted by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserCharacteristic", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedUserCharacteristicNodeId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserCharacteristic`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userCharacteristicEdge", - "description": "An edge for our `UserCharacteristic`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserCharacteristic`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserCharacteristicsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserCharacteristicsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteUserCharacteristicByUserIdInput", - "description": "All input for the `deleteUserCharacteristicByUserId` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteUserConnectionInput", - "description": "All input for the `deleteUserConnection` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteUserConnectionPayload", - "description": "The output of our delete `UserConnection` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userConnection", - "description": "The `UserConnection` that was deleted by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedUserConnectionNodeId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requester", - "description": "Reads a single `User` that is related to this `UserConnection`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "responder", - "description": "Reads a single `User` that is related to this `UserConnection`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userConnectionEdge", - "description": "An edge for our `UserConnection`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserConnection`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserConnectionsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserConnectionsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteUserContactInput", - "description": "All input for the `deleteUserContact` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteUserContactPayload", - "description": "The output of our delete `UserContact` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userContact", - "description": "The `UserContact` that was deleted by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserContact", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedUserContactNodeId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserContact`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userContactEdge", - "description": "An edge for our `UserContact`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserContact`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserContactsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserContactsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteUserEmailInput", - "description": "All input for the `deleteUserEmail` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteUserEmailPayload", - "description": "The output of our delete `UserEmail` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userEmail", - "description": "The `UserEmail` that was deleted by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserEmail", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedUserEmailNodeId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserEmail`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userEmailEdge", - "description": "An edge for our `UserEmail`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserEmail`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserEmailsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserEmailsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteUserEmailByEmailInput", - "description": "All input for the `deleteUserEmailByEmail` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "email", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "LaunchqlInternalTypeEmail", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteUserProfileInput", - "description": "All input for the `deleteUserProfile` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteUserProfilePayload", - "description": "The output of our delete `UserProfile` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userProfile", - "description": "The `UserProfile` that was deleted by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserProfile", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedUserProfileNodeId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserProfile`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userProfileEdge", - "description": "An edge for our `UserProfile`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserProfile`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserProfilesOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserProfilesEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteUserProfileByUserIdInput", - "description": "All input for the `deleteUserProfileByUserId` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteUserSettingInput", - "description": "All input for the `deleteUserSetting` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteUserSettingPayload", - "description": "The output of our delete `UserSetting` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userSetting", - "description": "The `UserSetting` that was deleted by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserSetting", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedUserSettingNodeId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Reads a single `User` that is related to this `UserSetting`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userSettingEdge", - "description": "An edge for our `UserSetting`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `UserSetting`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserSettingsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UserSettingsEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteUserSettingByUserIdInput", - "description": "All input for the `deleteUserSettingByUserId` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteUserInput", - "description": "All input for the `deleteUser` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteUserPayload", - "description": "The output of our delete `User` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The `User` that was deleted by this mutation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedUserNodeId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userEdge", - "description": "An edge for our `User`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `User`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UsersOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]" - } - ], - "type": { - "kind": "OBJECT", - "name": "UsersEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "LoginInput", - "description": "All input for the `login` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "email", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "password", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "LoginPayload", - "description": "The output of our `login` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "apiToken", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "ApiToken", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ApiToken", - "description": null, - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "accessToken", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "accessTokenExpiresAt", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "RegisterInput", - "description": "All input for the `register` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "email", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "password", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RegisterPayload", - "description": "The output of our `register` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "apiToken", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "ApiToken", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Schema", - "description": "A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.", - "fields": [ - { - "name": "types", - "description": "A list of all types supported by this server.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "queryType", - "description": "The type that query operations will be rooted at.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mutationType", - "description": "If this server supports mutation, the type that mutation operations will be rooted at.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subscriptionType", - "description": "If this server support subscription, the type that subscription operations will be rooted at.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "directives", - "description": "A list of all directives supported by this server.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Directive", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Type", - "description": "The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.", - "fields": [ - { - "name": "kind", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "__TypeKind", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "fields", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Field", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "interfaces", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "possibleTypes", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enumValues", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__EnumValue", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "inputFields", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ofType", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "__TypeKind", - "description": "An enum describing what kind of type a given `__Type` is.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "SCALAR", - "description": "Indicates this type is a scalar.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OBJECT", - "description": "Indicates this type is an object. `fields` and `interfaces` are valid fields.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INTERFACE", - "description": "Indicates this type is an interface. `fields` and `possibleTypes` are valid fields.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNION", - "description": "Indicates this type is a union. `possibleTypes` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM", - "description": "Indicates this type is an enum. `enumValues` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_OBJECT", - "description": "Indicates this type is an input object. `inputFields` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LIST", - "description": "Indicates this type is a list. `ofType` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NON_NULL", - "description": "Indicates this type is a non-null. `ofType` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Field", - "description": "Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.", - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "args", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDeprecated", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deprecationReason", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__InputValue", - "description": "Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.", - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "defaultValue", - "description": "A GraphQL-formatted string representing the default value for this input value.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__EnumValue", - "description": "One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.", - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDeprecated", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deprecationReason", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Directive", - "description": "A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\n\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.", - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "locations", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "__DirectiveLocation", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "args", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "__DirectiveLocation", - "description": "A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "QUERY", - "description": "Location adjacent to a query operation.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MUTATION", - "description": "Location adjacent to a mutation operation.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SUBSCRIPTION", - "description": "Location adjacent to a subscription operation.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIELD", - "description": "Location adjacent to a field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FRAGMENT_DEFINITION", - "description": "Location adjacent to a fragment definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FRAGMENT_SPREAD", - "description": "Location adjacent to a fragment spread.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INLINE_FRAGMENT", - "description": "Location adjacent to an inline fragment.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VARIABLE_DEFINITION", - "description": "Location adjacent to a variable definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SCHEMA", - "description": "Location adjacent to a schema definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SCALAR", - "description": "Location adjacent to a scalar definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OBJECT", - "description": "Location adjacent to an object type definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIELD_DEFINITION", - "description": "Location adjacent to a field definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ARGUMENT_DEFINITION", - "description": "Location adjacent to an argument definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INTERFACE", - "description": "Location adjacent to an interface definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNION", - "description": "Location adjacent to a union definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM", - "description": "Location adjacent to an enum definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM_VALUE", - "description": "Location adjacent to an enum value definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_OBJECT", - "description": "Location adjacent to an input object type definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_FIELD_DEFINITION", - "description": "Location adjacent to an input object field definition.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryPoint", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "x", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "y", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometry", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometry", - "description": "All geometry XY types implement this interface", - "fields": [ - { - "name": "geojson", - "description": "Converts the object to GeoJSON", - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": "Spatial reference identifier (SRID)", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "GeometryPoint", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryLineString", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryPolygon", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPoint", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiLineString", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPolygon", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryGeometryCollection", - "ofType": null - } - ] - }, - { - "kind": "SCALAR", - "name": "Float", - "description": "The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryPointM", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "x", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "y", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryM", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryM", - "description": "All geometry XYM types implement this interface", - "fields": [ - { - "name": "geojson", - "description": "Converts the object to GeoJSON", - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": "Spatial reference identifier (SRID)", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "GeometryPointM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryLineStringM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryPolygonM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPointM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiLineStringM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPolygonM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryGeometryCollectionM", - "ofType": null - } - ] - }, - { - "kind": "OBJECT", - "name": "GeometryPointZ", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "x", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "y", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryZ", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryZ", - "description": "All geometry XYZ types implement this interface", - "fields": [ - { - "name": "geojson", - "description": "Converts the object to GeoJSON", - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": "Spatial reference identifier (SRID)", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "GeometryPointZ", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryLineStringZ", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryPolygonZ", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPointZ", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiLineStringZ", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPolygonZ", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryGeometryCollectionZ", - "ofType": null - } - ] - }, - { - "kind": "OBJECT", - "name": "GeometryPointZM", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "x", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "y", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryZM", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryZM", - "description": "All geometry XYZM types implement this interface", - "fields": [ - { - "name": "geojson", - "description": "Converts the object to GeoJSON", - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": "Spatial reference identifier (SRID)", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "GeometryPointZM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryLineStringZM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryPolygonZM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPointZM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiLineStringZM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPolygonZM", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "GeometryGeometryCollectionZM", - "ofType": null - } - ] - }, - { - "kind": "OBJECT", - "name": "GeometryLineString", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "points", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GeometryPoint", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometry", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryLineStringM", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "points", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GeometryPointM", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryM", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryLineStringZ", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "points", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GeometryPointZ", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryZ", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryLineStringZM", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "points", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GeometryPointZM", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryZM", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryPolygon", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "exterior", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "GeometryLineString", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "interiors", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GeometryLineString", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometry", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryPolygonM", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "exterior", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "GeometryLineStringM", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "interiors", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GeometryLineStringM", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryM", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryPolygonZ", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "exterior", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "GeometryLineStringZ", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "interiors", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GeometryLineStringZ", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryZ", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryPolygonZM", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "exterior", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "GeometryLineStringZM", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "interiors", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GeometryLineStringZM", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryZM", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPoint", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "points", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GeometryPoint", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometry", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPointM", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "points", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GeometryPointM", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryM", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPointZ", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "points", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GeometryPointZ", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryZ", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPointZM", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "points", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GeometryPointZM", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryZM", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiLineString", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lines", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GeometryLineString", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometry", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiLineStringM", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lines", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GeometryLineStringM", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryM", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiLineStringZ", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lines", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GeometryLineStringZ", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryZ", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiLineStringZM", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lines", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GeometryLineStringZM", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryZM", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPolygon", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "polygons", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GeometryPolygon", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometry", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPolygonM", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "polygons", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GeometryPolygonM", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryM", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPolygonZ", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "polygons", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GeometryPolygonZ", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryZ", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryMultiPolygonZM", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "polygons", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GeometryPolygonZM", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryZM", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryGeometryCollection", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "geometries", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "GeometryGeometry", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometry", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryGeometryCollectionM", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "geometries", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "GeometryGeometryM", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryM", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryGeometryCollectionZ", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "geometries", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "GeometryGeometryZ", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryZ", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GeometryGeometryCollectionZM", - "description": null, - "fields": [ - { - "name": "geojson", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "GeoJSON", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "srid", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "geometries", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "GeometryGeometryZM", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "GeometryInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "GeometryGeometryZM", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - } - ], - "directives": [ - { - "name": "include", - "description": "Directs the executor to include this field or fragment only when the `if` argument is true.", - "locations": [ - "FIELD", - "FRAGMENT_SPREAD", - "INLINE_FRAGMENT" - ], - "args": [ - { - "name": "if", - "description": "Included when true.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - } - ] - }, - { - "name": "skip", - "description": "Directs the executor to skip this field or fragment when the `if` argument is true.", - "locations": [ - "FIELD", - "FRAGMENT_SPREAD", - "INLINE_FRAGMENT" - ], - "args": [ - { - "name": "if", - "description": "Skipped when true.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - } - ] - }, - { - "name": "deprecated", - "description": "Marks an element of a GraphQL schema as no longer supported.", - "locations": [ - "FIELD_DEFINITION", - "ENUM_VALUE" - ], - "args": [ - { - "name": "reason", - "description": "Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax (as specified by [CommonMark](https://commonmark.org/).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": "\"No longer supported\"" - } - ] - } - ] - } - } -} \ No newline at end of file diff --git a/graphql/codegen/__fixtures__/api/mutations.json b/graphql/codegen/__fixtures__/api/mutations.json deleted file mode 100644 index 4e000f437..000000000 --- a/graphql/codegen/__fixtures__/api/mutations.json +++ /dev/null @@ -1,3078 +0,0 @@ -{ - "createActionItem": { - "qtype": "mutation", - "mutationType": "create", - "model": "ActionItem", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateActionItemInput", - "properties": { - "actionItem": { - "name": "actionItem", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "link": { - "name": "link", - "type": "String" - }, - "type": { - "name": "type", - "type": "String" - }, - "itemOrder": { - "name": "itemOrder", - "type": "Int" - }, - "requiredItem": { - "name": "requiredItem", - "type": "Boolean" - }, - "notificationText": { - "name": "notificationText", - "type": "String" - }, - "embedCode": { - "name": "embedCode", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "actionId": { - "name": "actionId", - "isNotNull": true, - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateActionItemPayload", - "ofType": null - } - }, - "createActionResult": { - "qtype": "mutation", - "mutationType": "create", - "model": "ActionResult", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateActionResultInput", - "properties": { - "actionResult": { - "name": "actionResult", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "actionId": { - "name": "actionId", - "isNotNull": true, - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateActionResultPayload", - "ofType": null - } - }, - "createAction": { - "qtype": "mutation", - "mutationType": "create", - "model": "Action", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateActionInput", - "properties": { - "action": { - "name": "action", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "photo": { - "name": "photo", - "type": "JSON" - }, - "title": { - "name": "title", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "locationRadius": { - "name": "locationRadius", - "type": "BigFloat" - }, - "url": { - "name": "url", - "type": "String" - }, - "timeRequired": { - "name": "timeRequired", - "type": "BigFloat" - }, - "startDate": { - "name": "startDate", - "type": "Datetime" - }, - "endDate": { - "name": "endDate", - "type": "Datetime" - }, - "approved": { - "name": "approved", - "type": "Boolean" - }, - "rewardAmount": { - "name": "rewardAmount", - "type": "BigFloat" - }, - "activityFeedText": { - "name": "activityFeedText", - "type": "String" - }, - "callToAction": { - "name": "callToAction", - "type": "String" - }, - "completedActionText": { - "name": "completedActionText", - "type": "String" - }, - "descriptionHeader": { - "name": "descriptionHeader", - "type": "String" - }, - "tags": { - "name": "tags", - "isArray": true, - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "locationId": { - "name": "locationId", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "isNotNull": true, - "type": "UUID" - }, - "photoUpload": { - "name": "photoUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateActionPayload", - "ofType": null - } - }, - "createGoal": { - "qtype": "mutation", - "mutationType": "create", - "model": "Goal", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateGoalInput", - "properties": { - "goal": { - "name": "goal", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "shortName": { - "name": "shortName", - "type": "String" - }, - "icon": { - "name": "icon", - "type": "String" - }, - "subHead": { - "name": "subHead", - "type": "String" - }, - "audio": { - "name": "audio", - "type": "JSON" - }, - "audioDuration": { - "name": "audioDuration", - "type": "BigFloat" - }, - "explanationTitle": { - "name": "explanationTitle", - "type": "String" - }, - "explanation": { - "name": "explanation", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "audioUpload": { - "name": "audioUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateGoalPayload", - "ofType": null - } - }, - "createLocation": { - "qtype": "mutation", - "mutationType": "create", - "model": "Location", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateLocationInput", - "properties": { - "location": { - "name": "location", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "geo": { - "name": "geo", - "type": "GeoJSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateLocationPayload", - "ofType": null - } - }, - "createNewsUpdate": { - "qtype": "mutation", - "mutationType": "create", - "model": "NewsUpdate", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateNewsUpdateInput", - "properties": { - "newsUpdate": { - "name": "newsUpdate", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "photo": { - "name": "photo", - "type": "JSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "photoUpload": { - "name": "photoUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateNewsUpdatePayload", - "ofType": null - } - }, - "createUserActionItem": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserActionItem", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserActionItemInput", - "properties": { - "userActionItem": { - "name": "userActionItem", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "date": { - "name": "date", - "type": "Datetime" - }, - "value": { - "name": "value", - "type": "JSON" - }, - "status": { - "name": "status", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "isNotNull": true, - "type": "UUID" - }, - "userActionId": { - "name": "userActionId", - "isNotNull": true, - "type": "UUID" - }, - "actionItemId": { - "name": "actionItemId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserActionItemPayload", - "ofType": null - } - }, - "createUserActionResult": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserActionResult", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserActionResultInput", - "properties": { - "userActionResult": { - "name": "userActionResult", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "date": { - "name": "date", - "type": "Datetime" - }, - "value": { - "name": "value", - "type": "JSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "isNotNull": true, - "type": "UUID" - }, - "userActionId": { - "name": "userActionId", - "isNotNull": true, - "type": "UUID" - }, - "actionResultId": { - "name": "actionResultId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserActionResultPayload", - "ofType": null - } - }, - "createUserAction": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserAction", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserActionInput", - "properties": { - "userAction": { - "name": "userAction", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "actionStarted": { - "name": "actionStarted", - "type": "Datetime" - }, - "verified": { - "name": "verified", - "type": "Boolean" - }, - "verifiedDate": { - "name": "verifiedDate", - "type": "Datetime" - }, - "status": { - "name": "status", - "type": "String" - }, - "userRating": { - "name": "userRating", - "type": "Int" - }, - "rejected": { - "name": "rejected", - "type": "Boolean" - }, - "rejectedReason": { - "name": "rejectedReason", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - }, - "verifierId": { - "name": "verifierId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserActionPayload", - "ofType": null - } - }, - "createUserCharacteristic": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserCharacteristic", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserCharacteristicInput", - "properties": { - "userCharacteristic": { - "name": "userCharacteristic", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "income": { - "name": "income", - "type": "BigFloat" - }, - "gender": { - "name": "gender", - "type": "Int" - }, - "race": { - "name": "race", - "type": "String" - }, - "age": { - "name": "age", - "type": "Int" - }, - "dob": { - "name": "dob", - "type": "Date" - }, - "education": { - "name": "education", - "type": "String" - }, - "homeOwnership": { - "name": "homeOwnership", - "type": "String" - }, - "treeHuggerLevel": { - "name": "treeHuggerLevel", - "type": "Int" - }, - "freeTime": { - "name": "freeTime", - "type": "Int" - }, - "researchToDoer": { - "name": "researchToDoer", - "type": "Int" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserCharacteristicPayload", - "ofType": null - } - }, - "createUserConnection": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserConnection", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserConnectionInput", - "properties": { - "userConnection": { - "name": "userConnection", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "accepted": { - "name": "accepted", - "type": "Boolean" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "requesterId": { - "name": "requesterId", - "isNotNull": true, - "type": "UUID" - }, - "responderId": { - "name": "responderId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserConnectionPayload", - "ofType": null - } - }, - "createUserContact": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserContact", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserContactInput", - "properties": { - "userContact": { - "name": "userContact", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "vcf": { - "name": "vcf", - "type": "JSON" - }, - "fullName": { - "name": "fullName", - "type": "String" - }, - "emails": { - "name": "emails", - "isArray": true, - "type": "LaunchqlInternalTypeEmail" - }, - "device": { - "name": "device", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserContactPayload", - "ofType": null - } - }, - "createUserEmail": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserEmail", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserEmailInput", - "properties": { - "userEmail": { - "name": "userEmail", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - }, - "email": { - "name": "email", - "isNotNull": true, - "type": "LaunchqlInternalTypeEmail" - }, - "isVerified": { - "name": "isVerified", - "type": "Boolean" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserEmailPayload", - "ofType": null - } - }, - "createUserProfile": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserProfile", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserProfileInput", - "properties": { - "userProfile": { - "name": "userProfile", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "profilePicture": { - "name": "profilePicture", - "type": "JSON" - }, - "bio": { - "name": "bio", - "type": "String" - }, - "reputation": { - "name": "reputation", - "type": "BigFloat" - }, - "firstName": { - "name": "firstName", - "type": "String" - }, - "lastName": { - "name": "lastName", - "type": "String" - }, - "tags": { - "name": "tags", - "isArray": true, - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - }, - "profilePictureUpload": { - "name": "profilePictureUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserProfilePayload", - "ofType": null - } - }, - "createUserSetting": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserSetting", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserSettingInput", - "properties": { - "userSetting": { - "name": "userSetting", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "searchRadius": { - "name": "searchRadius", - "type": "BigFloat" - }, - "zip": { - "name": "zip", - "type": "String" - }, - "geo": { - "name": "geo", - "type": "GeoJSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserSettingPayload", - "ofType": null - } - }, - "createUser": { - "qtype": "mutation", - "mutationType": "create", - "model": "User", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserInput", - "properties": { - "user": { - "name": "user", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "type": { - "name": "type", - "type": "Int" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserPayload", - "ofType": null - } - }, - "updateActionItem": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ActionItem", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateActionItemInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "link": { - "name": "link", - "type": "String" - }, - "type": { - "name": "type", - "type": "String" - }, - "itemOrder": { - "name": "itemOrder", - "type": "Int" - }, - "requiredItem": { - "name": "requiredItem", - "type": "Boolean" - }, - "notificationText": { - "name": "notificationText", - "type": "String" - }, - "embedCode": { - "name": "embedCode", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateActionItemPayload", - "ofType": null - } - }, - "updateActionResult": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ActionResult", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateActionResultInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateActionResultPayload", - "ofType": null - } - }, - "updateAction": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Action", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateActionInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "photo": { - "name": "photo", - "type": "JSON" - }, - "title": { - "name": "title", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "locationRadius": { - "name": "locationRadius", - "type": "BigFloat" - }, - "url": { - "name": "url", - "type": "String" - }, - "timeRequired": { - "name": "timeRequired", - "type": "BigFloat" - }, - "startDate": { - "name": "startDate", - "type": "Datetime" - }, - "endDate": { - "name": "endDate", - "type": "Datetime" - }, - "approved": { - "name": "approved", - "type": "Boolean" - }, - "rewardAmount": { - "name": "rewardAmount", - "type": "BigFloat" - }, - "activityFeedText": { - "name": "activityFeedText", - "type": "String" - }, - "callToAction": { - "name": "callToAction", - "type": "String" - }, - "completedActionText": { - "name": "completedActionText", - "type": "String" - }, - "descriptionHeader": { - "name": "descriptionHeader", - "type": "String" - }, - "tags": { - "name": "tags", - "isArray": true, - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "locationId": { - "name": "locationId", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "photoUpload": { - "name": "photoUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateActionPayload", - "ofType": null - } - }, - "updateGoal": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Goal", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateGoalInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "shortName": { - "name": "shortName", - "type": "String" - }, - "icon": { - "name": "icon", - "type": "String" - }, - "subHead": { - "name": "subHead", - "type": "String" - }, - "audio": { - "name": "audio", - "type": "JSON" - }, - "audioDuration": { - "name": "audioDuration", - "type": "BigFloat" - }, - "explanationTitle": { - "name": "explanationTitle", - "type": "String" - }, - "explanation": { - "name": "explanation", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "audioUpload": { - "name": "audioUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateGoalPayload", - "ofType": null - } - }, - "updateLocation": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Location", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateLocationInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "geo": { - "name": "geo", - "type": "GeoJSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateLocationPayload", - "ofType": null - } - }, - "updateNewsUpdate": { - "qtype": "mutation", - "mutationType": "patch", - "model": "NewsUpdate", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateNewsUpdateInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "photo": { - "name": "photo", - "type": "JSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "photoUpload": { - "name": "photoUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateNewsUpdatePayload", - "ofType": null - } - }, - "updateUserActionItem": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserActionItem", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserActionItemInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "date": { - "name": "date", - "type": "Datetime" - }, - "value": { - "name": "value", - "type": "JSON" - }, - "status": { - "name": "status", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - }, - "userActionId": { - "name": "userActionId", - "type": "UUID" - }, - "actionItemId": { - "name": "actionItemId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserActionItemPayload", - "ofType": null - } - }, - "updateUserActionResult": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserActionResult", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserActionResultInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "date": { - "name": "date", - "type": "Datetime" - }, - "value": { - "name": "value", - "type": "JSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - }, - "userActionId": { - "name": "userActionId", - "type": "UUID" - }, - "actionResultId": { - "name": "actionResultId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserActionResultPayload", - "ofType": null - } - }, - "updateUserAction": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserAction", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserActionInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "actionStarted": { - "name": "actionStarted", - "type": "Datetime" - }, - "verified": { - "name": "verified", - "type": "Boolean" - }, - "verifiedDate": { - "name": "verifiedDate", - "type": "Datetime" - }, - "status": { - "name": "status", - "type": "String" - }, - "userRating": { - "name": "userRating", - "type": "Int" - }, - "rejected": { - "name": "rejected", - "type": "Boolean" - }, - "rejectedReason": { - "name": "rejectedReason", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "verifierId": { - "name": "verifierId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserActionPayload", - "ofType": null - } - }, - "updateUserCharacteristic": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserCharacteristic", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserCharacteristicInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "income": { - "name": "income", - "type": "BigFloat" - }, - "gender": { - "name": "gender", - "type": "Int" - }, - "race": { - "name": "race", - "type": "String" - }, - "age": { - "name": "age", - "type": "Int" - }, - "dob": { - "name": "dob", - "type": "Date" - }, - "education": { - "name": "education", - "type": "String" - }, - "homeOwnership": { - "name": "homeOwnership", - "type": "String" - }, - "treeHuggerLevel": { - "name": "treeHuggerLevel", - "type": "Int" - }, - "freeTime": { - "name": "freeTime", - "type": "Int" - }, - "researchToDoer": { - "name": "researchToDoer", - "type": "Int" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserCharacteristicPayload", - "ofType": null - } - }, - "updateUserCharacteristicByUserId": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserCharacteristic", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserCharacteristicByUserIdInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "income": { - "name": "income", - "type": "BigFloat" - }, - "gender": { - "name": "gender", - "type": "Int" - }, - "race": { - "name": "race", - "type": "String" - }, - "age": { - "name": "age", - "type": "Int" - }, - "dob": { - "name": "dob", - "type": "Date" - }, - "education": { - "name": "education", - "type": "String" - }, - "homeOwnership": { - "name": "homeOwnership", - "type": "String" - }, - "treeHuggerLevel": { - "name": "treeHuggerLevel", - "type": "Int" - }, - "freeTime": { - "name": "freeTime", - "type": "Int" - }, - "researchToDoer": { - "name": "researchToDoer", - "type": "Int" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "type": "UUID" - } - } - }, - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserCharacteristicPayload", - "ofType": null - } - }, - "updateUserConnection": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserConnection", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserConnectionInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "accepted": { - "name": "accepted", - "type": "Boolean" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "requesterId": { - "name": "requesterId", - "type": "UUID" - }, - "responderId": { - "name": "responderId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserConnectionPayload", - "ofType": null - } - }, - "updateUserContact": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserContact", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserContactInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "vcf": { - "name": "vcf", - "type": "JSON" - }, - "fullName": { - "name": "fullName", - "type": "String" - }, - "emails": { - "name": "emails", - "isArray": true, - "type": "LaunchqlInternalTypeEmail" - }, - "device": { - "name": "device", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserContactPayload", - "ofType": null - } - }, - "updateUserEmail": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserEmail", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserEmailInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "email": { - "name": "email", - "type": "LaunchqlInternalTypeEmail" - }, - "isVerified": { - "name": "isVerified", - "type": "Boolean" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserEmailPayload", - "ofType": null - } - }, - "updateUserEmailByEmail": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserEmail", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserEmailByEmailInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "email": { - "name": "email", - "type": "LaunchqlInternalTypeEmail" - }, - "isVerified": { - "name": "isVerified", - "type": "Boolean" - } - } - }, - "email": { - "name": "email", - "isNotNull": true, - "type": "LaunchqlInternalTypeEmail" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserEmailPayload", - "ofType": null - } - }, - "updateUserProfile": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserProfile", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserProfileInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "profilePicture": { - "name": "profilePicture", - "type": "JSON" - }, - "bio": { - "name": "bio", - "type": "String" - }, - "reputation": { - "name": "reputation", - "type": "BigFloat" - }, - "firstName": { - "name": "firstName", - "type": "String" - }, - "lastName": { - "name": "lastName", - "type": "String" - }, - "tags": { - "name": "tags", - "isArray": true, - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "profilePictureUpload": { - "name": "profilePictureUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserProfilePayload", - "ofType": null - } - }, - "updateUserProfileByUserId": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserProfile", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserProfileByUserIdInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "profilePicture": { - "name": "profilePicture", - "type": "JSON" - }, - "bio": { - "name": "bio", - "type": "String" - }, - "reputation": { - "name": "reputation", - "type": "BigFloat" - }, - "firstName": { - "name": "firstName", - "type": "String" - }, - "lastName": { - "name": "lastName", - "type": "String" - }, - "tags": { - "name": "tags", - "isArray": true, - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "profilePictureUpload": { - "name": "profilePictureUpload", - "type": "Upload" - } - } - }, - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserProfilePayload", - "ofType": null - } - }, - "updateUserSetting": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserSetting", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserSettingInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "searchRadius": { - "name": "searchRadius", - "type": "BigFloat" - }, - "zip": { - "name": "zip", - "type": "String" - }, - "geo": { - "name": "geo", - "type": "GeoJSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserSettingPayload", - "ofType": null - } - }, - "updateUserSettingByUserId": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserSetting", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserSettingByUserIdInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "searchRadius": { - "name": "searchRadius", - "type": "BigFloat" - }, - "zip": { - "name": "zip", - "type": "String" - }, - "geo": { - "name": "geo", - "type": "GeoJSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "type": "UUID" - } - } - }, - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserSettingPayload", - "ofType": null - } - }, - "updateUser": { - "qtype": "mutation", - "mutationType": "patch", - "model": "User", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "type": { - "name": "type", - "type": "Int" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserPayload", - "ofType": null - } - }, - "deleteActionItem": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ActionItem", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteActionItemInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteActionItemPayload", - "ofType": null - } - }, - "deleteActionResult": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ActionResult", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteActionResultInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteActionResultPayload", - "ofType": null - } - }, - "deleteAction": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Action", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteActionInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteActionPayload", - "ofType": null - } - }, - "deleteGoal": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Goal", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteGoalInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteGoalPayload", - "ofType": null - } - }, - "deleteLocation": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Location", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteLocationInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteLocationPayload", - "ofType": null - } - }, - "deleteNewsUpdate": { - "qtype": "mutation", - "mutationType": "delete", - "model": "NewsUpdate", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteNewsUpdateInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteNewsUpdatePayload", - "ofType": null - } - }, - "deleteUserActionItem": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserActionItem", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserActionItemInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserActionItemPayload", - "ofType": null - } - }, - "deleteUserActionResult": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserActionResult", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserActionResultInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserActionResultPayload", - "ofType": null - } - }, - "deleteUserAction": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserAction", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserActionInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserActionPayload", - "ofType": null - } - }, - "deleteUserCharacteristic": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserCharacteristic", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserCharacteristicInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserCharacteristicPayload", - "ofType": null - } - }, - "deleteUserCharacteristicByUserId": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserCharacteristic", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserCharacteristicByUserIdInput", - "properties": { - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserCharacteristicPayload", - "ofType": null - } - }, - "deleteUserConnection": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserConnection", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserConnectionInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserConnectionPayload", - "ofType": null - } - }, - "deleteUserContact": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserContact", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserContactInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserContactPayload", - "ofType": null - } - }, - "deleteUserEmail": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserEmail", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserEmailInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserEmailPayload", - "ofType": null - } - }, - "deleteUserEmailByEmail": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserEmail", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserEmailByEmailInput", - "properties": { - "email": { - "name": "email", - "isNotNull": true, - "type": "LaunchqlInternalTypeEmail" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserEmailPayload", - "ofType": null - } - }, - "deleteUserProfile": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserProfile", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserProfileInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserProfilePayload", - "ofType": null - } - }, - "deleteUserProfileByUserId": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserProfile", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserProfileByUserIdInput", - "properties": { - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserProfilePayload", - "ofType": null - } - }, - "deleteUserSetting": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserSetting", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserSettingInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserSettingPayload", - "ofType": null - } - }, - "deleteUserSettingByUserId": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserSetting", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserSettingByUserIdInput", - "properties": { - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserSettingPayload", - "ofType": null - } - }, - "deleteUser": { - "qtype": "mutation", - "mutationType": "delete", - "model": "User", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserPayload", - "ofType": null - } - }, - "login": { - "qtype": "mutation", - "mutationType": "other", - "model": "ApiToken", - "properties": { - "input": { - "isNotNull": true, - "type": "LoginInput", - "properties": { - "email": { - "name": "email", - "isNotNull": true, - "type": "String" - }, - "password": { - "name": "password", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "LoginPayload", - "ofType": null - } - }, - "register": { - "qtype": "mutation", - "mutationType": "other", - "model": "ApiToken", - "properties": { - "input": { - "isNotNull": true, - "type": "RegisterInput", - "properties": { - "email": { - "name": "email", - "type": "String" - }, - "password": { - "name": "password", - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "RegisterPayload", - "ofType": null - } - } -} \ No newline at end of file diff --git a/graphql/codegen/__fixtures__/api/queries.json b/graphql/codegen/__fixtures__/api/queries.json deleted file mode 100644 index afa9abfd3..000000000 --- a/graphql/codegen/__fixtures__/api/queries.json +++ /dev/null @@ -1,800 +0,0 @@ -{ - "actionItems": { - "qtype": "getMany", - "model": "ActionItem", - "selection": [ - "id", - "name", - "description", - "link", - "type", - "itemOrder", - "requiredItem", - "notificationText", - "embedCode", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "userActionItems" - ] - }, - "actionResults": { - "qtype": "getMany", - "model": "ActionResult", - "selection": [ - "id", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "userActionResults" - ] - }, - "actions": { - "qtype": "getMany", - "model": "Action", - "selection": [ - "id", - "name", - "photo", - "title", - "description", - "locationRadius", - "url", - "timeRequired", - "startDate", - "endDate", - "approved", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "descriptionHeader", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "locationId", - "ownerId", - "actionResults", - "actionItems", - "userActions", - "userActionResults", - "userActionItems" - ] - }, - "goals": { - "qtype": "getMany", - "model": "Goal", - "selection": [ - "id", - "name", - "shortName", - "icon", - "subHead", - "audio", - "audioDuration", - "explanationTitle", - "explanation", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt" - ] - }, - "locations": { - "qtype": "getMany", - "model": "Location", - "selection": [ - "id", - "geo", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actions" - ] - }, - "newsUpdates": { - "qtype": "getMany", - "model": "NewsUpdate", - "selection": [ - "id", - "name", - "description", - "photo", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt" - ] - }, - "userActionItems": { - "qtype": "getMany", - "model": "UserActionItem", - "selection": [ - "id", - "date", - "value", - "status", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "actionId", - "userActionId", - "actionItemId" - ] - }, - "userActionResults": { - "qtype": "getMany", - "model": "UserActionResult", - "selection": [ - "id", - "date", - "value", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "actionId", - "userActionId", - "actionResultId" - ] - }, - "userActions": { - "qtype": "getMany", - "model": "UserAction", - "selection": [ - "id", - "actionStarted", - "verified", - "verifiedDate", - "status", - "userRating", - "rejected", - "rejectedReason", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "verifierId", - "actionId", - "userActionResults", - "userActionItems" - ] - }, - "userCharacteristics": { - "qtype": "getMany", - "model": "UserCharacteristic", - "selection": [ - "id", - "income", - "gender", - "race", - "age", - "dob", - "education", - "homeOwnership", - "treeHuggerLevel", - "freeTime", - "researchToDoer", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId" - ] - }, - "userConnections": { - "qtype": "getMany", - "model": "UserConnection", - "selection": [ - "id", - "accepted", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "requesterId", - "responderId" - ] - }, - "userContacts": { - "qtype": "getMany", - "model": "UserContact", - "selection": [ - "id", - "vcf", - "fullName", - "emails", - "device", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId" - ] - }, - "userEmails": { - "qtype": "getMany", - "model": "UserEmail", - "selection": [ - "id", - "userId", - "email", - "isVerified" - ] - }, - "userProfiles": { - "qtype": "getMany", - "model": "UserProfile", - "selection": [ - "id", - "profilePicture", - "bio", - "reputation", - "firstName", - "lastName", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId" - ] - }, - "userSettings": { - "qtype": "getMany", - "model": "UserSetting", - "selection": [ - "id", - "searchRadius", - "zip", - "geo", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId" - ] - }, - "users": { - "qtype": "getMany", - "model": "User", - "selection": [ - "id", - "type", - "userEmails", - "userProfiles", - "userSettings", - "userCharacteristics", - "userContacts", - "userConnectionsByRequesterId", - "userConnectionsByResponderId", - "ownedActions", - "ownedActionResults", - "ownedActionItems", - "userActions", - "userActionsByVerifierId", - "userActionResults", - "userActionItems" - ] - }, - "actionItem": { - "model": "ActionItem", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "description", - "link", - "type", - "itemOrder", - "requiredItem", - "notificationText", - "embedCode", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "userActionItems" - ] - }, - "actionResult": { - "model": "ActionResult", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "userActionResults" - ] - }, - "action": { - "model": "Action", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "photo", - "title", - "description", - "locationRadius", - "url", - "timeRequired", - "startDate", - "endDate", - "approved", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "descriptionHeader", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "locationId", - "ownerId", - "actionResults", - "actionItems", - "userActions", - "userActionResults", - "userActionItems" - ] - }, - "goal": { - "model": "Goal", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "shortName", - "icon", - "subHead", - "audio", - "audioDuration", - "explanationTitle", - "explanation", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt" - ] - }, - "location": { - "model": "Location", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "geo", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actions" - ] - }, - "newsUpdate": { - "model": "NewsUpdate", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "description", - "photo", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt" - ] - }, - "userActionItem": { - "model": "UserActionItem", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "date", - "value", - "status", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "actionId", - "userActionId", - "actionItemId" - ] - }, - "userActionResult": { - "model": "UserActionResult", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "date", - "value", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "actionId", - "userActionId", - "actionResultId" - ] - }, - "userAction": { - "model": "UserAction", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "actionStarted", - "verified", - "verifiedDate", - "status", - "userRating", - "rejected", - "rejectedReason", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "verifierId", - "actionId", - "userActionResults", - "userActionItems" - ] - }, - "userCharacteristic": { - "model": "UserCharacteristic", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "income", - "gender", - "race", - "age", - "dob", - "education", - "homeOwnership", - "treeHuggerLevel", - "freeTime", - "researchToDoer", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId" - ] - }, - "userCharacteristicByUserId": { - "model": "UserCharacteristic", - "qtype": "getOne", - "properties": { - "userId": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "income", - "gender", - "race", - "age", - "dob", - "education", - "homeOwnership", - "treeHuggerLevel", - "freeTime", - "researchToDoer", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId" - ] - }, - "userConnection": { - "model": "UserConnection", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "accepted", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "requesterId", - "responderId" - ] - }, - "userContact": { - "model": "UserContact", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "vcf", - "fullName", - "emails", - "device", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId" - ] - }, - "userEmail": { - "model": "UserEmail", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "userId", - "email", - "isVerified" - ] - }, - "userEmailByEmail": { - "model": "UserEmail", - "qtype": "getOne", - "properties": { - "email": { - "isNotNull": true, - "type": "LaunchqlInternalTypeEmail" - } - }, - "selection": [ - "id", - "userId", - "email", - "isVerified" - ] - }, - "userProfile": { - "model": "UserProfile", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "profilePicture", - "bio", - "reputation", - "firstName", - "lastName", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId" - ] - }, - "userProfileByUserId": { - "model": "UserProfile", - "qtype": "getOne", - "properties": { - "userId": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "profilePicture", - "bio", - "reputation", - "firstName", - "lastName", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId" - ] - }, - "userSetting": { - "model": "UserSetting", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "searchRadius", - "zip", - "geo", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId" - ] - }, - "userSettingByUserId": { - "model": "UserSetting", - "qtype": "getOne", - "properties": { - "userId": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "searchRadius", - "zip", - "geo", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId" - ] - }, - "user": { - "model": "User", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "type", - "userEmails", - "userProfiles", - "userSettings", - "userCharacteristics", - "userContacts", - "userConnectionsByRequesterId", - "userConnectionsByResponderId", - "ownedActions", - "ownedActionResults", - "ownedActionItems", - "userActions", - "userActionsByVerifierId", - "userActionResults", - "userActionItems" - ] - }, - "getCurrentUser": { - "model": "User", - "qtype": "getOne", - "properties": {}, - "selection": [ - "id", - "type", - "userEmails", - "userProfiles", - "userSettings", - "userCharacteristics", - "userContacts", - "userConnectionsByRequesterId", - "userConnectionsByResponderId", - "ownedActions", - "ownedActionResults", - "ownedActionItems", - "userActions", - "userActionsByVerifierId", - "userActionResults", - "userActionItems" - ] - }, - "_meta": { - "model": "Metaschema", - "qtype": "getOne", - "properties": {}, - "selection": [ - "tables" - ] - } -} \ No newline at end of file diff --git a/graphql/codegen/__fixtures__/api/query-nested-selection-many.json b/graphql/codegen/__fixtures__/api/query-nested-selection-many.json deleted file mode 100644 index 339190688..000000000 --- a/graphql/codegen/__fixtures__/api/query-nested-selection-many.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "actionItems": { - "qtype": "getMany", - "model": "ActionItem", - "selection": [ - "id", - "name", - "description", - "type", - "itemOrder", - "isRequired", - "notificationText", - "embedCode", - "url", - "media", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - { - "name": "userActionItems", - "qtype": "getMany", - "model": "UserActionItem", - "selection": [ - "id", - "value", - "status", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "actionId", - "userActionId", - "actionItemId" - ] - } - ] - } -} diff --git a/graphql/codegen/__fixtures__/api/query-nested-selection-one.json b/graphql/codegen/__fixtures__/api/query-nested-selection-one.json deleted file mode 100644 index e2e407c0a..000000000 --- a/graphql/codegen/__fixtures__/api/query-nested-selection-one.json +++ /dev/null @@ -1,226 +0,0 @@ -{ - "action": { - "model": "Action", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "slug", - "photo", - "title", - "description", - "discoveryHeader", - "discoveryDescription", - "enableNotifications", - "enableNotificationsText", - "search", - "locationRadius", - "startDate", - "endDate", - "approved", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "alreadyCompletedActionText", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - { - "name": "actionGoals", - "qtype": "getMany", - "model": "ActionGoal", - "selection": [ - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "goalId", - "ownerId" - ] - }, - { - "name": "actionResults", - "qtype": "getMany", - "model": "ActionResult", - "selection": [ - "id", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId" - ] - }, - { - "name": "actionItems", - "qtype": "getMany", - "model": "ActionItem", - "selection": [ - "id", - "name", - "description", - "type", - "itemOrder", - "isRequired", - "notificationText", - "embedCode", - "url", - "media", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId" - ] - }, - { - "name": "userActions", - "qtype": "getMany", - "model": "UserAction", - "selection": [ - "id", - "actionStarted", - "complete", - "verified", - "verifiedDate", - "userRating", - "rejected", - "rejectedReason", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "verifierId", - "actionId" - ] - }, - { - "name": "userActionResults", - "qtype": "getMany", - "model": "UserActionResult", - "selection": [ - "id", - "value", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "actionId", - "userActionId", - "actionResultId" - ] - }, - { - "name": "userActionItems", - "qtype": "getMany", - "model": "UserActionItem", - "selection": [ - "id", - "value", - "status", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "actionId", - "userActionId", - "actionItemId" - ] - }, - { - "name": "userPassActions", - "qtype": "getMany", - "model": "UserPassAction", - "selection": [ - "id", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "actionId" - ] - }, - { - "name": "userSavedActions", - "qtype": "getMany", - "model": "UserSavedAction", - "selection": [ - "id", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "actionId" - ] - }, - { - "name": "userViewedActions", - "qtype": "getMany", - "model": "UserViewedAction", - "selection": [ - "id", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "actionId" - ] - }, - { - "name": "userActionReactions", - "qtype": "getMany", - "model": "UserActionReaction", - "selection": [ - "id", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userActionId", - "userId", - "reacterId", - "actionId" - ] - }, - "searchRank", - { - "name": "goals", - "qtype": "getMany", - "model": "Goal", - "selection": [ - "id", - "name", - "slug", - "shortName", - "icon", - "subHead", - "tags", - "search", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "searchRank" - ] - } - ] - } -} diff --git a/graphql/codegen/__fixtures__/mutations.json b/graphql/codegen/__fixtures__/mutations.json deleted file mode 100644 index 6522c7cac..000000000 --- a/graphql/codegen/__fixtures__/mutations.json +++ /dev/null @@ -1,3717 +0,0 @@ -{ - "createArticle": { - "qtype": "mutation", - "mutationType": "create", - "model": "Article", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateArticleInput", - "properties": { - "article": { - "name": "article", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "header": { - "name": "header", - "type": "String" - }, - "url": { - "name": "url", - "type": "String" - }, - "image": { - "name": "image", - "type": "String" - }, - "datePublished": { - "name": "datePublished", - "type": "Datetime" - }, - "ownerId": { - "name": "ownerId", - "isNotNull": true, - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateArticlePayload", - "ofType": null - } - }, - "createCampaignAction": { - "qtype": "mutation", - "mutationType": "create", - "model": "CampaignAction", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateCampaignActionInput", - "properties": { - "campaignAction": { - "name": "campaignAction", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "isNotNull": true, - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "rewardUnit": { - "name": "rewardUnit", - "type": "String" - }, - "rewardAmount": { - "name": "rewardAmount", - "type": "BigFloat" - }, - "totalBitcoinLimit": { - "name": "totalBitcoinLimit", - "type": "BigFloat" - }, - "actionWeeklyLimit": { - "name": "actionWeeklyLimit", - "type": "Int" - }, - "actionDailyLimit": { - "name": "actionDailyLimit", - "type": "Int" - }, - "userTotalLimit": { - "name": "userTotalLimit", - "type": "Int" - }, - "userWeeklyLimit": { - "name": "userWeeklyLimit", - "type": "Int" - }, - "userDailyLimit": { - "name": "userDailyLimit", - "type": "Int" - }, - "startDate": { - "name": "startDate", - "type": "Datetime" - }, - "endDate": { - "name": "endDate", - "type": "Datetime" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "campaignId": { - "name": "campaignId", - "isNotNull": true, - "type": "UUID" - }, - "partnerId": { - "name": "partnerId", - "isNotNull": true, - "type": "UUID" - }, - "thumbnailId": { - "name": "thumbnailId", - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateCampaignActionPayload", - "ofType": null - } - }, - "createCampaign": { - "qtype": "mutation", - "mutationType": "create", - "model": "Campaign", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateCampaignInput", - "properties": { - "campaign": { - "name": "campaign", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "startDate": { - "name": "startDate", - "type": "Datetime" - }, - "endDate": { - "name": "endDate", - "type": "Datetime" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "partnerId": { - "name": "partnerId", - "isNotNull": true, - "type": "UUID" - }, - "logoId": { - "name": "logoId", - "type": "UUID" - }, - "backgroundImageId": { - "name": "backgroundImageId", - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateCampaignPayload", - "ofType": null - } - }, - "createCompletedAction": { - "qtype": "mutation", - "mutationType": "create", - "model": "CompletedAction", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateCompletedActionInput", - "properties": { - "completedAction": { - "name": "completedAction", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "dateCompleted": { - "name": "dateCompleted", - "type": "Datetime" - }, - "txid": { - "name": "txid", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateCompletedActionPayload", - "ofType": null - } - }, - "createImage": { - "qtype": "mutation", - "mutationType": "create", - "model": "Image", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateImageInput", - "properties": { - "image": { - "name": "image", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "url": { - "name": "url", - "type": "String" - }, - "versions": { - "name": "versions", - "isList": true, - "type": "JSON" - }, - "versions2": { - "name": "versions2", - "isList": true, - "isListNotNull": true, - "type": "JSON" - }, - "versions3": { - "name": "versions3", - "isList": true, - "isListNotNull": true, - "isNotNull": true, - "type": "JSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateImagePayload", - "ofType": null - } - }, - "createMerchant": { - "qtype": "mutation", - "mutationType": "create", - "model": "Merchant", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateMerchantInput", - "properties": { - "merchant": { - "name": "merchant", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "bitcoinAddress": { - "name": "bitcoinAddress", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "ownerId": { - "name": "ownerId", - "isNotNull": true, - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "logoId": { - "name": "logoId", - "type": "UUID" - }, - "backgroundImageId": { - "name": "backgroundImageId", - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateMerchantPayload", - "ofType": null - } - }, - "createPartner": { - "qtype": "mutation", - "mutationType": "create", - "model": "Partner", - "properties": { - "input": { - "isNotNull": true, - "type": "CreatePartnerInput", - "properties": { - "partner": { - "name": "partner", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "bitcoinAddress": { - "name": "bitcoinAddress", - "type": "String" - }, - "ownerId": { - "name": "ownerId", - "isNotNull": true, - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "logoId": { - "name": "logoId", - "type": "UUID" - }, - "backgroundImageId": { - "name": "backgroundImageId", - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreatePartnerPayload", - "ofType": null - } - }, - "createProduct": { - "qtype": "mutation", - "mutationType": "create", - "model": "Product", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateProductInput", - "properties": { - "product": { - "name": "product", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "url": { - "name": "url", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "merchantId": { - "name": "merchantId", - "isNotNull": true, - "type": "UUID" - }, - "iconId": { - "name": "iconId", - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateProductPayload", - "ofType": null - } - }, - "createService": { - "qtype": "mutation", - "mutationType": "create", - "model": "Service", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateServiceInput", - "properties": { - "service": { - "name": "service", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "type": { - "name": "type", - "type": "String" - }, - "data": { - "name": "data", - "type": "JSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "campaignActionId": { - "name": "campaignActionId", - "type": "UUID" - }, - "iconId": { - "name": "iconId", - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateServicePayload", - "ofType": null - } - }, - "createShopifyAccount": { - "qtype": "mutation", - "mutationType": "create", - "model": "ShopifyAccount", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateShopifyAccountInput", - "properties": { - "shopifyAccount": { - "name": "shopifyAccount", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "shopLink": { - "name": "shopLink", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "partnerId": { - "name": "partnerId", - "isNotNull": true, - "type": "UUID" - }, - "iconId": { - "name": "iconId", - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateShopifyAccountPayload", - "ofType": null - } - }, - "createShopifyOrder": { - "qtype": "mutation", - "mutationType": "create", - "model": "ShopifyOrder", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateShopifyOrderInput", - "properties": { - "shopifyOrder": { - "name": "shopifyOrder", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "orderId": { - "name": "orderId", - "type": "Int" - }, - "email": { - "name": "email", - "type": "String" - }, - "orderStatus": { - "name": "orderStatus", - "type": "String" - }, - "financialStatus": { - "name": "financialStatus", - "type": "String" - }, - "subtotalPrice": { - "name": "subtotalPrice", - "type": "BigFloat" - }, - "orderCreatedAt": { - "name": "orderCreatedAt", - "type": "Datetime" - }, - "orderClosedAt": { - "name": "orderClosedAt", - "type": "Datetime" - }, - "bitcoinUpdatedAt": { - "name": "bitcoinUpdatedAt", - "type": "Datetime" - }, - "bitcoinRebate": { - "name": "bitcoinRebate", - "type": "BigFloat" - }, - "bitcoinAddress": { - "name": "bitcoinAddress", - "type": "String" - }, - "paidDate": { - "name": "paidDate", - "type": "Datetime" - }, - "transactionId": { - "name": "transactionId", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "partnerId": { - "name": "partnerId", - "isNotNull": true, - "type": "UUID" - }, - "shopifyAccountId": { - "name": "shopifyAccountId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateShopifyOrderPayload", - "ofType": null - } - }, - "createUser": { - "qtype": "mutation", - "mutationType": "create", - "model": "User", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserInput", - "properties": { - "user": { - "name": "user", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "username": { - "name": "username", - "type": "String" - }, - "bitcoinAddress": { - "name": "bitcoinAddress", - "type": "String" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserPayload", - "ofType": null - } - }, - "createApiToken": { - "qtype": "mutation", - "mutationType": "create", - "model": "ApiToken", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateApiTokenInput", - "properties": { - "apiToken": { - "name": "apiToken", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - }, - "accessToken": { - "name": "accessToken", - "type": "String" - }, - "accessTokenExpiresAt": { - "name": "accessTokenExpiresAt", - "type": "Datetime" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateApiTokenPayload", - "ofType": null - } - }, - "createInitiativesPyraRecord": { - "qtype": "mutation", - "mutationType": "create", - "model": "InitiativesPyraRecord", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateInitiativesPyraRecordInput", - "properties": { - "initiativesPyraRecord": { - "name": "initiativesPyraRecord", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "email": { - "name": "email", - "type": "String" - }, - "bitcoinAddress": { - "name": "bitcoinAddress", - "type": "String" - }, - "date": { - "name": "date", - "type": "Datetime" - }, - "actionsCompleted": { - "name": "actionsCompleted", - "type": "Int" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "actionId": { - "name": "actionId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateInitiativesPyraRecordPayload", - "ofType": null - } - }, - "createPermission": { - "qtype": "mutation", - "mutationType": "create", - "model": "Permission", - "properties": { - "input": { - "isNotNull": true, - "type": "CreatePermissionInput", - "properties": { - "permission": { - "name": "permission", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreatePermissionPayload", - "ofType": null - } - }, - "createShopifySecret": { - "qtype": "mutation", - "mutationType": "create", - "model": "ShopifySecret", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateShopifySecretInput", - "properties": { - "shopifySecret": { - "name": "shopifySecret", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "shopifyAccountId": { - "name": "shopifyAccountId", - "isNotNull": true, - "type": "UUID" - }, - "name": { - "name": "name", - "isNotNull": true, - "type": "String" - }, - "value": { - "name": "value", - "type": "String" - }, - "enc": { - "name": "enc", - "type": "String" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateShopifySecretPayload", - "ofType": null - } - }, - "createUserEncryptedSecret": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserEncryptedSecret", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserEncryptedSecretInput", - "properties": { - "userEncryptedSecret": { - "name": "userEncryptedSecret", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - }, - "name": { - "name": "name", - "isNotNull": true, - "type": "String" - }, - "value": { - "name": "value", - "type": "String" - }, - "enc": { - "name": "enc", - "type": "String" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserEncryptedSecretPayload", - "ofType": null - } - }, - "createUserSecret": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserSecret", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserSecretInput", - "properties": { - "userSecret": { - "name": "userSecret", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - }, - "name": { - "name": "name", - "isNotNull": true, - "type": "String" - }, - "value": { - "name": "value", - "type": "String" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserSecretPayload", - "ofType": null - } - }, - "updateArticle": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Article", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateArticleInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "header": { - "name": "header", - "type": "String" - }, - "url": { - "name": "url", - "type": "String" - }, - "image": { - "name": "image", - "type": "String" - }, - "datePublished": { - "name": "datePublished", - "type": "Datetime" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateArticlePayload", - "ofType": null - } - }, - "updateCampaignAction": { - "qtype": "mutation", - "mutationType": "patch", - "model": "CampaignAction", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateCampaignActionInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "rewardUnit": { - "name": "rewardUnit", - "type": "String" - }, - "rewardAmount": { - "name": "rewardAmount", - "type": "BigFloat" - }, - "totalBitcoinLimit": { - "name": "totalBitcoinLimit", - "type": "BigFloat" - }, - "actionWeeklyLimit": { - "name": "actionWeeklyLimit", - "type": "Int" - }, - "actionDailyLimit": { - "name": "actionDailyLimit", - "type": "Int" - }, - "userTotalLimit": { - "name": "userTotalLimit", - "type": "Int" - }, - "userWeeklyLimit": { - "name": "userWeeklyLimit", - "type": "Int" - }, - "userDailyLimit": { - "name": "userDailyLimit", - "type": "Int" - }, - "startDate": { - "name": "startDate", - "type": "Datetime" - }, - "endDate": { - "name": "endDate", - "type": "Datetime" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "campaignId": { - "name": "campaignId", - "type": "UUID" - }, - "partnerId": { - "name": "partnerId", - "type": "UUID" - }, - "thumbnailId": { - "name": "thumbnailId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateCampaignActionPayload", - "ofType": null - } - }, - "updateCampaignActionByName": { - "qtype": "mutation", - "mutationType": "patch", - "model": "CampaignAction", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateCampaignActionByNameInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "rewardUnit": { - "name": "rewardUnit", - "type": "String" - }, - "rewardAmount": { - "name": "rewardAmount", - "type": "BigFloat" - }, - "totalBitcoinLimit": { - "name": "totalBitcoinLimit", - "type": "BigFloat" - }, - "actionWeeklyLimit": { - "name": "actionWeeklyLimit", - "type": "Int" - }, - "actionDailyLimit": { - "name": "actionDailyLimit", - "type": "Int" - }, - "userTotalLimit": { - "name": "userTotalLimit", - "type": "Int" - }, - "userWeeklyLimit": { - "name": "userWeeklyLimit", - "type": "Int" - }, - "userDailyLimit": { - "name": "userDailyLimit", - "type": "Int" - }, - "startDate": { - "name": "startDate", - "type": "Datetime" - }, - "endDate": { - "name": "endDate", - "type": "Datetime" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "campaignId": { - "name": "campaignId", - "type": "UUID" - }, - "partnerId": { - "name": "partnerId", - "type": "UUID" - }, - "thumbnailId": { - "name": "thumbnailId", - "type": "UUID" - } - } - }, - "name": { - "name": "name", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateCampaignActionPayload", - "ofType": null - } - }, - "updateCampaign": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Campaign", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateCampaignInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "startDate": { - "name": "startDate", - "type": "Datetime" - }, - "endDate": { - "name": "endDate", - "type": "Datetime" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "partnerId": { - "name": "partnerId", - "type": "UUID" - }, - "logoId": { - "name": "logoId", - "type": "UUID" - }, - "backgroundImageId": { - "name": "backgroundImageId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateCampaignPayload", - "ofType": null - } - }, - "updateCompletedAction": { - "qtype": "mutation", - "mutationType": "patch", - "model": "CompletedAction", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateCompletedActionInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "dateCompleted": { - "name": "dateCompleted", - "type": "Datetime" - }, - "txid": { - "name": "txid", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateCompletedActionPayload", - "ofType": null - } - }, - "updateImage": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Image", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateImageInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "url": { - "name": "url", - "type": "String" - }, - "versions": { - "name": "versions", - "isList": true, - "type": "JSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateImagePayload", - "ofType": null - } - }, - "updateMerchant": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Merchant", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateMerchantInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "bitcoinAddress": { - "name": "bitcoinAddress", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "logoId": { - "name": "logoId", - "type": "UUID" - }, - "backgroundImageId": { - "name": "backgroundImageId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateMerchantPayload", - "ofType": null - } - }, - "updatePartner": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Partner", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdatePartnerInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "bitcoinAddress": { - "name": "bitcoinAddress", - "type": "String" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "logoId": { - "name": "logoId", - "type": "UUID" - }, - "backgroundImageId": { - "name": "backgroundImageId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdatePartnerPayload", - "ofType": null - } - }, - "updateProduct": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Product", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateProductInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "url": { - "name": "url", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "merchantId": { - "name": "merchantId", - "type": "UUID" - }, - "iconId": { - "name": "iconId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateProductPayload", - "ofType": null - } - }, - "updateService": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Service", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateServiceInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "type": { - "name": "type", - "type": "String" - }, - "data": { - "name": "data", - "type": "JSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "campaignActionId": { - "name": "campaignActionId", - "type": "UUID" - }, - "iconId": { - "name": "iconId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateServicePayload", - "ofType": null - } - }, - "updateShopifyAccount": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ShopifyAccount", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateShopifyAccountInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "shopLink": { - "name": "shopLink", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "partnerId": { - "name": "partnerId", - "type": "UUID" - }, - "iconId": { - "name": "iconId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateShopifyAccountPayload", - "ofType": null - } - }, - "updateShopifyOrder": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ShopifyOrder", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateShopifyOrderInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "orderId": { - "name": "orderId", - "type": "Int" - }, - "email": { - "name": "email", - "type": "String" - }, - "orderStatus": { - "name": "orderStatus", - "type": "String" - }, - "financialStatus": { - "name": "financialStatus", - "type": "String" - }, - "subtotalPrice": { - "name": "subtotalPrice", - "type": "BigFloat" - }, - "orderCreatedAt": { - "name": "orderCreatedAt", - "type": "Datetime" - }, - "orderClosedAt": { - "name": "orderClosedAt", - "type": "Datetime" - }, - "bitcoinUpdatedAt": { - "name": "bitcoinUpdatedAt", - "type": "Datetime" - }, - "bitcoinRebate": { - "name": "bitcoinRebate", - "type": "BigFloat" - }, - "bitcoinAddress": { - "name": "bitcoinAddress", - "type": "String" - }, - "paidDate": { - "name": "paidDate", - "type": "Datetime" - }, - "transactionId": { - "name": "transactionId", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "partnerId": { - "name": "partnerId", - "type": "UUID" - }, - "shopifyAccountId": { - "name": "shopifyAccountId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateShopifyOrderPayload", - "ofType": null - } - }, - "updateShopifyOrderByOrderIdAndEmailAndShopifyAccountId": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ShopifyOrder", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateShopifyOrderByOrderIdAndEmailAndShopifyAccountIdInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "orderId": { - "name": "orderId", - "type": "Int" - }, - "email": { - "name": "email", - "type": "String" - }, - "orderStatus": { - "name": "orderStatus", - "type": "String" - }, - "financialStatus": { - "name": "financialStatus", - "type": "String" - }, - "subtotalPrice": { - "name": "subtotalPrice", - "type": "BigFloat" - }, - "orderCreatedAt": { - "name": "orderCreatedAt", - "type": "Datetime" - }, - "orderClosedAt": { - "name": "orderClosedAt", - "type": "Datetime" - }, - "bitcoinUpdatedAt": { - "name": "bitcoinUpdatedAt", - "type": "Datetime" - }, - "bitcoinRebate": { - "name": "bitcoinRebate", - "type": "BigFloat" - }, - "bitcoinAddress": { - "name": "bitcoinAddress", - "type": "String" - }, - "paidDate": { - "name": "paidDate", - "type": "Datetime" - }, - "transactionId": { - "name": "transactionId", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "partnerId": { - "name": "partnerId", - "type": "UUID" - }, - "shopifyAccountId": { - "name": "shopifyAccountId", - "type": "UUID" - } - } - }, - "orderId": { - "name": "orderId", - "isNotNull": true, - "type": "Int" - }, - "email": { - "name": "email", - "isNotNull": true, - "type": "String" - }, - "shopifyAccountId": { - "name": "shopifyAccountId", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateShopifyOrderPayload", - "ofType": null - } - }, - "updateUser": { - "qtype": "mutation", - "mutationType": "patch", - "model": "User", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "username": { - "name": "username", - "type": "String" - }, - "bitcoinAddress": { - "name": "bitcoinAddress", - "type": "String" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserPayload", - "ofType": null - } - }, - "updateUserByUsername": { - "qtype": "mutation", - "mutationType": "patch", - "model": "User", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserByUsernameInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "username": { - "name": "username", - "type": "String" - }, - "bitcoinAddress": { - "name": "bitcoinAddress", - "type": "String" - } - } - }, - "username": { - "name": "username", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserPayload", - "ofType": null - } - }, - "updateUserByBitcoinAddress": { - "qtype": "mutation", - "mutationType": "patch", - "model": "User", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserByBitcoinAddressInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "username": { - "name": "username", - "type": "String" - }, - "bitcoinAddress": { - "name": "bitcoinAddress", - "type": "String" - } - } - }, - "bitcoinAddress": { - "name": "bitcoinAddress", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserPayload", - "ofType": null - } - }, - "updateApiToken": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ApiToken", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateApiTokenInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "accessToken": { - "name": "accessToken", - "type": "String" - }, - "accessTokenExpiresAt": { - "name": "accessTokenExpiresAt", - "type": "Datetime" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateApiTokenPayload", - "ofType": null - } - }, - "updateApiTokenByAccessToken": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ApiToken", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateApiTokenByAccessTokenInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "accessToken": { - "name": "accessToken", - "type": "String" - }, - "accessTokenExpiresAt": { - "name": "accessTokenExpiresAt", - "type": "Datetime" - } - } - }, - "accessToken": { - "name": "accessToken", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateApiTokenPayload", - "ofType": null - } - }, - "updateInitiativesPyraRecord": { - "qtype": "mutation", - "mutationType": "patch", - "model": "InitiativesPyraRecord", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateInitiativesPyraRecordInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "email": { - "name": "email", - "type": "String" - }, - "bitcoinAddress": { - "name": "bitcoinAddress", - "type": "String" - }, - "date": { - "name": "date", - "type": "Datetime" - }, - "actionsCompleted": { - "name": "actionsCompleted", - "type": "Int" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateInitiativesPyraRecordPayload", - "ofType": null - } - }, - "updatePermission": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Permission", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdatePermissionInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdatePermissionPayload", - "ofType": null - } - }, - "updateShopifySecret": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ShopifySecret", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateShopifySecretInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "shopifyAccountId": { - "name": "shopifyAccountId", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "value": { - "name": "value", - "type": "String" - }, - "enc": { - "name": "enc", - "type": "String" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateShopifySecretPayload", - "ofType": null - } - }, - "updateShopifySecretByShopifyAccountIdAndName": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ShopifySecret", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateShopifySecretByShopifyAccountIdAndNameInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "shopifyAccountId": { - "name": "shopifyAccountId", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "value": { - "name": "value", - "type": "String" - }, - "enc": { - "name": "enc", - "type": "String" - } - } - }, - "shopifyAccountId": { - "name": "shopifyAccountId", - "isNotNull": true, - "type": "UUID" - }, - "name": { - "name": "name", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateShopifySecretPayload", - "ofType": null - } - }, - "updateUserEncryptedSecret": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserEncryptedSecret", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserEncryptedSecretInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "value": { - "name": "value", - "type": "String" - }, - "enc": { - "name": "enc", - "type": "String" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserEncryptedSecretPayload", - "ofType": null - } - }, - "updateUserEncryptedSecretByUserIdAndName": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserEncryptedSecret", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserEncryptedSecretByUserIdAndNameInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "value": { - "name": "value", - "type": "String" - }, - "enc": { - "name": "enc", - "type": "String" - } - } - }, - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - }, - "name": { - "name": "name", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserEncryptedSecretPayload", - "ofType": null - } - }, - "updateUserSecret": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserSecret", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserSecretInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "value": { - "name": "value", - "type": "String" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserSecretPayload", - "ofType": null - } - }, - "updateUserSecretByUserIdAndName": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserSecret", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserSecretByUserIdAndNameInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "value": { - "name": "value", - "type": "String" - } - } - }, - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - }, - "name": { - "name": "name", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserSecretPayload", - "ofType": null - } - }, - "deleteArticle": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Article", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteArticleInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteArticlePayload", - "ofType": null - } - }, - "deleteCampaignAction": { - "qtype": "mutation", - "mutationType": "delete", - "model": "CampaignAction", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteCampaignActionInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteCampaignActionPayload", - "ofType": null - } - }, - "deleteCampaignActionByName": { - "qtype": "mutation", - "mutationType": "delete", - "model": "CampaignAction", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteCampaignActionByNameInput", - "properties": { - "name": { - "name": "name", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteCampaignActionPayload", - "ofType": null - } - }, - "deleteCampaign": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Campaign", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteCampaignInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteCampaignPayload", - "ofType": null - } - }, - "deleteCompletedAction": { - "qtype": "mutation", - "mutationType": "delete", - "model": "CompletedAction", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteCompletedActionInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteCompletedActionPayload", - "ofType": null - } - }, - "deleteImage": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Image", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteImageInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteImagePayload", - "ofType": null - } - }, - "deleteMerchant": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Merchant", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteMerchantInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteMerchantPayload", - "ofType": null - } - }, - "deletePartner": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Partner", - "properties": { - "input": { - "isNotNull": true, - "type": "DeletePartnerInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeletePartnerPayload", - "ofType": null - } - }, - "deleteProduct": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Product", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteProductInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteProductPayload", - "ofType": null - } - }, - "deleteService": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Service", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteServiceInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteServicePayload", - "ofType": null - } - }, - "deleteShopifyAccount": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ShopifyAccount", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteShopifyAccountInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteShopifyAccountPayload", - "ofType": null - } - }, - "deleteShopifyOrder": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ShopifyOrder", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteShopifyOrderInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteShopifyOrderPayload", - "ofType": null - } - }, - "deleteShopifyOrderByOrderIdAndEmailAndShopifyAccountId": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ShopifyOrder", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteShopifyOrderByOrderIdAndEmailAndShopifyAccountIdInput", - "properties": { - "orderId": { - "name": "orderId", - "isNotNull": true, - "type": "Int" - }, - "email": { - "name": "email", - "isNotNull": true, - "type": "String" - }, - "shopifyAccountId": { - "name": "shopifyAccountId", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteShopifyOrderPayload", - "ofType": null - } - }, - "deleteUser": { - "qtype": "mutation", - "mutationType": "delete", - "model": "User", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserPayload", - "ofType": null - } - }, - "deleteUserByUsername": { - "qtype": "mutation", - "mutationType": "delete", - "model": "User", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserByUsernameInput", - "properties": { - "username": { - "name": "username", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserPayload", - "ofType": null - } - }, - "deleteUserByBitcoinAddress": { - "qtype": "mutation", - "mutationType": "delete", - "model": "User", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserByBitcoinAddressInput", - "properties": { - "bitcoinAddress": { - "name": "bitcoinAddress", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserPayload", - "ofType": null - } - }, - "deleteApiToken": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ApiToken", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteApiTokenInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteApiTokenPayload", - "ofType": null - } - }, - "deleteApiTokenByAccessToken": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ApiToken", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteApiTokenByAccessTokenInput", - "properties": { - "accessToken": { - "name": "accessToken", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteApiTokenPayload", - "ofType": null - } - }, - "deleteInitiativesPyraRecord": { - "qtype": "mutation", - "mutationType": "delete", - "model": "InitiativesPyraRecord", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteInitiativesPyraRecordInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteInitiativesPyraRecordPayload", - "ofType": null - } - }, - "deletePermission": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Permission", - "properties": { - "input": { - "isNotNull": true, - "type": "DeletePermissionInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeletePermissionPayload", - "ofType": null - } - }, - "deleteShopifySecret": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ShopifySecret", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteShopifySecretInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteShopifySecretPayload", - "ofType": null - } - }, - "deleteShopifySecretByShopifyAccountIdAndName": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ShopifySecret", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteShopifySecretByShopifyAccountIdAndNameInput", - "properties": { - "shopifyAccountId": { - "name": "shopifyAccountId", - "isNotNull": true, - "type": "UUID" - }, - "name": { - "name": "name", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteShopifySecretPayload", - "ofType": null - } - }, - "deleteUserEncryptedSecret": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserEncryptedSecret", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserEncryptedSecretInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserEncryptedSecretPayload", - "ofType": null - } - }, - "deleteUserEncryptedSecretByUserIdAndName": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserEncryptedSecret", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserEncryptedSecretByUserIdAndNameInput", - "properties": { - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - }, - "name": { - "name": "name", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserEncryptedSecretPayload", - "ofType": null - } - }, - "deleteUserSecret": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserSecret", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserSecretInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserSecretPayload", - "ofType": null - } - }, - "deleteUserSecretByUserIdAndName": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserSecret", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserSecretByUserIdAndNameInput", - "properties": { - "userId": { - "name": "userId", - "isNotNull": true, - "type": "UUID" - }, - "name": { - "name": "name", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserSecretPayload", - "ofType": null - } - }, - "shopifySecretsUpsert": { - "qtype": "mutation", - "mutationType": "other", - "properties": { - "input": { - "isNotNull": true, - "type": "ShopifySecretsUpsertInput", - "properties": { - "vShopifyAccountId": { - "name": "vShopifyAccountId", - "type": "UUID" - }, - "secretName": { - "name": "secretName", - "type": "String" - }, - "secretValue": { - "name": "secretValue", - "type": "String" - }, - "fieldEncoding": { - "name": "fieldEncoding", - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "ShopifySecretsUpsertPayload", - "ofType": null - }, - "outputs": [ - { - "name": "boolean", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - } - ] - }, - "signInRecordFailure": { - "qtype": "mutation", - "mutationType": "other", - "properties": { - "input": { - "isNotNull": true, - "type": "SignInRecordFailureInput", - "properties": { - "bitcoinAddress": { - "name": "bitcoinAddress", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "SignInRecordFailurePayload", - "ofType": null - }, - "outputs": [] - }, - "signInRequestChallenge": { - "qtype": "mutation", - "mutationType": "other", - "properties": { - "input": { - "isNotNull": true, - "type": "SignInRequestChallengeInput", - "properties": { - "bitcoinAddress": { - "name": "bitcoinAddress", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "SignInRequestChallengePayload", - "ofType": null - }, - "outputs": [ - { - "name": "string", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - ] - }, - "signInWithChallenge": { - "qtype": "mutation", - "mutationType": "other", - "model": "ApiToken", - "properties": { - "input": { - "isNotNull": true, - "type": "SignInWithChallengeInput", - "properties": { - "bitcoinAddress": { - "name": "bitcoinAddress", - "isNotNull": true, - "type": "String" - }, - "specialValue": { - "name": "specialValue", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "SignInWithChallengePayload", - "ofType": null - } - }, - "signUpWithBitcoinAddress": { - "qtype": "mutation", - "mutationType": "other", - "model": "User", - "properties": { - "input": { - "isNotNull": true, - "type": "SignUpWithBitcoinAddressInput", - "properties": { - "bitcoinAddress": { - "name": "bitcoinAddress", - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "SignUpWithBitcoinAddressPayload", - "ofType": null - } - }, - "userEncryptedSecretsUpsert": { - "qtype": "mutation", - "mutationType": "other", - "properties": { - "input": { - "isNotNull": true, - "type": "UserEncryptedSecretsUpsertInput", - "properties": { - "vUserId": { - "name": "vUserId", - "type": "UUID" - }, - "secretName": { - "name": "secretName", - "type": "String" - }, - "secretValue": { - "name": "secretValue", - "type": "String" - }, - "fieldEncoding": { - "name": "fieldEncoding", - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UserEncryptedSecretsUpsertPayload", - "ofType": null - }, - "outputs": [ - { - "name": "boolean", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - } - ] - }, - "uuidGenerateSeededUuid": { - "qtype": "mutation", - "mutationType": "other", - "properties": { - "input": { - "isNotNull": true, - "type": "UuidGenerateSeededUuidInput", - "properties": { - "seed": { - "name": "seed", - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UuidGenerateSeededUuidPayload", - "ofType": null - }, - "outputs": [ - { - "name": "uuid", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - } - ] - }, - "uuidGenerateV4": { - "qtype": "mutation", - "mutationType": "other", - "properties": { - "input": { - "isNotNull": true, - "type": "UuidGenerateV4Input", - "properties": {} - } - }, - "output": { - "kind": "OBJECT", - "name": "UuidGenerateV4Payload", - "ofType": null - }, - "outputs": [ - { - "name": "uuid", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - } - ] - } -} \ No newline at end of file diff --git a/graphql/codegen/__fixtures__/queries.json b/graphql/codegen/__fixtures__/queries.json deleted file mode 100644 index eb372d0d8..000000000 --- a/graphql/codegen/__fixtures__/queries.json +++ /dev/null @@ -1,953 +0,0 @@ -{ - "articles": { - "qtype": "getMany", - "model": "Article", - "selection": [ - "id", - "header", - "url", - "image", - "datePublished", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt" - ] - }, - "campaignActions": { - "qtype": "getMany", - "model": "CampaignAction", - "selection": [ - "id", - "name", - "description", - "rewardUnit", - "rewardAmount", - "totalBitcoinLimit", - "actionWeeklyLimit", - "actionDailyLimit", - "userTotalLimit", - "userWeeklyLimit", - "userDailyLimit", - "startDate", - "endDate", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "campaignId", - "partnerId", - "thumbnailId", - "campaign", - "partner", - "thumbnail", - "completedActionsByActionId", - "services", - "initiativesPyraRecordsByActionId" - ] - }, - "campaigns": { - "qtype": "getMany", - "model": "Campaign", - "selection": [ - "id", - "name", - "description", - "startDate", - "endDate", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "partnerId", - "logoId", - "backgroundImageId", - "partner", - "logo", - "backgroundImage", - "campaignActions" - ] - }, - "completedActions": { - "qtype": "getMany", - "model": "CompletedAction", - "selection": [ - "id", - "dateCompleted", - "txid", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "actionId", - "user", - "action" - ] - }, - "images": { - "qtype": "getMany", - "model": "Image", - "selection": [ - "id", - "name", - "url", - "versions", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "partnersByLogoId", - "partnersByBackgroundImageId", - "campaignsByLogoId", - "campaignsByBackgroundImageId", - "campaignActionsByThumbnailId", - "servicesByIconId", - "merchantsByLogoId", - "merchantsByBackgroundImageId", - "productsByIconId", - "shopifyAccountsByIconId" - ] - }, - "merchants": { - "qtype": "getMany", - "model": "Merchant", - "selection": [ - "id", - "name", - "bitcoinAddress", - "description", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "logoId", - "backgroundImageId", - "logo", - "backgroundImage", - "products" - ] - }, - "partners": { - "qtype": "getMany", - "model": "Partner", - "selection": [ - "id", - "name", - "description", - "bitcoinAddress", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "logoId", - "backgroundImageId", - "logo", - "backgroundImage", - "campaigns", - "campaignActions", - "shopifyAccounts", - "shopifyOrders" - ] - }, - "products": { - "qtype": "getMany", - "model": "Product", - "selection": [ - "id", - "name", - "url", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "merchantId", - "iconId", - "merchant", - "icon" - ] - }, - "services": { - "qtype": "getMany", - "model": "Service", - "selection": [ - "id", - "name", - "description", - "type", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "campaignActionId", - "iconId", - "campaignAction", - "icon" - ] - }, - "shopifyAccounts": { - "qtype": "getMany", - "model": "ShopifyAccount", - "selection": [ - "id", - "name", - "shopLink", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "partnerId", - "iconId", - "partner", - "icon", - "shopifyOrders" - ] - }, - "shopifyOrders": { - "qtype": "getMany", - "model": "ShopifyOrder", - "selection": [ - "id", - "orderId", - "email", - "orderStatus", - "financialStatus", - "subtotalPrice", - "orderCreatedAt", - "orderClosedAt", - "bitcoinUpdatedAt", - "bitcoinRebate", - "bitcoinAddress", - "paidDate", - "transactionId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "partnerId", - "shopifyAccountId", - "partner", - "shopifyAccount" - ] - }, - "users": { - "qtype": "getMany", - "model": "User", - "selection": [ - "id", - "username", - "bitcoinAddress", - "permissions", - "completedActions" - ] - }, - "apiTokens": { - "qtype": "getMany", - "model": "ApiToken", - "selection": [ - "id", - "userId", - "accessToken", - "accessTokenExpiresAt" - ] - }, - "initiativesPyraRecords": { - "qtype": "getMany", - "model": "InitiativesPyraRecord", - "selection": [ - "id", - "name", - "email", - "bitcoinAddress", - "date", - "actionsCompleted", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "action" - ] - }, - "permissions": { - "qtype": "getMany", - "model": "Permission", - "selection": [ - "id", - "name", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "user" - ] - }, - "shopifySecrets": { - "qtype": "getMany", - "model": "ShopifySecret", - "selection": [ - "id", - "shopifyAccountId", - "name", - "value", - "enc" - ] - }, - "userEncryptedSecrets": { - "qtype": "getMany", - "model": "UserEncryptedSecret", - "selection": [ - "id", - "userId", - "name", - "value", - "enc" - ] - }, - "userSecrets": { - "qtype": "getMany", - "model": "UserSecret", - "selection": [ - "id", - "userId", - "name", - "value" - ] - }, - "article": { - "model": "Article", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "header", - "url", - "image", - "datePublished", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt" - ] - }, - "campaignAction": { - "model": "CampaignAction", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "description", - "rewardUnit", - "rewardAmount", - "totalBitcoinLimit", - "actionWeeklyLimit", - "actionDailyLimit", - "userTotalLimit", - "userWeeklyLimit", - "userDailyLimit", - "startDate", - "endDate", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "campaignId", - "partnerId", - "thumbnailId", - "campaign", - "partner", - "thumbnail", - "completedActionsByActionId", - "services", - "initiativesPyraRecordsByActionId" - ] - }, - "campaignActionByName": { - "model": "CampaignAction", - "qtype": "getOne", - "properties": { - "name": { - "isNotNull": true, - "type": "String" - } - }, - "selection": [ - "id", - "name", - "description", - "rewardUnit", - "rewardAmount", - "totalBitcoinLimit", - "actionWeeklyLimit", - "actionDailyLimit", - "userTotalLimit", - "userWeeklyLimit", - "userDailyLimit", - "startDate", - "endDate", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "campaignId", - "partnerId", - "thumbnailId", - "campaign", - "partner", - "thumbnail", - "completedActionsByActionId", - "services", - "initiativesPyraRecordsByActionId" - ] - }, - "campaign": { - "model": "Campaign", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "description", - "startDate", - "endDate", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "partnerId", - "logoId", - "backgroundImageId", - "partner", - "logo", - "backgroundImage", - "campaignActions" - ] - }, - "completedAction": { - "model": "CompletedAction", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "dateCompleted", - "txid", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "actionId", - "user", - "action" - ] - }, - "image": { - "model": "Image", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "url", - "versions", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "partnersByLogoId", - "partnersByBackgroundImageId", - "campaignsByLogoId", - "campaignsByBackgroundImageId", - "campaignActionsByThumbnailId", - "servicesByIconId", - "merchantsByLogoId", - "merchantsByBackgroundImageId", - "productsByIconId", - "shopifyAccountsByIconId" - ] - }, - "merchant": { - "model": "Merchant", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "bitcoinAddress", - "description", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "logoId", - "backgroundImageId", - "logo", - "backgroundImage", - "products" - ] - }, - "partner": { - "model": "Partner", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "description", - "bitcoinAddress", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "logoId", - "backgroundImageId", - "logo", - "backgroundImage", - "campaigns", - "campaignActions", - "shopifyAccounts", - "shopifyOrders" - ] - }, - "product": { - "model": "Product", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "url", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "merchantId", - "iconId", - "merchant", - "icon" - ] - }, - "service": { - "model": "Service", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "description", - "type", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "campaignActionId", - "iconId", - "campaignAction", - "icon" - ] - }, - "shopifyAccount": { - "model": "ShopifyAccount", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "shopLink", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "partnerId", - "iconId", - "partner", - "icon", - "shopifyOrders" - ] - }, - "shopifyOrder": { - "model": "ShopifyOrder", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "orderId", - "email", - "orderStatus", - "financialStatus", - "subtotalPrice", - "orderCreatedAt", - "orderClosedAt", - "bitcoinUpdatedAt", - "bitcoinRebate", - "bitcoinAddress", - "paidDate", - "transactionId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "partnerId", - "shopifyAccountId", - "partner", - "shopifyAccount" - ] - }, - "shopifyOrderByOrderIdAndEmailAndShopifyAccountId": { - "model": "ShopifyOrder", - "qtype": "getOne", - "properties": { - "orderId": { - "isNotNull": true, - "type": "Int" - }, - "email": { - "isNotNull": true, - "type": "String" - }, - "shopifyAccountId": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "orderId", - "email", - "orderStatus", - "financialStatus", - "subtotalPrice", - "orderCreatedAt", - "orderClosedAt", - "bitcoinUpdatedAt", - "bitcoinRebate", - "bitcoinAddress", - "paidDate", - "transactionId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "partnerId", - "shopifyAccountId", - "partner", - "shopifyAccount" - ] - }, - "user": { - "model": "User", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "username", - "bitcoinAddress", - "permissions", - "completedActions" - ] - }, - "userByUsername": { - "model": "User", - "qtype": "getOne", - "properties": { - "username": { - "isNotNull": true, - "type": "String" - } - }, - "selection": [ - "id", - "username", - "bitcoinAddress", - "permissions", - "completedActions" - ] - }, - "userByBitcoinAddress": { - "model": "User", - "qtype": "getOne", - "properties": { - "bitcoinAddress": { - "isNotNull": true, - "type": "String" - } - }, - "selection": [ - "id", - "username", - "bitcoinAddress", - "permissions", - "completedActions" - ] - }, - "apiToken": { - "model": "ApiToken", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "userId", - "accessToken", - "accessTokenExpiresAt" - ] - }, - "apiTokenByAccessToken": { - "model": "ApiToken", - "qtype": "getOne", - "properties": { - "accessToken": { - "isNotNull": true, - "type": "String" - } - }, - "selection": [ - "id", - "userId", - "accessToken", - "accessTokenExpiresAt" - ] - }, - "initiativesPyraRecord": { - "model": "InitiativesPyraRecord", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "email", - "bitcoinAddress", - "date", - "actionsCompleted", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "action" - ] - }, - "permission": { - "model": "Permission", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "user" - ] - }, - "shopifySecret": { - "model": "ShopifySecret", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "shopifyAccountId", - "name", - "value", - "enc" - ] - }, - "shopifySecretByShopifyAccountIdAndName": { - "model": "ShopifySecret", - "qtype": "getOne", - "properties": { - "shopifyAccountId": { - "isNotNull": true, - "type": "UUID" - }, - "name": { - "isNotNull": true, - "type": "String" - } - }, - "selection": [ - "id", - "shopifyAccountId", - "name", - "value", - "enc" - ] - }, - "userEncryptedSecret": { - "model": "UserEncryptedSecret", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "userId", - "name", - "value", - "enc" - ] - }, - "userEncryptedSecretByUserIdAndName": { - "model": "UserEncryptedSecret", - "qtype": "getOne", - "properties": { - "userId": { - "isNotNull": true, - "type": "UUID" - }, - "name": { - "isNotNull": true, - "type": "String" - } - }, - "selection": [ - "id", - "userId", - "name", - "value", - "enc" - ] - }, - "userSecret": { - "model": "UserSecret", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "userId", - "name", - "value" - ] - }, - "userSecretByUserIdAndName": { - "model": "UserSecret", - "qtype": "getOne", - "properties": { - "userId": { - "isNotNull": true, - "type": "UUID" - }, - "name": { - "isNotNull": true, - "type": "String" - } - }, - "selection": [ - "id", - "userId", - "name", - "value" - ] - }, - "getCurrentUser": { - "model": "User", - "qtype": "getOne", - "properties": {}, - "selection": [ - "id", - "username", - "bitcoinAddress", - "permissions", - "completedActions" - ] - } -} \ No newline at end of file diff --git a/graphql/codegen/__fixtures__/tables.js b/graphql/codegen/__fixtures__/tables.js deleted file mode 100644 index 8a3522c82..000000000 --- a/graphql/codegen/__fixtures__/tables.js +++ /dev/null @@ -1,64 +0,0 @@ -export default [ - { - name: 'test1', - defn: { - databaseId: '5b3263d5-13eb-491c-b397-7f227edd3cf2', - name: 'products', - id: 'a65d1d03-e302-41a9-11c9-18470c9d7f46', - attributes: [ - { - name: 'id', - hasDefault: true, - isHidden: false, - isNotNull: true, - type: { name: 'uuid' } - }, - { - name: 'owner_id', - isHidden: false, - hasDefault: true, - isNotNull: true, - type: { name: 'uuid' } - }, - { - name: 'name', - isHidden: false, - isNotNull: true, - type: { name: 'text' } - }, - { - name: 'rhino_foot', - description: null, - isHidden: false, - isNotNull: false, - type: { name: 'text' } - }, - { - name: 'hidden_foot', - description: null, - isHidden: true, - isNotNull: false, - type: { name: 'text' } - }, - { - name: 'lizard_feet', - isHidden: false, - isNotNull: false, - type: { name: 'text' } - } - ], - primaryKeyConstraint: { - keyAttributes: [ - { - name: 'id', - type: { - name: 'uuid' - }, - isIndexed: true, - isUnique: true - } - ] - } - } - } -]; diff --git a/graphql/codegen/__tests__/__snapshots__/codegen.fixtures.test.ts.snap b/graphql/codegen/__tests__/__snapshots__/codegen.fixtures.test.ts.snap deleted file mode 100644 index 8ee6a7f06..000000000 --- a/graphql/codegen/__tests__/__snapshots__/codegen.fixtures.test.ts.snap +++ /dev/null @@ -1,3076 +0,0 @@ -// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing - -exports[`GraphQL Code Generation generate(): full AST map snapshot: full generate() output 1`] = ` -{ - "apiTokenFragment": "fragment apiTokenFragment on ApiToken { - id - userId - accessToken - accessTokenExpiresAt -} -", - "articleFragment": "fragment articleFragment on Article { - id - header - url - image - datePublished - ownerId - createdBy - updatedBy - createdAt - updatedAt -} -", - "campaignActionFragment": "fragment campaignActionFragment on CampaignAction { - id - name - description - rewardUnit - rewardAmount - totalBitcoinLimit - actionWeeklyLimit - actionDailyLimit - userTotalLimit - userWeeklyLimit - userDailyLimit - startDate - endDate - createdBy - updatedBy - createdAt - updatedAt - campaignId - partnerId - thumbnailId - campaign - partner - thumbnail - completedActionsByActionId - services - initiativesPyraRecordsByActionId -} -", - "campaignFragment": "fragment campaignFragment on Campaign { - id - name - description - startDate - endDate - createdBy - updatedBy - createdAt - updatedAt - partnerId - logoId - backgroundImageId - partner - logo - backgroundImage - campaignActions -} -", - "completedActionFragment": "fragment completedActionFragment on CompletedAction { - id - dateCompleted - txid - createdBy - updatedBy - createdAt - updatedAt - userId - actionId - user - action -} -", - "createApiTokenMutation": "mutation createApiTokenMutation($userId: UUID!, $accessToken: String, $accessTokenExpiresAt: Datetime) { - createApiToken( - input: {apiToken: {userId: $userId, accessToken: $accessToken, accessTokenExpiresAt: $accessTokenExpiresAt}} - ) { - apiToken { - id - } - clientMutationId - } -} -", - "createArticleMutation": "mutation createArticleMutation($header: String, $url: String, $image: String, $datePublished: Datetime, $ownerId: UUID!) { - createArticle( - input: {article: {header: $header, url: $url, image: $image, datePublished: $datePublished, ownerId: $ownerId}} - ) { - article { - id - } - clientMutationId - } -} -", - "createCampaignActionMutation": "mutation createCampaignActionMutation($name: String!, $description: String, $rewardUnit: String, $rewardAmount: BigFloat, $totalBitcoinLimit: BigFloat, $actionWeeklyLimit: Int, $actionDailyLimit: Int, $userTotalLimit: Int, $userWeeklyLimit: Int, $userDailyLimit: Int, $startDate: Datetime, $endDate: Datetime, $campaignId: UUID!, $partnerId: UUID!, $thumbnailId: UUID) { - createCampaignAction( - input: {campaignAction: {name: $name, description: $description, rewardUnit: $rewardUnit, rewardAmount: $rewardAmount, totalBitcoinLimit: $totalBitcoinLimit, actionWeeklyLimit: $actionWeeklyLimit, actionDailyLimit: $actionDailyLimit, userTotalLimit: $userTotalLimit, userWeeklyLimit: $userWeeklyLimit, userDailyLimit: $userDailyLimit, startDate: $startDate, endDate: $endDate, campaignId: $campaignId, partnerId: $partnerId, thumbnailId: $thumbnailId}} - ) { - campaignAction { - id - } - clientMutationId - } -} -", - "createCampaignMutation": "mutation createCampaignMutation($name: String, $description: String, $startDate: Datetime, $endDate: Datetime, $partnerId: UUID!, $logoId: UUID, $backgroundImageId: UUID) { - createCampaign( - input: {campaign: {name: $name, description: $description, startDate: $startDate, endDate: $endDate, partnerId: $partnerId, logoId: $logoId, backgroundImageId: $backgroundImageId}} - ) { - campaign { - id - } - clientMutationId - } -} -", - "createCompletedActionMutation": "mutation createCompletedActionMutation($dateCompleted: Datetime, $txid: String, $userId: UUID!, $actionId: UUID!) { - createCompletedAction( - input: {completedAction: {dateCompleted: $dateCompleted, txid: $txid, userId: $userId, actionId: $actionId}} - ) { - completedAction { - id - } - clientMutationId - } -} -", - "createImageMutation": "mutation createImageMutation($name: String, $url: String, $versions: JSON, $versions2: JSON, $versions3: JSON!) { - createImage( - input: {image: {name: $name, url: $url, versions: $versions, versions2: $versions2, versions3: $versions3}} - ) { - image { - id - } - clientMutationId - } -} -", - "createInitiativesPyraRecordMutation": "mutation createInitiativesPyraRecordMutation($name: String, $email: String, $bitcoinAddress: String, $date: Datetime, $actionsCompleted: Int, $actionId: UUID!) { - createInitiativesPyraRecord( - input: {initiativesPyraRecord: {name: $name, email: $email, bitcoinAddress: $bitcoinAddress, date: $date, actionsCompleted: $actionsCompleted, actionId: $actionId}} - ) { - initiativesPyraRecord { - id - } - clientMutationId - } -} -", - "createMerchantMutation": "mutation createMerchantMutation($name: String, $bitcoinAddress: String, $description: String, $ownerId: UUID!, $logoId: UUID, $backgroundImageId: UUID) { - createMerchant( - input: {merchant: {name: $name, bitcoinAddress: $bitcoinAddress, description: $description, ownerId: $ownerId, logoId: $logoId, backgroundImageId: $backgroundImageId}} - ) { - merchant { - id - } - clientMutationId - } -} -", - "createPartnerMutation": "mutation createPartnerMutation($name: String, $description: String, $bitcoinAddress: String, $ownerId: UUID!, $logoId: UUID, $backgroundImageId: UUID) { - createPartner( - input: {partner: {name: $name, description: $description, bitcoinAddress: $bitcoinAddress, ownerId: $ownerId, logoId: $logoId, backgroundImageId: $backgroundImageId}} - ) { - partner { - id - } - clientMutationId - } -} -", - "createPermissionMutation": "mutation createPermissionMutation($name: String, $userId: UUID!) { - createPermission(input: {permission: {name: $name, userId: $userId}}) { - permission { - id - } - clientMutationId - } -} -", - "createProductMutation": "mutation createProductMutation($name: String, $url: String, $merchantId: UUID!, $iconId: UUID) { - createProduct( - input: {product: {name: $name, url: $url, merchantId: $merchantId, iconId: $iconId}} - ) { - product { - id - } - clientMutationId - } -} -", - "createServiceMutation": "mutation createServiceMutation($name: String, $description: String, $type: String, $data: JSON, $campaignActionId: UUID, $iconId: UUID) { - createService( - input: {service: {name: $name, description: $description, type: $type, data: $data, campaignActionId: $campaignActionId, iconId: $iconId}} - ) { - service { - id - } - clientMutationId - } -} -", - "createShopifyAccountMutation": "mutation createShopifyAccountMutation($name: String, $shopLink: String, $partnerId: UUID!, $iconId: UUID) { - createShopifyAccount( - input: {shopifyAccount: {name: $name, shopLink: $shopLink, partnerId: $partnerId, iconId: $iconId}} - ) { - shopifyAccount { - id - } - clientMutationId - } -} -", - "createShopifyOrderMutation": "mutation createShopifyOrderMutation($orderId: Int, $email: String, $orderStatus: String, $financialStatus: String, $subtotalPrice: BigFloat, $orderCreatedAt: Datetime, $orderClosedAt: Datetime, $bitcoinUpdatedAt: Datetime, $bitcoinRebate: BigFloat, $bitcoinAddress: String, $paidDate: Datetime, $transactionId: String, $partnerId: UUID!, $shopifyAccountId: UUID!) { - createShopifyOrder( - input: {shopifyOrder: {orderId: $orderId, email: $email, orderStatus: $orderStatus, financialStatus: $financialStatus, subtotalPrice: $subtotalPrice, orderCreatedAt: $orderCreatedAt, orderClosedAt: $orderClosedAt, bitcoinUpdatedAt: $bitcoinUpdatedAt, bitcoinRebate: $bitcoinRebate, bitcoinAddress: $bitcoinAddress, paidDate: $paidDate, transactionId: $transactionId, partnerId: $partnerId, shopifyAccountId: $shopifyAccountId}} - ) { - shopifyOrder { - id - } - clientMutationId - } -} -", - "createShopifySecretMutation": "mutation createShopifySecretMutation($shopifyAccountId: UUID!, $name: String!, $value: String, $enc: String) { - createShopifySecret( - input: {shopifySecret: {shopifyAccountId: $shopifyAccountId, name: $name, value: $value, enc: $enc}} - ) { - shopifySecret { - id - } - clientMutationId - } -} -", - "createUserEncryptedSecretMutation": "mutation createUserEncryptedSecretMutation($userId: UUID!, $name: String!, $value: String, $enc: String) { - createUserEncryptedSecret( - input: {userEncryptedSecret: {userId: $userId, name: $name, value: $value, enc: $enc}} - ) { - userEncryptedSecret { - id - } - clientMutationId - } -} -", - "createUserMutation": "mutation createUserMutation($username: String, $bitcoinAddress: String) { - createUser( - input: {user: {username: $username, bitcoinAddress: $bitcoinAddress}} - ) { - user { - id - } - clientMutationId - } -} -", - "createUserSecretMutation": "mutation createUserSecretMutation($userId: UUID!, $name: String!, $value: String) { - createUserSecret( - input: {userSecret: {userId: $userId, name: $name, value: $value}} - ) { - userSecret { - id - } - clientMutationId - } -} -", - "deleteApiTokenByAccessTokenMutation": "mutation deleteApiTokenByAccessTokenMutation($accessToken: String!) { - deleteApiTokenByAccessToken(input: {accessToken: $accessToken}) { - clientMutationId - } -} -", - "deleteApiTokenMutation": "mutation deleteApiTokenMutation($id: UUID!) { - deleteApiToken(input: {id: $id}) { - clientMutationId - } -} -", - "deleteArticleMutation": "mutation deleteArticleMutation($id: UUID!) { - deleteArticle(input: {id: $id}) { - clientMutationId - } -} -", - "deleteCampaignActionByNameMutation": "mutation deleteCampaignActionByNameMutation($name: String!) { - deleteCampaignActionByName(input: {name: $name}) { - clientMutationId - } -} -", - "deleteCampaignActionMutation": "mutation deleteCampaignActionMutation($id: UUID!) { - deleteCampaignAction(input: {id: $id}) { - clientMutationId - } -} -", - "deleteCampaignMutation": "mutation deleteCampaignMutation($id: UUID!) { - deleteCampaign(input: {id: $id}) { - clientMutationId - } -} -", - "deleteCompletedActionMutation": "mutation deleteCompletedActionMutation($id: UUID!) { - deleteCompletedAction(input: {id: $id}) { - clientMutationId - } -} -", - "deleteImageMutation": "mutation deleteImageMutation($id: UUID!) { - deleteImage(input: {id: $id}) { - clientMutationId - } -} -", - "deleteInitiativesPyraRecordMutation": "mutation deleteInitiativesPyraRecordMutation($id: UUID!) { - deleteInitiativesPyraRecord(input: {id: $id}) { - clientMutationId - } -} -", - "deleteMerchantMutation": "mutation deleteMerchantMutation($id: UUID!) { - deleteMerchant(input: {id: $id}) { - clientMutationId - } -} -", - "deletePartnerMutation": "mutation deletePartnerMutation($id: UUID!) { - deletePartner(input: {id: $id}) { - clientMutationId - } -} -", - "deletePermissionMutation": "mutation deletePermissionMutation($id: UUID!) { - deletePermission(input: {id: $id}) { - clientMutationId - } -} -", - "deleteProductMutation": "mutation deleteProductMutation($id: UUID!) { - deleteProduct(input: {id: $id}) { - clientMutationId - } -} -", - "deleteServiceMutation": "mutation deleteServiceMutation($id: UUID!) { - deleteService(input: {id: $id}) { - clientMutationId - } -} -", - "deleteShopifyAccountMutation": "mutation deleteShopifyAccountMutation($id: UUID!) { - deleteShopifyAccount(input: {id: $id}) { - clientMutationId - } -} -", - "deleteShopifyOrderByOrderIdAndEmailAndShopifyAccountIdMutation": "mutation deleteShopifyOrderByOrderIdAndEmailAndShopifyAccountIdMutation($orderId: Int!, $email: String!, $shopifyAccountId: UUID!) { - deleteShopifyOrderByOrderIdAndEmailAndShopifyAccountId( - input: {orderId: $orderId, email: $email, shopifyAccountId: $shopifyAccountId} - ) { - clientMutationId - } -} -", - "deleteShopifyOrderMutation": "mutation deleteShopifyOrderMutation($id: UUID!) { - deleteShopifyOrder(input: {id: $id}) { - clientMutationId - } -} -", - "deleteShopifySecretByShopifyAccountIdAndNameMutation": "mutation deleteShopifySecretByShopifyAccountIdAndNameMutation($shopifyAccountId: UUID!, $name: String!) { - deleteShopifySecretByShopifyAccountIdAndName( - input: {shopifyAccountId: $shopifyAccountId, name: $name} - ) { - clientMutationId - } -} -", - "deleteShopifySecretMutation": "mutation deleteShopifySecretMutation($id: UUID!) { - deleteShopifySecret(input: {id: $id}) { - clientMutationId - } -} -", - "deleteUserByBitcoinAddressMutation": "mutation deleteUserByBitcoinAddressMutation($bitcoinAddress: String!) { - deleteUserByBitcoinAddress(input: {bitcoinAddress: $bitcoinAddress}) { - clientMutationId - } -} -", - "deleteUserByUsernameMutation": "mutation deleteUserByUsernameMutation($username: String!) { - deleteUserByUsername(input: {username: $username}) { - clientMutationId - } -} -", - "deleteUserEncryptedSecretByUserIdAndNameMutation": "mutation deleteUserEncryptedSecretByUserIdAndNameMutation($userId: UUID!, $name: String!) { - deleteUserEncryptedSecretByUserIdAndName(input: {userId: $userId, name: $name}) { - clientMutationId - } -} -", - "deleteUserEncryptedSecretMutation": "mutation deleteUserEncryptedSecretMutation($id: UUID!) { - deleteUserEncryptedSecret(input: {id: $id}) { - clientMutationId - } -} -", - "deleteUserMutation": "mutation deleteUserMutation($id: UUID!) { - deleteUser(input: {id: $id}) { - clientMutationId - } -} -", - "deleteUserSecretByUserIdAndNameMutation": "mutation deleteUserSecretByUserIdAndNameMutation($userId: UUID!, $name: String!) { - deleteUserSecretByUserIdAndName(input: {userId: $userId, name: $name}) { - clientMutationId - } -} -", - "deleteUserSecretMutation": "mutation deleteUserSecretMutation($id: UUID!) { - deleteUserSecret(input: {id: $id}) { - clientMutationId - } -} -", - "getApiTokenByAccessTokenQuery": "query getApiTokenByAccessTokenQuery($accessToken: String!) { - apiTokenByAccessToken(accessToken: $accessToken) { - id - userId - accessToken - accessTokenExpiresAt - } -} -", - "getApiTokenQuery": "query getApiTokenQuery($id: UUID!) { - apiToken(id: $id) { - id - userId - accessToken - accessTokenExpiresAt - } -} -", - "getApiTokensOrderByEnums": "query getApiTokensOrderByEnums { - __type(name: "ApiTokensOrderBy") { - enumValues { - name - } - } -} -", - "getApiTokensPaginated": "query getApiTokensPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: ApiTokenCondition, $filter: ApiTokenFilter, $orderBy: [ApiTokensOrderBy!]) { - apiTokens( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - userId - accessToken - accessTokenExpiresAt - } - } - } -} -", - "getApiTokensQueryAll": "query getApiTokensQueryAll { - apiTokens { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - userId - accessToken - accessTokenExpiresAt - } - } - } -} -", - "getArticleQuery": "query getArticleQuery($id: UUID!) { - article(id: $id) { - id - header - url - image - datePublished - ownerId - createdBy - updatedBy - createdAt - updatedAt - } -} -", - "getArticlesOrderByEnums": "query getArticlesOrderByEnums { - __type(name: "ArticlesOrderBy") { - enumValues { - name - } - } -} -", - "getArticlesPaginated": "query getArticlesPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: ArticleCondition, $filter: ArticleFilter, $orderBy: [ArticlesOrderBy!]) { - articles( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - header - url - image - datePublished - ownerId - createdBy - updatedBy - createdAt - updatedAt - } - } - } -} -", - "getArticlesQueryAll": "query getArticlesQueryAll { - articles { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - header - url - image - datePublished - ownerId - createdBy - updatedBy - createdAt - updatedAt - } - } - } -} -", - "getCampaignActionByNameQuery": "query getCampaignActionByNameQuery($name: String!) { - campaignActionByName(name: $name) { - id - name - description - rewardUnit - rewardAmount - totalBitcoinLimit - actionWeeklyLimit - actionDailyLimit - userTotalLimit - userWeeklyLimit - userDailyLimit - startDate - endDate - createdBy - updatedBy - createdAt - updatedAt - campaignId - partnerId - thumbnailId - campaign - partner - thumbnail - completedActionsByActionId - services - initiativesPyraRecordsByActionId - } -} -", - "getCampaignActionQuery": "query getCampaignActionQuery($id: UUID!) { - campaignAction(id: $id) { - id - name - description - rewardUnit - rewardAmount - totalBitcoinLimit - actionWeeklyLimit - actionDailyLimit - userTotalLimit - userWeeklyLimit - userDailyLimit - startDate - endDate - createdBy - updatedBy - createdAt - updatedAt - campaignId - partnerId - thumbnailId - campaign - partner - thumbnail - completedActionsByActionId - services - initiativesPyraRecordsByActionId - } -} -", - "getCampaignActionsOrderByEnums": "query getCampaignActionsOrderByEnums { - __type(name: "CampaignActionsOrderBy") { - enumValues { - name - } - } -} -", - "getCampaignActionsPaginated": "query getCampaignActionsPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: CampaignActionCondition, $filter: CampaignActionFilter, $orderBy: [CampaignActionsOrderBy!]) { - campaignActions( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - description - rewardUnit - rewardAmount - totalBitcoinLimit - actionWeeklyLimit - actionDailyLimit - userTotalLimit - userWeeklyLimit - userDailyLimit - startDate - endDate - createdBy - updatedBy - createdAt - updatedAt - campaignId - partnerId - thumbnailId - campaign - partner - thumbnail - completedActionsByActionId - services - initiativesPyraRecordsByActionId - } - } - } -} -", - "getCampaignActionsQueryAll": "query getCampaignActionsQueryAll { - campaignActions { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - description - rewardUnit - rewardAmount - totalBitcoinLimit - actionWeeklyLimit - actionDailyLimit - userTotalLimit - userWeeklyLimit - userDailyLimit - startDate - endDate - createdBy - updatedBy - createdAt - updatedAt - campaignId - partnerId - thumbnailId - campaign - partner - thumbnail - completedActionsByActionId - services - initiativesPyraRecordsByActionId - } - } - } -} -", - "getCampaignQuery": "query getCampaignQuery($id: UUID!) { - campaign(id: $id) { - id - name - description - startDate - endDate - createdBy - updatedBy - createdAt - updatedAt - partnerId - logoId - backgroundImageId - partner - logo - backgroundImage - campaignActions - } -} -", - "getCampaignsOrderByEnums": "query getCampaignsOrderByEnums { - __type(name: "CampaignsOrderBy") { - enumValues { - name - } - } -} -", - "getCampaignsPaginated": "query getCampaignsPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: CampaignCondition, $filter: CampaignFilter, $orderBy: [CampaignsOrderBy!]) { - campaigns( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - description - startDate - endDate - createdBy - updatedBy - createdAt - updatedAt - partnerId - logoId - backgroundImageId - partner - logo - backgroundImage - campaignActions - } - } - } -} -", - "getCampaignsQueryAll": "query getCampaignsQueryAll { - campaigns { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - description - startDate - endDate - createdBy - updatedBy - createdAt - updatedAt - partnerId - logoId - backgroundImageId - partner - logo - backgroundImage - campaignActions - } - } - } -} -", - "getCompletedActionQuery": "query getCompletedActionQuery($id: UUID!) { - completedAction(id: $id) { - id - dateCompleted - txid - createdBy - updatedBy - createdAt - updatedAt - userId - actionId - user - action - } -} -", - "getCompletedActionsOrderByEnums": "query getCompletedActionsOrderByEnums { - __type(name: "CompletedActionsOrderBy") { - enumValues { - name - } - } -} -", - "getCompletedActionsPaginated": "query getCompletedActionsPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: CompletedActionCondition, $filter: CompletedActionFilter, $orderBy: [CompletedActionsOrderBy!]) { - completedActions( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - dateCompleted - txid - createdBy - updatedBy - createdAt - updatedAt - userId - actionId - user - action - } - } - } -} -", - "getCompletedActionsQueryAll": "query getCompletedActionsQueryAll { - completedActions { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - dateCompleted - txid - createdBy - updatedBy - createdAt - updatedAt - userId - actionId - user - action - } - } - } -} -", - "getGetCurrentUserQuery": "query getGetCurrentUserQuery { - getCurrentUser { - id - username - bitcoinAddress - permissions - completedActions - } -} -", - "getImageQuery": "query getImageQuery($id: UUID!) { - image(id: $id) { - id - name - url - versions - createdBy - updatedBy - createdAt - updatedAt - partnersByLogoId - partnersByBackgroundImageId - campaignsByLogoId - campaignsByBackgroundImageId - campaignActionsByThumbnailId - servicesByIconId - merchantsByLogoId - merchantsByBackgroundImageId - productsByIconId - shopifyAccountsByIconId - } -} -", - "getImagesOrderByEnums": "query getImagesOrderByEnums { - __type(name: "ImagesOrderBy") { - enumValues { - name - } - } -} -", - "getImagesPaginated": "query getImagesPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: ImageCondition, $filter: ImageFilter, $orderBy: [ImagesOrderBy!]) { - images( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - url - versions - createdBy - updatedBy - createdAt - updatedAt - partnersByLogoId - partnersByBackgroundImageId - campaignsByLogoId - campaignsByBackgroundImageId - campaignActionsByThumbnailId - servicesByIconId - merchantsByLogoId - merchantsByBackgroundImageId - productsByIconId - shopifyAccountsByIconId - } - } - } -} -", - "getImagesQueryAll": "query getImagesQueryAll { - images { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - url - versions - createdBy - updatedBy - createdAt - updatedAt - partnersByLogoId - partnersByBackgroundImageId - campaignsByLogoId - campaignsByBackgroundImageId - campaignActionsByThumbnailId - servicesByIconId - merchantsByLogoId - merchantsByBackgroundImageId - productsByIconId - shopifyAccountsByIconId - } - } - } -} -", - "getInitiativesPyraRecordQuery": "query getInitiativesPyraRecordQuery($id: UUID!) { - initiativesPyraRecord(id: $id) { - id - name - email - bitcoinAddress - date - actionsCompleted - createdBy - updatedBy - createdAt - updatedAt - actionId - action - } -} -", - "getInitiativesPyraRecordsOrderByEnums": "query getInitiativesPyraRecordsOrderByEnums { - __type(name: "InitiativesPyraRecordsOrderBy") { - enumValues { - name - } - } -} -", - "getInitiativesPyraRecordsPaginated": "query getInitiativesPyraRecordsPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: InitiativesPyraRecordCondition, $filter: InitiativesPyraRecordFilter, $orderBy: [InitiativesPyraRecordsOrderBy!]) { - initiativesPyraRecords( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - email - bitcoinAddress - date - actionsCompleted - createdBy - updatedBy - createdAt - updatedAt - actionId - action - } - } - } -} -", - "getInitiativesPyraRecordsQueryAll": "query getInitiativesPyraRecordsQueryAll { - initiativesPyraRecords { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - email - bitcoinAddress - date - actionsCompleted - createdBy - updatedBy - createdAt - updatedAt - actionId - action - } - } - } -} -", - "getMerchantQuery": "query getMerchantQuery($id: UUID!) { - merchant(id: $id) { - id - name - bitcoinAddress - description - ownerId - createdBy - updatedBy - createdAt - updatedAt - logoId - backgroundImageId - logo - backgroundImage - products - } -} -", - "getMerchantsOrderByEnums": "query getMerchantsOrderByEnums { - __type(name: "MerchantsOrderBy") { - enumValues { - name - } - } -} -", - "getMerchantsPaginated": "query getMerchantsPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: MerchantCondition, $filter: MerchantFilter, $orderBy: [MerchantsOrderBy!]) { - merchants( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - bitcoinAddress - description - ownerId - createdBy - updatedBy - createdAt - updatedAt - logoId - backgroundImageId - logo - backgroundImage - products - } - } - } -} -", - "getMerchantsQueryAll": "query getMerchantsQueryAll { - merchants { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - bitcoinAddress - description - ownerId - createdBy - updatedBy - createdAt - updatedAt - logoId - backgroundImageId - logo - backgroundImage - products - } - } - } -} -", - "getPartnerQuery": "query getPartnerQuery($id: UUID!) { - partner(id: $id) { - id - name - description - bitcoinAddress - ownerId - createdBy - updatedBy - createdAt - updatedAt - logoId - backgroundImageId - logo - backgroundImage - campaigns - campaignActions - shopifyAccounts - shopifyOrders - } -} -", - "getPartnersOrderByEnums": "query getPartnersOrderByEnums { - __type(name: "PartnersOrderBy") { - enumValues { - name - } - } -} -", - "getPartnersPaginated": "query getPartnersPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: PartnerCondition, $filter: PartnerFilter, $orderBy: [PartnersOrderBy!]) { - partners( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - description - bitcoinAddress - ownerId - createdBy - updatedBy - createdAt - updatedAt - logoId - backgroundImageId - logo - backgroundImage - campaigns - campaignActions - shopifyAccounts - shopifyOrders - } - } - } -} -", - "getPartnersQueryAll": "query getPartnersQueryAll { - partners { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - description - bitcoinAddress - ownerId - createdBy - updatedBy - createdAt - updatedAt - logoId - backgroundImageId - logo - backgroundImage - campaigns - campaignActions - shopifyAccounts - shopifyOrders - } - } - } -} -", - "getPermissionQuery": "query getPermissionQuery($id: UUID!) { - permission(id: $id) { - id - name - createdBy - updatedBy - createdAt - updatedAt - userId - user - } -} -", - "getPermissionsOrderByEnums": "query getPermissionsOrderByEnums { - __type(name: "PermissionsOrderBy") { - enumValues { - name - } - } -} -", - "getPermissionsPaginated": "query getPermissionsPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: PermissionCondition, $filter: PermissionFilter, $orderBy: [PermissionsOrderBy!]) { - permissions( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - createdBy - updatedBy - createdAt - updatedAt - userId - user - } - } - } -} -", - "getPermissionsQueryAll": "query getPermissionsQueryAll { - permissions { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - createdBy - updatedBy - createdAt - updatedAt - userId - user - } - } - } -} -", - "getProductQuery": "query getProductQuery($id: UUID!) { - product(id: $id) { - id - name - url - createdBy - updatedBy - createdAt - updatedAt - merchantId - iconId - merchant - icon - } -} -", - "getProductsOrderByEnums": "query getProductsOrderByEnums { - __type(name: "ProductsOrderBy") { - enumValues { - name - } - } -} -", - "getProductsPaginated": "query getProductsPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: ProductCondition, $filter: ProductFilter, $orderBy: [ProductsOrderBy!]) { - products( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - url - createdBy - updatedBy - createdAt - updatedAt - merchantId - iconId - merchant - icon - } - } - } -} -", - "getProductsQueryAll": "query getProductsQueryAll { - products { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - url - createdBy - updatedBy - createdAt - updatedAt - merchantId - iconId - merchant - icon - } - } - } -} -", - "getServiceQuery": "query getServiceQuery($id: UUID!) { - service(id: $id) { - id - name - description - type - data - createdBy - updatedBy - createdAt - updatedAt - campaignActionId - iconId - campaignAction - icon - } -} -", - "getServicesOrderByEnums": "query getServicesOrderByEnums { - __type(name: "ServicesOrderBy") { - enumValues { - name - } - } -} -", - "getServicesPaginated": "query getServicesPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: ServiceCondition, $filter: ServiceFilter, $orderBy: [ServicesOrderBy!]) { - services( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - description - type - data - createdBy - updatedBy - createdAt - updatedAt - campaignActionId - iconId - campaignAction - icon - } - } - } -} -", - "getServicesQueryAll": "query getServicesQueryAll { - services { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - description - type - data - createdBy - updatedBy - createdAt - updatedAt - campaignActionId - iconId - campaignAction - icon - } - } - } -} -", - "getShopifyAccountQuery": "query getShopifyAccountQuery($id: UUID!) { - shopifyAccount(id: $id) { - id - name - shopLink - createdBy - updatedBy - createdAt - updatedAt - partnerId - iconId - partner - icon - shopifyOrders - } -} -", - "getShopifyAccountsOrderByEnums": "query getShopifyAccountsOrderByEnums { - __type(name: "ShopifyAccountsOrderBy") { - enumValues { - name - } - } -} -", - "getShopifyAccountsPaginated": "query getShopifyAccountsPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: ShopifyAccountCondition, $filter: ShopifyAccountFilter, $orderBy: [ShopifyAccountsOrderBy!]) { - shopifyAccounts( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - shopLink - createdBy - updatedBy - createdAt - updatedAt - partnerId - iconId - partner - icon - shopifyOrders - } - } - } -} -", - "getShopifyAccountsQueryAll": "query getShopifyAccountsQueryAll { - shopifyAccounts { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - shopLink - createdBy - updatedBy - createdAt - updatedAt - partnerId - iconId - partner - icon - shopifyOrders - } - } - } -} -", - "getShopifyOrderByOrderIdAndEmailAndShopifyAccountIdQuery": "query getShopifyOrderByOrderIdAndEmailAndShopifyAccountIdQuery($orderId: Int!, $email: String!, $shopifyAccountId: UUID!) { - shopifyOrderByOrderIdAndEmailAndShopifyAccountId( - orderId: $orderId - email: $email - shopifyAccountId: $shopifyAccountId - ) { - id - orderId - email - orderStatus - financialStatus - subtotalPrice - orderCreatedAt - orderClosedAt - bitcoinUpdatedAt - bitcoinRebate - bitcoinAddress - paidDate - transactionId - createdBy - updatedBy - createdAt - updatedAt - partnerId - shopifyAccountId - partner - shopifyAccount - } -} -", - "getShopifyOrderQuery": "query getShopifyOrderQuery($id: UUID!) { - shopifyOrder(id: $id) { - id - orderId - email - orderStatus - financialStatus - subtotalPrice - orderCreatedAt - orderClosedAt - bitcoinUpdatedAt - bitcoinRebate - bitcoinAddress - paidDate - transactionId - createdBy - updatedBy - createdAt - updatedAt - partnerId - shopifyAccountId - partner - shopifyAccount - } -} -", - "getShopifyOrdersOrderByEnums": "query getShopifyOrdersOrderByEnums { - __type(name: "ShopifyOrdersOrderBy") { - enumValues { - name - } - } -} -", - "getShopifyOrdersPaginated": "query getShopifyOrdersPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: ShopifyOrderCondition, $filter: ShopifyOrderFilter, $orderBy: [ShopifyOrdersOrderBy!]) { - shopifyOrders( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - orderId - email - orderStatus - financialStatus - subtotalPrice - orderCreatedAt - orderClosedAt - bitcoinUpdatedAt - bitcoinRebate - bitcoinAddress - paidDate - transactionId - createdBy - updatedBy - createdAt - updatedAt - partnerId - shopifyAccountId - partner - shopifyAccount - } - } - } -} -", - "getShopifyOrdersQueryAll": "query getShopifyOrdersQueryAll { - shopifyOrders { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - orderId - email - orderStatus - financialStatus - subtotalPrice - orderCreatedAt - orderClosedAt - bitcoinUpdatedAt - bitcoinRebate - bitcoinAddress - paidDate - transactionId - createdBy - updatedBy - createdAt - updatedAt - partnerId - shopifyAccountId - partner - shopifyAccount - } - } - } -} -", - "getShopifySecretByShopifyAccountIdAndNameQuery": "query getShopifySecretByShopifyAccountIdAndNameQuery($shopifyAccountId: UUID!, $name: String!) { - shopifySecretByShopifyAccountIdAndName( - shopifyAccountId: $shopifyAccountId - name: $name - ) { - id - shopifyAccountId - name - value - enc - } -} -", - "getShopifySecretQuery": "query getShopifySecretQuery($id: UUID!) { - shopifySecret(id: $id) { - id - shopifyAccountId - name - value - enc - } -} -", - "getShopifySecretsOrderByEnums": "query getShopifySecretsOrderByEnums { - __type(name: "ShopifySecretsOrderBy") { - enumValues { - name - } - } -} -", - "getShopifySecretsPaginated": "query getShopifySecretsPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: ShopifySecretCondition, $filter: ShopifySecretFilter, $orderBy: [ShopifySecretsOrderBy!]) { - shopifySecrets( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - shopifyAccountId - name - value - enc - } - } - } -} -", - "getShopifySecretsQueryAll": "query getShopifySecretsQueryAll { - shopifySecrets { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - shopifyAccountId - name - value - enc - } - } - } -} -", - "getUserByBitcoinAddressQuery": "query getUserByBitcoinAddressQuery($bitcoinAddress: String!) { - userByBitcoinAddress(bitcoinAddress: $bitcoinAddress) { - id - username - bitcoinAddress - permissions - completedActions - } -} -", - "getUserByUsernameQuery": "query getUserByUsernameQuery($username: String!) { - userByUsername(username: $username) { - id - username - bitcoinAddress - permissions - completedActions - } -} -", - "getUserEncryptedSecretByUserIdAndNameQuery": "query getUserEncryptedSecretByUserIdAndNameQuery($userId: UUID!, $name: String!) { - userEncryptedSecretByUserIdAndName(userId: $userId, name: $name) { - id - userId - name - value - enc - } -} -", - "getUserEncryptedSecretQuery": "query getUserEncryptedSecretQuery($id: UUID!) { - userEncryptedSecret(id: $id) { - id - userId - name - value - enc - } -} -", - "getUserEncryptedSecretsOrderByEnums": "query getUserEncryptedSecretsOrderByEnums { - __type(name: "UserEncryptedSecretsOrderBy") { - enumValues { - name - } - } -} -", - "getUserEncryptedSecretsPaginated": "query getUserEncryptedSecretsPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: UserEncryptedSecretCondition, $filter: UserEncryptedSecretFilter, $orderBy: [UserEncryptedSecretsOrderBy!]) { - userEncryptedSecrets( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - userId - name - value - enc - } - } - } -} -", - "getUserEncryptedSecretsQueryAll": "query getUserEncryptedSecretsQueryAll { - userEncryptedSecrets { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - userId - name - value - enc - } - } - } -} -", - "getUserQuery": "query getUserQuery($id: UUID!) { - user(id: $id) { - id - username - bitcoinAddress - permissions - completedActions - } -} -", - "getUserSecretByUserIdAndNameQuery": "query getUserSecretByUserIdAndNameQuery($userId: UUID!, $name: String!) { - userSecretByUserIdAndName(userId: $userId, name: $name) { - id - userId - name - value - } -} -", - "getUserSecretQuery": "query getUserSecretQuery($id: UUID!) { - userSecret(id: $id) { - id - userId - name - value - } -} -", - "getUserSecretsOrderByEnums": "query getUserSecretsOrderByEnums { - __type(name: "UserSecretsOrderBy") { - enumValues { - name - } - } -} -", - "getUserSecretsPaginated": "query getUserSecretsPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: UserSecretCondition, $filter: UserSecretFilter, $orderBy: [UserSecretsOrderBy!]) { - userSecrets( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - userId - name - value - } - } - } -} -", - "getUserSecretsQueryAll": "query getUserSecretsQueryAll { - userSecrets { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - userId - name - value - } - } - } -} -", - "getUsersOrderByEnums": "query getUsersOrderByEnums { - __type(name: "UsersOrderBy") { - enumValues { - name - } - } -} -", - "getUsersPaginated": "query getUsersPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: UserCondition, $filter: UserFilter, $orderBy: [UsersOrderBy!]) { - users( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - username - bitcoinAddress - permissions - completedActions - } - } - } -} -", - "getUsersQueryAll": "query getUsersQueryAll { - users { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - username - bitcoinAddress - permissions - completedActions - } - } - } -} -", - "imageFragment": "fragment imageFragment on Image { - id - name - url - versions - createdBy - updatedBy - createdAt - updatedAt - partnersByLogoId - partnersByBackgroundImageId - campaignsByLogoId - campaignsByBackgroundImageId - campaignActionsByThumbnailId - servicesByIconId - merchantsByLogoId - merchantsByBackgroundImageId - productsByIconId - shopifyAccountsByIconId -} -", - "initiativesPyraRecordFragment": "fragment initiativesPyraRecordFragment on InitiativesPyraRecord { - id - name - email - bitcoinAddress - date - actionsCompleted - createdBy - updatedBy - createdAt - updatedAt - actionId - action -} -", - "merchantFragment": "fragment merchantFragment on Merchant { - id - name - bitcoinAddress - description - ownerId - createdBy - updatedBy - createdAt - updatedAt - logoId - backgroundImageId - logo - backgroundImage - products -} -", - "partnerFragment": "fragment partnerFragment on Partner { - id - name - description - bitcoinAddress - ownerId - createdBy - updatedBy - createdAt - updatedAt - logoId - backgroundImageId - logo - backgroundImage - campaigns - campaignActions - shopifyAccounts - shopifyOrders -} -", - "permissionFragment": "fragment permissionFragment on Permission { - id - name - createdBy - updatedBy - createdAt - updatedAt - userId - user -} -", - "productFragment": "fragment productFragment on Product { - id - name - url - createdBy - updatedBy - createdAt - updatedAt - merchantId - iconId - merchant - icon -} -", - "serviceFragment": "fragment serviceFragment on Service { - id - name - description - type - data - createdBy - updatedBy - createdAt - updatedAt - campaignActionId - iconId - campaignAction - icon -} -", - "shopifyAccountFragment": "fragment shopifyAccountFragment on ShopifyAccount { - id - name - shopLink - createdBy - updatedBy - createdAt - updatedAt - partnerId - iconId - partner - icon - shopifyOrders -} -", - "shopifyOrderFragment": "fragment shopifyOrderFragment on ShopifyOrder { - id - orderId - email - orderStatus - financialStatus - subtotalPrice - orderCreatedAt - orderClosedAt - bitcoinUpdatedAt - bitcoinRebate - bitcoinAddress - paidDate - transactionId - createdBy - updatedBy - createdAt - updatedAt - partnerId - shopifyAccountId - partner - shopifyAccount -} -", - "shopifySecretFragment": "fragment shopifySecretFragment on ShopifySecret { - id - shopifyAccountId - name - value - enc -} -", - "shopifySecretsUpsertMutation": "mutation shopifySecretsUpsertMutation($vShopifyAccountId: UUID!, $secretName: String!, $secretValue: String!, $fieldEncoding: String!) { - shopifySecretsUpsert( - input: {vShopifyAccountId: $vShopifyAccountId, secretName: $secretName, secretValue: $secretValue, fieldEncoding: $fieldEncoding} - ) { - boolean - } -} -", - "signInRecordFailureMutation": "mutation signInRecordFailureMutation($bitcoinAddress: String!) { - signInRecordFailure(input: {bitcoinAddress: $bitcoinAddress}) { - clientMutationId - } -} -", - "signInRequestChallengeMutation": "mutation signInRequestChallengeMutation($bitcoinAddress: String!) { - signInRequestChallenge(input: {bitcoinAddress: $bitcoinAddress}) { - string - } -} -", - "signInWithChallengeMutation": "mutation signInWithChallengeMutation($bitcoinAddress: String!, $specialValue: String!) { - signInWithChallenge( - input: {bitcoinAddress: $bitcoinAddress, specialValue: $specialValue} - ) { - clientMutationId - } -} -", - "signUpWithBitcoinAddressMutation": "mutation signUpWithBitcoinAddressMutation($bitcoinAddress: String!) { - signUpWithBitcoinAddress(input: {bitcoinAddress: $bitcoinAddress}) { - clientMutationId - } -} -", - "updateApiTokenByAccessTokenMutation": "mutation updateApiTokenByAccessTokenMutation($accessToken: String!, $userId: UUID, $accessTokenExpiresAt: Datetime) { - updateApiTokenByAccessToken( - input: {accessToken: $accessToken, patch: {userId: $userId, accessTokenExpiresAt: $accessTokenExpiresAt}} - ) { - apiToken { - id - } - clientMutationId - } -} -", - "updateApiTokenMutation": "mutation updateApiTokenMutation($id: UUID!, $userId: UUID, $accessToken: String, $accessTokenExpiresAt: Datetime) { - updateApiToken( - input: {id: $id, patch: {userId: $userId, accessToken: $accessToken, accessTokenExpiresAt: $accessTokenExpiresAt}} - ) { - apiToken { - id - } - clientMutationId - } -} -", - "updateArticleMutation": "mutation updateArticleMutation($id: UUID!, $header: String, $url: String, $image: String, $datePublished: Datetime, $ownerId: UUID) { - updateArticle( - input: {id: $id, patch: {header: $header, url: $url, image: $image, datePublished: $datePublished, ownerId: $ownerId}} - ) { - article { - id - } - clientMutationId - } -} -", - "updateCampaignActionByNameMutation": "mutation updateCampaignActionByNameMutation($name: String!, $description: String, $rewardUnit: String, $rewardAmount: BigFloat, $totalBitcoinLimit: BigFloat, $actionWeeklyLimit: Int, $actionDailyLimit: Int, $userTotalLimit: Int, $userWeeklyLimit: Int, $userDailyLimit: Int, $startDate: Datetime, $endDate: Datetime, $campaignId: UUID, $partnerId: UUID, $thumbnailId: UUID) { - updateCampaignActionByName( - input: {name: $name, patch: {description: $description, rewardUnit: $rewardUnit, rewardAmount: $rewardAmount, totalBitcoinLimit: $totalBitcoinLimit, actionWeeklyLimit: $actionWeeklyLimit, actionDailyLimit: $actionDailyLimit, userTotalLimit: $userTotalLimit, userWeeklyLimit: $userWeeklyLimit, userDailyLimit: $userDailyLimit, startDate: $startDate, endDate: $endDate, campaignId: $campaignId, partnerId: $partnerId, thumbnailId: $thumbnailId}} - ) { - campaignAction { - id - } - clientMutationId - } -} -", - "updateCampaignActionMutation": "mutation updateCampaignActionMutation($id: UUID!, $name: String, $description: String, $rewardUnit: String, $rewardAmount: BigFloat, $totalBitcoinLimit: BigFloat, $actionWeeklyLimit: Int, $actionDailyLimit: Int, $userTotalLimit: Int, $userWeeklyLimit: Int, $userDailyLimit: Int, $startDate: Datetime, $endDate: Datetime, $campaignId: UUID, $partnerId: UUID, $thumbnailId: UUID) { - updateCampaignAction( - input: {id: $id, patch: {name: $name, description: $description, rewardUnit: $rewardUnit, rewardAmount: $rewardAmount, totalBitcoinLimit: $totalBitcoinLimit, actionWeeklyLimit: $actionWeeklyLimit, actionDailyLimit: $actionDailyLimit, userTotalLimit: $userTotalLimit, userWeeklyLimit: $userWeeklyLimit, userDailyLimit: $userDailyLimit, startDate: $startDate, endDate: $endDate, campaignId: $campaignId, partnerId: $partnerId, thumbnailId: $thumbnailId}} - ) { - campaignAction { - id - } - clientMutationId - } -} -", - "updateCampaignMutation": "mutation updateCampaignMutation($id: UUID!, $name: String, $description: String, $startDate: Datetime, $endDate: Datetime, $partnerId: UUID, $logoId: UUID, $backgroundImageId: UUID) { - updateCampaign( - input: {id: $id, patch: {name: $name, description: $description, startDate: $startDate, endDate: $endDate, partnerId: $partnerId, logoId: $logoId, backgroundImageId: $backgroundImageId}} - ) { - campaign { - id - } - clientMutationId - } -} -", - "updateCompletedActionMutation": "mutation updateCompletedActionMutation($id: UUID!, $dateCompleted: Datetime, $txid: String, $userId: UUID, $actionId: UUID) { - updateCompletedAction( - input: {id: $id, patch: {dateCompleted: $dateCompleted, txid: $txid, userId: $userId, actionId: $actionId}} - ) { - completedAction { - id - } - clientMutationId - } -} -", - "updateImageMutation": "mutation updateImageMutation($id: UUID!, $name: String, $url: String, $versions: JSON) { - updateImage( - input: {id: $id, patch: {name: $name, url: $url, versions: $versions}} - ) { - image { - id - } - clientMutationId - } -} -", - "updateInitiativesPyraRecordMutation": "mutation updateInitiativesPyraRecordMutation($id: UUID!, $name: String, $email: String, $bitcoinAddress: String, $date: Datetime, $actionsCompleted: Int, $actionId: UUID) { - updateInitiativesPyraRecord( - input: {id: $id, patch: {name: $name, email: $email, bitcoinAddress: $bitcoinAddress, date: $date, actionsCompleted: $actionsCompleted, actionId: $actionId}} - ) { - initiativesPyraRecord { - id - } - clientMutationId - } -} -", - "updateMerchantMutation": "mutation updateMerchantMutation($id: UUID!, $name: String, $bitcoinAddress: String, $description: String, $ownerId: UUID, $logoId: UUID, $backgroundImageId: UUID) { - updateMerchant( - input: {id: $id, patch: {name: $name, bitcoinAddress: $bitcoinAddress, description: $description, ownerId: $ownerId, logoId: $logoId, backgroundImageId: $backgroundImageId}} - ) { - merchant { - id - } - clientMutationId - } -} -", - "updatePartnerMutation": "mutation updatePartnerMutation($id: UUID!, $name: String, $description: String, $bitcoinAddress: String, $ownerId: UUID, $logoId: UUID, $backgroundImageId: UUID) { - updatePartner( - input: {id: $id, patch: {name: $name, description: $description, bitcoinAddress: $bitcoinAddress, ownerId: $ownerId, logoId: $logoId, backgroundImageId: $backgroundImageId}} - ) { - partner { - id - } - clientMutationId - } -} -", - "updatePermissionMutation": "mutation updatePermissionMutation($id: UUID!, $name: String, $userId: UUID) { - updatePermission(input: {id: $id, patch: {name: $name, userId: $userId}}) { - permission { - id - } - clientMutationId - } -} -", - "updateProductMutation": "mutation updateProductMutation($id: UUID!, $name: String, $url: String, $merchantId: UUID, $iconId: UUID) { - updateProduct( - input: {id: $id, patch: {name: $name, url: $url, merchantId: $merchantId, iconId: $iconId}} - ) { - product { - id - } - clientMutationId - } -} -", - "updateServiceMutation": "mutation updateServiceMutation($id: UUID!, $name: String, $description: String, $type: String, $data: JSON, $campaignActionId: UUID, $iconId: UUID) { - updateService( - input: {id: $id, patch: {name: $name, description: $description, type: $type, data: $data, campaignActionId: $campaignActionId, iconId: $iconId}} - ) { - service { - id - } - clientMutationId - } -} -", - "updateShopifyAccountMutation": "mutation updateShopifyAccountMutation($id: UUID!, $name: String, $shopLink: String, $partnerId: UUID, $iconId: UUID) { - updateShopifyAccount( - input: {id: $id, patch: {name: $name, shopLink: $shopLink, partnerId: $partnerId, iconId: $iconId}} - ) { - shopifyAccount { - id - } - clientMutationId - } -} -", - "updateShopifyOrderByOrderIdAndEmailAndShopifyAccountIdMutation": "mutation updateShopifyOrderByOrderIdAndEmailAndShopifyAccountIdMutation($orderId: Int!, $email: String!, $shopifyAccountId: UUID!, $orderStatus: String, $financialStatus: String, $subtotalPrice: BigFloat, $orderCreatedAt: Datetime, $orderClosedAt: Datetime, $bitcoinUpdatedAt: Datetime, $bitcoinRebate: BigFloat, $bitcoinAddress: String, $paidDate: Datetime, $transactionId: String, $partnerId: UUID) { - updateShopifyOrderByOrderIdAndEmailAndShopifyAccountId( - input: {orderId: $orderId, email: $email, shopifyAccountId: $shopifyAccountId, patch: {orderStatus: $orderStatus, financialStatus: $financialStatus, subtotalPrice: $subtotalPrice, orderCreatedAt: $orderCreatedAt, orderClosedAt: $orderClosedAt, bitcoinUpdatedAt: $bitcoinUpdatedAt, bitcoinRebate: $bitcoinRebate, bitcoinAddress: $bitcoinAddress, paidDate: $paidDate, transactionId: $transactionId, partnerId: $partnerId}} - ) { - shopifyOrder { - id - } - clientMutationId - } -} -", - "updateShopifyOrderMutation": "mutation updateShopifyOrderMutation($id: UUID!, $orderId: Int, $email: String, $orderStatus: String, $financialStatus: String, $subtotalPrice: BigFloat, $orderCreatedAt: Datetime, $orderClosedAt: Datetime, $bitcoinUpdatedAt: Datetime, $bitcoinRebate: BigFloat, $bitcoinAddress: String, $paidDate: Datetime, $transactionId: String, $partnerId: UUID, $shopifyAccountId: UUID) { - updateShopifyOrder( - input: {id: $id, patch: {orderId: $orderId, email: $email, orderStatus: $orderStatus, financialStatus: $financialStatus, subtotalPrice: $subtotalPrice, orderCreatedAt: $orderCreatedAt, orderClosedAt: $orderClosedAt, bitcoinUpdatedAt: $bitcoinUpdatedAt, bitcoinRebate: $bitcoinRebate, bitcoinAddress: $bitcoinAddress, paidDate: $paidDate, transactionId: $transactionId, partnerId: $partnerId, shopifyAccountId: $shopifyAccountId}} - ) { - shopifyOrder { - id - } - clientMutationId - } -} -", - "updateShopifySecretByShopifyAccountIdAndNameMutation": "mutation updateShopifySecretByShopifyAccountIdAndNameMutation($shopifyAccountId: UUID!, $name: String!, $value: String, $enc: String) { - updateShopifySecretByShopifyAccountIdAndName( - input: {shopifyAccountId: $shopifyAccountId, name: $name, patch: {value: $value, enc: $enc}} - ) { - shopifySecret { - id - } - clientMutationId - } -} -", - "updateShopifySecretMutation": "mutation updateShopifySecretMutation($id: UUID!, $shopifyAccountId: UUID, $name: String, $value: String, $enc: String) { - updateShopifySecret( - input: {id: $id, patch: {shopifyAccountId: $shopifyAccountId, name: $name, value: $value, enc: $enc}} - ) { - shopifySecret { - id - } - clientMutationId - } -} -", - "updateUserByBitcoinAddressMutation": "mutation updateUserByBitcoinAddressMutation($bitcoinAddress: String!, $username: String) { - updateUserByBitcoinAddress( - input: {bitcoinAddress: $bitcoinAddress, patch: {username: $username}} - ) { - user { - id - } - clientMutationId - } -} -", - "updateUserByUsernameMutation": "mutation updateUserByUsernameMutation($username: String!, $bitcoinAddress: String) { - updateUserByUsername( - input: {username: $username, patch: {bitcoinAddress: $bitcoinAddress}} - ) { - user { - id - } - clientMutationId - } -} -", - "updateUserEncryptedSecretByUserIdAndNameMutation": "mutation updateUserEncryptedSecretByUserIdAndNameMutation($userId: UUID!, $name: String!, $value: String, $enc: String) { - updateUserEncryptedSecretByUserIdAndName( - input: {userId: $userId, name: $name, patch: {value: $value, enc: $enc}} - ) { - userEncryptedSecret { - id - } - clientMutationId - } -} -", - "updateUserEncryptedSecretMutation": "mutation updateUserEncryptedSecretMutation($id: UUID!, $userId: UUID, $name: String, $value: String, $enc: String) { - updateUserEncryptedSecret( - input: {id: $id, patch: {userId: $userId, name: $name, value: $value, enc: $enc}} - ) { - userEncryptedSecret { - id - } - clientMutationId - } -} -", - "updateUserMutation": "mutation updateUserMutation($id: UUID!, $username: String, $bitcoinAddress: String) { - updateUser( - input: {id: $id, patch: {username: $username, bitcoinAddress: $bitcoinAddress}} - ) { - user { - id - } - clientMutationId - } -} -", - "updateUserSecretByUserIdAndNameMutation": "mutation updateUserSecretByUserIdAndNameMutation($userId: UUID!, $name: String!, $value: String) { - updateUserSecretByUserIdAndName( - input: {userId: $userId, name: $name, patch: {value: $value}} - ) { - userSecret { - id - } - clientMutationId - } -} -", - "updateUserSecretMutation": "mutation updateUserSecretMutation($id: UUID!, $userId: UUID, $name: String, $value: String) { - updateUserSecret( - input: {id: $id, patch: {userId: $userId, name: $name, value: $value}} - ) { - userSecret { - id - } - clientMutationId - } -} -", - "userEncryptedSecretFragment": "fragment userEncryptedSecretFragment on UserEncryptedSecret { - id - userId - name - value - enc -} -", - "userEncryptedSecretsUpsertMutation": "mutation userEncryptedSecretsUpsertMutation($vUserId: UUID!, $secretName: String!, $secretValue: String!, $fieldEncoding: String!) { - userEncryptedSecretsUpsert( - input: {vUserId: $vUserId, secretName: $secretName, secretValue: $secretValue, fieldEncoding: $fieldEncoding} - ) { - boolean - } -} -", - "userFragment": "fragment userFragment on User { - id - username - bitcoinAddress - permissions - completedActions -} -", - "userSecretFragment": "fragment userSecretFragment on UserSecret { - id - userId - name - value -} -", - "uuidGenerateSeededUuidMutation": "mutation uuidGenerateSeededUuidMutation($seed: String!) { - uuidGenerateSeededUuid(input: {seed: $seed}) { - uuid - } -} -", - "uuidGenerateV4Mutation": "mutation uuidGenerateV4Mutation($input: UuidGenerateV4Input!) { - uuidGenerateV4(input: $input) { - uuid - } -} -", -} -`; - -exports[`GraphQL Code Generation getMany(): works with nested selection: getMany - actionItems 1`] = ` -"query getActionItemsQueryAll { - actionItems { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - description - type - itemOrder - isRequired - notificationText - embedCode - url - media - ownerId - createdBy - updatedBy - createdAt - updatedAt - actionId - userActionItems(first: 3) { - edges { - cursor - node { - id - value - status - createdBy - updatedBy - createdAt - updatedAt - userId - actionId - userActionId - actionItemId - } - } - } - } - } - } -} -" -`; - -exports[`GraphQL Code Generation getManyPaginatedNodes(): works with nested selection: getManyPaginatedNodes - actionItems 1`] = ` -"query getActionItemsQuery($first: Int, $last: Int, $after: Cursor, $before: Cursor, $offset: Int, $condition: ActionItemCondition, $filter: ActionItemFilter, $orderBy: [ActionItemsOrderBy!]) { - actionItems( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - nodes { - id - name - description - type - itemOrder - isRequired - notificationText - embedCode - url - media - ownerId - createdBy - updatedBy - createdAt - updatedAt - actionId - userActionItems(first: 3) { - edges { - cursor - node { - id - value - status - createdBy - updatedBy - createdAt - updatedAt - userId - actionId - userActionId - actionItemId - } - } - } - } - } -} -" -`; - -exports[`GraphQL Code Generation getOne(): works with nested selection: getOne - action 1`] = ` -"query getActionQuery($id: UUID!) { - action(id: $id) { - id - slug - photo - title - description - discoveryHeader - discoveryDescription - enableNotifications - enableNotificationsText - search - locationRadius - startDate - endDate - approved - rewardAmount - activityFeedText - callToAction - completedActionText - alreadyCompletedActionText - tags - createdBy - updatedBy - createdAt - updatedAt - ownerId - actionGoals(first: 3) { - edges { - cursor - node { - createdBy - updatedBy - createdAt - updatedAt - actionId - goalId - ownerId - } - } - } - actionResults(first: 3) { - edges { - cursor - node { - id - createdBy - updatedBy - createdAt - updatedAt - actionId - ownerId - } - } - } - actionItems(first: 3) { - edges { - cursor - node { - id - name - description - type - itemOrder - isRequired - notificationText - embedCode - url - media - ownerId - createdBy - updatedBy - createdAt - updatedAt - actionId - } - } - } - userActions(first: 3) { - edges { - cursor - node { - id - actionStarted - complete - verified - verifiedDate - userRating - rejected - rejectedReason - createdBy - updatedBy - createdAt - updatedAt - userId - verifierId - actionId - } - } - } - userActionResults(first: 3) { - edges { - cursor - node { - id - value - createdBy - updatedBy - createdAt - updatedAt - userId - actionId - userActionId - actionResultId - } - } - } - userActionItems(first: 3) { - edges { - cursor - node { - id - value - status - createdBy - updatedBy - createdAt - updatedAt - userId - actionId - userActionId - actionItemId - } - } - } - userPassActions(first: 3) { - edges { - cursor - node { - id - createdBy - updatedBy - createdAt - updatedAt - userId - actionId - } - } - } - userSavedActions(first: 3) { - edges { - cursor - node { - id - createdBy - updatedBy - createdAt - updatedAt - userId - actionId - } - } - } - userViewedActions(first: 3) { - edges { - cursor - node { - id - createdBy - updatedBy - createdAt - updatedAt - userId - actionId - } - } - } - userActionReactions(first: 3) { - edges { - cursor - node { - id - createdBy - updatedBy - createdAt - updatedAt - userActionId - userId - reacterId - actionId - } - } - } - searchRank - goals(first: 3) { - edges { - cursor - node { - id - name - slug - shortName - icon - subHead - tags - search - createdBy - updatedBy - createdAt - updatedAt - searchRank - } - } - } - } -} -" -`; diff --git a/graphql/codegen/__tests__/__snapshots__/codegen.test.ts.snap b/graphql/codegen/__tests__/__snapshots__/codegen.test.ts.snap deleted file mode 100644 index 0e68c2313..000000000 --- a/graphql/codegen/__tests__/__snapshots__/codegen.test.ts.snap +++ /dev/null @@ -1,901 +0,0 @@ -// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing - -exports[`generates output 1`] = ` -{ - "activeUserFragment": "fragment activeUserFragment on ActiveUser { - id - username -} -", - "createActiveUserMutation": "mutation createActiveUserMutation($username: String) { - createActiveUser(input: {activeUser: {username: $username}}) { - activeUser { - id - } - clientMutationId - } -} -", - "createPostMutation": "mutation createPostMutation($userId: Int!, $title: String!, $body: String, $published: Boolean, $publishedAt: Datetime) { - createPost( - input: {post: {userId: $userId, title: $title, body: $body, published: $published, publishedAt: $publishedAt}} - ) { - post { - id - } - clientMutationId - } -} -", - "createUserMutation": "mutation createUserMutation($username: String!, $email: String) { - createUser(input: {user: {username: $username, email: $email}}) { - user { - id - } - clientMutationId - } -} -", - "deletePostMutation": "mutation deletePostMutation($id: UUID!) { - deletePost(input: {id: $id}) { - clientMutationId - } -} -", - "deleteUserByUsernameMutation": "mutation deleteUserByUsernameMutation($username: String!) { - deleteUserByUsername(input: {username: $username}) { - clientMutationId - } -} -", - "deleteUserMutation": "mutation deleteUserMutation($id: Int!) { - deleteUser(input: {id: $id}) { - clientMutationId - } -} -", - "getActiveUsersOrderByEnums": "query getActiveUsersOrderByEnums { - __type(name: "ActiveUsersOrderBy") { - enumValues { - name - } - } -} -", - "getActiveUsersPaginated": "query getActiveUsersPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: ActiveUserCondition, $filter: ActiveUserFilter, $orderBy: [ActiveUsersOrderBy!]) { - activeUsers( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - username - } - } - } -} -", - "getActiveUsersQueryAll": "query getActiveUsersQueryAll { - activeUsers { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - username - } - } - } -} -", - "getMetaQuery": "query getMetaQuery { - _meta { - tables { - name - } - } -} -", - "getPostQuery": "query getPostQuery($id: UUID!) { - post(id: $id) { - id - userId - title - body - published - publishedAt - user { - id - username - email - createdAt - } - } -} -", - "getPostsOrderByEnums": "query getPostsOrderByEnums { - __type(name: "PostsOrderBy") { - enumValues { - name - } - } -} -", - "getPostsPaginated": "query getPostsPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: PostCondition, $filter: PostFilter, $orderBy: [PostsOrderBy!]) { - posts( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - userId - title - body - published - publishedAt - user { - id - username - email - createdAt - } - } - } - } -} -", - "getPostsQueryAll": "query getPostsQueryAll { - posts { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - userId - title - body - published - publishedAt - user { - id - username - email - createdAt - } - } - } - } -} -", - "getQueryQuery": "query getQueryQuery { - query { - query { - userCount - } - activeUsers(first: 3) { - edges { - cursor - node { - id - username - } - } - } - posts(first: 3) { - edges { - cursor - node { - id - userId - title - body - published - publishedAt - } - } - } - users(first: 3) { - edges { - cursor - node { - id - username - email - createdAt - } - } - } - userCount - _meta { - __typename - } - } -} -", - "getUserByUsernameQuery": "query getUserByUsernameQuery($username: String!) { - userByUsername(username: $username) { - id - username - email - createdAt - posts(first: 3) { - edges { - cursor - node { - id - userId - title - body - published - publishedAt - } - } - } - } -} -", - "getUserQuery": "query getUserQuery($id: Int!) { - user(id: $id) { - id - username - email - createdAt - posts(first: 3) { - edges { - cursor - node { - id - userId - title - body - published - publishedAt - } - } - } - } -} -", - "getUsersOrderByEnums": "query getUsersOrderByEnums { - __type(name: "UsersOrderBy") { - enumValues { - name - } - } -} -", - "getUsersPaginated": "query getUsersPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: UserCondition, $filter: UserFilter, $orderBy: [UsersOrderBy!]) { - users( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - username - email - createdAt - posts(first: 3) { - edges { - cursor - node { - id - userId - title - body - published - publishedAt - } - } - } - } - } - } -} -", - "getUsersQueryAll": "query getUsersQueryAll { - users { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - username - email - createdAt - posts(first: 3) { - edges { - cursor - node { - id - userId - title - body - published - publishedAt - } - } - } - } - } - } -} -", - "postFragment": "fragment postFragment on Post { - id - userId - title - body - published - publishedAt - user { - id - username - email - createdAt - } -} -", - "updatePostMutation": "mutation updatePostMutation($id: UUID!, $userId: Int, $title: String, $body: String, $published: Boolean, $publishedAt: Datetime) { - updatePost( - input: {id: $id, patch: {userId: $userId, title: $title, body: $body, published: $published, publishedAt: $publishedAt}} - ) { - post { - id - } - clientMutationId - } -} -", - "updateUserByUsernameMutation": "mutation updateUserByUsernameMutation($username: String!, $email: String) { - updateUserByUsername(input: {username: $username, patch: {email: $email}}) { - user { - id - } - clientMutationId - } -} -", - "updateUserMutation": "mutation updateUserMutation($id: Int!, $username: String, $email: String) { - updateUser(input: {id: $id, patch: {username: $username, email: $email}}) { - user { - id - } - clientMutationId - } -} -", - "userFragment": "fragment userFragment on User { - id - username - email - createdAt - posts(first: 3) { - edges { - cursor - node { - id - userId - title - body - published - publishedAt - } - } - } -} -", -} -`; - -exports[`helper method 1`] = ` -{ - "activeUserFragment": "fragment activeUserFragment on ActiveUser { - id - username -} -", - "createActiveUserMutation": "mutation createActiveUserMutation($username: String) { - createActiveUser(input: {activeUser: {username: $username}}) { - activeUser { - id - } - clientMutationId - } -} -", - "createPostMutation": "mutation createPostMutation($userId: Int!, $title: String!, $body: String, $published: Boolean, $publishedAt: Datetime) { - createPost( - input: {post: {userId: $userId, title: $title, body: $body, published: $published, publishedAt: $publishedAt}} - ) { - post { - id - } - clientMutationId - } -} -", - "createUserMutation": "mutation createUserMutation($username: String!, $email: String) { - createUser(input: {user: {username: $username, email: $email}}) { - user { - id - } - clientMutationId - } -} -", - "deletePostMutation": "mutation deletePostMutation($id: UUID!) { - deletePost(input: {id: $id}) { - clientMutationId - } -} -", - "deleteUserByUsernameMutation": "mutation deleteUserByUsernameMutation($username: String!) { - deleteUserByUsername(input: {username: $username}) { - clientMutationId - } -} -", - "deleteUserMutation": "mutation deleteUserMutation($id: Int!) { - deleteUser(input: {id: $id}) { - clientMutationId - } -} -", - "getActiveUsersOrderByEnums": "query getActiveUsersOrderByEnums { - __type(name: "ActiveUsersOrderBy") { - enumValues { - name - } - } -} -", - "getActiveUsersPaginated": "query getActiveUsersPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: ActiveUserCondition, $filter: ActiveUserFilter, $orderBy: [ActiveUsersOrderBy!]) { - activeUsers( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - username - } - } - } -} -", - "getActiveUsersQueryAll": "query getActiveUsersQueryAll { - activeUsers { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - username - } - } - } -} -", - "getMetaQuery": "query getMetaQuery { - _meta { - tables { - name - } - } -} -", - "getPostQuery": "query getPostQuery($id: UUID!) { - post(id: $id) { - id - userId - title - body - published - publishedAt - user { - id - username - email - createdAt - } - } -} -", - "getPostsOrderByEnums": "query getPostsOrderByEnums { - __type(name: "PostsOrderBy") { - enumValues { - name - } - } -} -", - "getPostsPaginated": "query getPostsPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: PostCondition, $filter: PostFilter, $orderBy: [PostsOrderBy!]) { - posts( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - userId - title - body - published - publishedAt - user { - id - username - email - createdAt - } - } - } - } -} -", - "getPostsQueryAll": "query getPostsQueryAll { - posts { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - userId - title - body - published - publishedAt - user { - id - username - email - createdAt - } - } - } - } -} -", - "getQueryQuery": "query getQueryQuery { - query { - query { - userCount - } - activeUsers(first: 3) { - edges { - cursor - node { - id - username - } - } - } - posts(first: 3) { - edges { - cursor - node { - id - userId - title - body - published - publishedAt - } - } - } - users(first: 3) { - edges { - cursor - node { - id - username - email - createdAt - } - } - } - userCount - _meta { - __typename - } - } -} -", - "getUserByUsernameQuery": "query getUserByUsernameQuery($username: String!) { - userByUsername(username: $username) { - id - username - email - createdAt - posts(first: 3) { - edges { - cursor - node { - id - userId - title - body - published - publishedAt - } - } - } - } -} -", - "getUserQuery": "query getUserQuery($id: Int!) { - user(id: $id) { - id - username - email - createdAt - posts(first: 3) { - edges { - cursor - node { - id - userId - title - body - published - publishedAt - } - } - } - } -} -", - "getUsersOrderByEnums": "query getUsersOrderByEnums { - __type(name: "UsersOrderBy") { - enumValues { - name - } - } -} -", - "getUsersPaginated": "query getUsersPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: UserCondition, $filter: UserFilter, $orderBy: [UsersOrderBy!]) { - users( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - username - email - createdAt - posts(first: 3) { - edges { - cursor - node { - id - userId - title - body - published - publishedAt - } - } - } - } - } - } -} -", - "getUsersQueryAll": "query getUsersQueryAll { - users { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - username - email - createdAt - posts(first: 3) { - edges { - cursor - node { - id - userId - title - body - published - publishedAt - } - } - } - } - } - } -} -", - "postFragment": "fragment postFragment on Post { - id - userId - title - body - published - publishedAt - user { - id - username - email - createdAt - } -} -", - "updatePostMutation": "mutation updatePostMutation($id: UUID!, $userId: Int, $title: String, $body: String, $published: Boolean, $publishedAt: Datetime) { - updatePost( - input: {id: $id, patch: {userId: $userId, title: $title, body: $body, published: $published, publishedAt: $publishedAt}} - ) { - post { - id - } - clientMutationId - } -} -", - "updateUserByUsernameMutation": "mutation updateUserByUsernameMutation($username: String!, $email: String) { - updateUserByUsername(input: {username: $username, patch: {email: $email}}) { - user { - id - } - clientMutationId - } -} -", - "updateUserMutation": "mutation updateUserMutation($id: Int!, $username: String, $email: String) { - updateUser(input: {id: $id, patch: {username: $username, email: $email}}) { - user { - id - } - clientMutationId - } -} -", - "userFragment": "fragment userFragment on User { - id - username - email - createdAt - posts(first: 3) { - edges { - cursor - node { - id - userId - title - body - published - publishedAt - } - } - } -} -", -} -`; diff --git a/graphql/codegen/__tests__/__snapshots__/granular.test.ts.snap b/graphql/codegen/__tests__/__snapshots__/granular.test.ts.snap deleted file mode 100644 index dadd7ceee..000000000 --- a/graphql/codegen/__tests__/__snapshots__/granular.test.ts.snap +++ /dev/null @@ -1,89 +0,0 @@ -// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing - -exports[`generate 1`] = ` -{ - "getActionQuery": "query getActionQuery($id: UUID!) { - action(id: $id) { - id - name - approved - } -} -", - "getActionsPaginated": "query getActionsPaginated($first: Int, $last: Int, $offset: Int, $after: Cursor, $before: Cursor, $condition: ActionCondition, $filter: ActionFilter, $orderBy: [ActionsOrderBy!]) { - actions( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - approved - } - } - } -} -", - "getActionsQuery": "query getActionsQuery($first: Int, $last: Int, $after: Cursor, $before: Cursor, $offset: Int, $condition: ActionCondition, $filter: ActionFilter, $orderBy: [ActionsOrderBy!]) { - actions( - first: $first - last: $last - offset: $offset - after: $after - before: $before - condition: $condition - filter: $filter - orderBy: $orderBy - ) { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - nodes { - id - name - approved - } - } -} -", - "getActionsQueryAll": "query getActionsQueryAll { - actions { - totalCount - pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - } - edges { - cursor - node { - id - name - approved - } - } - } -} -", -} -`; diff --git a/graphql/codegen/__tests__/codegen.fixtures.test.ts b/graphql/codegen/__tests__/codegen.fixtures.test.ts deleted file mode 100644 index 813fb4d24..000000000 --- a/graphql/codegen/__tests__/codegen.fixtures.test.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { print } from 'graphql'; - -import queryNestedSelectionMany from '../__fixtures__/api/query-nested-selection-many.json'; -import queryNestedSelectionOne from '../__fixtures__/api/query-nested-selection-one.json'; -import mutations from '../__fixtures__/mutations.json'; -import queries from '../__fixtures__/queries.json'; -import { - getMany, - getManyPaginatedNodes, - getOne -} from '../src'; -import { generateKeyedObjFromGqlMap } from '../test-utils/generate-from-introspection'; - -// Type helper (optional but recommended for strong typing on selection fields) -interface FlatField { - name: string; - selection: string[]; -} - -type QueryField = string | FlatField; - -interface NestedSelectionQuery { - [key: string]: { - model: string; - selection: QueryField[]; - }; -} - -describe('GraphQL Code Generation', () => { - it('generate(): full AST map snapshot', () => { - // @ts-ignore - const output = generateKeyedObjFromGqlMap({ ...queries, ...mutations }); - expect(output).toMatchSnapshot('full generate() output'); - }); - - it('getManyPaginatedNodes(): works with nested selection', () => { - const result = getManyPaginatedNodes({ - operationName: 'actionItems', - // @ts-ignore - query: (queryNestedSelectionMany as NestedSelectionQuery).actionItems - }); - - expect(print(result.ast)).toMatchSnapshot('getManyPaginatedNodes - actionItems'); - }); - - it('getMany(): works with nested selection', () => { - // @ts-ignore - const result = getMany({ - operationName: 'actionItems', - query: (queryNestedSelectionMany as NestedSelectionQuery).actionItems - }); - - expect(print(result.ast)).toMatchSnapshot('getMany - actionItems'); - }); - - it('getOne(): works with nested selection', () => { - const result = getOne({ - operationName: 'action', - // @ts-ignore - query: (queryNestedSelectionOne as NestedSelectionQuery).action - }); - - expect(print(result.ast)).toMatchSnapshot('getOne - action'); - }); - - - xit('getOne(): handles missing selection gracefully', () => { - // @ts-ignore - const badQuery = { model: 'action', selection: [] }; - const result = getOne({ - operationName: 'action', - // @ts-ignore - query: badQuery - }); - - expect(print(result.ast)).toMatchSnapshot('getOne - empty selection fallback'); - }); -}); diff --git a/graphql/codegen/__tests__/codegen.test.ts b/graphql/codegen/__tests__/codegen.test.ts deleted file mode 100644 index 2595e6604..000000000 --- a/graphql/codegen/__tests__/codegen.test.ts +++ /dev/null @@ -1,63 +0,0 @@ -process.env.LOG_SCOPE = 'constructive-codegen'; - -import { getConnections, GraphQLQueryFn, seed } from '@constructive-io/graphql-test'; -import { print } from 'graphql'; -import { IntrospectionQuery, IntrospectionQueryResult, parseGraphQuery } from 'introspectron'; -import { join } from 'path'; - -import { generate, GqlMap } from '../src'; -import { generateKeyedObjFromIntrospection } from '../test-utils/generate-from-introspection'; - -const sql = (f: string) => join(__dirname, '../sql', f); - -jest.setTimeout(30000); - -let teardown: () => Promise; -let query: GraphQLQueryFn; -let introspection: IntrospectionQueryResult; - -beforeAll(async () => { - ({ query, teardown } = await getConnections( - { - schemas: ['constructive_gen'] - }, - [seed.sqlfile([sql('test.sql')])] - )); -}); - -afterAll(() => teardown()); - -beforeAll(async () => { - const res = await query(IntrospectionQuery); - - if (res.errors) { - console.error(res.errors); - throw new Error('GraphQL introspection query failed'); - } - - introspection = res.data as IntrospectionQueryResult; -}); - -it('generates output', () => { - - const { queries, mutations } = parseGraphQuery(introspection); - const gqlMap: GqlMap = { ...queries, ...mutations }; - const gen = generate(gqlMap); - const output = Object.keys(gen).reduce>((acc, key) => { - const entry = gen[key]; - if (entry?.ast) { - // @ts-ignore - acc[key] = print(entry.ast); - } - return acc; - }, {}); - - expect(output).toMatchSnapshot(); - -}); - -it('helper method', () => { - expect(introspection).toBeDefined(); - const output = generateKeyedObjFromIntrospection(introspection); - expect(output).toMatchSnapshot(); -}); diff --git a/graphql/codegen/__tests__/gql.mutations.test.ts b/graphql/codegen/__tests__/gql.mutations.test.ts deleted file mode 100644 index 1a34e6c8e..000000000 --- a/graphql/codegen/__tests__/gql.mutations.test.ts +++ /dev/null @@ -1,133 +0,0 @@ -import { print } from 'graphql' -import { createOne, patchOne, deleteOne, createMutation, MutationSpec } from '../src' - -describe('gql mutation builders', () => { - it('createMutation: builds non-null vars and includes object outputs', () => { - const mutation: MutationSpec = { - model: 'Actions', - properties: { - input: { - properties: { - foo: { type: 'String' }, - list: { type: 'Int', isArray: true, isArrayNotNull: true } - } - } - }, - outputs: [ - { name: 'clientMutationId', type: { kind: 'SCALAR' } }, - { name: 'node', type: { kind: 'OBJECT' } } - ] - } - - const res = createMutation({ operationName: 'customMutation', mutation }) - expect(res).toBeDefined() - const s = print(res!.ast) - expect(s).toContain('mutation customMutationMutation') - expect(s).toContain('$foo: String!') - expect(s).toContain('$list: [Int!]!') - expect(s).toContain('clientMutationId') - expect(s).toContain('node') - }) - - it('createOne: omits non-mutable props and uses non-null types', () => { - const mutation: MutationSpec = { - model: 'Actions', - properties: { - input: { - properties: { - action: { - properties: { - name: { type: 'String', isNotNull: true }, - createdAt: { type: 'Datetime', isNotNull: true } - } - } - } - } - } - } - - const res = createOne({ operationName: 'createAction', mutation }) - expect(res).toBeDefined() - const s = print(res!.ast) - expect(s).toContain('mutation createActionMutation') - expect(s).toContain('$name: String!') - expect(s).not.toContain('$createdAt') - expect(s).toContain('clientMutationId') - }) - - it('patchOne: includes patch-by vars and optional patch attrs', () => { - const mutation: MutationSpec = { - model: 'Actions', - properties: { - input: { - properties: { - id: { type: 'UUID', isNotNull: true }, - patch: { - properties: { - name: { type: 'String' }, - approved: { type: 'Boolean' }, - createdAt: { type: 'Datetime' } - } - } - } - } - } - } - - const res = patchOne({ operationName: 'patchAction', mutation }) - expect(res).toBeDefined() - const s = print(res!.ast) - expect(s).toContain('mutation patchActionMutation') - expect(s).toContain('$id: UUID!') - expect(s).toContain('$name: String') - expect(s).toContain('$approved: Boolean') - expect(s).not.toContain('createdAt') - expect(s).toContain('clientMutationId') - }) - - it('deleteOne: builds vars with non-null list wrappers for arrays', () => { - const mutation: MutationSpec = { - model: 'Actions', - properties: { - input: { - properties: { - id: { type: 'UUID', isNotNull: true }, - tags: { type: 'String', isArray: true } - } - } - } - } - - const res = deleteOne({ operationName: 'deleteAction', mutation }) - expect(res).toBeDefined() - const s = print(res!.ast) - expect(s).toContain('mutation deleteActionMutation') - expect(s).toContain('$id: UUID!') - expect(s).toContain('$tags: [String]!') - expect(s).toContain('clientMutationId') - }) - - it('createOne: handles Regimen singularization and input key', () => { - const mutation: MutationSpec = { - model: 'Regimens', - properties: { - input: { - properties: { - regimen: { - properties: { - name: { type: 'String', isNotNull: true } - } - } - } - } - } - } - - const res = createOne({ operationName: 'createRegimen', mutation }) - expect(res).toBeDefined() - const s = print(res!.ast) - expect(s).toContain('mutation createRegimenMutation') - expect(s).toContain('$name: String!') - expect(s).toContain('regimen') - }) -}) diff --git a/graphql/codegen/__tests__/granular.test.ts b/graphql/codegen/__tests__/granular.test.ts deleted file mode 100644 index 84f9ebc09..000000000 --- a/graphql/codegen/__tests__/granular.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { print } from 'graphql'; - -import mutations from '../__fixtures__/api/mutations.json'; -import queries from '../__fixtures__/api/queries.json'; -import { generateGranular as generate } from '../src'; - -it('generate', () => { - // @ts-ignore - const gen = generate({ ...queries, ...mutations }, 'Action', [ - 'id', - 'name', - 'approved' - ]); - - const output = Object.keys(gen).reduce((m, key) => { - if (gen[key]?.ast) { - // @ts-ignore - m[key] = print(gen[key].ast); - } - return m; - }, {}); - expect(output).toMatchSnapshot(); -}); diff --git a/graphql/codegen/__tests__/options.test.ts b/graphql/codegen/__tests__/options.test.ts deleted file mode 100644 index ffccaa35a..000000000 --- a/graphql/codegen/__tests__/options.test.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { defaultGraphQLCodegenOptions, mergeGraphQLCodegenOptions } from '../src' - -describe('mergeGraphQLCodegenOptions', () => { - it('deep merges input/output/documents/features', () => { - const base = { ...defaultGraphQLCodegenOptions } - const overrides = { - input: { schema: 'schema.graphql', headers: { Authorization: 'Bearer TOKEN' } }, - output: { - root: 'dist/custom-root', - typesFile: base.output.typesFile, - operationsDir: base.output.operationsDir, - sdkFile: base.output.sdkFile, - reactQueryFile: base.output.reactQueryFile - }, - documents: { format: 'ts', convention: 'camelUpper', allowQueries: ['getActionQuery'] }, - features: { emitSdk: false, emitReactQuery: false } - } as any - - const merged = mergeGraphQLCodegenOptions(base, overrides) - - expect(merged.input.schema).toBe('schema.graphql') - expect(merged.input.endpoint).toBe('') - expect(merged.input.headers?.Authorization).toBe('Bearer TOKEN') - - expect(merged.output.root).toBe('dist/custom-root') - expect(merged.output.typesFile).toBe('types/generated.ts') - expect(merged.output.operationsDir).toBe('operations') - - expect(merged.documents.format).toBe('ts') - expect(merged.documents.convention).toBe('camelUpper') - expect(merged.documents.allowQueries).toContain('getActionQuery') - - expect(merged.features.emitSdk).toBe(false) - expect(merged.features.emitTypes).toBe(true) - expect(merged.features.emitOperations).toBe(true) - }) - - it('does not include reactQuery overrides (current behavior)', () => { - const base = { ...defaultGraphQLCodegenOptions } - const overrides = { reactQuery: { fetcher: 'fetch', legacyMode: true, exposeDocument: true } } as any - const merged = mergeGraphQLCodegenOptions(base, overrides) - expect((merged as any).reactQuery).toBeUndefined() - // base is not mutated - expect(base.reactQuery?.fetcher).toBe('graphql-request') - }) -}) diff --git a/graphql/codegen/bin/graphql-codegen.js b/graphql/codegen/bin/graphql-codegen.js new file mode 100755 index 000000000..1680166bb --- /dev/null +++ b/graphql/codegen/bin/graphql-codegen.js @@ -0,0 +1,3 @@ +#!/usr/bin/env node + +require('../dist/bin/graphql-codegen.js'); diff --git a/graphql/codegen/codegen-example-config.json b/graphql/codegen/codegen-example-config.json deleted file mode 100644 index 86a6715d6..000000000 --- a/graphql/codegen/codegen-example-config.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "input": { - "endpoint": "http://localhost:5555/graphql", - "headers": { - "Host": "api.localhost" - } - }, - "output": { - "root": "./dist/codegen", - "typesFile": "types/generated.ts", - "operationsDir": "operations", - "sdkFile": "sdk.ts", - "reactQueryFile": "react-query.ts" - }, - "documents": { - "format": "ts", - "convention": "dashed", - "allowQueries": [], - "excludeQueries": [], - "excludePatterns": [] - }, - "features": { - "emitTypes": true, - "emitOperations": true, - "emitSdk": true, - "emitReactQuery": true - }, - "scalars": { - "LaunchqlInternalTypeHostname": "string", - "PgpmInternalTypeHostname": "string" - }, - "typeNameOverrides": { - "LaunchqlInternalTypeHostname": "String", - "PgpmInternalTypeHostname": "String" - }, - "selection": { - "mutationInputMode": "patchCollapsed", - "connectionStyle": "edges", - "forceModelOutput": true - } -} diff --git a/graphql/codegen/docs/DEVELOPMENT.md b/graphql/codegen/docs/DEVELOPMENT.md new file mode 100644 index 000000000..eae90f25c --- /dev/null +++ b/graphql/codegen/docs/DEVELOPMENT.md @@ -0,0 +1,103 @@ +# Local Development Workflow + +Steps to mimic the published npm package locally in `@apps/test-sdk`. + +## 1. Build and pack the SDK + +Creates a `.tgz` like `constructive-io-graphql-sdk-0.1.0.tgz`. + +```sh +pnpm --filter @constructive-io/graphql-sdk build +mkdir -p apps/test-sdk/vendor +pnpm -C packages/graphql-sdk pack --pack-destination ../../apps/test-sdk/vendor +``` + +## 2. Install the tarball into the test app + +This updates `package.json` away from `workspace:*`. + +**Option A:** Run from inside the test-sdk directory (glob works): + +```sh +cd apps/test-sdk +pnpm add -D ./vendor/*.tgz +``` + +**Option B:** Run from monorepo root (must specify exact filename): + +```sh +pnpm --filter @constructive-io/test-sdk add -D ./apps/test-sdk/vendor/constructive-io-graphql-sdk-0.1.0.tgz +``` + +> Note: `--filter` executes from the monorepo root, so paths must be relative to root, not the filtered package. Glob patterns also don't expand when using `--filter`. + +## 3. Initialize a config file (TypeScript) + +```sh +cd apps/test-sdk +npx graphql-sdk init -e http://api.localhost:3000/graphql +``` + +This creates `graphql-sdk.config.ts`. The CLI uses `jiti` internally to load `.ts` configs, so no extra tooling is required. + +## 4. Sanity check and run codegen + +Ensure `http://api.localhost:3000/graphql` is running/reachable. + +```sh +cd apps/test-sdk +npx graphql-sdk --help +npx graphql-sdk generate --dry-run +npx graphql-sdk generate +``` + +You can also use the test app script: + +```sh +pnpm --filter @constructive-io/test-sdk codegen +``` + +## Using `npx` + +Once installed, the CLI is available via `npx` in the test-sdk directory: + +```sh +cd apps/test-sdk + +# Both work - the bin name is "graphql-sdk" +npx graphql-sdk --help +npx @constructive-io/graphql-sdk --help +``` + +The `bin.graphql-sdk` field in package.json creates a binary named `graphql-sdk`, so you can use either the bin name directly or the full scoped package name. + +## Troubleshooting + +**Unknown file extension ".ts"** + +If you see: + +``` +Failed to load config file: Unknown file extension ".ts" +``` + +you likely have a stale install of the tarball cached by pnpm. Reinstall the package or clear the cache for the SDK: + +```sh +cd apps/test-sdk +rm -rf node_modules +rm -rf ../../node_modules/.pnpm/@constructive-io+graphql-sdk* +pnpm install +``` + +If you re-pack frequently with the same version, bumping the package version also avoids cache reuse. + +## Resetting to workspace dependency + +To switch back to local development with `workspace:*`: + +```sh +cd apps/test-sdk +pnpm add -D "@constructive-io/graphql-sdk@workspace:*" +rm -rf vendor +``` diff --git a/graphql/codegen/examples/download-schema.ts b/graphql/codegen/examples/download-schema.ts new file mode 100644 index 000000000..a7ce1fbc7 --- /dev/null +++ b/graphql/codegen/examples/download-schema.ts @@ -0,0 +1,77 @@ +#!/usr/bin/env tsx +/** + * Download GraphQL schema via introspection and save to local file. + * + * Usage: + * pnpm -C packages/graphql-sdk exec tsx examples/download-schema.ts + * pnpm -C packages/graphql-sdk exec tsx examples/download-schema.ts --endpoint=http://custom.endpoint/graphql + */ + +import { writeFileSync } from 'node:fs'; +import { join, dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { buildClientSchema, printSchema, getIntrospectionQuery } from 'graphql'; +import { + DB_GRAPHQL_ENDPOINT, + SCHEMA_FILE, + executeGraphQL, +} from './test.config'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); + +async function downloadSchema(endpoint: string): Promise { + console.log(`Fetching schema from: ${endpoint}`); + + const introspectionQuery = getIntrospectionQuery(); + const result = await executeGraphQL<{ __schema: unknown }>( + endpoint, + introspectionQuery + ); + + if (result.errors?.length) { + throw new Error( + `Introspection failed: ${result.errors.map((e) => e.message).join(', ')}` + ); + } + + if (!result.data?.__schema) { + throw new Error('Introspection returned no schema'); + } + + // Build client schema from introspection result + const clientSchema = buildClientSchema( + result.data as ReturnType extends string + ? // eslint-disable-next-line @typescript-eslint/no-explicit-any + any + : never + ); + + // Print to SDL + return printSchema(clientSchema); +} + +async function main() { + // Parse CLI args + const args = process.argv.slice(2); + let endpoint = DB_GRAPHQL_ENDPOINT; + + for (const arg of args) { + if (arg.startsWith('--endpoint=')) { + endpoint = arg.slice('--endpoint='.length); + } + } + + try { + const sdl = await downloadSchema(endpoint); + const outputPath = join(__dirname, SCHEMA_FILE); + + writeFileSync(outputPath, sdl, 'utf-8'); + console.log(`Schema written to: ${outputPath}`); + console.log(`Lines: ${sdl.split('\n').length}`); + } catch (error) { + console.error('Failed to download schema:', error); + process.exit(1); + } +} + +main(); diff --git a/graphql/codegen/examples/test-orm.ts b/graphql/codegen/examples/test-orm.ts new file mode 100644 index 000000000..70af01ed3 --- /dev/null +++ b/graphql/codegen/examples/test-orm.ts @@ -0,0 +1,325 @@ +/** + * Test script for ORM client. + * + * This file exercises the ORM client with TypeScript autocomplete. + * Run with: pnpm -C packages/graphql-sdk exec tsx examples/test-orm.ts + */ + +import { createClient, GraphQLRequestError } from '../output-orm'; +import { DB_GRAPHQL_ENDPOINT, SEED_USER, login } from './test.config'; + +// Create client instance (will be reconfigured after login) +let db = createClient({ endpoint: DB_GRAPHQL_ENDPOINT }); + +// ============================================================================ +// Test Functions +// ============================================================================ + +async function testLogin() { + console.log('========================================'); + console.log('ORM: Login mutation test'); + console.log('========================================'); + + const loginQuery = db.mutation.login( + { input: { email: SEED_USER.email, password: SEED_USER.password } }, + { + select: { + apiToken: { + select: { + totpEnabled: true, + accessToken: true, + expiresAt: true, + } + } + }, + } + ); + + console.log('Generated mutation:'); + console.log(loginQuery.toGraphQL()); + + const result = await loginQuery.execute(); + + if (result.errors) { + console.log('Login errors:', result.errors); + return null; + } + + const token = result.data?.login?.apiToken?.accessToken; + console.log('Login success, token:', token ? `${token.slice(0, 20)}...` : 'null'); + return token; +} + +async function testUsers() { + console.log('========================================'); + console.log('ORM: Users findMany'); + console.log('========================================'); + + const result = await db.user + .findMany({ + select: { id: true, username: true, displayName: true }, + first: 5, + }) + .execute(); + + if (result.errors) { + console.log('Users errors:', result.errors); + } else { + console.log('Total users:', result.data?.users?.totalCount ?? 0); + console.log( + 'Users:', + result.data?.users?.nodes?.map((u) => ({ + username: u.username, + displayName: u.displayName, + })) ?? [] + ); + } +} + +async function testProducts() { + console.log('========================================'); + console.log('ORM: Products findMany'); + console.log('========================================'); + + const result = await db.product + .findMany({ + select: { id: true, name: true, price: true }, + first: 5, + }) + .execute(); + + if (result.errors) { + console.log('Products errors:', result.errors); + } else { + console.log('Total products:', result.data?.products?.totalCount ?? 0); + console.log( + 'Products:', + result.data?.products?.nodes?.slice(0, 3).map((p) => ({ + name: p.name, + price: p.price, + })) ?? [] + ); + } +} + +async function testCategories() { + console.log('========================================'); + console.log('ORM: Categories findMany'); + console.log('========================================'); + + const result = await db.category + .findMany({ + select: { id: true, name: true, slug: true }, + first: 10, + }) + .execute(); + + if (result.errors) { + console.log('Categories errors:', result.errors); + } else { + console.log('Total categories:', result.data?.categories?.totalCount ?? 0); + console.log( + 'Categories:', + result.data?.categories?.nodes?.map((c) => c.name) ?? [] + ); + } +} + +async function testCurrentUser() { + console.log('========================================'); + console.log('ORM: currentUser query'); + console.log('========================================'); + + const result = await db.query + .currentUser({ + select: { id: true, username: true, displayName: true }, + }) + .execute(); + + if (result.errors) { + console.log('currentUser errors:', result.errors); + } else if (result.data?.currentUser) { + console.log('Current user:', { + id: result.data.currentUser.id, + username: result.data.currentUser.username, + displayName: result.data.currentUser.displayName, + }); + } else { + console.log('Current user: Not logged in (null)'); + } +} + +async function testRelations() { + console.log('========================================'); + console.log('ORM: Relations selection'); + console.log('========================================'); + + const ordersQuery = db.order.findMany({ + select: { + id: true, + orderNumber: true, + status: true, + // belongsTo relation + customer: { + select: { id: true, username: true }, + }, + // hasMany relation + orderItems: { + select: { id: true, quantity: true }, + first: 3, + }, + }, + first: 2, + }); + + console.log('Generated query:'); + console.log(ordersQuery.toGraphQL()); + + const result = await ordersQuery.execute(); + + if (result.errors) { + console.log('Orders errors:', result.errors); + } else { + console.log( + 'Orders:', + JSON.stringify(result.data?.orders?.nodes ?? [], null, 2) + ); + } +} + +async function testTypeInference() { + console.log('========================================'); + console.log('ORM: Type inference'); + console.log('========================================'); + + const result = await db.user + .findMany({ + select: { id: true, username: true }, // Only these fields + }) + .execute(); + + if (result.data?.users?.nodes?.[0]) { + const user = result.data.users.nodes[0]; + // TypeScript narrows type to only selected fields + console.log('User ID:', user.id); + console.log('Username:', user.username); + // user.displayName would be a TypeScript error (not selected) + } +} + +async function testErrorHandling() { + console.log('========================================'); + console.log('ORM: Error handling'); + console.log('========================================'); + + // Test discriminated union + const result = await db.user + .findMany({ select: { id: true }, first: 1 }) + .execute(); + + if (result.ok) { + console.log('Success (ok=true):', result.data.users?.nodes?.length, 'users'); + } else { + console.log('Error (ok=false):', result.errors[0]?.message); + } + + // Test unwrap + try { + const data = await db.product + .findMany({ select: { id: true }, first: 1 }) + .unwrap(); + console.log('unwrap() success:', data.products?.nodes?.length, 'products'); + } catch (error) { + if (error instanceof GraphQLRequestError) { + console.log('unwrap() caught:', error.message); + } else { + throw error; + } + } + + // Test unwrapOr + const dataOrDefault = await db.category + .findMany({ select: { id: true }, first: 1 }) + .unwrapOr({ + categories: { + nodes: [], + totalCount: 0, + pageInfo: { hasNextPage: false, hasPreviousPage: false }, + }, + }); + console.log( + 'unwrapOr() result:', + dataOrDefault.categories?.nodes?.length ?? 0, + 'categories' + ); +} + +// ============================================================================ +// Main +// ============================================================================ + +async function main() { + console.log('========================================'); + console.log('ORM Client Test Script'); + console.log(`Endpoint: ${DB_GRAPHQL_ENDPOINT}`); + console.log('========================================\n'); + + // Step 1: Login using shared config helper + console.log('Logging in via config helper...'); + try { + const token = await login(DB_GRAPHQL_ENDPOINT, SEED_USER); + console.log('Login successful\n'); + + // Reconfigure client with auth + db = createClient({ + endpoint: DB_GRAPHQL_ENDPOINT, + headers: { Authorization: `Bearer ${token}` }, + }); + } catch (error) { + console.warn( + 'Config login failed, trying ORM login:', + error instanceof Error ? error.message : error + ); + + // Fallback: try ORM login mutation + const ormToken = await testLogin(); + if (ormToken) { + db = createClient({ + endpoint: DB_GRAPHQL_ENDPOINT, + headers: { Authorization: `Bearer ${ormToken}` }, + }); + } + console.log(''); + } + + // Step 2: Run tests + await testUsers(); + console.log(''); + + await testCurrentUser(); + console.log(''); + + await testProducts(); + console.log(''); + + await testCategories(); + console.log(''); + + await testRelations(); + console.log(''); + + await testTypeInference(); + console.log(''); + + await testErrorHandling(); + console.log(''); + + console.log('========================================'); + console.log('All tests completed'); + console.log('========================================'); +} + +main().catch((error) => { + console.error('test-orm failed:', error); + process.exit(1); +}); diff --git a/graphql/codegen/examples/test-rq.ts b/graphql/codegen/examples/test-rq.ts new file mode 100644 index 000000000..9660d1915 --- /dev/null +++ b/graphql/codegen/examples/test-rq.ts @@ -0,0 +1,207 @@ +/** + * Test script for React Query mode (non-React manual usage). + * + * This file demonstrates the NEW convenience helpers that eliminate manual generic assembly. + * Run with: pnpm -C packages/graphql-sdk exec tsx examples/test-rq.ts + */ + +import { QueryClient } from '@tanstack/react-query'; +import { configure } from '../output-rq/client'; + +// NEW: Import the standalone fetch functions - no generics needed! +import { + fetchUsersQuery, + prefetchUsersQuery, + usersQueryKey, +} from '../output-rq/queries/useUsersQuery'; +import { fetchCurrentUserQuery } from '../output-rq/queries/useCurrentUserQuery'; +import { fetchProductsQuery } from '../output-rq/queries/useProductsQuery'; +import { fetchCategoriesQuery } from '../output-rq/queries/useCategoriesQuery'; + +import { DB_GRAPHQL_ENDPOINT, SEED_USER, login } from './test.config'; + +const queryClient = new QueryClient(); + +// ============================================================================ +// Test Functions - Demonstrating NEW DX +// ============================================================================ + +async function testFetchUsers() { + console.log('========================================'); + console.log('NEW DX: fetchUsersQuery (no generics!)'); + console.log('========================================'); + + // OLD WAY (verbose, requires generics): + // const data = await execute( + // usersQueryDocument, + // { first: 5, orderBy: ['CREATED_AT_DESC'] } + // ); + + // NEW WAY (clean, type-safe, no generics needed): + const data = await fetchUsersQuery({ + first: 5, + orderBy: ['CREATED_AT_DESC'], + }); + + console.log('Total users:', data.users.totalCount); + console.log( + 'First user:', + data.users.nodes[0] + ? { id: data.users.nodes[0].id, username: data.users.nodes[0].username } + : 'none' + ); +} + +async function testPrefetchUsers() { + console.log('========================================'); + console.log('NEW DX: prefetchUsersQuery (SSR-ready)'); + console.log('========================================'); + + // Prefetch for SSR or cache warming - also no generics! + await prefetchUsersQuery(queryClient, { first: 10 }); + + // Data is now in cache, can access via query key + const cachedData = queryClient.getQueryData(usersQueryKey({ first: 10 })); + console.log('Prefetched and cached:', cachedData ? 'yes' : 'no'); +} + +async function testFetchCurrentUser() { + console.log('========================================'); + console.log('NEW DX: fetchCurrentUserQuery'); + console.log('========================================'); + + try { + const data = await fetchCurrentUserQuery(); + + if (data.currentUser) { + console.log('Current user:', { + id: data.currentUser.id, + username: data.currentUser.username, + displayName: data.currentUser.displayName, + }); + } else { + console.log('Current user: Not logged in (null)'); + } + } catch (error) { + // Some schemas may not have full currentUser permissions + console.log( + 'currentUser query failed (permission issue):', + error instanceof Error ? error.message : error + ); + } +} + +async function testFetchProducts() { + console.log('========================================'); + console.log('NEW DX: fetchProductsQuery'); + console.log('========================================'); + + const data = await fetchProductsQuery({ + first: 5, + orderBy: ['NAME_ASC'], + }); + + console.log('Total products:', data.products.totalCount); + console.log( + 'Products:', + data.products.nodes.slice(0, 3).map((p) => ({ name: p.name, price: p.price })) + ); +} + +async function testFetchCategories() { + console.log('========================================'); + console.log('NEW DX: fetchCategoriesQuery'); + console.log('========================================'); + + const data = await fetchCategoriesQuery({ first: 10 }); + + console.log('Total categories:', data.categories.totalCount); + console.log( + 'Categories:', + data.categories.nodes.map((c) => c.name) + ); +} + +async function testWithQueryClient() { + console.log('========================================'); + console.log('With QueryClient.fetchQuery'); + console.log('========================================'); + + // Can still use QueryClient if needed - helpers work great with it too + const data = await queryClient.fetchQuery({ + queryKey: usersQueryKey({ first: 1 }), + queryFn: () => fetchUsersQuery({ first: 1 }), + }); + + console.log( + 'QueryClient result:', + data.users.nodes[0] + ? { id: data.users.nodes[0].id } + : 'none' + ); +} + +// ============================================================================ +// Main +// ============================================================================ + +async function main() { + console.log('========================================'); + console.log('React Query Test Script - NEW DX Demo'); + console.log(`Endpoint: ${DB_GRAPHQL_ENDPOINT}`); + console.log('========================================\n'); + + // Configure client with endpoint + configure({ endpoint: DB_GRAPHQL_ENDPOINT }); + + // Login to get auth token + console.log('Logging in...'); + try { + const token = await login(DB_GRAPHQL_ENDPOINT, SEED_USER); + console.log('Login successful, token obtained\n'); + + // Reconfigure with auth header + configure({ + endpoint: DB_GRAPHQL_ENDPOINT, + headers: { Authorization: `Bearer ${token}` }, + }); + } catch (error) { + console.warn( + 'Login failed (continuing without auth):', + error instanceof Error ? error.message : error + ); + console.log(''); + } + + // Run tests demonstrating NEW DX + await testFetchUsers(); + console.log(''); + + await testPrefetchUsers(); + console.log(''); + + await testFetchCurrentUser(); + console.log(''); + + await testFetchProducts(); + console.log(''); + + await testFetchCategories(); + console.log(''); + + await testWithQueryClient(); + console.log(''); + + console.log('========================================'); + console.log('All tests completed!'); + console.log(''); + console.log('KEY IMPROVEMENT:'); + console.log(' Before: execute(usersQueryDocument, vars)'); + console.log(' After: fetchUsersQuery(vars)'); + console.log('========================================'); +} + +main().catch((error) => { + console.error('test-rq failed:', error); + process.exit(1); +}); diff --git a/graphql/codegen/examples/test.config.ts b/graphql/codegen/examples/test.config.ts new file mode 100644 index 000000000..afe6a8a1f --- /dev/null +++ b/graphql/codegen/examples/test.config.ts @@ -0,0 +1,215 @@ +/** + * Shared test configuration for example scripts. + * + * Endpoints should point to a seeded database created via: + * pnpm --filter admin seed:schema-builder --email= --password= + * + * After seeding, update DB_GRAPHQL_ENDPOINT with the output endpoint URL. + */ + +// ============================================================================ +// Endpoint Configuration +// ============================================================================ + +/** + * GraphQL endpoint for the seeded application database. + * Update this after running the seed script. + */ +export const DB_GRAPHQL_ENDPOINT = + 'http://public-8d3a1ec3.localhost:3000/graphql'; + +// ============================================================================ +// Seed User Credentials +// ============================================================================ + +/** + * Credentials for the seeded admin user. + * These match SEED_USER_EMAIL and SEED_USER_PASSWORD in seed-schema-builder.ts + */ +export const SEED_USER = { + email: 'seeder@gmail.com', + password: 'password1111!@#$', +} as const; + +/** + * Alternative seed user for direct endpoint seeding. + */ +export const SEED_USER_ALT = { + email: 'seederalt@gmail.com', + password: 'password1111!@#$', +} as const; + +// ============================================================================ +// File Paths +// ============================================================================ + +/** + * Path for downloaded schema file (relative to examples/). + */ +export const SCHEMA_FILE = 'test.graphql'; + +// ============================================================================ +// Helper Functions +// ============================================================================ + +/** + * Login mutation document for obtaining auth token. + */ +export const LOGIN_MUTATION = ` + mutation Login($input: LoginInput!) { + login(input: $input) { + apiToken { + accessToken + accessTokenExpiresAt + } + } + } +`; + +/** + * Execute a GraphQL request against an endpoint. + */ +export async function executeGraphQL>( + endpoint: string, + query: string, + variables?: V, + headers?: Record +): Promise<{ data?: T; errors?: Array<{ message: string }> }> { + const response = await fetch(endpoint, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + ...headers, + }, + body: JSON.stringify({ query, variables }), + }); + + return response.json() as Promise<{ + data?: T; + errors?: Array<{ message: string }>; + }>; +} + +/** + * Login and return the access token. + */ +export async function login( + endpoint: string = DB_GRAPHQL_ENDPOINT, + credentials: { email: string; password: string } = SEED_USER +): Promise { + const result = await executeGraphQL<{ + login: { + apiToken: { accessToken: string; accessTokenExpiresAt: string } | null; + }; + }>(endpoint, LOGIN_MUTATION, { input: credentials }); + + if (result.errors?.length) { + throw new Error(`Login failed: ${result.errors[0].message}`); + } + + const token = result.data?.login?.apiToken?.accessToken; + if (!token) { + throw new Error('Login failed: No access token returned'); + } + + return token; +} + +/** + * Introspection query for schema download. + */ +export const INTROSPECTION_QUERY = ` + query IntrospectionQuery { + __schema { + queryType { name } + mutationType { name } + subscriptionType { name } + types { + ...FullType + } + directives { + name + description + locations + args { + ...InputValue + } + } + } + } + + fragment FullType on __Type { + kind + name + description + fields(includeDeprecated: true) { + name + description + args { + ...InputValue + } + type { + ...TypeRef + } + isDeprecated + deprecationReason + } + inputFields { + ...InputValue + } + interfaces { + ...TypeRef + } + enumValues(includeDeprecated: true) { + name + description + isDeprecated + deprecationReason + } + possibleTypes { + ...TypeRef + } + } + + fragment InputValue on __InputValue { + name + description + type { + ...TypeRef + } + defaultValue + } + + fragment TypeRef on __Type { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + } + } + } + } + } + } + } + } +`; diff --git a/graphql/codegen/examples/test.graphql b/graphql/codegen/examples/test.graphql new file mode 100644 index 000000000..ac3a3fdae --- /dev/null +++ b/graphql/codegen/examples/test.graphql @@ -0,0 +1,21744 @@ +"""The root query type which gives access points into the data universe.""" +type Query { + """ + Exposes the root query type nested one level down. This is helpful for Relay 1 + which can only query top level fields if they are in a particular form. + """ + query: Query! + + """Reads and enables pagination through a set of `Category`.""" + categories( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Category`.""" + orderBy: [CategoriesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: CategoryCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: CategoryFilter + ): CategoriesConnection + + """Reads and enables pagination through a set of `CryptoAddress`.""" + cryptoAddresses( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `CryptoAddress`.""" + orderBy: [CryptoAddressesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: CryptoAddressCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: CryptoAddressFilter + ): CryptoAddressesConnection + + """Reads and enables pagination through a set of `Email`.""" + emails( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Email`.""" + orderBy: [EmailsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: EmailCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: EmailFilter + ): EmailsConnection + + """Reads and enables pagination through a set of `OrderItem`.""" + orderItems( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `OrderItem`.""" + orderBy: [OrderItemsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: OrderItemCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: OrderItemFilter + ): OrderItemsConnection + + """Reads and enables pagination through a set of `Order`.""" + orders( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Order`.""" + orderBy: [OrdersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: OrderCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: OrderFilter + ): OrdersConnection + + """Reads and enables pagination through a set of `PhoneNumber`.""" + phoneNumbers( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `PhoneNumber`.""" + orderBy: [PhoneNumbersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: PhoneNumberCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: PhoneNumberFilter + ): PhoneNumbersConnection + + """Reads and enables pagination through a set of `Product`.""" + products( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Product`.""" + orderBy: [ProductsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ProductCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ProductFilter + ): ProductsConnection + + """Reads and enables pagination through a set of `Review`.""" + reviews( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Review`.""" + orderBy: [ReviewsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ReviewCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ReviewFilter + ): ReviewsConnection + + """Reads and enables pagination through a set of `RoleType`.""" + roleTypes( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `RoleType`.""" + orderBy: [RoleTypesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: RoleTypeCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: RoleTypeFilter + ): RoleTypesConnection + + """Reads and enables pagination through a set of `User`.""" + users( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UsersConnection + + """Reads and enables pagination through a set of `AppAdminGrant`.""" + appAdminGrants( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppAdminGrant`.""" + orderBy: [AppAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppAdminGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppAdminGrantFilter + ): AppAdminGrantsConnection + + """Reads and enables pagination through a set of `AppGrant`.""" + appGrants( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppGrant`.""" + orderBy: [AppGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppGrantFilter + ): AppGrantsConnection + + """Reads and enables pagination through a set of `AppMembershipDefault`.""" + appMembershipDefaults( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppMembershipDefault`.""" + orderBy: [AppMembershipDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppMembershipDefaultCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppMembershipDefaultFilter + ): AppMembershipDefaultsConnection + + """Reads and enables pagination through a set of `AppMembership`.""" + appMemberships( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppMembership`.""" + orderBy: [AppMembershipsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppMembershipCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppMembershipFilter + ): AppMembershipsConnection + + """Reads and enables pagination through a set of `AppOwnerGrant`.""" + appOwnerGrants( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppOwnerGrant`.""" + orderBy: [AppOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppOwnerGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppOwnerGrantFilter + ): AppOwnerGrantsConnection + + """Reads and enables pagination through a set of `MembershipAdminGrant`.""" + membershipAdminGrants( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipAdminGrant`.""" + orderBy: [MembershipAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipAdminGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipAdminGrantFilter + ): MembershipAdminGrantsConnection + + """Reads and enables pagination through a set of `MembershipGrant`.""" + membershipGrants( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipGrant`.""" + orderBy: [MembershipGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipGrantFilter + ): MembershipGrantsConnection + + """Reads and enables pagination through a set of `MembershipMember`.""" + membershipMembers( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipMember`.""" + orderBy: [MembershipMembersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipMemberCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipMemberFilter + ): MembershipMembersConnection + + """ + Reads and enables pagination through a set of `MembershipMembershipDefault`. + """ + membershipMembershipDefaults( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipMembershipDefault`.""" + orderBy: [MembershipMembershipDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipMembershipDefaultCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipMembershipDefaultFilter + ): MembershipMembershipDefaultsConnection + + """Reads and enables pagination through a set of `MembershipMembership`.""" + membershipMemberships( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipMembership`.""" + orderBy: [MembershipMembershipsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipMembershipCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipMembershipFilter + ): MembershipMembershipsConnection + + """Reads and enables pagination through a set of `MembershipOwnerGrant`.""" + membershipOwnerGrants( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipOwnerGrant`.""" + orderBy: [MembershipOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipOwnerGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipOwnerGrantFilter + ): MembershipOwnerGrantsConnection + + """Reads and enables pagination through a set of `MembershipType`.""" + membershipTypes( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipType`.""" + orderBy: [MembershipTypesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipTypeCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipTypeFilter + ): MembershipTypesConnection + + """Reads and enables pagination through a set of `AppPermissionDefault`.""" + appPermissionDefaults( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppPermissionDefault`.""" + orderBy: [AppPermissionDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppPermissionDefaultCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppPermissionDefaultFilter + ): AppPermissionDefaultsConnection + + """Reads and enables pagination through a set of `AppPermission`.""" + appPermissions( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppPermission`.""" + orderBy: [AppPermissionsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppPermissionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppPermissionFilter + ): AppPermissionsConnection + + """ + Reads and enables pagination through a set of `MembershipPermissionDefault`. + """ + membershipPermissionDefaults( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipPermissionDefault`.""" + orderBy: [MembershipPermissionDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipPermissionDefaultCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipPermissionDefaultFilter + ): MembershipPermissionDefaultsConnection + + """Reads and enables pagination through a set of `MembershipPermission`.""" + membershipPermissions( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipPermission`.""" + orderBy: [MembershipPermissionsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipPermissionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipPermissionFilter + ): MembershipPermissionsConnection + + """Reads and enables pagination through a set of `AppLimitDefault`.""" + appLimitDefaults( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppLimitDefault`.""" + orderBy: [AppLimitDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppLimitDefaultCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppLimitDefaultFilter + ): AppLimitDefaultsConnection + + """Reads and enables pagination through a set of `AppLimit`.""" + appLimits( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppLimit`.""" + orderBy: [AppLimitsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppLimitCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppLimitFilter + ): AppLimitsConnection + + """ + Reads and enables pagination through a set of `MembershipLimitDefault`. + """ + membershipLimitDefaults( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipLimitDefault`.""" + orderBy: [MembershipLimitDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipLimitDefaultCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipLimitDefaultFilter + ): MembershipLimitDefaultsConnection + + """Reads and enables pagination through a set of `MembershipLimit`.""" + membershipLimits( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipLimit`.""" + orderBy: [MembershipLimitsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipLimitCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipLimitFilter + ): MembershipLimitsConnection + + """Reads and enables pagination through a set of `AppAchievement`.""" + appAchievements( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppAchievement`.""" + orderBy: [AppAchievementsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppAchievementCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppAchievementFilter + ): AppAchievementsConnection + + """Reads and enables pagination through a set of `AppLevelRequirement`.""" + appLevelRequirements( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppLevelRequirement`.""" + orderBy: [AppLevelRequirementsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppLevelRequirementCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppLevelRequirementFilter + ): AppLevelRequirementsConnection + + """Reads and enables pagination through a set of `AppLevel`.""" + appLevels( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppLevel`.""" + orderBy: [AppLevelsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppLevelCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppLevelFilter + ): AppLevelsConnection + + """Reads and enables pagination through a set of `AppStep`.""" + appSteps( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppStep`.""" + orderBy: [AppStepsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppStepCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppStepFilter + ): AppStepsConnection + + """Reads and enables pagination through a set of `ClaimedInvite`.""" + claimedInvites( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `ClaimedInvite`.""" + orderBy: [ClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ClaimedInviteFilter + ): ClaimedInvitesConnection + + """Reads and enables pagination through a set of `Invite`.""" + invites( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Invite`.""" + orderBy: [InvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: InviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: InviteFilter + ): InvitesConnection + + """ + Reads and enables pagination through a set of `MembershipClaimedInvite`. + """ + membershipClaimedInvites( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipClaimedInvite`.""" + orderBy: [MembershipClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipClaimedInviteFilter + ): MembershipClaimedInvitesConnection + + """Reads and enables pagination through a set of `MembershipInvite`.""" + membershipInvites( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipInvite`.""" + orderBy: [MembershipInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipInviteFilter + ): MembershipInvitesConnection + + """Reads and enables pagination through a set of `AuditLog`.""" + auditLogs( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AuditLog`.""" + orderBy: [AuditLogsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AuditLogCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AuditLogFilter + ): AuditLogsConnection + category(id: UUID!): Category + cryptoAddress(id: UUID!): CryptoAddress + cryptoAddressByAddress(address: String!): CryptoAddress + email(id: UUID!): Email + emailByEmail(email: String!): Email + orderItem(id: UUID!): OrderItem + order(id: UUID!): Order + phoneNumber(id: UUID!): PhoneNumber + phoneNumberByNumber(number: String!): PhoneNumber + product(id: UUID!): Product + review(id: UUID!): Review + roleType(id: Int!): RoleType + roleTypeByName(name: String!): RoleType + user(id: UUID!): User + userByUsername(username: String!): User + appAdminGrant(id: UUID!): AppAdminGrant + appGrant(id: UUID!): AppGrant + appMembershipDefault(id: UUID!): AppMembershipDefault + appMembership(id: UUID!): AppMembership + appMembershipByActorId(actorId: UUID!): AppMembership + appOwnerGrant(id: UUID!): AppOwnerGrant + membershipAdminGrant(id: UUID!): MembershipAdminGrant + membershipGrant(id: UUID!): MembershipGrant + membershipMember(id: UUID!): MembershipMember + membershipMemberByActorIdAndEntityId(actorId: UUID!, entityId: UUID!): MembershipMember + membershipMembershipDefault(id: UUID!): MembershipMembershipDefault + membershipMembershipDefaultByEntityId(entityId: UUID!): MembershipMembershipDefault + membershipMembership(id: UUID!): MembershipMembership + membershipMembershipByActorIdAndEntityId(actorId: UUID!, entityId: UUID!): MembershipMembership + membershipOwnerGrant(id: UUID!): MembershipOwnerGrant + membershipType(id: Int!): MembershipType + membershipTypeByName(name: String!): MembershipType + appPermissionDefault(id: UUID!): AppPermissionDefault + appPermission(id: UUID!): AppPermission + appPermissionByName(name: String!): AppPermission + appPermissionByBitnum(bitnum: Int!): AppPermission + membershipPermissionDefault(id: UUID!): MembershipPermissionDefault + membershipPermission(id: UUID!): MembershipPermission + membershipPermissionByName(name: String!): MembershipPermission + membershipPermissionByBitnum(bitnum: Int!): MembershipPermission + appLimitDefault(id: UUID!): AppLimitDefault + appLimitDefaultByName(name: String!): AppLimitDefault + appLimit(id: UUID!): AppLimit + appLimitByNameAndActorId(name: String!, actorId: UUID!): AppLimit + membershipLimitDefault(id: UUID!): MembershipLimitDefault + membershipLimitDefaultByName(name: String!): MembershipLimitDefault + membershipLimit(id: UUID!): MembershipLimit + membershipLimitByNameAndActorIdAndEntityId(name: String!, actorId: UUID!, entityId: UUID!): MembershipLimit + appAchievement(id: UUID!): AppAchievement + appAchievementByActorIdAndName(actorId: UUID!, name: String!): AppAchievement + appLevelRequirement(id: UUID!): AppLevelRequirement + appLevelRequirementByNameAndLevel(name: String!, level: String!): AppLevelRequirement + appLevel(id: UUID!): AppLevel + appLevelByName(name: String!): AppLevel + appStep(id: UUID!): AppStep + claimedInvite(id: UUID!): ClaimedInvite + invite(id: UUID!): Invite + inviteByEmailAndSenderId(email: String!, senderId: UUID!): Invite + inviteByInviteToken(inviteToken: String!): Invite + membershipClaimedInvite(id: UUID!): MembershipClaimedInvite + membershipInvite(id: UUID!): MembershipInvite + membershipInviteByEmailAndSenderIdAndEntityId(email: String!, senderId: UUID!, entityId: UUID!): MembershipInvite + membershipInviteByInviteToken(inviteToken: String!): MembershipInvite + auditLog(id: UUID!): AuditLog + + """Reads and enables pagination through a set of `AppPermission`.""" + appPermissionsGetByMask( + mask: BitString + + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppPermissionFilter + ): AppPermissionsConnection + appPermissionsGetMask(ids: [UUID]): BitString + appPermissionsGetMaskByNames(names: [String]): BitString + appPermissionsGetPaddedMask(mask: BitString): BitString + + """Reads and enables pagination through a set of `MembershipPermission`.""" + membershipPermissionsGetByMask( + mask: BitString + + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipPermissionFilter + ): MembershipPermissionsConnection + membershipPermissionsGetMask(ids: [UUID]): BitString + membershipPermissionsGetMaskByNames(names: [String]): BitString + membershipPermissionsGetPaddedMask(mask: BitString): BitString + stepsAchieved(vlevel: String, vroleId: UUID): Boolean + + """Reads and enables pagination through a set of `AppLevelRequirement`.""" + stepsRequired( + vlevel: String + vroleId: UUID + + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppLevelRequirementFilter + ): AppLevelRequirementsConnection + currentIpAddress: InternetAddress + currentUser: User + currentUserAgent: String + currentUserId: UUID + _meta: Metaschema +} + +"""A connection to a list of `Category` values.""" +type CategoriesConnection { + """A list of `Category` objects.""" + nodes: [Category!]! + + """ + A list of edges which contains the `Category` and cursor to aid in pagination. + """ + edges: [CategoriesEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `Category` you could get from the connection.""" + totalCount: Int! +} + +type Category { + id: UUID! + name: String! + description: String + slug: String! + imageUrl: String + isActive: Boolean + sortOrder: Int + createdAt: Datetime + + """Reads and enables pagination through a set of `Product`.""" + products( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Product`.""" + orderBy: [ProductsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ProductCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ProductFilter + ): ProductsConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByProductCategoryIdAndSellerId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): CategoryUsersByProductCategoryIdAndSellerIdManyToManyConnection! +} + +""" +A universally unique identifier as defined by [RFC 4122](https://tools.ietf.org/html/rfc4122). +""" +scalar UUID + +""" +A point in time as described by the [ISO +8601](https://en.wikipedia.org/wiki/ISO_8601) standard. May or may not include a timezone. +""" +scalar Datetime + +"""A connection to a list of `Product` values.""" +type ProductsConnection { + """A list of `Product` objects.""" + nodes: [Product!]! + + """ + A list of edges which contains the `Product` and cursor to aid in pagination. + """ + edges: [ProductsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `Product` you could get from the connection.""" + totalCount: Int! +} + +type Product { + id: UUID! + name: String! + description: String + price: BigFloat! + compareAtPrice: BigFloat + sku: String + inventoryQuantity: Int + weight: BigFloat + dimensions: String + isActive: Boolean + isFeatured: Boolean + tags: String + imageUrls: String + createdAt: Datetime + updatedAt: Datetime + sellerId: UUID! + categoryId: UUID + + """Reads a single `User` that is related to this `Product`.""" + seller: User + + """Reads a single `Category` that is related to this `Product`.""" + category: Category + + """Reads and enables pagination through a set of `OrderItem`.""" + orderItems( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `OrderItem`.""" + orderBy: [OrderItemsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: OrderItemCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: OrderItemFilter + ): OrderItemsConnection! + + """Reads and enables pagination through a set of `Review`.""" + reviews( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Review`.""" + orderBy: [ReviewsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ReviewCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ReviewFilter + ): ReviewsConnection! + + """Reads and enables pagination through a set of `Order`.""" + ordersByOrderItemProductIdAndOrderId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Order`.""" + orderBy: [OrdersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: OrderCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: OrderFilter + ): ProductOrdersByOrderItemProductIdAndOrderIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByReviewProductIdAndUserId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): ProductUsersByReviewProductIdAndUserIdManyToManyConnection! +} + +""" +A floating point number that requires more precision than IEEE 754 binary 64 +""" +scalar BigFloat + +type User { + id: UUID! + username: String + displayName: String + profilePicture: JSON + searchTsv: FullText + type: Int! + createdAt: Datetime + updatedAt: Datetime + + """Reads a single `RoleType` that is related to this `User`.""" + roleTypeByType: RoleType + + """Reads and enables pagination through a set of `AppLimit`.""" + appLimitsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppLimit`.""" + orderBy: [AppLimitsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppLimitCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppLimitFilter + ): AppLimitsConnection! + + """Reads a single `AppMembership` that is related to this `User`.""" + appMembershipByActorId: AppMembership + + """Reads and enables pagination through a set of `AppAdminGrant`.""" + appAdminGrantsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppAdminGrant`.""" + orderBy: [AppAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppAdminGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppAdminGrantFilter + ): AppAdminGrantsConnection! + + """Reads and enables pagination through a set of `AppAdminGrant`.""" + appAdminGrantsByGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppAdminGrant`.""" + orderBy: [AppAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppAdminGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppAdminGrantFilter + ): AppAdminGrantsConnection! + + """Reads and enables pagination through a set of `AppOwnerGrant`.""" + appOwnerGrantsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppOwnerGrant`.""" + orderBy: [AppOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppOwnerGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppOwnerGrantFilter + ): AppOwnerGrantsConnection! + + """Reads and enables pagination through a set of `AppOwnerGrant`.""" + appOwnerGrantsByGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppOwnerGrant`.""" + orderBy: [AppOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppOwnerGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppOwnerGrantFilter + ): AppOwnerGrantsConnection! + + """Reads and enables pagination through a set of `AppGrant`.""" + appGrantsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppGrant`.""" + orderBy: [AppGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppGrantFilter + ): AppGrantsConnection! + + """Reads and enables pagination through a set of `AppGrant`.""" + appGrantsByGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppGrant`.""" + orderBy: [AppGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppGrantFilter + ): AppGrantsConnection! + + """Reads and enables pagination through a set of `AppStep`.""" + appStepsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppStep`.""" + orderBy: [AppStepsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppStepCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppStepFilter + ): AppStepsConnection! + + """Reads and enables pagination through a set of `AppAchievement`.""" + appAchievementsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppAchievement`.""" + orderBy: [AppAchievementsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppAchievementCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppAchievementFilter + ): AppAchievementsConnection! + + """Reads and enables pagination through a set of `AppLevel`.""" + appLevelsByOwnerId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppLevel`.""" + orderBy: [AppLevelsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppLevelCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppLevelFilter + ): AppLevelsConnection! + + """ + Reads and enables pagination through a set of `MembershipPermissionDefault`. + """ + membershipPermissionDefaultsByEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipPermissionDefault`.""" + orderBy: [MembershipPermissionDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipPermissionDefaultCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipPermissionDefaultFilter + ): MembershipPermissionDefaultsConnection! + + """Reads and enables pagination through a set of `MembershipLimit`.""" + membershipLimitsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipLimit`.""" + orderBy: [MembershipLimitsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipLimitCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipLimitFilter + ): MembershipLimitsConnection! + + """Reads and enables pagination through a set of `MembershipLimit`.""" + membershipLimitsByEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipLimit`.""" + orderBy: [MembershipLimitsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipLimitCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipLimitFilter + ): MembershipLimitsConnection! + + """Reads and enables pagination through a set of `MembershipMembership`.""" + membershipMembershipsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipMembership`.""" + orderBy: [MembershipMembershipsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipMembershipCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipMembershipFilter + ): MembershipMembershipsConnection! + + """Reads and enables pagination through a set of `MembershipMembership`.""" + membershipMembershipsByEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipMembership`.""" + orderBy: [MembershipMembershipsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipMembershipCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipMembershipFilter + ): MembershipMembershipsConnection! + + """ + Reads a single `MembershipMembershipDefault` that is related to this `User`. + """ + membershipMembershipDefaultByEntityId: MembershipMembershipDefault + + """Reads and enables pagination through a set of `MembershipMember`.""" + membershipMembersByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipMember`.""" + orderBy: [MembershipMembersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipMemberCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipMemberFilter + ): MembershipMembersConnection! + + """Reads and enables pagination through a set of `MembershipMember`.""" + membershipMembersByEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipMember`.""" + orderBy: [MembershipMembersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipMemberCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipMemberFilter + ): MembershipMembersConnection! + + """Reads and enables pagination through a set of `MembershipAdminGrant`.""" + membershipAdminGrantsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipAdminGrant`.""" + orderBy: [MembershipAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipAdminGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipAdminGrantFilter + ): MembershipAdminGrantsConnection! + + """Reads and enables pagination through a set of `MembershipAdminGrant`.""" + membershipAdminGrantsByEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipAdminGrant`.""" + orderBy: [MembershipAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipAdminGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipAdminGrantFilter + ): MembershipAdminGrantsConnection! + + """Reads and enables pagination through a set of `MembershipAdminGrant`.""" + membershipAdminGrantsByGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipAdminGrant`.""" + orderBy: [MembershipAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipAdminGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipAdminGrantFilter + ): MembershipAdminGrantsConnection! + + """Reads and enables pagination through a set of `MembershipOwnerGrant`.""" + membershipOwnerGrantsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipOwnerGrant`.""" + orderBy: [MembershipOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipOwnerGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipOwnerGrantFilter + ): MembershipOwnerGrantsConnection! + + """Reads and enables pagination through a set of `MembershipOwnerGrant`.""" + membershipOwnerGrantsByEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipOwnerGrant`.""" + orderBy: [MembershipOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipOwnerGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipOwnerGrantFilter + ): MembershipOwnerGrantsConnection! + + """Reads and enables pagination through a set of `MembershipOwnerGrant`.""" + membershipOwnerGrantsByGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipOwnerGrant`.""" + orderBy: [MembershipOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipOwnerGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipOwnerGrantFilter + ): MembershipOwnerGrantsConnection! + + """Reads and enables pagination through a set of `MembershipGrant`.""" + membershipGrantsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipGrant`.""" + orderBy: [MembershipGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipGrantFilter + ): MembershipGrantsConnection! + + """Reads and enables pagination through a set of `MembershipGrant`.""" + membershipGrantsByEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipGrant`.""" + orderBy: [MembershipGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipGrantFilter + ): MembershipGrantsConnection! + + """Reads and enables pagination through a set of `MembershipGrant`.""" + membershipGrantsByGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipGrant`.""" + orderBy: [MembershipGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipGrantFilter + ): MembershipGrantsConnection! + + """Reads and enables pagination through a set of `Email`.""" + emailsByOwnerId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Email`.""" + orderBy: [EmailsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: EmailCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: EmailFilter + ): EmailsConnection! + + """Reads and enables pagination through a set of `PhoneNumber`.""" + phoneNumbersByOwnerId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `PhoneNumber`.""" + orderBy: [PhoneNumbersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: PhoneNumberCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: PhoneNumberFilter + ): PhoneNumbersConnection! + + """Reads and enables pagination through a set of `CryptoAddress`.""" + cryptoAddressesByOwnerId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `CryptoAddress`.""" + orderBy: [CryptoAddressesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: CryptoAddressCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: CryptoAddressFilter + ): CryptoAddressesConnection! + + """Reads and enables pagination through a set of `Invite`.""" + invitesBySenderId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Invite`.""" + orderBy: [InvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: InviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: InviteFilter + ): InvitesConnection! + + """Reads and enables pagination through a set of `ClaimedInvite`.""" + claimedInvitesBySenderId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `ClaimedInvite`.""" + orderBy: [ClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ClaimedInviteFilter + ): ClaimedInvitesConnection! + + """Reads and enables pagination through a set of `ClaimedInvite`.""" + claimedInvitesByReceiverId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `ClaimedInvite`.""" + orderBy: [ClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ClaimedInviteFilter + ): ClaimedInvitesConnection! + + """Reads and enables pagination through a set of `MembershipInvite`.""" + membershipInvitesBySenderId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipInvite`.""" + orderBy: [MembershipInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipInviteFilter + ): MembershipInvitesConnection! + + """Reads and enables pagination through a set of `MembershipInvite`.""" + membershipInvitesByReceiverId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipInvite`.""" + orderBy: [MembershipInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipInviteFilter + ): MembershipInvitesConnection! + + """Reads and enables pagination through a set of `MembershipInvite`.""" + membershipInvitesByEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipInvite`.""" + orderBy: [MembershipInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipInviteFilter + ): MembershipInvitesConnection! + + """ + Reads and enables pagination through a set of `MembershipClaimedInvite`. + """ + membershipClaimedInvitesBySenderId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipClaimedInvite`.""" + orderBy: [MembershipClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipClaimedInviteFilter + ): MembershipClaimedInvitesConnection! + + """ + Reads and enables pagination through a set of `MembershipClaimedInvite`. + """ + membershipClaimedInvitesByReceiverId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipClaimedInvite`.""" + orderBy: [MembershipClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipClaimedInviteFilter + ): MembershipClaimedInvitesConnection! + + """ + Reads and enables pagination through a set of `MembershipClaimedInvite`. + """ + membershipClaimedInvitesByEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipClaimedInvite`.""" + orderBy: [MembershipClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipClaimedInviteFilter + ): MembershipClaimedInvitesConnection! + + """Reads and enables pagination through a set of `AuditLog`.""" + auditLogsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AuditLog`.""" + orderBy: [AuditLogsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AuditLogCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AuditLogFilter + ): AuditLogsConnection! + + """Reads and enables pagination through a set of `Product`.""" + productsBySellerId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Product`.""" + orderBy: [ProductsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ProductCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ProductFilter + ): ProductsConnection! + + """Reads and enables pagination through a set of `Order`.""" + ordersByCustomerId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Order`.""" + orderBy: [OrdersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: OrderCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: OrderFilter + ): OrdersConnection! + + """Reads and enables pagination through a set of `Review`.""" + reviews( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Review`.""" + orderBy: [ReviewsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ReviewCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ReviewFilter + ): ReviewsConnection! + + """Full-text search ranking when filtered by `searchTsv`.""" + searchTsvRank: Float + + """Reads and enables pagination through a set of `User`.""" + usersByAppAdminGrantActorIdAndGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByAppAdminGrantActorIdAndGrantorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByAppAdminGrantGrantorIdAndActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByAppAdminGrantGrantorIdAndActorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByAppOwnerGrantActorIdAndGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByAppOwnerGrantActorIdAndGrantorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByAppOwnerGrantGrantorIdAndActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByAppOwnerGrantGrantorIdAndActorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByAppGrantActorIdAndGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByAppGrantActorIdAndGrantorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByAppGrantGrantorIdAndActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByAppGrantGrantorIdAndActorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipLimitActorIdAndEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipLimitActorIdAndEntityIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipLimitEntityIdAndActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipLimitEntityIdAndActorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipMembershipActorIdAndEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipMembershipActorIdAndEntityIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipMembershipEntityIdAndActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipMembershipEntityIdAndActorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipMemberActorIdAndEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipMemberActorIdAndEntityIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipMemberEntityIdAndActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipMemberEntityIdAndActorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipAdminGrantActorIdAndEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipAdminGrantActorIdAndEntityIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipAdminGrantActorIdAndGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipAdminGrantActorIdAndGrantorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipAdminGrantEntityIdAndActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipAdminGrantEntityIdAndActorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipAdminGrantEntityIdAndGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipAdminGrantEntityIdAndGrantorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipAdminGrantGrantorIdAndActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipAdminGrantGrantorIdAndActorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipAdminGrantGrantorIdAndEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipAdminGrantGrantorIdAndEntityIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipOwnerGrantActorIdAndEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipOwnerGrantActorIdAndEntityIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipOwnerGrantActorIdAndGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipOwnerGrantActorIdAndGrantorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipOwnerGrantEntityIdAndActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipOwnerGrantEntityIdAndActorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipOwnerGrantEntityIdAndGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipOwnerGrantEntityIdAndGrantorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipOwnerGrantGrantorIdAndActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipOwnerGrantGrantorIdAndActorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipOwnerGrantGrantorIdAndEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipOwnerGrantGrantorIdAndEntityIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipGrantActorIdAndEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipGrantActorIdAndEntityIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipGrantActorIdAndGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipGrantActorIdAndGrantorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipGrantEntityIdAndActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipGrantEntityIdAndActorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipGrantEntityIdAndGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipGrantEntityIdAndGrantorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipGrantGrantorIdAndActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipGrantGrantorIdAndActorIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipGrantGrantorIdAndEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipGrantGrantorIdAndEntityIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByClaimedInviteSenderIdAndReceiverId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByClaimedInviteSenderIdAndReceiverIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByClaimedInviteReceiverIdAndSenderId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByClaimedInviteReceiverIdAndSenderIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipInviteSenderIdAndReceiverId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipInviteSenderIdAndReceiverIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipInviteSenderIdAndEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipInviteSenderIdAndEntityIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipInviteReceiverIdAndSenderId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipInviteReceiverIdAndSenderIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipInviteReceiverIdAndEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipInviteReceiverIdAndEntityIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipInviteEntityIdAndSenderId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipInviteEntityIdAndSenderIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipInviteEntityIdAndReceiverId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipInviteEntityIdAndReceiverIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipClaimedInviteSenderIdAndReceiverId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipClaimedInviteSenderIdAndReceiverIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipClaimedInviteSenderIdAndEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipClaimedInviteSenderIdAndEntityIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipClaimedInviteReceiverIdAndSenderId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipClaimedInviteReceiverIdAndSenderIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipClaimedInviteReceiverIdAndEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipClaimedInviteReceiverIdAndEntityIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipClaimedInviteEntityIdAndSenderId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipClaimedInviteEntityIdAndSenderIdManyToManyConnection! + + """Reads and enables pagination through a set of `User`.""" + usersByMembershipClaimedInviteEntityIdAndReceiverId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UserUsersByMembershipClaimedInviteEntityIdAndReceiverIdManyToManyConnection! + + """Reads and enables pagination through a set of `Category`.""" + categoriesByProductSellerIdAndCategoryId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Category`.""" + orderBy: [CategoriesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: CategoryCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: CategoryFilter + ): UserCategoriesByProductSellerIdAndCategoryIdManyToManyConnection! + + """Reads and enables pagination through a set of `Product`.""" + productsByReviewUserIdAndProductId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Product`.""" + orderBy: [ProductsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ProductCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ProductFilter + ): UserProductsByReviewUserIdAndProductIdManyToManyConnection! +} + +""" +The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). +""" +scalar JSON + +scalar FullText + +type RoleType { + id: Int! + name: String! + + """Reads and enables pagination through a set of `User`.""" + usersByType( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + ): UsersConnection! +} + +"""A connection to a list of `User` values.""" +type UsersConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User` and cursor to aid in pagination. + """ + edges: [UsersEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection.""" +type UsersEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! +} + +"""A location in a connection that can be used for resuming pagination.""" +scalar Cursor + +"""Information about pagination in a connection.""" +type PageInfo { + """When paginating forwards, are there more items?""" + hasNextPage: Boolean! + + """When paginating backwards, are there more items?""" + hasPreviousPage: Boolean! + + """When paginating backwards, the cursor to continue.""" + startCursor: Cursor + + """When paginating forwards, the cursor to continue.""" + endCursor: Cursor +} + +"""Methods to use when ordering `User`.""" +enum UsersOrderBy { + NATURAL + ID_ASC + ID_DESC + USERNAME_ASC + USERNAME_DESC + DISPLAY_NAME_ASC + DISPLAY_NAME_DESC + PROFILE_PICTURE_ASC + PROFILE_PICTURE_DESC + SEARCH_TSV_ASC + SEARCH_TSV_DESC + TYPE_ASC + TYPE_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + SEARCH_TSV_RANK_ASC + SEARCH_TSV_RANK_DESC +} + +""" +A condition to be used against `User` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input UserCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `username` field.""" + username: String + + """Checks for equality with the object’s `displayName` field.""" + displayName: String + + """Checks for equality with the object’s `profilePicture` field.""" + profilePicture: JSON + + """Checks for equality with the object’s `searchTsv` field.""" + searchTsv: FullText + + """Checks for equality with the object’s `type` field.""" + type: Int + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime + tsvSearchTsv: String +} + +""" +A filter to be used against `User` object types. All fields are combined with a logical ‘and.’ +""" +input UserFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `username` field.""" + username: StringFilter + + """Filter by the object’s `displayName` field.""" + displayName: StringFilter + + """Filter by the object’s `profilePicture` field.""" + profilePicture: JSONFilter + + """Filter by the object’s `searchTsv` field.""" + searchTsv: FullTextFilter + + """Filter by the object’s `type` field.""" + type: IntFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Checks for all expressions in this list.""" + and: [UserFilter!] + + """Checks for any expressions in this list.""" + or: [UserFilter!] + + """Negates the expression.""" + not: UserFilter +} + +""" +A filter to be used against UUID fields. All fields are combined with a logical ‘and.’ +""" +input UUIDFilter { + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """Equal to the specified value.""" + equalTo: UUID + + """Not equal to the specified value.""" + notEqualTo: UUID + + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: UUID + + """Equal to the specified value, treating null like an ordinary value.""" + notDistinctFrom: UUID + + """Included in the specified list.""" + in: [UUID!] + + """Not included in the specified list.""" + notIn: [UUID!] + + """Less than the specified value.""" + lessThan: UUID + + """Less than or equal to the specified value.""" + lessThanOrEqualTo: UUID + + """Greater than the specified value.""" + greaterThan: UUID + + """Greater than or equal to the specified value.""" + greaterThanOrEqualTo: UUID +} + +""" +A filter to be used against String fields. All fields are combined with a logical ‘and.’ +""" +input StringFilter { + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """Equal to the specified value.""" + equalTo: String + + """Not equal to the specified value.""" + notEqualTo: String + + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: String + + """Equal to the specified value, treating null like an ordinary value.""" + notDistinctFrom: String + + """Included in the specified list.""" + in: [String!] + + """Not included in the specified list.""" + notIn: [String!] + + """Less than the specified value.""" + lessThan: String + + """Less than or equal to the specified value.""" + lessThanOrEqualTo: String + + """Greater than the specified value.""" + greaterThan: String + + """Greater than or equal to the specified value.""" + greaterThanOrEqualTo: String + + """Contains the specified string (case-sensitive).""" + includes: String + + """Does not contain the specified string (case-sensitive).""" + notIncludes: String + + """Contains the specified string (case-insensitive).""" + includesInsensitive: String + + """Does not contain the specified string (case-insensitive).""" + notIncludesInsensitive: String + + """Starts with the specified string (case-sensitive).""" + startsWith: String + + """Does not start with the specified string (case-sensitive).""" + notStartsWith: String + + """Starts with the specified string (case-insensitive).""" + startsWithInsensitive: String + + """Does not start with the specified string (case-insensitive).""" + notStartsWithInsensitive: String + + """Ends with the specified string (case-sensitive).""" + endsWith: String + + """Does not end with the specified string (case-sensitive).""" + notEndsWith: String + + """Ends with the specified string (case-insensitive).""" + endsWithInsensitive: String + + """Does not end with the specified string (case-insensitive).""" + notEndsWithInsensitive: String + + """ + Matches the specified pattern (case-sensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters. + """ + like: String + + """ + Does not match the specified pattern (case-sensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters. + """ + notLike: String + + """ + Matches the specified pattern (case-insensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters. + """ + likeInsensitive: String + + """ + Does not match the specified pattern (case-insensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters. + """ + notLikeInsensitive: String + + """Equal to the specified value (case-insensitive).""" + equalToInsensitive: String + + """Not equal to the specified value (case-insensitive).""" + notEqualToInsensitive: String + + """ + Not equal to the specified value, treating null like an ordinary value (case-insensitive). + """ + distinctFromInsensitive: String + + """ + Equal to the specified value, treating null like an ordinary value (case-insensitive). + """ + notDistinctFromInsensitive: String + + """Included in the specified list (case-insensitive).""" + inInsensitive: [String!] + + """Not included in the specified list (case-insensitive).""" + notInInsensitive: [String!] + + """Less than the specified value (case-insensitive).""" + lessThanInsensitive: String + + """Less than or equal to the specified value (case-insensitive).""" + lessThanOrEqualToInsensitive: String + + """Greater than the specified value (case-insensitive).""" + greaterThanInsensitive: String + + """Greater than or equal to the specified value (case-insensitive).""" + greaterThanOrEqualToInsensitive: String +} + +""" +A filter to be used against JSON fields. All fields are combined with a logical ‘and.’ +""" +input JSONFilter { + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """Equal to the specified value.""" + equalTo: JSON + + """Not equal to the specified value.""" + notEqualTo: JSON + + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: JSON + + """Equal to the specified value, treating null like an ordinary value.""" + notDistinctFrom: JSON + + """Included in the specified list.""" + in: [JSON!] + + """Not included in the specified list.""" + notIn: [JSON!] + + """Less than the specified value.""" + lessThan: JSON + + """Less than or equal to the specified value.""" + lessThanOrEqualTo: JSON + + """Greater than the specified value.""" + greaterThan: JSON + + """Greater than or equal to the specified value.""" + greaterThanOrEqualTo: JSON + + """Contains the specified JSON.""" + contains: JSON + + """Contains the specified key.""" + containsKey: String + + """Contains all of the specified keys.""" + containsAllKeys: [String!] + + """Contains any of the specified keys.""" + containsAnyKeys: [String!] + + """Contained by the specified JSON.""" + containedBy: JSON +} + +""" +A filter to be used against FullText fields. All fields are combined with a logical ‘and.’ +""" +input FullTextFilter { + """Performs a full text search on the field.""" + matches: String +} + +""" +A filter to be used against Int fields. All fields are combined with a logical ‘and.’ +""" +input IntFilter { + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """Equal to the specified value.""" + equalTo: Int + + """Not equal to the specified value.""" + notEqualTo: Int + + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: Int + + """Equal to the specified value, treating null like an ordinary value.""" + notDistinctFrom: Int + + """Included in the specified list.""" + in: [Int!] + + """Not included in the specified list.""" + notIn: [Int!] + + """Less than the specified value.""" + lessThan: Int + + """Less than or equal to the specified value.""" + lessThanOrEqualTo: Int + + """Greater than the specified value.""" + greaterThan: Int + + """Greater than or equal to the specified value.""" + greaterThanOrEqualTo: Int +} + +""" +A filter to be used against Datetime fields. All fields are combined with a logical ‘and.’ +""" +input DatetimeFilter { + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """Equal to the specified value.""" + equalTo: Datetime + + """Not equal to the specified value.""" + notEqualTo: Datetime + + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: Datetime + + """Equal to the specified value, treating null like an ordinary value.""" + notDistinctFrom: Datetime + + """Included in the specified list.""" + in: [Datetime!] + + """Not included in the specified list.""" + notIn: [Datetime!] + + """Less than the specified value.""" + lessThan: Datetime + + """Less than or equal to the specified value.""" + lessThanOrEqualTo: Datetime + + """Greater than the specified value.""" + greaterThan: Datetime + + """Greater than or equal to the specified value.""" + greaterThanOrEqualTo: Datetime +} + +"""A connection to a list of `AppLimit` values.""" +type AppLimitsConnection { + """A list of `AppLimit` objects.""" + nodes: [AppLimit!]! + + """ + A list of edges which contains the `AppLimit` and cursor to aid in pagination. + """ + edges: [AppLimitsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `AppLimit` you could get from the connection.""" + totalCount: Int! +} + +type AppLimit { + id: UUID! + name: String + actorId: UUID! + num: Int + max: Int + + """Reads a single `User` that is related to this `AppLimit`.""" + actor: User +} + +"""A `AppLimit` edge in the connection.""" +type AppLimitsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `AppLimit` at the end of the edge.""" + node: AppLimit! +} + +"""Methods to use when ordering `AppLimit`.""" +enum AppLimitsOrderBy { + NATURAL + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + ACTOR_ID_ASC + ACTOR_ID_DESC + NUM_ASC + NUM_DESC + MAX_ASC + MAX_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `AppLimit` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input AppLimitCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `name` field.""" + name: String + + """Checks for equality with the object’s `actorId` field.""" + actorId: UUID + + """Checks for equality with the object’s `num` field.""" + num: Int + + """Checks for equality with the object’s `max` field.""" + max: Int +} + +""" +A filter to be used against `AppLimit` object types. All fields are combined with a logical ‘and.’ +""" +input AppLimitFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `name` field.""" + name: StringFilter + + """Filter by the object’s `actorId` field.""" + actorId: UUIDFilter + + """Filter by the object’s `num` field.""" + num: IntFilter + + """Filter by the object’s `max` field.""" + max: IntFilter + + """Checks for all expressions in this list.""" + and: [AppLimitFilter!] + + """Checks for any expressions in this list.""" + or: [AppLimitFilter!] + + """Negates the expression.""" + not: AppLimitFilter +} + +type AppMembership { + id: UUID! + createdAt: Datetime + updatedAt: Datetime + createdBy: UUID + updatedBy: UUID + isApproved: Boolean! + isBanned: Boolean! + isDisabled: Boolean! + isVerified: Boolean! + isActive: Boolean! + isOwner: Boolean! + isAdmin: Boolean! + permissions: BitString! + granted: BitString! + actorId: UUID! + + """Reads a single `User` that is related to this `AppMembership`.""" + actor: User +} + +"""A string representing a series of binary bits""" +scalar BitString + +"""A connection to a list of `AppAdminGrant` values.""" +type AppAdminGrantsConnection { + """A list of `AppAdminGrant` objects.""" + nodes: [AppAdminGrant!]! + + """ + A list of edges which contains the `AppAdminGrant` and cursor to aid in pagination. + """ + edges: [AppAdminGrantsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `AppAdminGrant` you could get from the connection.""" + totalCount: Int! +} + +type AppAdminGrant { + id: UUID! + isGrant: Boolean! + actorId: UUID! + grantorId: UUID + createdAt: Datetime + updatedAt: Datetime + + """Reads a single `User` that is related to this `AppAdminGrant`.""" + actor: User + + """Reads a single `User` that is related to this `AppAdminGrant`.""" + grantor: User +} + +"""A `AppAdminGrant` edge in the connection.""" +type AppAdminGrantsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `AppAdminGrant` at the end of the edge.""" + node: AppAdminGrant! +} + +"""Methods to use when ordering `AppAdminGrant`.""" +enum AppAdminGrantsOrderBy { + NATURAL + ID_ASC + ID_DESC + IS_GRANT_ASC + IS_GRANT_DESC + ACTOR_ID_ASC + ACTOR_ID_DESC + GRANTOR_ID_ASC + GRANTOR_ID_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `AppAdminGrant` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input AppAdminGrantCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `isGrant` field.""" + isGrant: Boolean + + """Checks for equality with the object’s `actorId` field.""" + actorId: UUID + + """Checks for equality with the object’s `grantorId` field.""" + grantorId: UUID + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime +} + +""" +A filter to be used against `AppAdminGrant` object types. All fields are combined with a logical ‘and.’ +""" +input AppAdminGrantFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `isGrant` field.""" + isGrant: BooleanFilter + + """Filter by the object’s `actorId` field.""" + actorId: UUIDFilter + + """Filter by the object’s `grantorId` field.""" + grantorId: UUIDFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Checks for all expressions in this list.""" + and: [AppAdminGrantFilter!] + + """Checks for any expressions in this list.""" + or: [AppAdminGrantFilter!] + + """Negates the expression.""" + not: AppAdminGrantFilter +} + +""" +A filter to be used against Boolean fields. All fields are combined with a logical ‘and.’ +""" +input BooleanFilter { + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """Equal to the specified value.""" + equalTo: Boolean + + """Not equal to the specified value.""" + notEqualTo: Boolean + + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: Boolean + + """Equal to the specified value, treating null like an ordinary value.""" + notDistinctFrom: Boolean + + """Included in the specified list.""" + in: [Boolean!] + + """Not included in the specified list.""" + notIn: [Boolean!] + + """Less than the specified value.""" + lessThan: Boolean + + """Less than or equal to the specified value.""" + lessThanOrEqualTo: Boolean + + """Greater than the specified value.""" + greaterThan: Boolean + + """Greater than or equal to the specified value.""" + greaterThanOrEqualTo: Boolean +} + +"""A connection to a list of `AppOwnerGrant` values.""" +type AppOwnerGrantsConnection { + """A list of `AppOwnerGrant` objects.""" + nodes: [AppOwnerGrant!]! + + """ + A list of edges which contains the `AppOwnerGrant` and cursor to aid in pagination. + """ + edges: [AppOwnerGrantsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `AppOwnerGrant` you could get from the connection.""" + totalCount: Int! +} + +type AppOwnerGrant { + id: UUID! + isGrant: Boolean! + actorId: UUID! + grantorId: UUID + createdAt: Datetime + updatedAt: Datetime + + """Reads a single `User` that is related to this `AppOwnerGrant`.""" + actor: User + + """Reads a single `User` that is related to this `AppOwnerGrant`.""" + grantor: User +} + +"""A `AppOwnerGrant` edge in the connection.""" +type AppOwnerGrantsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `AppOwnerGrant` at the end of the edge.""" + node: AppOwnerGrant! +} + +"""Methods to use when ordering `AppOwnerGrant`.""" +enum AppOwnerGrantsOrderBy { + NATURAL + ID_ASC + ID_DESC + IS_GRANT_ASC + IS_GRANT_DESC + ACTOR_ID_ASC + ACTOR_ID_DESC + GRANTOR_ID_ASC + GRANTOR_ID_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `AppOwnerGrant` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input AppOwnerGrantCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `isGrant` field.""" + isGrant: Boolean + + """Checks for equality with the object’s `actorId` field.""" + actorId: UUID + + """Checks for equality with the object’s `grantorId` field.""" + grantorId: UUID + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime +} + +""" +A filter to be used against `AppOwnerGrant` object types. All fields are combined with a logical ‘and.’ +""" +input AppOwnerGrantFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `isGrant` field.""" + isGrant: BooleanFilter + + """Filter by the object’s `actorId` field.""" + actorId: UUIDFilter + + """Filter by the object’s `grantorId` field.""" + grantorId: UUIDFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Checks for all expressions in this list.""" + and: [AppOwnerGrantFilter!] + + """Checks for any expressions in this list.""" + or: [AppOwnerGrantFilter!] + + """Negates the expression.""" + not: AppOwnerGrantFilter +} + +"""A connection to a list of `AppGrant` values.""" +type AppGrantsConnection { + """A list of `AppGrant` objects.""" + nodes: [AppGrant!]! + + """ + A list of edges which contains the `AppGrant` and cursor to aid in pagination. + """ + edges: [AppGrantsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `AppGrant` you could get from the connection.""" + totalCount: Int! +} + +type AppGrant { + id: UUID! + permissions: BitString! + isGrant: Boolean! + actorId: UUID! + grantorId: UUID + createdAt: Datetime + updatedAt: Datetime + + """Reads a single `User` that is related to this `AppGrant`.""" + actor: User + + """Reads a single `User` that is related to this `AppGrant`.""" + grantor: User +} + +"""A `AppGrant` edge in the connection.""" +type AppGrantsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `AppGrant` at the end of the edge.""" + node: AppGrant! +} + +"""Methods to use when ordering `AppGrant`.""" +enum AppGrantsOrderBy { + NATURAL + ID_ASC + ID_DESC + PERMISSIONS_ASC + PERMISSIONS_DESC + IS_GRANT_ASC + IS_GRANT_DESC + ACTOR_ID_ASC + ACTOR_ID_DESC + GRANTOR_ID_ASC + GRANTOR_ID_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `AppGrant` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input AppGrantCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `permissions` field.""" + permissions: BitString + + """Checks for equality with the object’s `isGrant` field.""" + isGrant: Boolean + + """Checks for equality with the object’s `actorId` field.""" + actorId: UUID + + """Checks for equality with the object’s `grantorId` field.""" + grantorId: UUID + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime +} + +""" +A filter to be used against `AppGrant` object types. All fields are combined with a logical ‘and.’ +""" +input AppGrantFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `permissions` field.""" + permissions: BitStringFilter + + """Filter by the object’s `isGrant` field.""" + isGrant: BooleanFilter + + """Filter by the object’s `actorId` field.""" + actorId: UUIDFilter + + """Filter by the object’s `grantorId` field.""" + grantorId: UUIDFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Checks for all expressions in this list.""" + and: [AppGrantFilter!] + + """Checks for any expressions in this list.""" + or: [AppGrantFilter!] + + """Negates the expression.""" + not: AppGrantFilter +} + +""" +A filter to be used against BitString fields. All fields are combined with a logical ‘and.’ +""" +input BitStringFilter { + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """Equal to the specified value.""" + equalTo: BitString + + """Not equal to the specified value.""" + notEqualTo: BitString + + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: BitString + + """Equal to the specified value, treating null like an ordinary value.""" + notDistinctFrom: BitString + + """Included in the specified list.""" + in: [BitString!] + + """Not included in the specified list.""" + notIn: [BitString!] + + """Less than the specified value.""" + lessThan: BitString + + """Less than or equal to the specified value.""" + lessThanOrEqualTo: BitString + + """Greater than the specified value.""" + greaterThan: BitString + + """Greater than or equal to the specified value.""" + greaterThanOrEqualTo: BitString +} + +"""A connection to a list of `AppStep` values.""" +type AppStepsConnection { + """A list of `AppStep` objects.""" + nodes: [AppStep!]! + + """ + A list of edges which contains the `AppStep` and cursor to aid in pagination. + """ + edges: [AppStepsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `AppStep` you could get from the connection.""" + totalCount: Int! +} + +""" +The user achieving a requirement for a level. Log table that has every single step ever taken. +""" +type AppStep { + id: UUID! + actorId: UUID! + name: String! + count: Int! + createdAt: Datetime + updatedAt: Datetime + + """Reads a single `User` that is related to this `AppStep`.""" + actor: User +} + +"""A `AppStep` edge in the connection.""" +type AppStepsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `AppStep` at the end of the edge.""" + node: AppStep! +} + +"""Methods to use when ordering `AppStep`.""" +enum AppStepsOrderBy { + NATURAL + ID_ASC + ID_DESC + ACTOR_ID_ASC + ACTOR_ID_DESC + NAME_ASC + NAME_DESC + COUNT_ASC + COUNT_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `AppStep` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input AppStepCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `actorId` field.""" + actorId: UUID + + """Checks for equality with the object’s `name` field.""" + name: String + + """Checks for equality with the object’s `count` field.""" + count: Int + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime +} + +""" +A filter to be used against `AppStep` object types. All fields are combined with a logical ‘and.’ +""" +input AppStepFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `actorId` field.""" + actorId: UUIDFilter + + """Filter by the object’s `name` field.""" + name: StringFilter + + """Filter by the object’s `count` field.""" + count: IntFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Checks for all expressions in this list.""" + and: [AppStepFilter!] + + """Checks for any expressions in this list.""" + or: [AppStepFilter!] + + """Negates the expression.""" + not: AppStepFilter +} + +"""A connection to a list of `AppAchievement` values.""" +type AppAchievementsConnection { + """A list of `AppAchievement` objects.""" + nodes: [AppAchievement!]! + + """ + A list of edges which contains the `AppAchievement` and cursor to aid in pagination. + """ + edges: [AppAchievementsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `AppAchievement` you could get from the connection.""" + totalCount: Int! +} + +""" +This table represents the users progress for particular level requirements, tallying the total count. This table is updated via triggers and should not be updated maually. +""" +type AppAchievement { + id: UUID! + actorId: UUID! + name: String! + count: Int! + createdAt: Datetime + updatedAt: Datetime + + """Reads a single `User` that is related to this `AppAchievement`.""" + actor: User +} + +"""A `AppAchievement` edge in the connection.""" +type AppAchievementsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `AppAchievement` at the end of the edge.""" + node: AppAchievement! +} + +"""Methods to use when ordering `AppAchievement`.""" +enum AppAchievementsOrderBy { + NATURAL + ID_ASC + ID_DESC + ACTOR_ID_ASC + ACTOR_ID_DESC + NAME_ASC + NAME_DESC + COUNT_ASC + COUNT_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `AppAchievement` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input AppAchievementCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `actorId` field.""" + actorId: UUID + + """Checks for equality with the object’s `name` field.""" + name: String + + """Checks for equality with the object’s `count` field.""" + count: Int + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime +} + +""" +A filter to be used against `AppAchievement` object types. All fields are combined with a logical ‘and.’ +""" +input AppAchievementFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `actorId` field.""" + actorId: UUIDFilter + + """Filter by the object’s `name` field.""" + name: StringFilter + + """Filter by the object’s `count` field.""" + count: IntFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Checks for all expressions in this list.""" + and: [AppAchievementFilter!] + + """Checks for any expressions in this list.""" + or: [AppAchievementFilter!] + + """Negates the expression.""" + not: AppAchievementFilter +} + +"""A connection to a list of `AppLevel` values.""" +type AppLevelsConnection { + """A list of `AppLevel` objects.""" + nodes: [AppLevel!]! + + """ + A list of edges which contains the `AppLevel` and cursor to aid in pagination. + """ + edges: [AppLevelsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `AppLevel` you could get from the connection.""" + totalCount: Int! +} + +"""Levels for achievement""" +type AppLevel { + id: UUID! + name: String! + description: String + image: JSON + ownerId: UUID + createdAt: Datetime + updatedAt: Datetime + + """Reads a single `User` that is related to this `AppLevel`.""" + owner: User +} + +"""A `AppLevel` edge in the connection.""" +type AppLevelsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `AppLevel` at the end of the edge.""" + node: AppLevel! +} + +"""Methods to use when ordering `AppLevel`.""" +enum AppLevelsOrderBy { + NATURAL + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + DESCRIPTION_ASC + DESCRIPTION_DESC + IMAGE_ASC + IMAGE_DESC + OWNER_ID_ASC + OWNER_ID_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `AppLevel` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input AppLevelCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `name` field.""" + name: String + + """Checks for equality with the object’s `description` field.""" + description: String + + """Checks for equality with the object’s `image` field.""" + image: JSON + + """Checks for equality with the object’s `ownerId` field.""" + ownerId: UUID + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime +} + +""" +A filter to be used against `AppLevel` object types. All fields are combined with a logical ‘and.’ +""" +input AppLevelFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `name` field.""" + name: StringFilter + + """Filter by the object’s `description` field.""" + description: StringFilter + + """Filter by the object’s `image` field.""" + image: JSONFilter + + """Filter by the object’s `ownerId` field.""" + ownerId: UUIDFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Checks for all expressions in this list.""" + and: [AppLevelFilter!] + + """Checks for any expressions in this list.""" + or: [AppLevelFilter!] + + """Negates the expression.""" + not: AppLevelFilter +} + +"""A connection to a list of `MembershipPermissionDefault` values.""" +type MembershipPermissionDefaultsConnection { + """A list of `MembershipPermissionDefault` objects.""" + nodes: [MembershipPermissionDefault!]! + + """ + A list of edges which contains the `MembershipPermissionDefault` and cursor to aid in pagination. + """ + edges: [MembershipPermissionDefaultsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """ + The count of *all* `MembershipPermissionDefault` you could get from the connection. + """ + totalCount: Int! +} + +type MembershipPermissionDefault { + id: UUID! + permissions: BitString! + entityId: UUID! + + """ + Reads a single `User` that is related to this `MembershipPermissionDefault`. + """ + entity: User +} + +"""A `MembershipPermissionDefault` edge in the connection.""" +type MembershipPermissionDefaultsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `MembershipPermissionDefault` at the end of the edge.""" + node: MembershipPermissionDefault! +} + +"""Methods to use when ordering `MembershipPermissionDefault`.""" +enum MembershipPermissionDefaultsOrderBy { + NATURAL + ID_ASC + ID_DESC + PERMISSIONS_ASC + PERMISSIONS_DESC + ENTITY_ID_ASC + ENTITY_ID_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `MembershipPermissionDefault` object types. All +fields are tested for equality and combined with a logical ‘and.’ +""" +input MembershipPermissionDefaultCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `permissions` field.""" + permissions: BitString + + """Checks for equality with the object’s `entityId` field.""" + entityId: UUID +} + +""" +A filter to be used against `MembershipPermissionDefault` object types. All fields are combined with a logical ‘and.’ +""" +input MembershipPermissionDefaultFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `permissions` field.""" + permissions: BitStringFilter + + """Filter by the object’s `entityId` field.""" + entityId: UUIDFilter + + """Checks for all expressions in this list.""" + and: [MembershipPermissionDefaultFilter!] + + """Checks for any expressions in this list.""" + or: [MembershipPermissionDefaultFilter!] + + """Negates the expression.""" + not: MembershipPermissionDefaultFilter +} + +"""A connection to a list of `MembershipLimit` values.""" +type MembershipLimitsConnection { + """A list of `MembershipLimit` objects.""" + nodes: [MembershipLimit!]! + + """ + A list of edges which contains the `MembershipLimit` and cursor to aid in pagination. + """ + edges: [MembershipLimitsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """ + The count of *all* `MembershipLimit` you could get from the connection. + """ + totalCount: Int! +} + +type MembershipLimit { + id: UUID! + name: String + actorId: UUID! + num: Int + max: Int + entityId: UUID! + + """Reads a single `User` that is related to this `MembershipLimit`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipLimit`.""" + entity: User +} + +"""A `MembershipLimit` edge in the connection.""" +type MembershipLimitsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `MembershipLimit` at the end of the edge.""" + node: MembershipLimit! +} + +"""Methods to use when ordering `MembershipLimit`.""" +enum MembershipLimitsOrderBy { + NATURAL + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + ACTOR_ID_ASC + ACTOR_ID_DESC + NUM_ASC + NUM_DESC + MAX_ASC + MAX_DESC + ENTITY_ID_ASC + ENTITY_ID_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `MembershipLimit` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input MembershipLimitCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `name` field.""" + name: String + + """Checks for equality with the object’s `actorId` field.""" + actorId: UUID + + """Checks for equality with the object’s `num` field.""" + num: Int + + """Checks for equality with the object’s `max` field.""" + max: Int + + """Checks for equality with the object’s `entityId` field.""" + entityId: UUID +} + +""" +A filter to be used against `MembershipLimit` object types. All fields are combined with a logical ‘and.’ +""" +input MembershipLimitFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `name` field.""" + name: StringFilter + + """Filter by the object’s `actorId` field.""" + actorId: UUIDFilter + + """Filter by the object’s `num` field.""" + num: IntFilter + + """Filter by the object’s `max` field.""" + max: IntFilter + + """Filter by the object’s `entityId` field.""" + entityId: UUIDFilter + + """Checks for all expressions in this list.""" + and: [MembershipLimitFilter!] + + """Checks for any expressions in this list.""" + or: [MembershipLimitFilter!] + + """Negates the expression.""" + not: MembershipLimitFilter +} + +"""A connection to a list of `MembershipMembership` values.""" +type MembershipMembershipsConnection { + """A list of `MembershipMembership` objects.""" + nodes: [MembershipMembership!]! + + """ + A list of edges which contains the `MembershipMembership` and cursor to aid in pagination. + """ + edges: [MembershipMembershipsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """ + The count of *all* `MembershipMembership` you could get from the connection. + """ + totalCount: Int! +} + +type MembershipMembership { + id: UUID! + createdAt: Datetime + updatedAt: Datetime + createdBy: UUID + updatedBy: UUID + isApproved: Boolean! + isBanned: Boolean! + isDisabled: Boolean! + isActive: Boolean! + isOwner: Boolean! + isAdmin: Boolean! + permissions: BitString! + granted: BitString! + actorId: UUID! + entityId: UUID! + + """Reads a single `User` that is related to this `MembershipMembership`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipMembership`.""" + entity: User +} + +"""A `MembershipMembership` edge in the connection.""" +type MembershipMembershipsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `MembershipMembership` at the end of the edge.""" + node: MembershipMembership! +} + +"""Methods to use when ordering `MembershipMembership`.""" +enum MembershipMembershipsOrderBy { + NATURAL + ID_ASC + ID_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + CREATED_BY_ASC + CREATED_BY_DESC + UPDATED_BY_ASC + UPDATED_BY_DESC + IS_APPROVED_ASC + IS_APPROVED_DESC + IS_BANNED_ASC + IS_BANNED_DESC + IS_DISABLED_ASC + IS_DISABLED_DESC + IS_ACTIVE_ASC + IS_ACTIVE_DESC + IS_OWNER_ASC + IS_OWNER_DESC + IS_ADMIN_ASC + IS_ADMIN_DESC + PERMISSIONS_ASC + PERMISSIONS_DESC + GRANTED_ASC + GRANTED_DESC + ACTOR_ID_ASC + ACTOR_ID_DESC + ENTITY_ID_ASC + ENTITY_ID_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `MembershipMembership` object types. All fields +are tested for equality and combined with a logical ‘and.’ +""" +input MembershipMembershipCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime + + """Checks for equality with the object’s `createdBy` field.""" + createdBy: UUID + + """Checks for equality with the object’s `updatedBy` field.""" + updatedBy: UUID + + """Checks for equality with the object’s `isApproved` field.""" + isApproved: Boolean + + """Checks for equality with the object’s `isBanned` field.""" + isBanned: Boolean + + """Checks for equality with the object’s `isDisabled` field.""" + isDisabled: Boolean + + """Checks for equality with the object’s `isActive` field.""" + isActive: Boolean + + """Checks for equality with the object’s `isOwner` field.""" + isOwner: Boolean + + """Checks for equality with the object’s `isAdmin` field.""" + isAdmin: Boolean + + """Checks for equality with the object’s `permissions` field.""" + permissions: BitString + + """Checks for equality with the object’s `granted` field.""" + granted: BitString + + """Checks for equality with the object’s `actorId` field.""" + actorId: UUID + + """Checks for equality with the object’s `entityId` field.""" + entityId: UUID +} + +""" +A filter to be used against `MembershipMembership` object types. All fields are combined with a logical ‘and.’ +""" +input MembershipMembershipFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Filter by the object’s `createdBy` field.""" + createdBy: UUIDFilter + + """Filter by the object’s `updatedBy` field.""" + updatedBy: UUIDFilter + + """Filter by the object’s `isApproved` field.""" + isApproved: BooleanFilter + + """Filter by the object’s `isBanned` field.""" + isBanned: BooleanFilter + + """Filter by the object’s `isDisabled` field.""" + isDisabled: BooleanFilter + + """Filter by the object’s `isActive` field.""" + isActive: BooleanFilter + + """Filter by the object’s `isOwner` field.""" + isOwner: BooleanFilter + + """Filter by the object’s `isAdmin` field.""" + isAdmin: BooleanFilter + + """Filter by the object’s `permissions` field.""" + permissions: BitStringFilter + + """Filter by the object’s `granted` field.""" + granted: BitStringFilter + + """Filter by the object’s `actorId` field.""" + actorId: UUIDFilter + + """Filter by the object’s `entityId` field.""" + entityId: UUIDFilter + + """Checks for all expressions in this list.""" + and: [MembershipMembershipFilter!] + + """Checks for any expressions in this list.""" + or: [MembershipMembershipFilter!] + + """Negates the expression.""" + not: MembershipMembershipFilter +} + +type MembershipMembershipDefault { + id: UUID! + createdAt: Datetime + updatedAt: Datetime + createdBy: UUID + updatedBy: UUID + isApproved: Boolean! + entityId: UUID! + deleteMemberCascadeGroups: Boolean! + createGroupsCascadeMembers: Boolean! + + """ + Reads a single `User` that is related to this `MembershipMembershipDefault`. + """ + entity: User +} + +"""A connection to a list of `MembershipMember` values.""" +type MembershipMembersConnection { + """A list of `MembershipMember` objects.""" + nodes: [MembershipMember!]! + + """ + A list of edges which contains the `MembershipMember` and cursor to aid in pagination. + """ + edges: [MembershipMembersEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """ + The count of *all* `MembershipMember` you could get from the connection. + """ + totalCount: Int! +} + +type MembershipMember { + id: UUID! + isAdmin: Boolean! + actorId: UUID! + entityId: UUID! + + """Reads a single `User` that is related to this `MembershipMember`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipMember`.""" + entity: User +} + +"""A `MembershipMember` edge in the connection.""" +type MembershipMembersEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `MembershipMember` at the end of the edge.""" + node: MembershipMember! +} + +"""Methods to use when ordering `MembershipMember`.""" +enum MembershipMembersOrderBy { + NATURAL + ID_ASC + ID_DESC + IS_ADMIN_ASC + IS_ADMIN_DESC + ACTOR_ID_ASC + ACTOR_ID_DESC + ENTITY_ID_ASC + ENTITY_ID_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `MembershipMember` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input MembershipMemberCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `isAdmin` field.""" + isAdmin: Boolean + + """Checks for equality with the object’s `actorId` field.""" + actorId: UUID + + """Checks for equality with the object’s `entityId` field.""" + entityId: UUID +} + +""" +A filter to be used against `MembershipMember` object types. All fields are combined with a logical ‘and.’ +""" +input MembershipMemberFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `isAdmin` field.""" + isAdmin: BooleanFilter + + """Filter by the object’s `actorId` field.""" + actorId: UUIDFilter + + """Filter by the object’s `entityId` field.""" + entityId: UUIDFilter + + """Checks for all expressions in this list.""" + and: [MembershipMemberFilter!] + + """Checks for any expressions in this list.""" + or: [MembershipMemberFilter!] + + """Negates the expression.""" + not: MembershipMemberFilter +} + +"""A connection to a list of `MembershipAdminGrant` values.""" +type MembershipAdminGrantsConnection { + """A list of `MembershipAdminGrant` objects.""" + nodes: [MembershipAdminGrant!]! + + """ + A list of edges which contains the `MembershipAdminGrant` and cursor to aid in pagination. + """ + edges: [MembershipAdminGrantsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """ + The count of *all* `MembershipAdminGrant` you could get from the connection. + """ + totalCount: Int! +} + +type MembershipAdminGrant { + id: UUID! + isGrant: Boolean! + actorId: UUID! + entityId: UUID! + grantorId: UUID + createdAt: Datetime + updatedAt: Datetime + + """Reads a single `User` that is related to this `MembershipAdminGrant`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipAdminGrant`.""" + entity: User + + """Reads a single `User` that is related to this `MembershipAdminGrant`.""" + grantor: User +} + +"""A `MembershipAdminGrant` edge in the connection.""" +type MembershipAdminGrantsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `MembershipAdminGrant` at the end of the edge.""" + node: MembershipAdminGrant! +} + +"""Methods to use when ordering `MembershipAdminGrant`.""" +enum MembershipAdminGrantsOrderBy { + NATURAL + ID_ASC + ID_DESC + IS_GRANT_ASC + IS_GRANT_DESC + ACTOR_ID_ASC + ACTOR_ID_DESC + ENTITY_ID_ASC + ENTITY_ID_DESC + GRANTOR_ID_ASC + GRANTOR_ID_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `MembershipAdminGrant` object types. All fields +are tested for equality and combined with a logical ‘and.’ +""" +input MembershipAdminGrantCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `isGrant` field.""" + isGrant: Boolean + + """Checks for equality with the object’s `actorId` field.""" + actorId: UUID + + """Checks for equality with the object’s `entityId` field.""" + entityId: UUID + + """Checks for equality with the object’s `grantorId` field.""" + grantorId: UUID + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime +} + +""" +A filter to be used against `MembershipAdminGrant` object types. All fields are combined with a logical ‘and.’ +""" +input MembershipAdminGrantFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `isGrant` field.""" + isGrant: BooleanFilter + + """Filter by the object’s `actorId` field.""" + actorId: UUIDFilter + + """Filter by the object’s `entityId` field.""" + entityId: UUIDFilter + + """Filter by the object’s `grantorId` field.""" + grantorId: UUIDFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Checks for all expressions in this list.""" + and: [MembershipAdminGrantFilter!] + + """Checks for any expressions in this list.""" + or: [MembershipAdminGrantFilter!] + + """Negates the expression.""" + not: MembershipAdminGrantFilter +} + +"""A connection to a list of `MembershipOwnerGrant` values.""" +type MembershipOwnerGrantsConnection { + """A list of `MembershipOwnerGrant` objects.""" + nodes: [MembershipOwnerGrant!]! + + """ + A list of edges which contains the `MembershipOwnerGrant` and cursor to aid in pagination. + """ + edges: [MembershipOwnerGrantsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """ + The count of *all* `MembershipOwnerGrant` you could get from the connection. + """ + totalCount: Int! +} + +type MembershipOwnerGrant { + id: UUID! + isGrant: Boolean! + actorId: UUID! + entityId: UUID! + grantorId: UUID + createdAt: Datetime + updatedAt: Datetime + + """Reads a single `User` that is related to this `MembershipOwnerGrant`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipOwnerGrant`.""" + entity: User + + """Reads a single `User` that is related to this `MembershipOwnerGrant`.""" + grantor: User +} + +"""A `MembershipOwnerGrant` edge in the connection.""" +type MembershipOwnerGrantsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `MembershipOwnerGrant` at the end of the edge.""" + node: MembershipOwnerGrant! +} + +"""Methods to use when ordering `MembershipOwnerGrant`.""" +enum MembershipOwnerGrantsOrderBy { + NATURAL + ID_ASC + ID_DESC + IS_GRANT_ASC + IS_GRANT_DESC + ACTOR_ID_ASC + ACTOR_ID_DESC + ENTITY_ID_ASC + ENTITY_ID_DESC + GRANTOR_ID_ASC + GRANTOR_ID_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `MembershipOwnerGrant` object types. All fields +are tested for equality and combined with a logical ‘and.’ +""" +input MembershipOwnerGrantCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `isGrant` field.""" + isGrant: Boolean + + """Checks for equality with the object’s `actorId` field.""" + actorId: UUID + + """Checks for equality with the object’s `entityId` field.""" + entityId: UUID + + """Checks for equality with the object’s `grantorId` field.""" + grantorId: UUID + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime +} + +""" +A filter to be used against `MembershipOwnerGrant` object types. All fields are combined with a logical ‘and.’ +""" +input MembershipOwnerGrantFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `isGrant` field.""" + isGrant: BooleanFilter + + """Filter by the object’s `actorId` field.""" + actorId: UUIDFilter + + """Filter by the object’s `entityId` field.""" + entityId: UUIDFilter + + """Filter by the object’s `grantorId` field.""" + grantorId: UUIDFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Checks for all expressions in this list.""" + and: [MembershipOwnerGrantFilter!] + + """Checks for any expressions in this list.""" + or: [MembershipOwnerGrantFilter!] + + """Negates the expression.""" + not: MembershipOwnerGrantFilter +} + +"""A connection to a list of `MembershipGrant` values.""" +type MembershipGrantsConnection { + """A list of `MembershipGrant` objects.""" + nodes: [MembershipGrant!]! + + """ + A list of edges which contains the `MembershipGrant` and cursor to aid in pagination. + """ + edges: [MembershipGrantsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """ + The count of *all* `MembershipGrant` you could get from the connection. + """ + totalCount: Int! +} + +type MembershipGrant { + id: UUID! + permissions: BitString! + isGrant: Boolean! + actorId: UUID! + entityId: UUID! + grantorId: UUID + createdAt: Datetime + updatedAt: Datetime + + """Reads a single `User` that is related to this `MembershipGrant`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipGrant`.""" + entity: User + + """Reads a single `User` that is related to this `MembershipGrant`.""" + grantor: User +} + +"""A `MembershipGrant` edge in the connection.""" +type MembershipGrantsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `MembershipGrant` at the end of the edge.""" + node: MembershipGrant! +} + +"""Methods to use when ordering `MembershipGrant`.""" +enum MembershipGrantsOrderBy { + NATURAL + ID_ASC + ID_DESC + PERMISSIONS_ASC + PERMISSIONS_DESC + IS_GRANT_ASC + IS_GRANT_DESC + ACTOR_ID_ASC + ACTOR_ID_DESC + ENTITY_ID_ASC + ENTITY_ID_DESC + GRANTOR_ID_ASC + GRANTOR_ID_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `MembershipGrant` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input MembershipGrantCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `permissions` field.""" + permissions: BitString + + """Checks for equality with the object’s `isGrant` field.""" + isGrant: Boolean + + """Checks for equality with the object’s `actorId` field.""" + actorId: UUID + + """Checks for equality with the object’s `entityId` field.""" + entityId: UUID + + """Checks for equality with the object’s `grantorId` field.""" + grantorId: UUID + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime +} + +""" +A filter to be used against `MembershipGrant` object types. All fields are combined with a logical ‘and.’ +""" +input MembershipGrantFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `permissions` field.""" + permissions: BitStringFilter + + """Filter by the object’s `isGrant` field.""" + isGrant: BooleanFilter + + """Filter by the object’s `actorId` field.""" + actorId: UUIDFilter + + """Filter by the object’s `entityId` field.""" + entityId: UUIDFilter + + """Filter by the object’s `grantorId` field.""" + grantorId: UUIDFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Checks for all expressions in this list.""" + and: [MembershipGrantFilter!] + + """Checks for any expressions in this list.""" + or: [MembershipGrantFilter!] + + """Negates the expression.""" + not: MembershipGrantFilter +} + +"""A connection to a list of `Email` values.""" +type EmailsConnection { + """A list of `Email` objects.""" + nodes: [Email!]! + + """ + A list of edges which contains the `Email` and cursor to aid in pagination. + """ + edges: [EmailsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `Email` you could get from the connection.""" + totalCount: Int! +} + +type Email { + id: UUID! + ownerId: UUID! + email: String! + isVerified: Boolean! + isPrimary: Boolean! + createdAt: Datetime + updatedAt: Datetime + + """Reads a single `User` that is related to this `Email`.""" + owner: User +} + +"""A `Email` edge in the connection.""" +type EmailsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `Email` at the end of the edge.""" + node: Email! +} + +"""Methods to use when ordering `Email`.""" +enum EmailsOrderBy { + NATURAL + ID_ASC + ID_DESC + OWNER_ID_ASC + OWNER_ID_DESC + EMAIL_ASC + EMAIL_DESC + IS_VERIFIED_ASC + IS_VERIFIED_DESC + IS_PRIMARY_ASC + IS_PRIMARY_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `Email` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input EmailCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `ownerId` field.""" + ownerId: UUID + + """Checks for equality with the object’s `email` field.""" + email: String + + """Checks for equality with the object’s `isVerified` field.""" + isVerified: Boolean + + """Checks for equality with the object’s `isPrimary` field.""" + isPrimary: Boolean + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime +} + +""" +A filter to be used against `Email` object types. All fields are combined with a logical ‘and.’ +""" +input EmailFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `ownerId` field.""" + ownerId: UUIDFilter + + """Filter by the object’s `email` field.""" + email: StringFilter + + """Filter by the object’s `isVerified` field.""" + isVerified: BooleanFilter + + """Filter by the object’s `isPrimary` field.""" + isPrimary: BooleanFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Checks for all expressions in this list.""" + and: [EmailFilter!] + + """Checks for any expressions in this list.""" + or: [EmailFilter!] + + """Negates the expression.""" + not: EmailFilter +} + +"""A connection to a list of `PhoneNumber` values.""" +type PhoneNumbersConnection { + """A list of `PhoneNumber` objects.""" + nodes: [PhoneNumber!]! + + """ + A list of edges which contains the `PhoneNumber` and cursor to aid in pagination. + """ + edges: [PhoneNumbersEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `PhoneNumber` you could get from the connection.""" + totalCount: Int! +} + +type PhoneNumber { + id: UUID! + ownerId: UUID! + cc: String! + number: String! + isVerified: Boolean! + isPrimary: Boolean! + createdAt: Datetime + updatedAt: Datetime + + """Reads a single `User` that is related to this `PhoneNumber`.""" + owner: User +} + +"""A `PhoneNumber` edge in the connection.""" +type PhoneNumbersEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `PhoneNumber` at the end of the edge.""" + node: PhoneNumber! +} + +"""Methods to use when ordering `PhoneNumber`.""" +enum PhoneNumbersOrderBy { + NATURAL + ID_ASC + ID_DESC + OWNER_ID_ASC + OWNER_ID_DESC + CC_ASC + CC_DESC + NUMBER_ASC + NUMBER_DESC + IS_VERIFIED_ASC + IS_VERIFIED_DESC + IS_PRIMARY_ASC + IS_PRIMARY_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `PhoneNumber` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input PhoneNumberCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `ownerId` field.""" + ownerId: UUID + + """Checks for equality with the object’s `cc` field.""" + cc: String + + """Checks for equality with the object’s `number` field.""" + number: String + + """Checks for equality with the object’s `isVerified` field.""" + isVerified: Boolean + + """Checks for equality with the object’s `isPrimary` field.""" + isPrimary: Boolean + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime +} + +""" +A filter to be used against `PhoneNumber` object types. All fields are combined with a logical ‘and.’ +""" +input PhoneNumberFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `ownerId` field.""" + ownerId: UUIDFilter + + """Filter by the object’s `cc` field.""" + cc: StringFilter + + """Filter by the object’s `number` field.""" + number: StringFilter + + """Filter by the object’s `isVerified` field.""" + isVerified: BooleanFilter + + """Filter by the object’s `isPrimary` field.""" + isPrimary: BooleanFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Checks for all expressions in this list.""" + and: [PhoneNumberFilter!] + + """Checks for any expressions in this list.""" + or: [PhoneNumberFilter!] + + """Negates the expression.""" + not: PhoneNumberFilter +} + +"""A connection to a list of `CryptoAddress` values.""" +type CryptoAddressesConnection { + """A list of `CryptoAddress` objects.""" + nodes: [CryptoAddress!]! + + """ + A list of edges which contains the `CryptoAddress` and cursor to aid in pagination. + """ + edges: [CryptoAddressesEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `CryptoAddress` you could get from the connection.""" + totalCount: Int! +} + +type CryptoAddress { + id: UUID! + ownerId: UUID! + address: String! + isVerified: Boolean! + isPrimary: Boolean! + createdAt: Datetime + updatedAt: Datetime + + """Reads a single `User` that is related to this `CryptoAddress`.""" + owner: User +} + +"""A `CryptoAddress` edge in the connection.""" +type CryptoAddressesEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `CryptoAddress` at the end of the edge.""" + node: CryptoAddress! +} + +"""Methods to use when ordering `CryptoAddress`.""" +enum CryptoAddressesOrderBy { + NATURAL + ID_ASC + ID_DESC + OWNER_ID_ASC + OWNER_ID_DESC + ADDRESS_ASC + ADDRESS_DESC + IS_VERIFIED_ASC + IS_VERIFIED_DESC + IS_PRIMARY_ASC + IS_PRIMARY_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `CryptoAddress` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input CryptoAddressCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `ownerId` field.""" + ownerId: UUID + + """Checks for equality with the object’s `address` field.""" + address: String + + """Checks for equality with the object’s `isVerified` field.""" + isVerified: Boolean + + """Checks for equality with the object’s `isPrimary` field.""" + isPrimary: Boolean + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime +} + +""" +A filter to be used against `CryptoAddress` object types. All fields are combined with a logical ‘and.’ +""" +input CryptoAddressFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `ownerId` field.""" + ownerId: UUIDFilter + + """Filter by the object’s `address` field.""" + address: StringFilter + + """Filter by the object’s `isVerified` field.""" + isVerified: BooleanFilter + + """Filter by the object’s `isPrimary` field.""" + isPrimary: BooleanFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Checks for all expressions in this list.""" + and: [CryptoAddressFilter!] + + """Checks for any expressions in this list.""" + or: [CryptoAddressFilter!] + + """Negates the expression.""" + not: CryptoAddressFilter +} + +"""A connection to a list of `Invite` values.""" +type InvitesConnection { + """A list of `Invite` objects.""" + nodes: [Invite!]! + + """ + A list of edges which contains the `Invite` and cursor to aid in pagination. + """ + edges: [InvitesEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `Invite` you could get from the connection.""" + totalCount: Int! +} + +type Invite { + id: UUID! + email: String + senderId: UUID! + inviteToken: String! + inviteValid: Boolean! + inviteLimit: Int! + inviteCount: Int! + multiple: Boolean! + data: JSON + expiresAt: Datetime! + createdAt: Datetime + updatedAt: Datetime + + """Reads a single `User` that is related to this `Invite`.""" + sender: User +} + +"""A `Invite` edge in the connection.""" +type InvitesEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `Invite` at the end of the edge.""" + node: Invite! +} + +"""Methods to use when ordering `Invite`.""" +enum InvitesOrderBy { + NATURAL + ID_ASC + ID_DESC + EMAIL_ASC + EMAIL_DESC + SENDER_ID_ASC + SENDER_ID_DESC + INVITE_TOKEN_ASC + INVITE_TOKEN_DESC + INVITE_VALID_ASC + INVITE_VALID_DESC + INVITE_LIMIT_ASC + INVITE_LIMIT_DESC + INVITE_COUNT_ASC + INVITE_COUNT_DESC + MULTIPLE_ASC + MULTIPLE_DESC + DATA_ASC + DATA_DESC + EXPIRES_AT_ASC + EXPIRES_AT_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `Invite` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input InviteCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `email` field.""" + email: String + + """Checks for equality with the object’s `senderId` field.""" + senderId: UUID + + """Checks for equality with the object’s `inviteToken` field.""" + inviteToken: String + + """Checks for equality with the object’s `inviteValid` field.""" + inviteValid: Boolean + + """Checks for equality with the object’s `inviteLimit` field.""" + inviteLimit: Int + + """Checks for equality with the object’s `inviteCount` field.""" + inviteCount: Int + + """Checks for equality with the object’s `multiple` field.""" + multiple: Boolean + + """Checks for equality with the object’s `data` field.""" + data: JSON + + """Checks for equality with the object’s `expiresAt` field.""" + expiresAt: Datetime + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime +} + +""" +A filter to be used against `Invite` object types. All fields are combined with a logical ‘and.’ +""" +input InviteFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `email` field.""" + email: StringFilter + + """Filter by the object’s `senderId` field.""" + senderId: UUIDFilter + + """Filter by the object’s `inviteToken` field.""" + inviteToken: StringFilter + + """Filter by the object’s `inviteValid` field.""" + inviteValid: BooleanFilter + + """Filter by the object’s `inviteLimit` field.""" + inviteLimit: IntFilter + + """Filter by the object’s `inviteCount` field.""" + inviteCount: IntFilter + + """Filter by the object’s `multiple` field.""" + multiple: BooleanFilter + + """Filter by the object’s `expiresAt` field.""" + expiresAt: DatetimeFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Checks for all expressions in this list.""" + and: [InviteFilter!] + + """Checks for any expressions in this list.""" + or: [InviteFilter!] + + """Negates the expression.""" + not: InviteFilter +} + +"""A connection to a list of `ClaimedInvite` values.""" +type ClaimedInvitesConnection { + """A list of `ClaimedInvite` objects.""" + nodes: [ClaimedInvite!]! + + """ + A list of edges which contains the `ClaimedInvite` and cursor to aid in pagination. + """ + edges: [ClaimedInvitesEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `ClaimedInvite` you could get from the connection.""" + totalCount: Int! +} + +type ClaimedInvite { + id: UUID! + data: JSON + senderId: UUID + receiverId: UUID + createdAt: Datetime + updatedAt: Datetime + + """Reads a single `User` that is related to this `ClaimedInvite`.""" + sender: User + + """Reads a single `User` that is related to this `ClaimedInvite`.""" + receiver: User +} + +"""A `ClaimedInvite` edge in the connection.""" +type ClaimedInvitesEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `ClaimedInvite` at the end of the edge.""" + node: ClaimedInvite! +} + +"""Methods to use when ordering `ClaimedInvite`.""" +enum ClaimedInvitesOrderBy { + NATURAL + ID_ASC + ID_DESC + DATA_ASC + DATA_DESC + SENDER_ID_ASC + SENDER_ID_DESC + RECEIVER_ID_ASC + RECEIVER_ID_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `ClaimedInvite` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input ClaimedInviteCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `data` field.""" + data: JSON + + """Checks for equality with the object’s `senderId` field.""" + senderId: UUID + + """Checks for equality with the object’s `receiverId` field.""" + receiverId: UUID + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime +} + +""" +A filter to be used against `ClaimedInvite` object types. All fields are combined with a logical ‘and.’ +""" +input ClaimedInviteFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `senderId` field.""" + senderId: UUIDFilter + + """Filter by the object’s `receiverId` field.""" + receiverId: UUIDFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Checks for all expressions in this list.""" + and: [ClaimedInviteFilter!] + + """Checks for any expressions in this list.""" + or: [ClaimedInviteFilter!] + + """Negates the expression.""" + not: ClaimedInviteFilter +} + +"""A connection to a list of `MembershipInvite` values.""" +type MembershipInvitesConnection { + """A list of `MembershipInvite` objects.""" + nodes: [MembershipInvite!]! + + """ + A list of edges which contains the `MembershipInvite` and cursor to aid in pagination. + """ + edges: [MembershipInvitesEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """ + The count of *all* `MembershipInvite` you could get from the connection. + """ + totalCount: Int! +} + +type MembershipInvite { + id: UUID! + email: String + senderId: UUID! + receiverId: UUID + inviteToken: String! + inviteValid: Boolean! + inviteLimit: Int! + inviteCount: Int! + multiple: Boolean! + data: JSON + expiresAt: Datetime! + createdAt: Datetime + updatedAt: Datetime + entityId: UUID! + + """Reads a single `User` that is related to this `MembershipInvite`.""" + sender: User + + """Reads a single `User` that is related to this `MembershipInvite`.""" + receiver: User + + """Reads a single `User` that is related to this `MembershipInvite`.""" + entity: User +} + +"""A `MembershipInvite` edge in the connection.""" +type MembershipInvitesEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `MembershipInvite` at the end of the edge.""" + node: MembershipInvite! +} + +"""Methods to use when ordering `MembershipInvite`.""" +enum MembershipInvitesOrderBy { + NATURAL + ID_ASC + ID_DESC + EMAIL_ASC + EMAIL_DESC + SENDER_ID_ASC + SENDER_ID_DESC + RECEIVER_ID_ASC + RECEIVER_ID_DESC + INVITE_TOKEN_ASC + INVITE_TOKEN_DESC + INVITE_VALID_ASC + INVITE_VALID_DESC + INVITE_LIMIT_ASC + INVITE_LIMIT_DESC + INVITE_COUNT_ASC + INVITE_COUNT_DESC + MULTIPLE_ASC + MULTIPLE_DESC + DATA_ASC + DATA_DESC + EXPIRES_AT_ASC + EXPIRES_AT_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + ENTITY_ID_ASC + ENTITY_ID_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `MembershipInvite` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input MembershipInviteCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `email` field.""" + email: String + + """Checks for equality with the object’s `senderId` field.""" + senderId: UUID + + """Checks for equality with the object’s `receiverId` field.""" + receiverId: UUID + + """Checks for equality with the object’s `inviteToken` field.""" + inviteToken: String + + """Checks for equality with the object’s `inviteValid` field.""" + inviteValid: Boolean + + """Checks for equality with the object’s `inviteLimit` field.""" + inviteLimit: Int + + """Checks for equality with the object’s `inviteCount` field.""" + inviteCount: Int + + """Checks for equality with the object’s `multiple` field.""" + multiple: Boolean + + """Checks for equality with the object’s `data` field.""" + data: JSON + + """Checks for equality with the object’s `expiresAt` field.""" + expiresAt: Datetime + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime + + """Checks for equality with the object’s `entityId` field.""" + entityId: UUID +} + +""" +A filter to be used against `MembershipInvite` object types. All fields are combined with a logical ‘and.’ +""" +input MembershipInviteFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `email` field.""" + email: StringFilter + + """Filter by the object’s `senderId` field.""" + senderId: UUIDFilter + + """Filter by the object’s `receiverId` field.""" + receiverId: UUIDFilter + + """Filter by the object’s `inviteToken` field.""" + inviteToken: StringFilter + + """Filter by the object’s `inviteValid` field.""" + inviteValid: BooleanFilter + + """Filter by the object’s `inviteLimit` field.""" + inviteLimit: IntFilter + + """Filter by the object’s `inviteCount` field.""" + inviteCount: IntFilter + + """Filter by the object’s `multiple` field.""" + multiple: BooleanFilter + + """Filter by the object’s `expiresAt` field.""" + expiresAt: DatetimeFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Filter by the object’s `entityId` field.""" + entityId: UUIDFilter + + """Checks for all expressions in this list.""" + and: [MembershipInviteFilter!] + + """Checks for any expressions in this list.""" + or: [MembershipInviteFilter!] + + """Negates the expression.""" + not: MembershipInviteFilter +} + +"""A connection to a list of `MembershipClaimedInvite` values.""" +type MembershipClaimedInvitesConnection { + """A list of `MembershipClaimedInvite` objects.""" + nodes: [MembershipClaimedInvite!]! + + """ + A list of edges which contains the `MembershipClaimedInvite` and cursor to aid in pagination. + """ + edges: [MembershipClaimedInvitesEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """ + The count of *all* `MembershipClaimedInvite` you could get from the connection. + """ + totalCount: Int! +} + +type MembershipClaimedInvite { + id: UUID! + data: JSON + senderId: UUID + receiverId: UUID + createdAt: Datetime + updatedAt: Datetime + entityId: UUID! + + """ + Reads a single `User` that is related to this `MembershipClaimedInvite`. + """ + sender: User + + """ + Reads a single `User` that is related to this `MembershipClaimedInvite`. + """ + receiver: User + + """ + Reads a single `User` that is related to this `MembershipClaimedInvite`. + """ + entity: User +} + +"""A `MembershipClaimedInvite` edge in the connection.""" +type MembershipClaimedInvitesEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `MembershipClaimedInvite` at the end of the edge.""" + node: MembershipClaimedInvite! +} + +"""Methods to use when ordering `MembershipClaimedInvite`.""" +enum MembershipClaimedInvitesOrderBy { + NATURAL + ID_ASC + ID_DESC + DATA_ASC + DATA_DESC + SENDER_ID_ASC + SENDER_ID_DESC + RECEIVER_ID_ASC + RECEIVER_ID_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + ENTITY_ID_ASC + ENTITY_ID_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `MembershipClaimedInvite` object types. All +fields are tested for equality and combined with a logical ‘and.’ +""" +input MembershipClaimedInviteCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `data` field.""" + data: JSON + + """Checks for equality with the object’s `senderId` field.""" + senderId: UUID + + """Checks for equality with the object’s `receiverId` field.""" + receiverId: UUID + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime + + """Checks for equality with the object’s `entityId` field.""" + entityId: UUID +} + +""" +A filter to be used against `MembershipClaimedInvite` object types. All fields are combined with a logical ‘and.’ +""" +input MembershipClaimedInviteFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `senderId` field.""" + senderId: UUIDFilter + + """Filter by the object’s `receiverId` field.""" + receiverId: UUIDFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Filter by the object’s `entityId` field.""" + entityId: UUIDFilter + + """Checks for all expressions in this list.""" + and: [MembershipClaimedInviteFilter!] + + """Checks for any expressions in this list.""" + or: [MembershipClaimedInviteFilter!] + + """Negates the expression.""" + not: MembershipClaimedInviteFilter +} + +"""A connection to a list of `AuditLog` values.""" +type AuditLogsConnection { + """A list of `AuditLog` objects.""" + nodes: [AuditLog!]! + + """ + A list of edges which contains the `AuditLog` and cursor to aid in pagination. + """ + edges: [AuditLogsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `AuditLog` you could get from the connection.""" + totalCount: Int! +} + +type AuditLog { + id: UUID! + event: String! + actorId: UUID! + origin: String + userAgent: String + ipAddress: InternetAddress + success: Boolean! + createdAt: Datetime! + + """Reads a single `User` that is related to this `AuditLog`.""" + actor: User +} + +"""An IPv4 or IPv6 host address, and optionally its subnet.""" +scalar InternetAddress + +"""A `AuditLog` edge in the connection.""" +type AuditLogsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `AuditLog` at the end of the edge.""" + node: AuditLog! +} + +"""Methods to use when ordering `AuditLog`.""" +enum AuditLogsOrderBy { + NATURAL + ID_ASC + ID_DESC + EVENT_ASC + EVENT_DESC + ACTOR_ID_ASC + ACTOR_ID_DESC + ORIGIN_ASC + ORIGIN_DESC + USER_AGENT_ASC + USER_AGENT_DESC + IP_ADDRESS_ASC + IP_ADDRESS_DESC + SUCCESS_ASC + SUCCESS_DESC + CREATED_AT_ASC + CREATED_AT_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `AuditLog` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input AuditLogCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `event` field.""" + event: String + + """Checks for equality with the object’s `actorId` field.""" + actorId: UUID + + """Checks for equality with the object’s `origin` field.""" + origin: String + + """Checks for equality with the object’s `userAgent` field.""" + userAgent: String + + """Checks for equality with the object’s `ipAddress` field.""" + ipAddress: InternetAddress + + """Checks for equality with the object’s `success` field.""" + success: Boolean + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime +} + +""" +A filter to be used against `AuditLog` object types. All fields are combined with a logical ‘and.’ +""" +input AuditLogFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `event` field.""" + event: StringFilter + + """Filter by the object’s `actorId` field.""" + actorId: UUIDFilter + + """Filter by the object’s `origin` field.""" + origin: StringFilter + + """Filter by the object’s `userAgent` field.""" + userAgent: StringFilter + + """Filter by the object’s `ipAddress` field.""" + ipAddress: InternetAddressFilter + + """Filter by the object’s `success` field.""" + success: BooleanFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Checks for all expressions in this list.""" + and: [AuditLogFilter!] + + """Checks for any expressions in this list.""" + or: [AuditLogFilter!] + + """Negates the expression.""" + not: AuditLogFilter +} + +""" +A filter to be used against InternetAddress fields. All fields are combined with a logical ‘and.’ +""" +input InternetAddressFilter { + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """Equal to the specified value.""" + equalTo: InternetAddress + + """Not equal to the specified value.""" + notEqualTo: InternetAddress + + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: InternetAddress + + """Equal to the specified value, treating null like an ordinary value.""" + notDistinctFrom: InternetAddress + + """Included in the specified list.""" + in: [InternetAddress!] + + """Not included in the specified list.""" + notIn: [InternetAddress!] + + """Less than the specified value.""" + lessThan: InternetAddress + + """Less than or equal to the specified value.""" + lessThanOrEqualTo: InternetAddress + + """Greater than the specified value.""" + greaterThan: InternetAddress + + """Greater than or equal to the specified value.""" + greaterThanOrEqualTo: InternetAddress + + """Contains the specified internet address.""" + contains: InternetAddress + + """Contains or equal to the specified internet address.""" + containsOrEqualTo: InternetAddress + + """Contained by the specified internet address.""" + containedBy: InternetAddress + + """Contained by or equal to the specified internet address.""" + containedByOrEqualTo: InternetAddress + + """Contains or contained by the specified internet address.""" + containsOrContainedBy: InternetAddress +} + +"""Methods to use when ordering `Product`.""" +enum ProductsOrderBy { + NATURAL + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + DESCRIPTION_ASC + DESCRIPTION_DESC + PRICE_ASC + PRICE_DESC + COMPARE_AT_PRICE_ASC + COMPARE_AT_PRICE_DESC + SKU_ASC + SKU_DESC + INVENTORY_QUANTITY_ASC + INVENTORY_QUANTITY_DESC + WEIGHT_ASC + WEIGHT_DESC + DIMENSIONS_ASC + DIMENSIONS_DESC + IS_ACTIVE_ASC + IS_ACTIVE_DESC + IS_FEATURED_ASC + IS_FEATURED_DESC + TAGS_ASC + TAGS_DESC + IMAGE_URLS_ASC + IMAGE_URLS_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + SELLER_ID_ASC + SELLER_ID_DESC + CATEGORY_ID_ASC + CATEGORY_ID_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `Product` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input ProductCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `name` field.""" + name: String + + """Checks for equality with the object’s `description` field.""" + description: String + + """Checks for equality with the object’s `price` field.""" + price: BigFloat + + """Checks for equality with the object’s `compareAtPrice` field.""" + compareAtPrice: BigFloat + + """Checks for equality with the object’s `sku` field.""" + sku: String + + """Checks for equality with the object’s `inventoryQuantity` field.""" + inventoryQuantity: Int + + """Checks for equality with the object’s `weight` field.""" + weight: BigFloat + + """Checks for equality with the object’s `dimensions` field.""" + dimensions: String + + """Checks for equality with the object’s `isActive` field.""" + isActive: Boolean + + """Checks for equality with the object’s `isFeatured` field.""" + isFeatured: Boolean + + """Checks for equality with the object’s `tags` field.""" + tags: String + + """Checks for equality with the object’s `imageUrls` field.""" + imageUrls: String + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime + + """Checks for equality with the object’s `sellerId` field.""" + sellerId: UUID + + """Checks for equality with the object’s `categoryId` field.""" + categoryId: UUID +} + +""" +A filter to be used against `Product` object types. All fields are combined with a logical ‘and.’ +""" +input ProductFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `name` field.""" + name: StringFilter + + """Filter by the object’s `description` field.""" + description: StringFilter + + """Filter by the object’s `price` field.""" + price: BigFloatFilter + + """Filter by the object’s `compareAtPrice` field.""" + compareAtPrice: BigFloatFilter + + """Filter by the object’s `sku` field.""" + sku: StringFilter + + """Filter by the object’s `inventoryQuantity` field.""" + inventoryQuantity: IntFilter + + """Filter by the object’s `weight` field.""" + weight: BigFloatFilter + + """Filter by the object’s `dimensions` field.""" + dimensions: StringFilter + + """Filter by the object’s `isActive` field.""" + isActive: BooleanFilter + + """Filter by the object’s `isFeatured` field.""" + isFeatured: BooleanFilter + + """Filter by the object’s `tags` field.""" + tags: StringFilter + + """Filter by the object’s `imageUrls` field.""" + imageUrls: StringFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Filter by the object’s `sellerId` field.""" + sellerId: UUIDFilter + + """Filter by the object’s `categoryId` field.""" + categoryId: UUIDFilter + + """Checks for all expressions in this list.""" + and: [ProductFilter!] + + """Checks for any expressions in this list.""" + or: [ProductFilter!] + + """Negates the expression.""" + not: ProductFilter +} + +""" +A filter to be used against BigFloat fields. All fields are combined with a logical ‘and.’ +""" +input BigFloatFilter { + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """Equal to the specified value.""" + equalTo: BigFloat + + """Not equal to the specified value.""" + notEqualTo: BigFloat + + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: BigFloat + + """Equal to the specified value, treating null like an ordinary value.""" + notDistinctFrom: BigFloat + + """Included in the specified list.""" + in: [BigFloat!] + + """Not included in the specified list.""" + notIn: [BigFloat!] + + """Less than the specified value.""" + lessThan: BigFloat + + """Less than or equal to the specified value.""" + lessThanOrEqualTo: BigFloat + + """Greater than the specified value.""" + greaterThan: BigFloat + + """Greater than or equal to the specified value.""" + greaterThanOrEqualTo: BigFloat +} + +"""A connection to a list of `Order` values.""" +type OrdersConnection { + """A list of `Order` objects.""" + nodes: [Order!]! + + """ + A list of edges which contains the `Order` and cursor to aid in pagination. + """ + edges: [OrdersEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `Order` you could get from the connection.""" + totalCount: Int! +} + +type Order { + id: UUID! + orderNumber: String! + status: String! + totalAmount: BigFloat! + shippingAmount: BigFloat + taxAmount: BigFloat + notes: String + shippedAt: Datetime + deliveredAt: Datetime + createdAt: Datetime + updatedAt: Datetime + customerId: UUID! + + """Reads a single `User` that is related to this `Order`.""" + customer: User + + """Reads and enables pagination through a set of `OrderItem`.""" + orderItems( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `OrderItem`.""" + orderBy: [OrderItemsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: OrderItemCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: OrderItemFilter + ): OrderItemsConnection! + + """Reads and enables pagination through a set of `Product`.""" + productsByOrderItemOrderIdAndProductId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Product`.""" + orderBy: [ProductsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ProductCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ProductFilter + ): OrderProductsByOrderItemOrderIdAndProductIdManyToManyConnection! +} + +"""A connection to a list of `OrderItem` values.""" +type OrderItemsConnection { + """A list of `OrderItem` objects.""" + nodes: [OrderItem!]! + + """ + A list of edges which contains the `OrderItem` and cursor to aid in pagination. + """ + edges: [OrderItemsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `OrderItem` you could get from the connection.""" + totalCount: Int! +} + +type OrderItem { + id: UUID! + quantity: Int! + unitPrice: BigFloat! + totalPrice: BigFloat! + orderId: UUID! + productId: UUID! + + """Reads a single `Order` that is related to this `OrderItem`.""" + order: Order + + """Reads a single `Product` that is related to this `OrderItem`.""" + product: Product +} + +"""A `OrderItem` edge in the connection.""" +type OrderItemsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `OrderItem` at the end of the edge.""" + node: OrderItem! +} + +"""Methods to use when ordering `OrderItem`.""" +enum OrderItemsOrderBy { + NATURAL + ID_ASC + ID_DESC + QUANTITY_ASC + QUANTITY_DESC + UNIT_PRICE_ASC + UNIT_PRICE_DESC + TOTAL_PRICE_ASC + TOTAL_PRICE_DESC + ORDER_ID_ASC + ORDER_ID_DESC + PRODUCT_ID_ASC + PRODUCT_ID_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `OrderItem` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input OrderItemCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `quantity` field.""" + quantity: Int + + """Checks for equality with the object’s `unitPrice` field.""" + unitPrice: BigFloat + + """Checks for equality with the object’s `totalPrice` field.""" + totalPrice: BigFloat + + """Checks for equality with the object’s `orderId` field.""" + orderId: UUID + + """Checks for equality with the object’s `productId` field.""" + productId: UUID +} + +""" +A filter to be used against `OrderItem` object types. All fields are combined with a logical ‘and.’ +""" +input OrderItemFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `quantity` field.""" + quantity: IntFilter + + """Filter by the object’s `unitPrice` field.""" + unitPrice: BigFloatFilter + + """Filter by the object’s `totalPrice` field.""" + totalPrice: BigFloatFilter + + """Filter by the object’s `orderId` field.""" + orderId: UUIDFilter + + """Filter by the object’s `productId` field.""" + productId: UUIDFilter + + """Checks for all expressions in this list.""" + and: [OrderItemFilter!] + + """Checks for any expressions in this list.""" + or: [OrderItemFilter!] + + """Negates the expression.""" + not: OrderItemFilter +} + +""" +A connection to a list of `Product` values, with data from `OrderItem`. +""" +type OrderProductsByOrderItemOrderIdAndProductIdManyToManyConnection { + """A list of `Product` objects.""" + nodes: [Product!]! + + """ + A list of edges which contains the `Product`, info from the `OrderItem`, and the cursor to aid in pagination. + """ + edges: [OrderProductsByOrderItemOrderIdAndProductIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `Product` you could get from the connection.""" + totalCount: Int! +} + +"""A `Product` edge in the connection, with data from `OrderItem`.""" +type OrderProductsByOrderItemOrderIdAndProductIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `Product` at the end of the edge.""" + node: Product! + + """Reads and enables pagination through a set of `OrderItem`.""" + orderItems( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `OrderItem`.""" + orderBy: [OrderItemsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: OrderItemCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: OrderItemFilter + ): OrderItemsConnection! +} + +"""A `Order` edge in the connection.""" +type OrdersEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `Order` at the end of the edge.""" + node: Order! +} + +"""Methods to use when ordering `Order`.""" +enum OrdersOrderBy { + NATURAL + ID_ASC + ID_DESC + ORDER_NUMBER_ASC + ORDER_NUMBER_DESC + STATUS_ASC + STATUS_DESC + TOTAL_AMOUNT_ASC + TOTAL_AMOUNT_DESC + SHIPPING_AMOUNT_ASC + SHIPPING_AMOUNT_DESC + TAX_AMOUNT_ASC + TAX_AMOUNT_DESC + NOTES_ASC + NOTES_DESC + SHIPPED_AT_ASC + SHIPPED_AT_DESC + DELIVERED_AT_ASC + DELIVERED_AT_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + CUSTOMER_ID_ASC + CUSTOMER_ID_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `Order` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input OrderCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `orderNumber` field.""" + orderNumber: String + + """Checks for equality with the object’s `status` field.""" + status: String + + """Checks for equality with the object’s `totalAmount` field.""" + totalAmount: BigFloat + + """Checks for equality with the object’s `shippingAmount` field.""" + shippingAmount: BigFloat + + """Checks for equality with the object’s `taxAmount` field.""" + taxAmount: BigFloat + + """Checks for equality with the object’s `notes` field.""" + notes: String + + """Checks for equality with the object’s `shippedAt` field.""" + shippedAt: Datetime + + """Checks for equality with the object’s `deliveredAt` field.""" + deliveredAt: Datetime + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime + + """Checks for equality with the object’s `customerId` field.""" + customerId: UUID +} + +""" +A filter to be used against `Order` object types. All fields are combined with a logical ‘and.’ +""" +input OrderFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `orderNumber` field.""" + orderNumber: StringFilter + + """Filter by the object’s `status` field.""" + status: StringFilter + + """Filter by the object’s `totalAmount` field.""" + totalAmount: BigFloatFilter + + """Filter by the object’s `shippingAmount` field.""" + shippingAmount: BigFloatFilter + + """Filter by the object’s `taxAmount` field.""" + taxAmount: BigFloatFilter + + """Filter by the object’s `notes` field.""" + notes: StringFilter + + """Filter by the object’s `shippedAt` field.""" + shippedAt: DatetimeFilter + + """Filter by the object’s `deliveredAt` field.""" + deliveredAt: DatetimeFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Filter by the object’s `customerId` field.""" + customerId: UUIDFilter + + """Checks for all expressions in this list.""" + and: [OrderFilter!] + + """Checks for any expressions in this list.""" + or: [OrderFilter!] + + """Negates the expression.""" + not: OrderFilter +} + +"""A connection to a list of `Review` values.""" +type ReviewsConnection { + """A list of `Review` objects.""" + nodes: [Review!]! + + """ + A list of edges which contains the `Review` and cursor to aid in pagination. + """ + edges: [ReviewsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `Review` you could get from the connection.""" + totalCount: Int! +} + +type Review { + id: UUID! + rating: Int! + title: String + comment: String + isVerifiedPurchase: Boolean + createdAt: Datetime + userId: UUID! + productId: UUID! + + """Reads a single `User` that is related to this `Review`.""" + user: User + + """Reads a single `Product` that is related to this `Review`.""" + product: Product +} + +"""A `Review` edge in the connection.""" +type ReviewsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `Review` at the end of the edge.""" + node: Review! +} + +"""Methods to use when ordering `Review`.""" +enum ReviewsOrderBy { + NATURAL + ID_ASC + ID_DESC + RATING_ASC + RATING_DESC + TITLE_ASC + TITLE_DESC + COMMENT_ASC + COMMENT_DESC + IS_VERIFIED_PURCHASE_ASC + IS_VERIFIED_PURCHASE_DESC + CREATED_AT_ASC + CREATED_AT_DESC + USER_ID_ASC + USER_ID_DESC + PRODUCT_ID_ASC + PRODUCT_ID_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `Review` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input ReviewCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `rating` field.""" + rating: Int + + """Checks for equality with the object’s `title` field.""" + title: String + + """Checks for equality with the object’s `comment` field.""" + comment: String + + """Checks for equality with the object’s `isVerifiedPurchase` field.""" + isVerifiedPurchase: Boolean + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `userId` field.""" + userId: UUID + + """Checks for equality with the object’s `productId` field.""" + productId: UUID +} + +""" +A filter to be used against `Review` object types. All fields are combined with a logical ‘and.’ +""" +input ReviewFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `rating` field.""" + rating: IntFilter + + """Filter by the object’s `title` field.""" + title: StringFilter + + """Filter by the object’s `comment` field.""" + comment: StringFilter + + """Filter by the object’s `isVerifiedPurchase` field.""" + isVerifiedPurchase: BooleanFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `userId` field.""" + userId: UUIDFilter + + """Filter by the object’s `productId` field.""" + productId: UUIDFilter + + """Checks for all expressions in this list.""" + and: [ReviewFilter!] + + """Checks for any expressions in this list.""" + or: [ReviewFilter!] + + """Negates the expression.""" + not: ReviewFilter +} + +""" +A connection to a list of `User` values, with data from `AppAdminGrant`. +""" +type UserUsersByAppAdminGrantActorIdAndGrantorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `AppAdminGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByAppAdminGrantActorIdAndGrantorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `AppAdminGrant`.""" +type UserUsersByAppAdminGrantActorIdAndGrantorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `AppAdminGrant`.""" + appAdminGrantsByGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppAdminGrant`.""" + orderBy: [AppAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppAdminGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppAdminGrantFilter + ): AppAdminGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `AppAdminGrant`. +""" +type UserUsersByAppAdminGrantGrantorIdAndActorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `AppAdminGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByAppAdminGrantGrantorIdAndActorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `AppAdminGrant`.""" +type UserUsersByAppAdminGrantGrantorIdAndActorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `AppAdminGrant`.""" + appAdminGrantsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppAdminGrant`.""" + orderBy: [AppAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppAdminGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppAdminGrantFilter + ): AppAdminGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `AppOwnerGrant`. +""" +type UserUsersByAppOwnerGrantActorIdAndGrantorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `AppOwnerGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByAppOwnerGrantActorIdAndGrantorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `AppOwnerGrant`.""" +type UserUsersByAppOwnerGrantActorIdAndGrantorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `AppOwnerGrant`.""" + appOwnerGrantsByGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppOwnerGrant`.""" + orderBy: [AppOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppOwnerGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppOwnerGrantFilter + ): AppOwnerGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `AppOwnerGrant`. +""" +type UserUsersByAppOwnerGrantGrantorIdAndActorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `AppOwnerGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByAppOwnerGrantGrantorIdAndActorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `AppOwnerGrant`.""" +type UserUsersByAppOwnerGrantGrantorIdAndActorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `AppOwnerGrant`.""" + appOwnerGrantsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppOwnerGrant`.""" + orderBy: [AppOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppOwnerGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppOwnerGrantFilter + ): AppOwnerGrantsConnection! +} + +"""A connection to a list of `User` values, with data from `AppGrant`.""" +type UserUsersByAppGrantActorIdAndGrantorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `AppGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByAppGrantActorIdAndGrantorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `AppGrant`.""" +type UserUsersByAppGrantActorIdAndGrantorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `AppGrant`.""" + appGrantsByGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppGrant`.""" + orderBy: [AppGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppGrantFilter + ): AppGrantsConnection! +} + +"""A connection to a list of `User` values, with data from `AppGrant`.""" +type UserUsersByAppGrantGrantorIdAndActorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `AppGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByAppGrantGrantorIdAndActorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `AppGrant`.""" +type UserUsersByAppGrantGrantorIdAndActorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `AppGrant`.""" + appGrantsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `AppGrant`.""" + orderBy: [AppGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppGrantFilter + ): AppGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipLimit`. +""" +type UserUsersByMembershipLimitActorIdAndEntityIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipLimit`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipLimitActorIdAndEntityIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `MembershipLimit`.""" +type UserUsersByMembershipLimitActorIdAndEntityIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipLimit`.""" + membershipLimitsByEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipLimit`.""" + orderBy: [MembershipLimitsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipLimitCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipLimitFilter + ): MembershipLimitsConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipLimit`. +""" +type UserUsersByMembershipLimitEntityIdAndActorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipLimit`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipLimitEntityIdAndActorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `MembershipLimit`.""" +type UserUsersByMembershipLimitEntityIdAndActorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipLimit`.""" + membershipLimitsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipLimit`.""" + orderBy: [MembershipLimitsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipLimitCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipLimitFilter + ): MembershipLimitsConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipMembership`. +""" +type UserUsersByMembershipMembershipActorIdAndEntityIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipMembership`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipMembershipActorIdAndEntityIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipMembership`. +""" +type UserUsersByMembershipMembershipActorIdAndEntityIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + id: UUID! + createdAt: Datetime + updatedAt: Datetime + createdBy: UUID + updatedBy: UUID + isApproved: Boolean! + isBanned: Boolean! + isDisabled: Boolean! + isActive: Boolean! + isOwner: Boolean! + isAdmin: Boolean! + permissions: BitString! + granted: BitString! +} + +""" +A connection to a list of `User` values, with data from `MembershipMembership`. +""" +type UserUsersByMembershipMembershipEntityIdAndActorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipMembership`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipMembershipEntityIdAndActorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipMembership`. +""" +type UserUsersByMembershipMembershipEntityIdAndActorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + id: UUID! + createdAt: Datetime + updatedAt: Datetime + createdBy: UUID + updatedBy: UUID + isApproved: Boolean! + isBanned: Boolean! + isDisabled: Boolean! + isActive: Boolean! + isOwner: Boolean! + isAdmin: Boolean! + permissions: BitString! + granted: BitString! +} + +""" +A connection to a list of `User` values, with data from `MembershipMember`. +""" +type UserUsersByMembershipMemberActorIdAndEntityIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipMember`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipMemberActorIdAndEntityIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `MembershipMember`.""" +type UserUsersByMembershipMemberActorIdAndEntityIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + id: UUID! + isAdmin: Boolean! +} + +""" +A connection to a list of `User` values, with data from `MembershipMember`. +""" +type UserUsersByMembershipMemberEntityIdAndActorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipMember`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipMemberEntityIdAndActorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `MembershipMember`.""" +type UserUsersByMembershipMemberEntityIdAndActorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + id: UUID! + isAdmin: Boolean! +} + +""" +A connection to a list of `User` values, with data from `MembershipAdminGrant`. +""" +type UserUsersByMembershipAdminGrantActorIdAndEntityIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipAdminGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipAdminGrantActorIdAndEntityIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipAdminGrant`. +""" +type UserUsersByMembershipAdminGrantActorIdAndEntityIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipAdminGrant`.""" + membershipAdminGrantsByEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipAdminGrant`.""" + orderBy: [MembershipAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipAdminGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipAdminGrantFilter + ): MembershipAdminGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipAdminGrant`. +""" +type UserUsersByMembershipAdminGrantActorIdAndGrantorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipAdminGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipAdminGrantActorIdAndGrantorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipAdminGrant`. +""" +type UserUsersByMembershipAdminGrantActorIdAndGrantorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipAdminGrant`.""" + membershipAdminGrantsByGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipAdminGrant`.""" + orderBy: [MembershipAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipAdminGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipAdminGrantFilter + ): MembershipAdminGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipAdminGrant`. +""" +type UserUsersByMembershipAdminGrantEntityIdAndActorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipAdminGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipAdminGrantEntityIdAndActorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipAdminGrant`. +""" +type UserUsersByMembershipAdminGrantEntityIdAndActorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipAdminGrant`.""" + membershipAdminGrantsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipAdminGrant`.""" + orderBy: [MembershipAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipAdminGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipAdminGrantFilter + ): MembershipAdminGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipAdminGrant`. +""" +type UserUsersByMembershipAdminGrantEntityIdAndGrantorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipAdminGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipAdminGrantEntityIdAndGrantorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipAdminGrant`. +""" +type UserUsersByMembershipAdminGrantEntityIdAndGrantorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipAdminGrant`.""" + membershipAdminGrantsByGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipAdminGrant`.""" + orderBy: [MembershipAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipAdminGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipAdminGrantFilter + ): MembershipAdminGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipAdminGrant`. +""" +type UserUsersByMembershipAdminGrantGrantorIdAndActorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipAdminGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipAdminGrantGrantorIdAndActorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipAdminGrant`. +""" +type UserUsersByMembershipAdminGrantGrantorIdAndActorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipAdminGrant`.""" + membershipAdminGrantsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipAdminGrant`.""" + orderBy: [MembershipAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipAdminGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipAdminGrantFilter + ): MembershipAdminGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipAdminGrant`. +""" +type UserUsersByMembershipAdminGrantGrantorIdAndEntityIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipAdminGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipAdminGrantGrantorIdAndEntityIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipAdminGrant`. +""" +type UserUsersByMembershipAdminGrantGrantorIdAndEntityIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipAdminGrant`.""" + membershipAdminGrantsByEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipAdminGrant`.""" + orderBy: [MembershipAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipAdminGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipAdminGrantFilter + ): MembershipAdminGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipOwnerGrant`. +""" +type UserUsersByMembershipOwnerGrantActorIdAndEntityIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipOwnerGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipOwnerGrantActorIdAndEntityIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipOwnerGrant`. +""" +type UserUsersByMembershipOwnerGrantActorIdAndEntityIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipOwnerGrant`.""" + membershipOwnerGrantsByEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipOwnerGrant`.""" + orderBy: [MembershipOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipOwnerGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipOwnerGrantFilter + ): MembershipOwnerGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipOwnerGrant`. +""" +type UserUsersByMembershipOwnerGrantActorIdAndGrantorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipOwnerGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipOwnerGrantActorIdAndGrantorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipOwnerGrant`. +""" +type UserUsersByMembershipOwnerGrantActorIdAndGrantorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipOwnerGrant`.""" + membershipOwnerGrantsByGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipOwnerGrant`.""" + orderBy: [MembershipOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipOwnerGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipOwnerGrantFilter + ): MembershipOwnerGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipOwnerGrant`. +""" +type UserUsersByMembershipOwnerGrantEntityIdAndActorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipOwnerGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipOwnerGrantEntityIdAndActorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipOwnerGrant`. +""" +type UserUsersByMembershipOwnerGrantEntityIdAndActorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipOwnerGrant`.""" + membershipOwnerGrantsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipOwnerGrant`.""" + orderBy: [MembershipOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipOwnerGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipOwnerGrantFilter + ): MembershipOwnerGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipOwnerGrant`. +""" +type UserUsersByMembershipOwnerGrantEntityIdAndGrantorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipOwnerGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipOwnerGrantEntityIdAndGrantorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipOwnerGrant`. +""" +type UserUsersByMembershipOwnerGrantEntityIdAndGrantorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipOwnerGrant`.""" + membershipOwnerGrantsByGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipOwnerGrant`.""" + orderBy: [MembershipOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipOwnerGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipOwnerGrantFilter + ): MembershipOwnerGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipOwnerGrant`. +""" +type UserUsersByMembershipOwnerGrantGrantorIdAndActorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipOwnerGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipOwnerGrantGrantorIdAndActorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipOwnerGrant`. +""" +type UserUsersByMembershipOwnerGrantGrantorIdAndActorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipOwnerGrant`.""" + membershipOwnerGrantsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipOwnerGrant`.""" + orderBy: [MembershipOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipOwnerGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipOwnerGrantFilter + ): MembershipOwnerGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipOwnerGrant`. +""" +type UserUsersByMembershipOwnerGrantGrantorIdAndEntityIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipOwnerGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipOwnerGrantGrantorIdAndEntityIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipOwnerGrant`. +""" +type UserUsersByMembershipOwnerGrantGrantorIdAndEntityIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipOwnerGrant`.""" + membershipOwnerGrantsByEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipOwnerGrant`.""" + orderBy: [MembershipOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipOwnerGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipOwnerGrantFilter + ): MembershipOwnerGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipGrant`. +""" +type UserUsersByMembershipGrantActorIdAndEntityIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipGrantActorIdAndEntityIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `MembershipGrant`.""" +type UserUsersByMembershipGrantActorIdAndEntityIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipGrant`.""" + membershipGrantsByEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipGrant`.""" + orderBy: [MembershipGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipGrantFilter + ): MembershipGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipGrant`. +""" +type UserUsersByMembershipGrantActorIdAndGrantorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipGrantActorIdAndGrantorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `MembershipGrant`.""" +type UserUsersByMembershipGrantActorIdAndGrantorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipGrant`.""" + membershipGrantsByGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipGrant`.""" + orderBy: [MembershipGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipGrantFilter + ): MembershipGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipGrant`. +""" +type UserUsersByMembershipGrantEntityIdAndActorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipGrantEntityIdAndActorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `MembershipGrant`.""" +type UserUsersByMembershipGrantEntityIdAndActorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipGrant`.""" + membershipGrantsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipGrant`.""" + orderBy: [MembershipGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipGrantFilter + ): MembershipGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipGrant`. +""" +type UserUsersByMembershipGrantEntityIdAndGrantorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipGrantEntityIdAndGrantorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `MembershipGrant`.""" +type UserUsersByMembershipGrantEntityIdAndGrantorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipGrant`.""" + membershipGrantsByGrantorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipGrant`.""" + orderBy: [MembershipGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipGrantFilter + ): MembershipGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipGrant`. +""" +type UserUsersByMembershipGrantGrantorIdAndActorIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipGrantGrantorIdAndActorIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `MembershipGrant`.""" +type UserUsersByMembershipGrantGrantorIdAndActorIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipGrant`.""" + membershipGrantsByActorId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipGrant`.""" + orderBy: [MembershipGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipGrantFilter + ): MembershipGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipGrant`. +""" +type UserUsersByMembershipGrantGrantorIdAndEntityIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipGrant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipGrantGrantorIdAndEntityIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `MembershipGrant`.""" +type UserUsersByMembershipGrantGrantorIdAndEntityIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipGrant`.""" + membershipGrantsByEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipGrant`.""" + orderBy: [MembershipGrantsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipGrantFilter + ): MembershipGrantsConnection! +} + +""" +A connection to a list of `User` values, with data from `ClaimedInvite`. +""" +type UserUsersByClaimedInviteSenderIdAndReceiverIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `ClaimedInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByClaimedInviteSenderIdAndReceiverIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `ClaimedInvite`.""" +type UserUsersByClaimedInviteSenderIdAndReceiverIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `ClaimedInvite`.""" + claimedInvitesByReceiverId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `ClaimedInvite`.""" + orderBy: [ClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ClaimedInviteFilter + ): ClaimedInvitesConnection! +} + +""" +A connection to a list of `User` values, with data from `ClaimedInvite`. +""" +type UserUsersByClaimedInviteReceiverIdAndSenderIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `ClaimedInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByClaimedInviteReceiverIdAndSenderIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `ClaimedInvite`.""" +type UserUsersByClaimedInviteReceiverIdAndSenderIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `ClaimedInvite`.""" + claimedInvitesBySenderId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `ClaimedInvite`.""" + orderBy: [ClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ClaimedInviteFilter + ): ClaimedInvitesConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipInvite`. +""" +type UserUsersByMembershipInviteSenderIdAndReceiverIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipInviteSenderIdAndReceiverIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `MembershipInvite`.""" +type UserUsersByMembershipInviteSenderIdAndReceiverIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipInvite`.""" + membershipInvitesByReceiverId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipInvite`.""" + orderBy: [MembershipInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipInviteFilter + ): MembershipInvitesConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipInvite`. +""" +type UserUsersByMembershipInviteSenderIdAndEntityIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipInviteSenderIdAndEntityIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `MembershipInvite`.""" +type UserUsersByMembershipInviteSenderIdAndEntityIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipInvite`.""" + membershipInvitesByEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipInvite`.""" + orderBy: [MembershipInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipInviteFilter + ): MembershipInvitesConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipInvite`. +""" +type UserUsersByMembershipInviteReceiverIdAndSenderIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipInviteReceiverIdAndSenderIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `MembershipInvite`.""" +type UserUsersByMembershipInviteReceiverIdAndSenderIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipInvite`.""" + membershipInvitesBySenderId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipInvite`.""" + orderBy: [MembershipInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipInviteFilter + ): MembershipInvitesConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipInvite`. +""" +type UserUsersByMembershipInviteReceiverIdAndEntityIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipInviteReceiverIdAndEntityIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `MembershipInvite`.""" +type UserUsersByMembershipInviteReceiverIdAndEntityIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipInvite`.""" + membershipInvitesByEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipInvite`.""" + orderBy: [MembershipInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipInviteFilter + ): MembershipInvitesConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipInvite`. +""" +type UserUsersByMembershipInviteEntityIdAndSenderIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipInviteEntityIdAndSenderIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `MembershipInvite`.""" +type UserUsersByMembershipInviteEntityIdAndSenderIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipInvite`.""" + membershipInvitesBySenderId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipInvite`.""" + orderBy: [MembershipInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipInviteFilter + ): MembershipInvitesConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipInvite`. +""" +type UserUsersByMembershipInviteEntityIdAndReceiverIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipInviteEntityIdAndReceiverIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `MembershipInvite`.""" +type UserUsersByMembershipInviteEntityIdAndReceiverIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `MembershipInvite`.""" + membershipInvitesByReceiverId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipInvite`.""" + orderBy: [MembershipInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipInviteFilter + ): MembershipInvitesConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipClaimedInvite`. +""" +type UserUsersByMembershipClaimedInviteSenderIdAndReceiverIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipClaimedInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipClaimedInviteSenderIdAndReceiverIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipClaimedInvite`. +""" +type UserUsersByMembershipClaimedInviteSenderIdAndReceiverIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """ + Reads and enables pagination through a set of `MembershipClaimedInvite`. + """ + membershipClaimedInvitesByReceiverId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipClaimedInvite`.""" + orderBy: [MembershipClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipClaimedInviteFilter + ): MembershipClaimedInvitesConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipClaimedInvite`. +""" +type UserUsersByMembershipClaimedInviteSenderIdAndEntityIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipClaimedInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipClaimedInviteSenderIdAndEntityIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipClaimedInvite`. +""" +type UserUsersByMembershipClaimedInviteSenderIdAndEntityIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """ + Reads and enables pagination through a set of `MembershipClaimedInvite`. + """ + membershipClaimedInvitesByEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipClaimedInvite`.""" + orderBy: [MembershipClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipClaimedInviteFilter + ): MembershipClaimedInvitesConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipClaimedInvite`. +""" +type UserUsersByMembershipClaimedInviteReceiverIdAndSenderIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipClaimedInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipClaimedInviteReceiverIdAndSenderIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipClaimedInvite`. +""" +type UserUsersByMembershipClaimedInviteReceiverIdAndSenderIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """ + Reads and enables pagination through a set of `MembershipClaimedInvite`. + """ + membershipClaimedInvitesBySenderId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipClaimedInvite`.""" + orderBy: [MembershipClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipClaimedInviteFilter + ): MembershipClaimedInvitesConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipClaimedInvite`. +""" +type UserUsersByMembershipClaimedInviteReceiverIdAndEntityIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipClaimedInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipClaimedInviteReceiverIdAndEntityIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipClaimedInvite`. +""" +type UserUsersByMembershipClaimedInviteReceiverIdAndEntityIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """ + Reads and enables pagination through a set of `MembershipClaimedInvite`. + """ + membershipClaimedInvitesByEntityId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipClaimedInvite`.""" + orderBy: [MembershipClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipClaimedInviteFilter + ): MembershipClaimedInvitesConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipClaimedInvite`. +""" +type UserUsersByMembershipClaimedInviteEntityIdAndSenderIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipClaimedInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipClaimedInviteEntityIdAndSenderIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipClaimedInvite`. +""" +type UserUsersByMembershipClaimedInviteEntityIdAndSenderIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """ + Reads and enables pagination through a set of `MembershipClaimedInvite`. + """ + membershipClaimedInvitesBySenderId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipClaimedInvite`.""" + orderBy: [MembershipClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipClaimedInviteFilter + ): MembershipClaimedInvitesConnection! +} + +""" +A connection to a list of `User` values, with data from `MembershipClaimedInvite`. +""" +type UserUsersByMembershipClaimedInviteEntityIdAndReceiverIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `MembershipClaimedInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipClaimedInviteEntityIdAndReceiverIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipClaimedInvite`. +""" +type UserUsersByMembershipClaimedInviteEntityIdAndReceiverIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """ + Reads and enables pagination through a set of `MembershipClaimedInvite`. + """ + membershipClaimedInvitesByReceiverId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `MembershipClaimedInvite`.""" + orderBy: [MembershipClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipClaimedInviteFilter + ): MembershipClaimedInvitesConnection! +} + +"""A connection to a list of `Category` values, with data from `Product`.""" +type UserCategoriesByProductSellerIdAndCategoryIdManyToManyConnection { + """A list of `Category` objects.""" + nodes: [Category!]! + + """ + A list of edges which contains the `Category`, info from the `Product`, and the cursor to aid in pagination. + """ + edges: [UserCategoriesByProductSellerIdAndCategoryIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `Category` you could get from the connection.""" + totalCount: Int! +} + +"""A `Category` edge in the connection, with data from `Product`.""" +type UserCategoriesByProductSellerIdAndCategoryIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `Category` at the end of the edge.""" + node: Category! + + """Reads and enables pagination through a set of `Product`.""" + products( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Product`.""" + orderBy: [ProductsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ProductCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ProductFilter + ): ProductsConnection! +} + +"""Methods to use when ordering `Category`.""" +enum CategoriesOrderBy { + NATURAL + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + DESCRIPTION_ASC + DESCRIPTION_DESC + SLUG_ASC + SLUG_DESC + IMAGE_URL_ASC + IMAGE_URL_DESC + IS_ACTIVE_ASC + IS_ACTIVE_DESC + SORT_ORDER_ASC + SORT_ORDER_DESC + CREATED_AT_ASC + CREATED_AT_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `Category` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input CategoryCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `name` field.""" + name: String + + """Checks for equality with the object’s `description` field.""" + description: String + + """Checks for equality with the object’s `slug` field.""" + slug: String + + """Checks for equality with the object’s `imageUrl` field.""" + imageUrl: String + + """Checks for equality with the object’s `isActive` field.""" + isActive: Boolean + + """Checks for equality with the object’s `sortOrder` field.""" + sortOrder: Int + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime +} + +""" +A filter to be used against `Category` object types. All fields are combined with a logical ‘and.’ +""" +input CategoryFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `name` field.""" + name: StringFilter + + """Filter by the object’s `description` field.""" + description: StringFilter + + """Filter by the object’s `slug` field.""" + slug: StringFilter + + """Filter by the object’s `imageUrl` field.""" + imageUrl: StringFilter + + """Filter by the object’s `isActive` field.""" + isActive: BooleanFilter + + """Filter by the object’s `sortOrder` field.""" + sortOrder: IntFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Checks for all expressions in this list.""" + and: [CategoryFilter!] + + """Checks for any expressions in this list.""" + or: [CategoryFilter!] + + """Negates the expression.""" + not: CategoryFilter +} + +"""A connection to a list of `Product` values, with data from `Review`.""" +type UserProductsByReviewUserIdAndProductIdManyToManyConnection { + """A list of `Product` objects.""" + nodes: [Product!]! + + """ + A list of edges which contains the `Product`, info from the `Review`, and the cursor to aid in pagination. + """ + edges: [UserProductsByReviewUserIdAndProductIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `Product` you could get from the connection.""" + totalCount: Int! +} + +"""A `Product` edge in the connection, with data from `Review`.""" +type UserProductsByReviewUserIdAndProductIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `Product` at the end of the edge.""" + node: Product! + + """Reads and enables pagination through a set of `Review`.""" + reviews( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Review`.""" + orderBy: [ReviewsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ReviewCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ReviewFilter + ): ReviewsConnection! +} + +"""A connection to a list of `Order` values, with data from `OrderItem`.""" +type ProductOrdersByOrderItemProductIdAndOrderIdManyToManyConnection { + """A list of `Order` objects.""" + nodes: [Order!]! + + """ + A list of edges which contains the `Order`, info from the `OrderItem`, and the cursor to aid in pagination. + """ + edges: [ProductOrdersByOrderItemProductIdAndOrderIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `Order` you could get from the connection.""" + totalCount: Int! +} + +"""A `Order` edge in the connection, with data from `OrderItem`.""" +type ProductOrdersByOrderItemProductIdAndOrderIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `Order` at the end of the edge.""" + node: Order! + + """Reads and enables pagination through a set of `OrderItem`.""" + orderItems( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `OrderItem`.""" + orderBy: [OrderItemsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: OrderItemCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: OrderItemFilter + ): OrderItemsConnection! +} + +"""A connection to a list of `User` values, with data from `Review`.""" +type ProductUsersByReviewProductIdAndUserIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `Review`, and the cursor to aid in pagination. + """ + edges: [ProductUsersByReviewProductIdAndUserIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `Review`.""" +type ProductUsersByReviewProductIdAndUserIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `Review`.""" + reviews( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Review`.""" + orderBy: [ReviewsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ReviewCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ReviewFilter + ): ReviewsConnection! +} + +"""A `Product` edge in the connection.""" +type ProductsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `Product` at the end of the edge.""" + node: Product! +} + +"""A connection to a list of `User` values, with data from `Product`.""" +type CategoryUsersByProductCategoryIdAndSellerIdManyToManyConnection { + """A list of `User` objects.""" + nodes: [User!]! + + """ + A list of edges which contains the `User`, info from the `Product`, and the cursor to aid in pagination. + """ + edges: [CategoryUsersByProductCategoryIdAndSellerIdManyToManyEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `User` you could get from the connection.""" + totalCount: Int! +} + +"""A `User` edge in the connection, with data from `Product`.""" +type CategoryUsersByProductCategoryIdAndSellerIdManyToManyEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `User` at the end of the edge.""" + node: User! + + """Reads and enables pagination through a set of `Product`.""" + productsBySellerId( + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """The method to use when ordering `Product`.""" + orderBy: [ProductsOrderBy!] = [PRIMARY_KEY_ASC] + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ProductCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ProductFilter + ): ProductsConnection! +} + +"""A `Category` edge in the connection.""" +type CategoriesEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `Category` at the end of the edge.""" + node: Category! +} + +"""A connection to a list of `RoleType` values.""" +type RoleTypesConnection { + """A list of `RoleType` objects.""" + nodes: [RoleType!]! + + """ + A list of edges which contains the `RoleType` and cursor to aid in pagination. + """ + edges: [RoleTypesEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `RoleType` you could get from the connection.""" + totalCount: Int! +} + +"""A `RoleType` edge in the connection.""" +type RoleTypesEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `RoleType` at the end of the edge.""" + node: RoleType! +} + +"""Methods to use when ordering `RoleType`.""" +enum RoleTypesOrderBy { + NATURAL + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `RoleType` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input RoleTypeCondition { + """Checks for equality with the object’s `id` field.""" + id: Int + + """Checks for equality with the object’s `name` field.""" + name: String +} + +""" +A filter to be used against `RoleType` object types. All fields are combined with a logical ‘and.’ +""" +input RoleTypeFilter { + """Filter by the object’s `id` field.""" + id: IntFilter + + """Filter by the object’s `name` field.""" + name: StringFilter + + """Checks for all expressions in this list.""" + and: [RoleTypeFilter!] + + """Checks for any expressions in this list.""" + or: [RoleTypeFilter!] + + """Negates the expression.""" + not: RoleTypeFilter +} + +"""A connection to a list of `AppMembershipDefault` values.""" +type AppMembershipDefaultsConnection { + """A list of `AppMembershipDefault` objects.""" + nodes: [AppMembershipDefault!]! + + """ + A list of edges which contains the `AppMembershipDefault` and cursor to aid in pagination. + """ + edges: [AppMembershipDefaultsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """ + The count of *all* `AppMembershipDefault` you could get from the connection. + """ + totalCount: Int! +} + +type AppMembershipDefault { + id: UUID! + createdAt: Datetime + updatedAt: Datetime + createdBy: UUID + updatedBy: UUID + isApproved: Boolean! + isVerified: Boolean! +} + +"""A `AppMembershipDefault` edge in the connection.""" +type AppMembershipDefaultsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `AppMembershipDefault` at the end of the edge.""" + node: AppMembershipDefault! +} + +"""Methods to use when ordering `AppMembershipDefault`.""" +enum AppMembershipDefaultsOrderBy { + NATURAL + ID_ASC + ID_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + CREATED_BY_ASC + CREATED_BY_DESC + UPDATED_BY_ASC + UPDATED_BY_DESC + IS_APPROVED_ASC + IS_APPROVED_DESC + IS_VERIFIED_ASC + IS_VERIFIED_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `AppMembershipDefault` object types. All fields +are tested for equality and combined with a logical ‘and.’ +""" +input AppMembershipDefaultCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime + + """Checks for equality with the object’s `createdBy` field.""" + createdBy: UUID + + """Checks for equality with the object’s `updatedBy` field.""" + updatedBy: UUID + + """Checks for equality with the object’s `isApproved` field.""" + isApproved: Boolean + + """Checks for equality with the object’s `isVerified` field.""" + isVerified: Boolean +} + +""" +A filter to be used against `AppMembershipDefault` object types. All fields are combined with a logical ‘and.’ +""" +input AppMembershipDefaultFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Filter by the object’s `createdBy` field.""" + createdBy: UUIDFilter + + """Filter by the object’s `updatedBy` field.""" + updatedBy: UUIDFilter + + """Filter by the object’s `isApproved` field.""" + isApproved: BooleanFilter + + """Filter by the object’s `isVerified` field.""" + isVerified: BooleanFilter + + """Checks for all expressions in this list.""" + and: [AppMembershipDefaultFilter!] + + """Checks for any expressions in this list.""" + or: [AppMembershipDefaultFilter!] + + """Negates the expression.""" + not: AppMembershipDefaultFilter +} + +"""A connection to a list of `AppMembership` values.""" +type AppMembershipsConnection { + """A list of `AppMembership` objects.""" + nodes: [AppMembership!]! + + """ + A list of edges which contains the `AppMembership` and cursor to aid in pagination. + """ + edges: [AppMembershipsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `AppMembership` you could get from the connection.""" + totalCount: Int! +} + +"""A `AppMembership` edge in the connection.""" +type AppMembershipsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `AppMembership` at the end of the edge.""" + node: AppMembership! +} + +"""Methods to use when ordering `AppMembership`.""" +enum AppMembershipsOrderBy { + NATURAL + ID_ASC + ID_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + CREATED_BY_ASC + CREATED_BY_DESC + UPDATED_BY_ASC + UPDATED_BY_DESC + IS_APPROVED_ASC + IS_APPROVED_DESC + IS_BANNED_ASC + IS_BANNED_DESC + IS_DISABLED_ASC + IS_DISABLED_DESC + IS_VERIFIED_ASC + IS_VERIFIED_DESC + IS_ACTIVE_ASC + IS_ACTIVE_DESC + IS_OWNER_ASC + IS_OWNER_DESC + IS_ADMIN_ASC + IS_ADMIN_DESC + PERMISSIONS_ASC + PERMISSIONS_DESC + GRANTED_ASC + GRANTED_DESC + ACTOR_ID_ASC + ACTOR_ID_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `AppMembership` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input AppMembershipCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime + + """Checks for equality with the object’s `createdBy` field.""" + createdBy: UUID + + """Checks for equality with the object’s `updatedBy` field.""" + updatedBy: UUID + + """Checks for equality with the object’s `isApproved` field.""" + isApproved: Boolean + + """Checks for equality with the object’s `isBanned` field.""" + isBanned: Boolean + + """Checks for equality with the object’s `isDisabled` field.""" + isDisabled: Boolean + + """Checks for equality with the object’s `isVerified` field.""" + isVerified: Boolean + + """Checks for equality with the object’s `isActive` field.""" + isActive: Boolean + + """Checks for equality with the object’s `isOwner` field.""" + isOwner: Boolean + + """Checks for equality with the object’s `isAdmin` field.""" + isAdmin: Boolean + + """Checks for equality with the object’s `permissions` field.""" + permissions: BitString + + """Checks for equality with the object’s `granted` field.""" + granted: BitString + + """Checks for equality with the object’s `actorId` field.""" + actorId: UUID +} + +""" +A filter to be used against `AppMembership` object types. All fields are combined with a logical ‘and.’ +""" +input AppMembershipFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Filter by the object’s `createdBy` field.""" + createdBy: UUIDFilter + + """Filter by the object’s `updatedBy` field.""" + updatedBy: UUIDFilter + + """Filter by the object’s `isApproved` field.""" + isApproved: BooleanFilter + + """Filter by the object’s `isBanned` field.""" + isBanned: BooleanFilter + + """Filter by the object’s `isDisabled` field.""" + isDisabled: BooleanFilter + + """Filter by the object’s `isVerified` field.""" + isVerified: BooleanFilter + + """Filter by the object’s `isActive` field.""" + isActive: BooleanFilter + + """Filter by the object’s `isOwner` field.""" + isOwner: BooleanFilter + + """Filter by the object’s `isAdmin` field.""" + isAdmin: BooleanFilter + + """Filter by the object’s `permissions` field.""" + permissions: BitStringFilter + + """Filter by the object’s `granted` field.""" + granted: BitStringFilter + + """Filter by the object’s `actorId` field.""" + actorId: UUIDFilter + + """Checks for all expressions in this list.""" + and: [AppMembershipFilter!] + + """Checks for any expressions in this list.""" + or: [AppMembershipFilter!] + + """Negates the expression.""" + not: AppMembershipFilter +} + +"""A connection to a list of `MembershipMembershipDefault` values.""" +type MembershipMembershipDefaultsConnection { + """A list of `MembershipMembershipDefault` objects.""" + nodes: [MembershipMembershipDefault!]! + + """ + A list of edges which contains the `MembershipMembershipDefault` and cursor to aid in pagination. + """ + edges: [MembershipMembershipDefaultsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """ + The count of *all* `MembershipMembershipDefault` you could get from the connection. + """ + totalCount: Int! +} + +"""A `MembershipMembershipDefault` edge in the connection.""" +type MembershipMembershipDefaultsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `MembershipMembershipDefault` at the end of the edge.""" + node: MembershipMembershipDefault! +} + +"""Methods to use when ordering `MembershipMembershipDefault`.""" +enum MembershipMembershipDefaultsOrderBy { + NATURAL + ID_ASC + ID_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + CREATED_BY_ASC + CREATED_BY_DESC + UPDATED_BY_ASC + UPDATED_BY_DESC + IS_APPROVED_ASC + IS_APPROVED_DESC + ENTITY_ID_ASC + ENTITY_ID_DESC + DELETE_MEMBER_CASCADE_GROUPS_ASC + DELETE_MEMBER_CASCADE_GROUPS_DESC + CREATE_GROUPS_CASCADE_MEMBERS_ASC + CREATE_GROUPS_CASCADE_MEMBERS_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `MembershipMembershipDefault` object types. All +fields are tested for equality and combined with a logical ‘and.’ +""" +input MembershipMembershipDefaultCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime + + """Checks for equality with the object’s `createdBy` field.""" + createdBy: UUID + + """Checks for equality with the object’s `updatedBy` field.""" + updatedBy: UUID + + """Checks for equality with the object’s `isApproved` field.""" + isApproved: Boolean + + """Checks for equality with the object’s `entityId` field.""" + entityId: UUID + + """ + Checks for equality with the object’s `deleteMemberCascadeGroups` field. + """ + deleteMemberCascadeGroups: Boolean + + """ + Checks for equality with the object’s `createGroupsCascadeMembers` field. + """ + createGroupsCascadeMembers: Boolean +} + +""" +A filter to be used against `MembershipMembershipDefault` object types. All fields are combined with a logical ‘and.’ +""" +input MembershipMembershipDefaultFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Filter by the object’s `createdBy` field.""" + createdBy: UUIDFilter + + """Filter by the object’s `updatedBy` field.""" + updatedBy: UUIDFilter + + """Filter by the object’s `isApproved` field.""" + isApproved: BooleanFilter + + """Filter by the object’s `entityId` field.""" + entityId: UUIDFilter + + """Filter by the object’s `deleteMemberCascadeGroups` field.""" + deleteMemberCascadeGroups: BooleanFilter + + """Filter by the object’s `createGroupsCascadeMembers` field.""" + createGroupsCascadeMembers: BooleanFilter + + """Checks for all expressions in this list.""" + and: [MembershipMembershipDefaultFilter!] + + """Checks for any expressions in this list.""" + or: [MembershipMembershipDefaultFilter!] + + """Negates the expression.""" + not: MembershipMembershipDefaultFilter +} + +"""A connection to a list of `MembershipType` values.""" +type MembershipTypesConnection { + """A list of `MembershipType` objects.""" + nodes: [MembershipType!]! + + """ + A list of edges which contains the `MembershipType` and cursor to aid in pagination. + """ + edges: [MembershipTypesEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `MembershipType` you could get from the connection.""" + totalCount: Int! +} + +type MembershipType { + id: Int! + name: String! + description: String! + prefix: String! +} + +"""A `MembershipType` edge in the connection.""" +type MembershipTypesEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `MembershipType` at the end of the edge.""" + node: MembershipType! +} + +"""Methods to use when ordering `MembershipType`.""" +enum MembershipTypesOrderBy { + NATURAL + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + DESCRIPTION_ASC + DESCRIPTION_DESC + PREFIX_ASC + PREFIX_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `MembershipType` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input MembershipTypeCondition { + """Checks for equality with the object’s `id` field.""" + id: Int + + """Checks for equality with the object’s `name` field.""" + name: String + + """Checks for equality with the object’s `description` field.""" + description: String + + """Checks for equality with the object’s `prefix` field.""" + prefix: String +} + +""" +A filter to be used against `MembershipType` object types. All fields are combined with a logical ‘and.’ +""" +input MembershipTypeFilter { + """Filter by the object’s `id` field.""" + id: IntFilter + + """Filter by the object’s `name` field.""" + name: StringFilter + + """Filter by the object’s `description` field.""" + description: StringFilter + + """Filter by the object’s `prefix` field.""" + prefix: StringFilter + + """Checks for all expressions in this list.""" + and: [MembershipTypeFilter!] + + """Checks for any expressions in this list.""" + or: [MembershipTypeFilter!] + + """Negates the expression.""" + not: MembershipTypeFilter +} + +"""A connection to a list of `AppPermissionDefault` values.""" +type AppPermissionDefaultsConnection { + """A list of `AppPermissionDefault` objects.""" + nodes: [AppPermissionDefault!]! + + """ + A list of edges which contains the `AppPermissionDefault` and cursor to aid in pagination. + """ + edges: [AppPermissionDefaultsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """ + The count of *all* `AppPermissionDefault` you could get from the connection. + """ + totalCount: Int! +} + +type AppPermissionDefault { + id: UUID! + permissions: BitString! +} + +"""A `AppPermissionDefault` edge in the connection.""" +type AppPermissionDefaultsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `AppPermissionDefault` at the end of the edge.""" + node: AppPermissionDefault! +} + +"""Methods to use when ordering `AppPermissionDefault`.""" +enum AppPermissionDefaultsOrderBy { + NATURAL + ID_ASC + ID_DESC + PERMISSIONS_ASC + PERMISSIONS_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `AppPermissionDefault` object types. All fields +are tested for equality and combined with a logical ‘and.’ +""" +input AppPermissionDefaultCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `permissions` field.""" + permissions: BitString +} + +""" +A filter to be used against `AppPermissionDefault` object types. All fields are combined with a logical ‘and.’ +""" +input AppPermissionDefaultFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `permissions` field.""" + permissions: BitStringFilter + + """Checks for all expressions in this list.""" + and: [AppPermissionDefaultFilter!] + + """Checks for any expressions in this list.""" + or: [AppPermissionDefaultFilter!] + + """Negates the expression.""" + not: AppPermissionDefaultFilter +} + +"""A connection to a list of `AppPermission` values.""" +type AppPermissionsConnection { + """A list of `AppPermission` objects.""" + nodes: [AppPermission!]! + + """ + A list of edges which contains the `AppPermission` and cursor to aid in pagination. + """ + edges: [AppPermissionsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """The count of *all* `AppPermission` you could get from the connection.""" + totalCount: Int! +} + +type AppPermission { + id: UUID! + name: String + bitnum: Int + bitstr: BitString! + description: String +} + +"""A `AppPermission` edge in the connection.""" +type AppPermissionsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `AppPermission` at the end of the edge.""" + node: AppPermission! +} + +"""Methods to use when ordering `AppPermission`.""" +enum AppPermissionsOrderBy { + NATURAL + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + BITNUM_ASC + BITNUM_DESC + BITSTR_ASC + BITSTR_DESC + DESCRIPTION_ASC + DESCRIPTION_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `AppPermission` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input AppPermissionCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `name` field.""" + name: String + + """Checks for equality with the object’s `bitnum` field.""" + bitnum: Int + + """Checks for equality with the object’s `bitstr` field.""" + bitstr: BitString + + """Checks for equality with the object’s `description` field.""" + description: String +} + +""" +A filter to be used against `AppPermission` object types. All fields are combined with a logical ‘and.’ +""" +input AppPermissionFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `name` field.""" + name: StringFilter + + """Filter by the object’s `bitnum` field.""" + bitnum: IntFilter + + """Filter by the object’s `bitstr` field.""" + bitstr: BitStringFilter + + """Filter by the object’s `description` field.""" + description: StringFilter + + """Checks for all expressions in this list.""" + and: [AppPermissionFilter!] + + """Checks for any expressions in this list.""" + or: [AppPermissionFilter!] + + """Negates the expression.""" + not: AppPermissionFilter +} + +"""A connection to a list of `MembershipPermission` values.""" +type MembershipPermissionsConnection { + """A list of `MembershipPermission` objects.""" + nodes: [MembershipPermission!]! + + """ + A list of edges which contains the `MembershipPermission` and cursor to aid in pagination. + """ + edges: [MembershipPermissionsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """ + The count of *all* `MembershipPermission` you could get from the connection. + """ + totalCount: Int! +} + +type MembershipPermission { + id: UUID! + name: String + bitnum: Int + bitstr: BitString! + description: String +} + +"""A `MembershipPermission` edge in the connection.""" +type MembershipPermissionsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `MembershipPermission` at the end of the edge.""" + node: MembershipPermission! +} + +"""Methods to use when ordering `MembershipPermission`.""" +enum MembershipPermissionsOrderBy { + NATURAL + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + BITNUM_ASC + BITNUM_DESC + BITSTR_ASC + BITSTR_DESC + DESCRIPTION_ASC + DESCRIPTION_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `MembershipPermission` object types. All fields +are tested for equality and combined with a logical ‘and.’ +""" +input MembershipPermissionCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `name` field.""" + name: String + + """Checks for equality with the object’s `bitnum` field.""" + bitnum: Int + + """Checks for equality with the object’s `bitstr` field.""" + bitstr: BitString + + """Checks for equality with the object’s `description` field.""" + description: String +} + +""" +A filter to be used against `MembershipPermission` object types. All fields are combined with a logical ‘and.’ +""" +input MembershipPermissionFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `name` field.""" + name: StringFilter + + """Filter by the object’s `bitnum` field.""" + bitnum: IntFilter + + """Filter by the object’s `bitstr` field.""" + bitstr: BitStringFilter + + """Filter by the object’s `description` field.""" + description: StringFilter + + """Checks for all expressions in this list.""" + and: [MembershipPermissionFilter!] + + """Checks for any expressions in this list.""" + or: [MembershipPermissionFilter!] + + """Negates the expression.""" + not: MembershipPermissionFilter +} + +"""A connection to a list of `AppLimitDefault` values.""" +type AppLimitDefaultsConnection { + """A list of `AppLimitDefault` objects.""" + nodes: [AppLimitDefault!]! + + """ + A list of edges which contains the `AppLimitDefault` and cursor to aid in pagination. + """ + edges: [AppLimitDefaultsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """ + The count of *all* `AppLimitDefault` you could get from the connection. + """ + totalCount: Int! +} + +type AppLimitDefault { + id: UUID! + name: String! + max: Int +} + +"""A `AppLimitDefault` edge in the connection.""" +type AppLimitDefaultsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `AppLimitDefault` at the end of the edge.""" + node: AppLimitDefault! +} + +"""Methods to use when ordering `AppLimitDefault`.""" +enum AppLimitDefaultsOrderBy { + NATURAL + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + MAX_ASC + MAX_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `AppLimitDefault` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input AppLimitDefaultCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `name` field.""" + name: String + + """Checks for equality with the object’s `max` field.""" + max: Int +} + +""" +A filter to be used against `AppLimitDefault` object types. All fields are combined with a logical ‘and.’ +""" +input AppLimitDefaultFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `name` field.""" + name: StringFilter + + """Filter by the object’s `max` field.""" + max: IntFilter + + """Checks for all expressions in this list.""" + and: [AppLimitDefaultFilter!] + + """Checks for any expressions in this list.""" + or: [AppLimitDefaultFilter!] + + """Negates the expression.""" + not: AppLimitDefaultFilter +} + +"""A connection to a list of `MembershipLimitDefault` values.""" +type MembershipLimitDefaultsConnection { + """A list of `MembershipLimitDefault` objects.""" + nodes: [MembershipLimitDefault!]! + + """ + A list of edges which contains the `MembershipLimitDefault` and cursor to aid in pagination. + """ + edges: [MembershipLimitDefaultsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """ + The count of *all* `MembershipLimitDefault` you could get from the connection. + """ + totalCount: Int! +} + +type MembershipLimitDefault { + id: UUID! + name: String! + max: Int +} + +"""A `MembershipLimitDefault` edge in the connection.""" +type MembershipLimitDefaultsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `MembershipLimitDefault` at the end of the edge.""" + node: MembershipLimitDefault! +} + +"""Methods to use when ordering `MembershipLimitDefault`.""" +enum MembershipLimitDefaultsOrderBy { + NATURAL + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + MAX_ASC + MAX_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `MembershipLimitDefault` object types. All fields +are tested for equality and combined with a logical ‘and.’ +""" +input MembershipLimitDefaultCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `name` field.""" + name: String + + """Checks for equality with the object’s `max` field.""" + max: Int +} + +""" +A filter to be used against `MembershipLimitDefault` object types. All fields are combined with a logical ‘and.’ +""" +input MembershipLimitDefaultFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `name` field.""" + name: StringFilter + + """Filter by the object’s `max` field.""" + max: IntFilter + + """Checks for all expressions in this list.""" + and: [MembershipLimitDefaultFilter!] + + """Checks for any expressions in this list.""" + or: [MembershipLimitDefaultFilter!] + + """Negates the expression.""" + not: MembershipLimitDefaultFilter +} + +"""A connection to a list of `AppLevelRequirement` values.""" +type AppLevelRequirementsConnection { + """A list of `AppLevelRequirement` objects.""" + nodes: [AppLevelRequirement!]! + + """ + A list of edges which contains the `AppLevelRequirement` and cursor to aid in pagination. + """ + edges: [AppLevelRequirementsEdge!]! + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """ + The count of *all* `AppLevelRequirement` you could get from the connection. + """ + totalCount: Int! +} + +"""Requirements to achieve a level""" +type AppLevelRequirement { + id: UUID! + name: String! + level: String! + description: String + requiredCount: Int! + priority: Int! + createdAt: Datetime + updatedAt: Datetime +} + +"""A `AppLevelRequirement` edge in the connection.""" +type AppLevelRequirementsEdge { + """A cursor for use in pagination.""" + cursor: Cursor + + """The `AppLevelRequirement` at the end of the edge.""" + node: AppLevelRequirement! +} + +"""Methods to use when ordering `AppLevelRequirement`.""" +enum AppLevelRequirementsOrderBy { + NATURAL + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + LEVEL_ASC + LEVEL_DESC + DESCRIPTION_ASC + DESCRIPTION_DESC + REQUIRED_COUNT_ASC + REQUIRED_COUNT_DESC + PRIORITY_ASC + PRIORITY_DESC + CREATED_AT_ASC + CREATED_AT_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `AppLevelRequirement` object types. All fields +are tested for equality and combined with a logical ‘and.’ +""" +input AppLevelRequirementCondition { + """Checks for equality with the object’s `id` field.""" + id: UUID + + """Checks for equality with the object’s `name` field.""" + name: String + + """Checks for equality with the object’s `level` field.""" + level: String + + """Checks for equality with the object’s `description` field.""" + description: String + + """Checks for equality with the object’s `requiredCount` field.""" + requiredCount: Int + + """Checks for equality with the object’s `priority` field.""" + priority: Int + + """Checks for equality with the object’s `createdAt` field.""" + createdAt: Datetime + + """Checks for equality with the object’s `updatedAt` field.""" + updatedAt: Datetime +} + +""" +A filter to be used against `AppLevelRequirement` object types. All fields are combined with a logical ‘and.’ +""" +input AppLevelRequirementFilter { + """Filter by the object’s `id` field.""" + id: UUIDFilter + + """Filter by the object’s `name` field.""" + name: StringFilter + + """Filter by the object’s `level` field.""" + level: StringFilter + + """Filter by the object’s `description` field.""" + description: StringFilter + + """Filter by the object’s `requiredCount` field.""" + requiredCount: IntFilter + + """Filter by the object’s `priority` field.""" + priority: IntFilter + + """Filter by the object’s `createdAt` field.""" + createdAt: DatetimeFilter + + """Filter by the object’s `updatedAt` field.""" + updatedAt: DatetimeFilter + + """Checks for all expressions in this list.""" + and: [AppLevelRequirementFilter!] + + """Checks for any expressions in this list.""" + or: [AppLevelRequirementFilter!] + + """Negates the expression.""" + not: AppLevelRequirementFilter +} + +""" +The root mutation type which contains root level fields which mutate data. +""" +type Mutation { + """Creates a single `Category`.""" + createCategory( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateCategoryInput! + ): CreateCategoryPayload + + """Creates a single `CryptoAddress`.""" + createCryptoAddress( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateCryptoAddressInput! + ): CreateCryptoAddressPayload + + """Creates a single `Email`.""" + createEmail( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateEmailInput! + ): CreateEmailPayload + + """Creates a single `OrderItem`.""" + createOrderItem( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateOrderItemInput! + ): CreateOrderItemPayload + + """Creates a single `Order`.""" + createOrder( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateOrderInput! + ): CreateOrderPayload + + """Creates a single `PhoneNumber`.""" + createPhoneNumber( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreatePhoneNumberInput! + ): CreatePhoneNumberPayload + + """Creates a single `Product`.""" + createProduct( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateProductInput! + ): CreateProductPayload + + """Creates a single `Review`.""" + createReview( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateReviewInput! + ): CreateReviewPayload + + """Creates a single `RoleType`.""" + createRoleType( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateRoleTypeInput! + ): CreateRoleTypePayload + + """Creates a single `User`.""" + createUser( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateUserInput! + ): CreateUserPayload + + """Creates a single `AppAdminGrant`.""" + createAppAdminGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppAdminGrantInput! + ): CreateAppAdminGrantPayload + + """Creates a single `AppGrant`.""" + createAppGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppGrantInput! + ): CreateAppGrantPayload + + """Creates a single `AppMembershipDefault`.""" + createAppMembershipDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppMembershipDefaultInput! + ): CreateAppMembershipDefaultPayload + + """Creates a single `AppMembership`.""" + createAppMembership( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppMembershipInput! + ): CreateAppMembershipPayload + + """Creates a single `AppOwnerGrant`.""" + createAppOwnerGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppOwnerGrantInput! + ): CreateAppOwnerGrantPayload + + """Creates a single `MembershipAdminGrant`.""" + createMembershipAdminGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMembershipAdminGrantInput! + ): CreateMembershipAdminGrantPayload + + """Creates a single `MembershipGrant`.""" + createMembershipGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMembershipGrantInput! + ): CreateMembershipGrantPayload + + """Creates a single `MembershipMember`.""" + createMembershipMember( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMembershipMemberInput! + ): CreateMembershipMemberPayload + + """Creates a single `MembershipMembershipDefault`.""" + createMembershipMembershipDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMembershipMembershipDefaultInput! + ): CreateMembershipMembershipDefaultPayload + + """Creates a single `MembershipMembership`.""" + createMembershipMembership( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMembershipMembershipInput! + ): CreateMembershipMembershipPayload + + """Creates a single `MembershipOwnerGrant`.""" + createMembershipOwnerGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMembershipOwnerGrantInput! + ): CreateMembershipOwnerGrantPayload + + """Creates a single `MembershipType`.""" + createMembershipType( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMembershipTypeInput! + ): CreateMembershipTypePayload + + """Creates a single `AppPermissionDefault`.""" + createAppPermissionDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppPermissionDefaultInput! + ): CreateAppPermissionDefaultPayload + + """Creates a single `AppPermission`.""" + createAppPermission( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppPermissionInput! + ): CreateAppPermissionPayload + + """Creates a single `MembershipPermissionDefault`.""" + createMembershipPermissionDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMembershipPermissionDefaultInput! + ): CreateMembershipPermissionDefaultPayload + + """Creates a single `MembershipPermission`.""" + createMembershipPermission( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMembershipPermissionInput! + ): CreateMembershipPermissionPayload + + """Creates a single `AppLimitDefault`.""" + createAppLimitDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppLimitDefaultInput! + ): CreateAppLimitDefaultPayload + + """Creates a single `AppLimit`.""" + createAppLimit( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppLimitInput! + ): CreateAppLimitPayload + + """Creates a single `MembershipLimitDefault`.""" + createMembershipLimitDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMembershipLimitDefaultInput! + ): CreateMembershipLimitDefaultPayload + + """Creates a single `MembershipLimit`.""" + createMembershipLimit( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMembershipLimitInput! + ): CreateMembershipLimitPayload + + """Creates a single `AppAchievement`.""" + createAppAchievement( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppAchievementInput! + ): CreateAppAchievementPayload + + """Creates a single `AppLevelRequirement`.""" + createAppLevelRequirement( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppLevelRequirementInput! + ): CreateAppLevelRequirementPayload + + """Creates a single `AppLevel`.""" + createAppLevel( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppLevelInput! + ): CreateAppLevelPayload + + """Creates a single `AppStep`.""" + createAppStep( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppStepInput! + ): CreateAppStepPayload + + """Creates a single `ClaimedInvite`.""" + createClaimedInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateClaimedInviteInput! + ): CreateClaimedInvitePayload + + """Creates a single `Invite`.""" + createInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateInviteInput! + ): CreateInvitePayload + + """Creates a single `MembershipClaimedInvite`.""" + createMembershipClaimedInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMembershipClaimedInviteInput! + ): CreateMembershipClaimedInvitePayload + + """Creates a single `MembershipInvite`.""" + createMembershipInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMembershipInviteInput! + ): CreateMembershipInvitePayload + + """Creates a single `AuditLog`.""" + createAuditLog( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAuditLogInput! + ): CreateAuditLogPayload + + """Updates a single `Category` using a unique key and a patch.""" + updateCategory( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateCategoryInput! + ): UpdateCategoryPayload + + """Updates a single `CryptoAddress` using a unique key and a patch.""" + updateCryptoAddress( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateCryptoAddressInput! + ): UpdateCryptoAddressPayload + + """Updates a single `CryptoAddress` using a unique key and a patch.""" + updateCryptoAddressByAddress( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateCryptoAddressByAddressInput! + ): UpdateCryptoAddressPayload + + """Updates a single `Email` using a unique key and a patch.""" + updateEmail( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateEmailInput! + ): UpdateEmailPayload + + """Updates a single `Email` using a unique key and a patch.""" + updateEmailByEmail( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateEmailByEmailInput! + ): UpdateEmailPayload + + """Updates a single `OrderItem` using a unique key and a patch.""" + updateOrderItem( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateOrderItemInput! + ): UpdateOrderItemPayload + + """Updates a single `Order` using a unique key and a patch.""" + updateOrder( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateOrderInput! + ): UpdateOrderPayload + + """Updates a single `PhoneNumber` using a unique key and a patch.""" + updatePhoneNumber( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdatePhoneNumberInput! + ): UpdatePhoneNumberPayload + + """Updates a single `PhoneNumber` using a unique key and a patch.""" + updatePhoneNumberByNumber( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdatePhoneNumberByNumberInput! + ): UpdatePhoneNumberPayload + + """Updates a single `Product` using a unique key and a patch.""" + updateProduct( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateProductInput! + ): UpdateProductPayload + + """Updates a single `Review` using a unique key and a patch.""" + updateReview( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateReviewInput! + ): UpdateReviewPayload + + """Updates a single `RoleType` using a unique key and a patch.""" + updateRoleType( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateRoleTypeInput! + ): UpdateRoleTypePayload + + """Updates a single `RoleType` using a unique key and a patch.""" + updateRoleTypeByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateRoleTypeByNameInput! + ): UpdateRoleTypePayload + + """Updates a single `User` using a unique key and a patch.""" + updateUser( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateUserInput! + ): UpdateUserPayload + + """Updates a single `User` using a unique key and a patch.""" + updateUserByUsername( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateUserByUsernameInput! + ): UpdateUserPayload + + """Updates a single `AppAdminGrant` using a unique key and a patch.""" + updateAppAdminGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppAdminGrantInput! + ): UpdateAppAdminGrantPayload + + """Updates a single `AppGrant` using a unique key and a patch.""" + updateAppGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppGrantInput! + ): UpdateAppGrantPayload + + """ + Updates a single `AppMembershipDefault` using a unique key and a patch. + """ + updateAppMembershipDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppMembershipDefaultInput! + ): UpdateAppMembershipDefaultPayload + + """Updates a single `AppMembership` using a unique key and a patch.""" + updateAppMembership( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppMembershipInput! + ): UpdateAppMembershipPayload + + """Updates a single `AppMembership` using a unique key and a patch.""" + updateAppMembershipByActorId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppMembershipByActorIdInput! + ): UpdateAppMembershipPayload + + """Updates a single `AppOwnerGrant` using a unique key and a patch.""" + updateAppOwnerGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppOwnerGrantInput! + ): UpdateAppOwnerGrantPayload + + """ + Updates a single `MembershipAdminGrant` using a unique key and a patch. + """ + updateMembershipAdminGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipAdminGrantInput! + ): UpdateMembershipAdminGrantPayload + + """Updates a single `MembershipGrant` using a unique key and a patch.""" + updateMembershipGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipGrantInput! + ): UpdateMembershipGrantPayload + + """Updates a single `MembershipMember` using a unique key and a patch.""" + updateMembershipMember( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipMemberInput! + ): UpdateMembershipMemberPayload + + """Updates a single `MembershipMember` using a unique key and a patch.""" + updateMembershipMemberByActorIdAndEntityId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipMemberByActorIdAndEntityIdInput! + ): UpdateMembershipMemberPayload + + """ + Updates a single `MembershipMembershipDefault` using a unique key and a patch. + """ + updateMembershipMembershipDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipMembershipDefaultInput! + ): UpdateMembershipMembershipDefaultPayload + + """ + Updates a single `MembershipMembershipDefault` using a unique key and a patch. + """ + updateMembershipMembershipDefaultByEntityId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipMembershipDefaultByEntityIdInput! + ): UpdateMembershipMembershipDefaultPayload + + """ + Updates a single `MembershipMembership` using a unique key and a patch. + """ + updateMembershipMembership( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipMembershipInput! + ): UpdateMembershipMembershipPayload + + """ + Updates a single `MembershipMembership` using a unique key and a patch. + """ + updateMembershipMembershipByActorIdAndEntityId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipMembershipByActorIdAndEntityIdInput! + ): UpdateMembershipMembershipPayload + + """ + Updates a single `MembershipOwnerGrant` using a unique key and a patch. + """ + updateMembershipOwnerGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipOwnerGrantInput! + ): UpdateMembershipOwnerGrantPayload + + """Updates a single `MembershipType` using a unique key and a patch.""" + updateMembershipType( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipTypeInput! + ): UpdateMembershipTypePayload + + """Updates a single `MembershipType` using a unique key and a patch.""" + updateMembershipTypeByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipTypeByNameInput! + ): UpdateMembershipTypePayload + + """ + Updates a single `AppPermissionDefault` using a unique key and a patch. + """ + updateAppPermissionDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppPermissionDefaultInput! + ): UpdateAppPermissionDefaultPayload + + """Updates a single `AppPermission` using a unique key and a patch.""" + updateAppPermission( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppPermissionInput! + ): UpdateAppPermissionPayload + + """Updates a single `AppPermission` using a unique key and a patch.""" + updateAppPermissionByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppPermissionByNameInput! + ): UpdateAppPermissionPayload + + """Updates a single `AppPermission` using a unique key and a patch.""" + updateAppPermissionByBitnum( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppPermissionByBitnumInput! + ): UpdateAppPermissionPayload + + """ + Updates a single `MembershipPermissionDefault` using a unique key and a patch. + """ + updateMembershipPermissionDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipPermissionDefaultInput! + ): UpdateMembershipPermissionDefaultPayload + + """ + Updates a single `MembershipPermission` using a unique key and a patch. + """ + updateMembershipPermission( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipPermissionInput! + ): UpdateMembershipPermissionPayload + + """ + Updates a single `MembershipPermission` using a unique key and a patch. + """ + updateMembershipPermissionByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipPermissionByNameInput! + ): UpdateMembershipPermissionPayload + + """ + Updates a single `MembershipPermission` using a unique key and a patch. + """ + updateMembershipPermissionByBitnum( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipPermissionByBitnumInput! + ): UpdateMembershipPermissionPayload + + """Updates a single `AppLimitDefault` using a unique key and a patch.""" + updateAppLimitDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppLimitDefaultInput! + ): UpdateAppLimitDefaultPayload + + """Updates a single `AppLimitDefault` using a unique key and a patch.""" + updateAppLimitDefaultByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppLimitDefaultByNameInput! + ): UpdateAppLimitDefaultPayload + + """Updates a single `AppLimit` using a unique key and a patch.""" + updateAppLimit( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppLimitInput! + ): UpdateAppLimitPayload + + """Updates a single `AppLimit` using a unique key and a patch.""" + updateAppLimitByNameAndActorId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppLimitByNameAndActorIdInput! + ): UpdateAppLimitPayload + + """ + Updates a single `MembershipLimitDefault` using a unique key and a patch. + """ + updateMembershipLimitDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipLimitDefaultInput! + ): UpdateMembershipLimitDefaultPayload + + """ + Updates a single `MembershipLimitDefault` using a unique key and a patch. + """ + updateMembershipLimitDefaultByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipLimitDefaultByNameInput! + ): UpdateMembershipLimitDefaultPayload + + """Updates a single `MembershipLimit` using a unique key and a patch.""" + updateMembershipLimit( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipLimitInput! + ): UpdateMembershipLimitPayload + + """Updates a single `MembershipLimit` using a unique key and a patch.""" + updateMembershipLimitByNameAndActorIdAndEntityId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipLimitByNameAndActorIdAndEntityIdInput! + ): UpdateMembershipLimitPayload + + """Updates a single `AppAchievement` using a unique key and a patch.""" + updateAppAchievement( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppAchievementInput! + ): UpdateAppAchievementPayload + + """Updates a single `AppAchievement` using a unique key and a patch.""" + updateAppAchievementByActorIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppAchievementByActorIdAndNameInput! + ): UpdateAppAchievementPayload + + """Updates a single `AppLevelRequirement` using a unique key and a patch.""" + updateAppLevelRequirement( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppLevelRequirementInput! + ): UpdateAppLevelRequirementPayload + + """Updates a single `AppLevelRequirement` using a unique key and a patch.""" + updateAppLevelRequirementByNameAndLevel( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppLevelRequirementByNameAndLevelInput! + ): UpdateAppLevelRequirementPayload + + """Updates a single `AppLevel` using a unique key and a patch.""" + updateAppLevel( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppLevelInput! + ): UpdateAppLevelPayload + + """Updates a single `AppLevel` using a unique key and a patch.""" + updateAppLevelByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppLevelByNameInput! + ): UpdateAppLevelPayload + + """Updates a single `AppStep` using a unique key and a patch.""" + updateAppStep( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppStepInput! + ): UpdateAppStepPayload + + """Updates a single `ClaimedInvite` using a unique key and a patch.""" + updateClaimedInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateClaimedInviteInput! + ): UpdateClaimedInvitePayload + + """Updates a single `Invite` using a unique key and a patch.""" + updateInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateInviteInput! + ): UpdateInvitePayload + + """Updates a single `Invite` using a unique key and a patch.""" + updateInviteByEmailAndSenderId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateInviteByEmailAndSenderIdInput! + ): UpdateInvitePayload + + """Updates a single `Invite` using a unique key and a patch.""" + updateInviteByInviteToken( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateInviteByInviteTokenInput! + ): UpdateInvitePayload + + """ + Updates a single `MembershipClaimedInvite` using a unique key and a patch. + """ + updateMembershipClaimedInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipClaimedInviteInput! + ): UpdateMembershipClaimedInvitePayload + + """Updates a single `MembershipInvite` using a unique key and a patch.""" + updateMembershipInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipInviteInput! + ): UpdateMembershipInvitePayload + + """Updates a single `MembershipInvite` using a unique key and a patch.""" + updateMembershipInviteByEmailAndSenderIdAndEntityId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipInviteByEmailAndSenderIdAndEntityIdInput! + ): UpdateMembershipInvitePayload + + """Updates a single `MembershipInvite` using a unique key and a patch.""" + updateMembershipInviteByInviteToken( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipInviteByInviteTokenInput! + ): UpdateMembershipInvitePayload + + """Updates a single `AuditLog` using a unique key and a patch.""" + updateAuditLog( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAuditLogInput! + ): UpdateAuditLogPayload + + """Deletes a single `Category` using a unique key.""" + deleteCategory( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteCategoryInput! + ): DeleteCategoryPayload + + """Deletes a single `CryptoAddress` using a unique key.""" + deleteCryptoAddress( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteCryptoAddressInput! + ): DeleteCryptoAddressPayload + + """Deletes a single `CryptoAddress` using a unique key.""" + deleteCryptoAddressByAddress( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteCryptoAddressByAddressInput! + ): DeleteCryptoAddressPayload + + """Deletes a single `Email` using a unique key.""" + deleteEmail( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteEmailInput! + ): DeleteEmailPayload + + """Deletes a single `Email` using a unique key.""" + deleteEmailByEmail( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteEmailByEmailInput! + ): DeleteEmailPayload + + """Deletes a single `OrderItem` using a unique key.""" + deleteOrderItem( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteOrderItemInput! + ): DeleteOrderItemPayload + + """Deletes a single `Order` using a unique key.""" + deleteOrder( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteOrderInput! + ): DeleteOrderPayload + + """Deletes a single `PhoneNumber` using a unique key.""" + deletePhoneNumber( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeletePhoneNumberInput! + ): DeletePhoneNumberPayload + + """Deletes a single `PhoneNumber` using a unique key.""" + deletePhoneNumberByNumber( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeletePhoneNumberByNumberInput! + ): DeletePhoneNumberPayload + + """Deletes a single `Product` using a unique key.""" + deleteProduct( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteProductInput! + ): DeleteProductPayload + + """Deletes a single `Review` using a unique key.""" + deleteReview( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteReviewInput! + ): DeleteReviewPayload + + """Deletes a single `RoleType` using a unique key.""" + deleteRoleType( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteRoleTypeInput! + ): DeleteRoleTypePayload + + """Deletes a single `RoleType` using a unique key.""" + deleteRoleTypeByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteRoleTypeByNameInput! + ): DeleteRoleTypePayload + + """Deletes a single `User` using a unique key.""" + deleteUser( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteUserInput! + ): DeleteUserPayload + + """Deletes a single `User` using a unique key.""" + deleteUserByUsername( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteUserByUsernameInput! + ): DeleteUserPayload + + """Deletes a single `AppAdminGrant` using a unique key.""" + deleteAppAdminGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppAdminGrantInput! + ): DeleteAppAdminGrantPayload + + """Deletes a single `AppGrant` using a unique key.""" + deleteAppGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppGrantInput! + ): DeleteAppGrantPayload + + """Deletes a single `AppMembershipDefault` using a unique key.""" + deleteAppMembershipDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppMembershipDefaultInput! + ): DeleteAppMembershipDefaultPayload + + """Deletes a single `AppMembership` using a unique key.""" + deleteAppMembership( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppMembershipInput! + ): DeleteAppMembershipPayload + + """Deletes a single `AppMembership` using a unique key.""" + deleteAppMembershipByActorId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppMembershipByActorIdInput! + ): DeleteAppMembershipPayload + + """Deletes a single `AppOwnerGrant` using a unique key.""" + deleteAppOwnerGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppOwnerGrantInput! + ): DeleteAppOwnerGrantPayload + + """Deletes a single `MembershipAdminGrant` using a unique key.""" + deleteMembershipAdminGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipAdminGrantInput! + ): DeleteMembershipAdminGrantPayload + + """Deletes a single `MembershipGrant` using a unique key.""" + deleteMembershipGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipGrantInput! + ): DeleteMembershipGrantPayload + + """Deletes a single `MembershipMember` using a unique key.""" + deleteMembershipMember( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipMemberInput! + ): DeleteMembershipMemberPayload + + """Deletes a single `MembershipMember` using a unique key.""" + deleteMembershipMemberByActorIdAndEntityId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipMemberByActorIdAndEntityIdInput! + ): DeleteMembershipMemberPayload + + """Deletes a single `MembershipMembershipDefault` using a unique key.""" + deleteMembershipMembershipDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipMembershipDefaultInput! + ): DeleteMembershipMembershipDefaultPayload + + """Deletes a single `MembershipMembershipDefault` using a unique key.""" + deleteMembershipMembershipDefaultByEntityId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipMembershipDefaultByEntityIdInput! + ): DeleteMembershipMembershipDefaultPayload + + """Deletes a single `MembershipMembership` using a unique key.""" + deleteMembershipMembership( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipMembershipInput! + ): DeleteMembershipMembershipPayload + + """Deletes a single `MembershipMembership` using a unique key.""" + deleteMembershipMembershipByActorIdAndEntityId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipMembershipByActorIdAndEntityIdInput! + ): DeleteMembershipMembershipPayload + + """Deletes a single `MembershipOwnerGrant` using a unique key.""" + deleteMembershipOwnerGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipOwnerGrantInput! + ): DeleteMembershipOwnerGrantPayload + + """Deletes a single `MembershipType` using a unique key.""" + deleteMembershipType( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipTypeInput! + ): DeleteMembershipTypePayload + + """Deletes a single `MembershipType` using a unique key.""" + deleteMembershipTypeByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipTypeByNameInput! + ): DeleteMembershipTypePayload + + """Deletes a single `AppPermissionDefault` using a unique key.""" + deleteAppPermissionDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppPermissionDefaultInput! + ): DeleteAppPermissionDefaultPayload + + """Deletes a single `AppPermission` using a unique key.""" + deleteAppPermission( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppPermissionInput! + ): DeleteAppPermissionPayload + + """Deletes a single `AppPermission` using a unique key.""" + deleteAppPermissionByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppPermissionByNameInput! + ): DeleteAppPermissionPayload + + """Deletes a single `AppPermission` using a unique key.""" + deleteAppPermissionByBitnum( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppPermissionByBitnumInput! + ): DeleteAppPermissionPayload + + """Deletes a single `MembershipPermissionDefault` using a unique key.""" + deleteMembershipPermissionDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipPermissionDefaultInput! + ): DeleteMembershipPermissionDefaultPayload + + """Deletes a single `MembershipPermission` using a unique key.""" + deleteMembershipPermission( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipPermissionInput! + ): DeleteMembershipPermissionPayload + + """Deletes a single `MembershipPermission` using a unique key.""" + deleteMembershipPermissionByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipPermissionByNameInput! + ): DeleteMembershipPermissionPayload + + """Deletes a single `MembershipPermission` using a unique key.""" + deleteMembershipPermissionByBitnum( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipPermissionByBitnumInput! + ): DeleteMembershipPermissionPayload + + """Deletes a single `AppLimitDefault` using a unique key.""" + deleteAppLimitDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppLimitDefaultInput! + ): DeleteAppLimitDefaultPayload + + """Deletes a single `AppLimitDefault` using a unique key.""" + deleteAppLimitDefaultByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppLimitDefaultByNameInput! + ): DeleteAppLimitDefaultPayload + + """Deletes a single `AppLimit` using a unique key.""" + deleteAppLimit( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppLimitInput! + ): DeleteAppLimitPayload + + """Deletes a single `AppLimit` using a unique key.""" + deleteAppLimitByNameAndActorId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppLimitByNameAndActorIdInput! + ): DeleteAppLimitPayload + + """Deletes a single `MembershipLimitDefault` using a unique key.""" + deleteMembershipLimitDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipLimitDefaultInput! + ): DeleteMembershipLimitDefaultPayload + + """Deletes a single `MembershipLimitDefault` using a unique key.""" + deleteMembershipLimitDefaultByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipLimitDefaultByNameInput! + ): DeleteMembershipLimitDefaultPayload + + """Deletes a single `MembershipLimit` using a unique key.""" + deleteMembershipLimit( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipLimitInput! + ): DeleteMembershipLimitPayload + + """Deletes a single `MembershipLimit` using a unique key.""" + deleteMembershipLimitByNameAndActorIdAndEntityId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipLimitByNameAndActorIdAndEntityIdInput! + ): DeleteMembershipLimitPayload + + """Deletes a single `AppAchievement` using a unique key.""" + deleteAppAchievement( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppAchievementInput! + ): DeleteAppAchievementPayload + + """Deletes a single `AppAchievement` using a unique key.""" + deleteAppAchievementByActorIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppAchievementByActorIdAndNameInput! + ): DeleteAppAchievementPayload + + """Deletes a single `AppLevelRequirement` using a unique key.""" + deleteAppLevelRequirement( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppLevelRequirementInput! + ): DeleteAppLevelRequirementPayload + + """Deletes a single `AppLevelRequirement` using a unique key.""" + deleteAppLevelRequirementByNameAndLevel( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppLevelRequirementByNameAndLevelInput! + ): DeleteAppLevelRequirementPayload + + """Deletes a single `AppLevel` using a unique key.""" + deleteAppLevel( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppLevelInput! + ): DeleteAppLevelPayload + + """Deletes a single `AppLevel` using a unique key.""" + deleteAppLevelByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppLevelByNameInput! + ): DeleteAppLevelPayload + + """Deletes a single `AppStep` using a unique key.""" + deleteAppStep( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppStepInput! + ): DeleteAppStepPayload + + """Deletes a single `ClaimedInvite` using a unique key.""" + deleteClaimedInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteClaimedInviteInput! + ): DeleteClaimedInvitePayload + + """Deletes a single `Invite` using a unique key.""" + deleteInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteInviteInput! + ): DeleteInvitePayload + + """Deletes a single `Invite` using a unique key.""" + deleteInviteByEmailAndSenderId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteInviteByEmailAndSenderIdInput! + ): DeleteInvitePayload + + """Deletes a single `Invite` using a unique key.""" + deleteInviteByInviteToken( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteInviteByInviteTokenInput! + ): DeleteInvitePayload + + """Deletes a single `MembershipClaimedInvite` using a unique key.""" + deleteMembershipClaimedInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipClaimedInviteInput! + ): DeleteMembershipClaimedInvitePayload + + """Deletes a single `MembershipInvite` using a unique key.""" + deleteMembershipInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipInviteInput! + ): DeleteMembershipInvitePayload + + """Deletes a single `MembershipInvite` using a unique key.""" + deleteMembershipInviteByEmailAndSenderIdAndEntityId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipInviteByEmailAndSenderIdAndEntityIdInput! + ): DeleteMembershipInvitePayload + + """Deletes a single `MembershipInvite` using a unique key.""" + deleteMembershipInviteByInviteToken( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipInviteByInviteTokenInput! + ): DeleteMembershipInvitePayload + + """Deletes a single `AuditLog` using a unique key.""" + deleteAuditLog( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAuditLogInput! + ): DeleteAuditLogPayload + uuidGenerateV4( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UuidGenerateV4Input! + ): UuidGenerateV4Payload + submitInviteCode( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: SubmitInviteCodeInput! + ): SubmitInviteCodePayload + submitMembershipInviteCode( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: SubmitMembershipInviteCodeInput! + ): SubmitMembershipInviteCodePayload + checkPassword( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CheckPasswordInput! + ): CheckPasswordPayload + confirmDeleteAccount( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: ConfirmDeleteAccountInput! + ): ConfirmDeleteAccountPayload + extendTokenExpires( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: ExtendTokenExpiresInput! + ): ExtendTokenExpiresPayload + forgotPassword( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: ForgotPasswordInput! + ): ForgotPasswordPayload + login( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: LoginInput! + ): LoginPayload + loginOneTimeToken( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: LoginOneTimeTokenInput! + ): LoginOneTimeTokenPayload + logout( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: LogoutInput! + ): LogoutPayload + oneTimeToken( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: OneTimeTokenInput! + ): OneTimeTokenPayload + register( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: RegisterInput! + ): RegisterPayload + resetPassword( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: ResetPasswordInput! + ): ResetPasswordPayload + sendAccountDeletionEmail( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: SendAccountDeletionEmailInput! + ): SendAccountDeletionEmailPayload + sendVerificationEmail( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: SendVerificationEmailInput! + ): SendVerificationEmailPayload + setPassword( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: SetPasswordInput! + ): SetPasswordPayload + verifyEmail( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: VerifyEmailInput! + ): VerifyEmailPayload + verifyPassword( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: VerifyPasswordInput! + ): VerifyPasswordPayload + verifyTotp( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: VerifyTotpInput! + ): VerifyTotpPayload +} + +"""The output of our create `Category` mutation.""" +type CreateCategoryPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `Category` that was created by this mutation.""" + category: Category + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `Category`. May be used by Relay 1.""" + categoryEdge( + """The method to use when ordering `Category`.""" + orderBy: [CategoriesOrderBy!] = [PRIMARY_KEY_ASC] + ): CategoriesEdge +} + +"""All input for the create `Category` mutation.""" +input CreateCategoryInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `Category` to be created by this mutation.""" + category: CategoryInput! +} + +"""An input for mutations affecting `Category`""" +input CategoryInput { + id: UUID + name: String! + description: String + slug: String! + imageUrl: String + isActive: Boolean + sortOrder: Int + createdAt: Datetime +} + +"""The output of our create `CryptoAddress` mutation.""" +type CreateCryptoAddressPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `CryptoAddress` that was created by this mutation.""" + cryptoAddress: CryptoAddress + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `CryptoAddress`.""" + owner: User + + """An edge for our `CryptoAddress`. May be used by Relay 1.""" + cryptoAddressEdge( + """The method to use when ordering `CryptoAddress`.""" + orderBy: [CryptoAddressesOrderBy!] = [PRIMARY_KEY_ASC] + ): CryptoAddressesEdge +} + +"""All input for the create `CryptoAddress` mutation.""" +input CreateCryptoAddressInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `CryptoAddress` to be created by this mutation.""" + cryptoAddress: CryptoAddressInput! +} + +"""An input for mutations affecting `CryptoAddress`""" +input CryptoAddressInput { + id: UUID + ownerId: UUID + address: String! + isVerified: Boolean + isPrimary: Boolean + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our create `Email` mutation.""" +type CreateEmailPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `Email` that was created by this mutation.""" + email: Email + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `Email`.""" + owner: User + + """An edge for our `Email`. May be used by Relay 1.""" + emailEdge( + """The method to use when ordering `Email`.""" + orderBy: [EmailsOrderBy!] = [PRIMARY_KEY_ASC] + ): EmailsEdge +} + +"""All input for the create `Email` mutation.""" +input CreateEmailInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `Email` to be created by this mutation.""" + email: EmailInput! +} + +"""An input for mutations affecting `Email`""" +input EmailInput { + id: UUID + ownerId: UUID + email: String! + isVerified: Boolean + isPrimary: Boolean + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our create `OrderItem` mutation.""" +type CreateOrderItemPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `OrderItem` that was created by this mutation.""" + orderItem: OrderItem + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `Order` that is related to this `OrderItem`.""" + order: Order + + """Reads a single `Product` that is related to this `OrderItem`.""" + product: Product + + """An edge for our `OrderItem`. May be used by Relay 1.""" + orderItemEdge( + """The method to use when ordering `OrderItem`.""" + orderBy: [OrderItemsOrderBy!] = [PRIMARY_KEY_ASC] + ): OrderItemsEdge +} + +"""All input for the create `OrderItem` mutation.""" +input CreateOrderItemInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `OrderItem` to be created by this mutation.""" + orderItem: OrderItemInput! +} + +"""An input for mutations affecting `OrderItem`""" +input OrderItemInput { + id: UUID + quantity: Int! + unitPrice: BigFloat! + totalPrice: BigFloat! + orderId: UUID! + productId: UUID! +} + +"""The output of our create `Order` mutation.""" +type CreateOrderPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `Order` that was created by this mutation.""" + order: Order + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `Order`.""" + customer: User + + """An edge for our `Order`. May be used by Relay 1.""" + orderEdge( + """The method to use when ordering `Order`.""" + orderBy: [OrdersOrderBy!] = [PRIMARY_KEY_ASC] + ): OrdersEdge +} + +"""All input for the create `Order` mutation.""" +input CreateOrderInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `Order` to be created by this mutation.""" + order: OrderInput! +} + +"""An input for mutations affecting `Order`""" +input OrderInput { + id: UUID + orderNumber: String! + status: String! + totalAmount: BigFloat! + shippingAmount: BigFloat + taxAmount: BigFloat + notes: String + shippedAt: Datetime + deliveredAt: Datetime + createdAt: Datetime + updatedAt: Datetime + customerId: UUID! +} + +"""The output of our create `PhoneNumber` mutation.""" +type CreatePhoneNumberPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `PhoneNumber` that was created by this mutation.""" + phoneNumber: PhoneNumber + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `PhoneNumber`.""" + owner: User + + """An edge for our `PhoneNumber`. May be used by Relay 1.""" + phoneNumberEdge( + """The method to use when ordering `PhoneNumber`.""" + orderBy: [PhoneNumbersOrderBy!] = [PRIMARY_KEY_ASC] + ): PhoneNumbersEdge +} + +"""All input for the create `PhoneNumber` mutation.""" +input CreatePhoneNumberInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `PhoneNumber` to be created by this mutation.""" + phoneNumber: PhoneNumberInput! +} + +"""An input for mutations affecting `PhoneNumber`""" +input PhoneNumberInput { + id: UUID + ownerId: UUID + cc: String! + number: String! + isVerified: Boolean + isPrimary: Boolean + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our create `Product` mutation.""" +type CreateProductPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `Product` that was created by this mutation.""" + product: Product + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `Product`.""" + seller: User + + """Reads a single `Category` that is related to this `Product`.""" + category: Category + + """An edge for our `Product`. May be used by Relay 1.""" + productEdge( + """The method to use when ordering `Product`.""" + orderBy: [ProductsOrderBy!] = [PRIMARY_KEY_ASC] + ): ProductsEdge +} + +"""All input for the create `Product` mutation.""" +input CreateProductInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `Product` to be created by this mutation.""" + product: ProductInput! +} + +"""An input for mutations affecting `Product`""" +input ProductInput { + id: UUID + name: String! + description: String + price: BigFloat! + compareAtPrice: BigFloat + sku: String + inventoryQuantity: Int + weight: BigFloat + dimensions: String + isActive: Boolean + isFeatured: Boolean + tags: String + imageUrls: String + createdAt: Datetime + updatedAt: Datetime + sellerId: UUID! + categoryId: UUID +} + +"""The output of our create `Review` mutation.""" +type CreateReviewPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `Review` that was created by this mutation.""" + review: Review + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `Review`.""" + user: User + + """Reads a single `Product` that is related to this `Review`.""" + product: Product + + """An edge for our `Review`. May be used by Relay 1.""" + reviewEdge( + """The method to use when ordering `Review`.""" + orderBy: [ReviewsOrderBy!] = [PRIMARY_KEY_ASC] + ): ReviewsEdge +} + +"""All input for the create `Review` mutation.""" +input CreateReviewInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `Review` to be created by this mutation.""" + review: ReviewInput! +} + +"""An input for mutations affecting `Review`""" +input ReviewInput { + id: UUID + rating: Int! + title: String + comment: String + isVerifiedPurchase: Boolean + createdAt: Datetime + userId: UUID! + productId: UUID! +} + +"""The output of our create `RoleType` mutation.""" +type CreateRoleTypePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `RoleType` that was created by this mutation.""" + roleType: RoleType + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `RoleType`. May be used by Relay 1.""" + roleTypeEdge( + """The method to use when ordering `RoleType`.""" + orderBy: [RoleTypesOrderBy!] = [PRIMARY_KEY_ASC] + ): RoleTypesEdge +} + +"""All input for the create `RoleType` mutation.""" +input CreateRoleTypeInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `RoleType` to be created by this mutation.""" + roleType: RoleTypeInput! +} + +"""An input for mutations affecting `RoleType`""" +input RoleTypeInput { + id: Int! + name: String! +} + +"""The output of our create `User` mutation.""" +type CreateUserPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `User` that was created by this mutation.""" + user: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `RoleType` that is related to this `User`.""" + roleTypeByType: RoleType + + """An edge for our `User`. May be used by Relay 1.""" + userEdge( + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UsersEdge +} + +"""All input for the create `User` mutation.""" +input CreateUserInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `User` to be created by this mutation.""" + user: UserInput! +} + +"""An input for mutations affecting `User`""" +input UserInput { + id: UUID + username: String + displayName: String + profilePicture: JSON + searchTsv: FullText + type: Int + createdAt: Datetime + updatedAt: Datetime + profilePictureUpload: Upload +} + +"""The `Upload` scalar type represents a file upload.""" +scalar Upload + +"""The output of our create `AppAdminGrant` mutation.""" +type CreateAppAdminGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppAdminGrant` that was created by this mutation.""" + appAdminGrant: AppAdminGrant + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppAdminGrant`.""" + actor: User + + """Reads a single `User` that is related to this `AppAdminGrant`.""" + grantor: User + + """An edge for our `AppAdminGrant`. May be used by Relay 1.""" + appAdminGrantEdge( + """The method to use when ordering `AppAdminGrant`.""" + orderBy: [AppAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppAdminGrantsEdge +} + +"""All input for the create `AppAdminGrant` mutation.""" +input CreateAppAdminGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `AppAdminGrant` to be created by this mutation.""" + appAdminGrant: AppAdminGrantInput! +} + +"""An input for mutations affecting `AppAdminGrant`""" +input AppAdminGrantInput { + id: UUID + isGrant: Boolean + actorId: UUID! + grantorId: UUID + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our create `AppGrant` mutation.""" +type CreateAppGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppGrant` that was created by this mutation.""" + appGrant: AppGrant + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppGrant`.""" + actor: User + + """Reads a single `User` that is related to this `AppGrant`.""" + grantor: User + + """An edge for our `AppGrant`. May be used by Relay 1.""" + appGrantEdge( + """The method to use when ordering `AppGrant`.""" + orderBy: [AppGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppGrantsEdge +} + +"""All input for the create `AppGrant` mutation.""" +input CreateAppGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `AppGrant` to be created by this mutation.""" + appGrant: AppGrantInput! +} + +"""An input for mutations affecting `AppGrant`""" +input AppGrantInput { + id: UUID + permissions: BitString + isGrant: Boolean + actorId: UUID! + grantorId: UUID + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our create `AppMembershipDefault` mutation.""" +type CreateAppMembershipDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppMembershipDefault` that was created by this mutation.""" + appMembershipDefault: AppMembershipDefault + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `AppMembershipDefault`. May be used by Relay 1.""" + appMembershipDefaultEdge( + """The method to use when ordering `AppMembershipDefault`.""" + orderBy: [AppMembershipDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppMembershipDefaultsEdge +} + +"""All input for the create `AppMembershipDefault` mutation.""" +input CreateAppMembershipDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `AppMembershipDefault` to be created by this mutation.""" + appMembershipDefault: AppMembershipDefaultInput! +} + +"""An input for mutations affecting `AppMembershipDefault`""" +input AppMembershipDefaultInput { + id: UUID + createdAt: Datetime + updatedAt: Datetime + createdBy: UUID + updatedBy: UUID + isApproved: Boolean + isVerified: Boolean +} + +"""The output of our create `AppMembership` mutation.""" +type CreateAppMembershipPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppMembership` that was created by this mutation.""" + appMembership: AppMembership + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppMembership`.""" + actor: User + + """An edge for our `AppMembership`. May be used by Relay 1.""" + appMembershipEdge( + """The method to use when ordering `AppMembership`.""" + orderBy: [AppMembershipsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppMembershipsEdge +} + +"""All input for the create `AppMembership` mutation.""" +input CreateAppMembershipInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `AppMembership` to be created by this mutation.""" + appMembership: AppMembershipInput! +} + +"""An input for mutations affecting `AppMembership`""" +input AppMembershipInput { + id: UUID + createdAt: Datetime + updatedAt: Datetime + createdBy: UUID + updatedBy: UUID + isApproved: Boolean + isBanned: Boolean + isDisabled: Boolean + isVerified: Boolean + isActive: Boolean + isOwner: Boolean + isAdmin: Boolean + permissions: BitString + granted: BitString + actorId: UUID! +} + +"""The output of our create `AppOwnerGrant` mutation.""" +type CreateAppOwnerGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppOwnerGrant` that was created by this mutation.""" + appOwnerGrant: AppOwnerGrant + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppOwnerGrant`.""" + actor: User + + """Reads a single `User` that is related to this `AppOwnerGrant`.""" + grantor: User + + """An edge for our `AppOwnerGrant`. May be used by Relay 1.""" + appOwnerGrantEdge( + """The method to use when ordering `AppOwnerGrant`.""" + orderBy: [AppOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppOwnerGrantsEdge +} + +"""All input for the create `AppOwnerGrant` mutation.""" +input CreateAppOwnerGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `AppOwnerGrant` to be created by this mutation.""" + appOwnerGrant: AppOwnerGrantInput! +} + +"""An input for mutations affecting `AppOwnerGrant`""" +input AppOwnerGrantInput { + id: UUID + isGrant: Boolean + actorId: UUID! + grantorId: UUID + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our create `MembershipAdminGrant` mutation.""" +type CreateMembershipAdminGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipAdminGrant` that was created by this mutation.""" + membershipAdminGrant: MembershipAdminGrant + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipAdminGrant`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipAdminGrant`.""" + entity: User + + """Reads a single `User` that is related to this `MembershipAdminGrant`.""" + grantor: User + + """An edge for our `MembershipAdminGrant`. May be used by Relay 1.""" + membershipAdminGrantEdge( + """The method to use when ordering `MembershipAdminGrant`.""" + orderBy: [MembershipAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipAdminGrantsEdge +} + +"""All input for the create `MembershipAdminGrant` mutation.""" +input CreateMembershipAdminGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `MembershipAdminGrant` to be created by this mutation.""" + membershipAdminGrant: MembershipAdminGrantInput! +} + +"""An input for mutations affecting `MembershipAdminGrant`""" +input MembershipAdminGrantInput { + id: UUID + isGrant: Boolean + actorId: UUID! + entityId: UUID! + grantorId: UUID + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our create `MembershipGrant` mutation.""" +type CreateMembershipGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipGrant` that was created by this mutation.""" + membershipGrant: MembershipGrant + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipGrant`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipGrant`.""" + entity: User + + """Reads a single `User` that is related to this `MembershipGrant`.""" + grantor: User + + """An edge for our `MembershipGrant`. May be used by Relay 1.""" + membershipGrantEdge( + """The method to use when ordering `MembershipGrant`.""" + orderBy: [MembershipGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipGrantsEdge +} + +"""All input for the create `MembershipGrant` mutation.""" +input CreateMembershipGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `MembershipGrant` to be created by this mutation.""" + membershipGrant: MembershipGrantInput! +} + +"""An input for mutations affecting `MembershipGrant`""" +input MembershipGrantInput { + id: UUID + permissions: BitString + isGrant: Boolean + actorId: UUID! + entityId: UUID! + grantorId: UUID + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our create `MembershipMember` mutation.""" +type CreateMembershipMemberPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipMember` that was created by this mutation.""" + membershipMember: MembershipMember + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipMember`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipMember`.""" + entity: User + + """An edge for our `MembershipMember`. May be used by Relay 1.""" + membershipMemberEdge( + """The method to use when ordering `MembershipMember`.""" + orderBy: [MembershipMembersOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipMembersEdge +} + +"""All input for the create `MembershipMember` mutation.""" +input CreateMembershipMemberInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `MembershipMember` to be created by this mutation.""" + membershipMember: MembershipMemberInput! +} + +"""An input for mutations affecting `MembershipMember`""" +input MembershipMemberInput { + id: UUID + isAdmin: Boolean + actorId: UUID! + entityId: UUID! +} + +"""The output of our create `MembershipMembershipDefault` mutation.""" +type CreateMembershipMembershipDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipMembershipDefault` that was created by this mutation.""" + membershipMembershipDefault: MembershipMembershipDefault + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `MembershipMembershipDefault`. + """ + entity: User + + """An edge for our `MembershipMembershipDefault`. May be used by Relay 1.""" + membershipMembershipDefaultEdge( + """The method to use when ordering `MembershipMembershipDefault`.""" + orderBy: [MembershipMembershipDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipMembershipDefaultsEdge +} + +"""All input for the create `MembershipMembershipDefault` mutation.""" +input CreateMembershipMembershipDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `MembershipMembershipDefault` to be created by this mutation.""" + membershipMembershipDefault: MembershipMembershipDefaultInput! +} + +"""An input for mutations affecting `MembershipMembershipDefault`""" +input MembershipMembershipDefaultInput { + id: UUID + createdAt: Datetime + updatedAt: Datetime + createdBy: UUID + updatedBy: UUID + isApproved: Boolean + entityId: UUID! + deleteMemberCascadeGroups: Boolean + createGroupsCascadeMembers: Boolean +} + +"""The output of our create `MembershipMembership` mutation.""" +type CreateMembershipMembershipPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipMembership` that was created by this mutation.""" + membershipMembership: MembershipMembership + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipMembership`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipMembership`.""" + entity: User + + """An edge for our `MembershipMembership`. May be used by Relay 1.""" + membershipMembershipEdge( + """The method to use when ordering `MembershipMembership`.""" + orderBy: [MembershipMembershipsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipMembershipsEdge +} + +"""All input for the create `MembershipMembership` mutation.""" +input CreateMembershipMembershipInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `MembershipMembership` to be created by this mutation.""" + membershipMembership: MembershipMembershipInput! +} + +"""An input for mutations affecting `MembershipMembership`""" +input MembershipMembershipInput { + id: UUID + createdAt: Datetime + updatedAt: Datetime + createdBy: UUID + updatedBy: UUID + isApproved: Boolean + isBanned: Boolean + isDisabled: Boolean + isActive: Boolean + isOwner: Boolean + isAdmin: Boolean + permissions: BitString + granted: BitString + actorId: UUID! + entityId: UUID! +} + +"""The output of our create `MembershipOwnerGrant` mutation.""" +type CreateMembershipOwnerGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipOwnerGrant` that was created by this mutation.""" + membershipOwnerGrant: MembershipOwnerGrant + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipOwnerGrant`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipOwnerGrant`.""" + entity: User + + """Reads a single `User` that is related to this `MembershipOwnerGrant`.""" + grantor: User + + """An edge for our `MembershipOwnerGrant`. May be used by Relay 1.""" + membershipOwnerGrantEdge( + """The method to use when ordering `MembershipOwnerGrant`.""" + orderBy: [MembershipOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipOwnerGrantsEdge +} + +"""All input for the create `MembershipOwnerGrant` mutation.""" +input CreateMembershipOwnerGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `MembershipOwnerGrant` to be created by this mutation.""" + membershipOwnerGrant: MembershipOwnerGrantInput! +} + +"""An input for mutations affecting `MembershipOwnerGrant`""" +input MembershipOwnerGrantInput { + id: UUID + isGrant: Boolean + actorId: UUID! + entityId: UUID! + grantorId: UUID + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our create `MembershipType` mutation.""" +type CreateMembershipTypePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipType` that was created by this mutation.""" + membershipType: MembershipType + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `MembershipType`. May be used by Relay 1.""" + membershipTypeEdge( + """The method to use when ordering `MembershipType`.""" + orderBy: [MembershipTypesOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipTypesEdge +} + +"""All input for the create `MembershipType` mutation.""" +input CreateMembershipTypeInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `MembershipType` to be created by this mutation.""" + membershipType: MembershipTypeInput! +} + +"""An input for mutations affecting `MembershipType`""" +input MembershipTypeInput { + id: Int! + name: String! + description: String! + prefix: String! +} + +"""The output of our create `AppPermissionDefault` mutation.""" +type CreateAppPermissionDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppPermissionDefault` that was created by this mutation.""" + appPermissionDefault: AppPermissionDefault + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `AppPermissionDefault`. May be used by Relay 1.""" + appPermissionDefaultEdge( + """The method to use when ordering `AppPermissionDefault`.""" + orderBy: [AppPermissionDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppPermissionDefaultsEdge +} + +"""All input for the create `AppPermissionDefault` mutation.""" +input CreateAppPermissionDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `AppPermissionDefault` to be created by this mutation.""" + appPermissionDefault: AppPermissionDefaultInput! +} + +"""An input for mutations affecting `AppPermissionDefault`""" +input AppPermissionDefaultInput { + id: UUID + permissions: BitString +} + +"""The output of our create `AppPermission` mutation.""" +type CreateAppPermissionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppPermission` that was created by this mutation.""" + appPermission: AppPermission + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `AppPermission`. May be used by Relay 1.""" + appPermissionEdge( + """The method to use when ordering `AppPermission`.""" + orderBy: [AppPermissionsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppPermissionsEdge +} + +"""All input for the create `AppPermission` mutation.""" +input CreateAppPermissionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `AppPermission` to be created by this mutation.""" + appPermission: AppPermissionInput! +} + +"""An input for mutations affecting `AppPermission`""" +input AppPermissionInput { + id: UUID + name: String + bitnum: Int + bitstr: BitString + description: String +} + +"""The output of our create `MembershipPermissionDefault` mutation.""" +type CreateMembershipPermissionDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipPermissionDefault` that was created by this mutation.""" + membershipPermissionDefault: MembershipPermissionDefault + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `MembershipPermissionDefault`. + """ + entity: User + + """An edge for our `MembershipPermissionDefault`. May be used by Relay 1.""" + membershipPermissionDefaultEdge( + """The method to use when ordering `MembershipPermissionDefault`.""" + orderBy: [MembershipPermissionDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipPermissionDefaultsEdge +} + +"""All input for the create `MembershipPermissionDefault` mutation.""" +input CreateMembershipPermissionDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `MembershipPermissionDefault` to be created by this mutation.""" + membershipPermissionDefault: MembershipPermissionDefaultInput! +} + +"""An input for mutations affecting `MembershipPermissionDefault`""" +input MembershipPermissionDefaultInput { + id: UUID + permissions: BitString + entityId: UUID! +} + +"""The output of our create `MembershipPermission` mutation.""" +type CreateMembershipPermissionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipPermission` that was created by this mutation.""" + membershipPermission: MembershipPermission + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `MembershipPermission`. May be used by Relay 1.""" + membershipPermissionEdge( + """The method to use when ordering `MembershipPermission`.""" + orderBy: [MembershipPermissionsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipPermissionsEdge +} + +"""All input for the create `MembershipPermission` mutation.""" +input CreateMembershipPermissionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `MembershipPermission` to be created by this mutation.""" + membershipPermission: MembershipPermissionInput! +} + +"""An input for mutations affecting `MembershipPermission`""" +input MembershipPermissionInput { + id: UUID + name: String + bitnum: Int + bitstr: BitString + description: String +} + +"""The output of our create `AppLimitDefault` mutation.""" +type CreateAppLimitDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppLimitDefault` that was created by this mutation.""" + appLimitDefault: AppLimitDefault + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `AppLimitDefault`. May be used by Relay 1.""" + appLimitDefaultEdge( + """The method to use when ordering `AppLimitDefault`.""" + orderBy: [AppLimitDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLimitDefaultsEdge +} + +"""All input for the create `AppLimitDefault` mutation.""" +input CreateAppLimitDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `AppLimitDefault` to be created by this mutation.""" + appLimitDefault: AppLimitDefaultInput! +} + +"""An input for mutations affecting `AppLimitDefault`""" +input AppLimitDefaultInput { + id: UUID + name: String! + max: Int +} + +"""The output of our create `AppLimit` mutation.""" +type CreateAppLimitPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppLimit` that was created by this mutation.""" + appLimit: AppLimit + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppLimit`.""" + actor: User + + """An edge for our `AppLimit`. May be used by Relay 1.""" + appLimitEdge( + """The method to use when ordering `AppLimit`.""" + orderBy: [AppLimitsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLimitsEdge +} + +"""All input for the create `AppLimit` mutation.""" +input CreateAppLimitInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `AppLimit` to be created by this mutation.""" + appLimit: AppLimitInput! +} + +"""An input for mutations affecting `AppLimit`""" +input AppLimitInput { + id: UUID + name: String + actorId: UUID! + num: Int + max: Int +} + +"""The output of our create `MembershipLimitDefault` mutation.""" +type CreateMembershipLimitDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipLimitDefault` that was created by this mutation.""" + membershipLimitDefault: MembershipLimitDefault + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `MembershipLimitDefault`. May be used by Relay 1.""" + membershipLimitDefaultEdge( + """The method to use when ordering `MembershipLimitDefault`.""" + orderBy: [MembershipLimitDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipLimitDefaultsEdge +} + +"""All input for the create `MembershipLimitDefault` mutation.""" +input CreateMembershipLimitDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `MembershipLimitDefault` to be created by this mutation.""" + membershipLimitDefault: MembershipLimitDefaultInput! +} + +"""An input for mutations affecting `MembershipLimitDefault`""" +input MembershipLimitDefaultInput { + id: UUID + name: String! + max: Int +} + +"""The output of our create `MembershipLimit` mutation.""" +type CreateMembershipLimitPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipLimit` that was created by this mutation.""" + membershipLimit: MembershipLimit + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipLimit`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipLimit`.""" + entity: User + + """An edge for our `MembershipLimit`. May be used by Relay 1.""" + membershipLimitEdge( + """The method to use when ordering `MembershipLimit`.""" + orderBy: [MembershipLimitsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipLimitsEdge +} + +"""All input for the create `MembershipLimit` mutation.""" +input CreateMembershipLimitInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `MembershipLimit` to be created by this mutation.""" + membershipLimit: MembershipLimitInput! +} + +"""An input for mutations affecting `MembershipLimit`""" +input MembershipLimitInput { + id: UUID + name: String + actorId: UUID! + num: Int + max: Int + entityId: UUID! +} + +"""The output of our create `AppAchievement` mutation.""" +type CreateAppAchievementPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppAchievement` that was created by this mutation.""" + appAchievement: AppAchievement + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppAchievement`.""" + actor: User + + """An edge for our `AppAchievement`. May be used by Relay 1.""" + appAchievementEdge( + """The method to use when ordering `AppAchievement`.""" + orderBy: [AppAchievementsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppAchievementsEdge +} + +"""All input for the create `AppAchievement` mutation.""" +input CreateAppAchievementInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `AppAchievement` to be created by this mutation.""" + appAchievement: AppAchievementInput! +} + +"""An input for mutations affecting `AppAchievement`""" +input AppAchievementInput { + id: UUID + actorId: UUID + name: String! + count: Int + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our create `AppLevelRequirement` mutation.""" +type CreateAppLevelRequirementPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppLevelRequirement` that was created by this mutation.""" + appLevelRequirement: AppLevelRequirement + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `AppLevelRequirement`. May be used by Relay 1.""" + appLevelRequirementEdge( + """The method to use when ordering `AppLevelRequirement`.""" + orderBy: [AppLevelRequirementsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLevelRequirementsEdge +} + +"""All input for the create `AppLevelRequirement` mutation.""" +input CreateAppLevelRequirementInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `AppLevelRequirement` to be created by this mutation.""" + appLevelRequirement: AppLevelRequirementInput! +} + +"""An input for mutations affecting `AppLevelRequirement`""" +input AppLevelRequirementInput { + id: UUID + name: String! + level: String! + description: String + requiredCount: Int + priority: Int + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our create `AppLevel` mutation.""" +type CreateAppLevelPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppLevel` that was created by this mutation.""" + appLevel: AppLevel + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppLevel`.""" + owner: User + + """An edge for our `AppLevel`. May be used by Relay 1.""" + appLevelEdge( + """The method to use when ordering `AppLevel`.""" + orderBy: [AppLevelsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLevelsEdge +} + +"""All input for the create `AppLevel` mutation.""" +input CreateAppLevelInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `AppLevel` to be created by this mutation.""" + appLevel: AppLevelInput! +} + +"""An input for mutations affecting `AppLevel`""" +input AppLevelInput { + id: UUID + name: String! + description: String + image: JSON + ownerId: UUID + createdAt: Datetime + updatedAt: Datetime + imageUpload: Upload +} + +"""The output of our create `AppStep` mutation.""" +type CreateAppStepPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppStep` that was created by this mutation.""" + appStep: AppStep + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppStep`.""" + actor: User + + """An edge for our `AppStep`. May be used by Relay 1.""" + appStepEdge( + """The method to use when ordering `AppStep`.""" + orderBy: [AppStepsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppStepsEdge +} + +"""All input for the create `AppStep` mutation.""" +input CreateAppStepInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `AppStep` to be created by this mutation.""" + appStep: AppStepInput! +} + +"""An input for mutations affecting `AppStep`""" +input AppStepInput { + id: UUID + actorId: UUID + name: String! + count: Int + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our create `ClaimedInvite` mutation.""" +type CreateClaimedInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `ClaimedInvite` that was created by this mutation.""" + claimedInvite: ClaimedInvite + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `ClaimedInvite`.""" + sender: User + + """Reads a single `User` that is related to this `ClaimedInvite`.""" + receiver: User + + """An edge for our `ClaimedInvite`. May be used by Relay 1.""" + claimedInviteEdge( + """The method to use when ordering `ClaimedInvite`.""" + orderBy: [ClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): ClaimedInvitesEdge +} + +"""All input for the create `ClaimedInvite` mutation.""" +input CreateClaimedInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `ClaimedInvite` to be created by this mutation.""" + claimedInvite: ClaimedInviteInput! +} + +"""An input for mutations affecting `ClaimedInvite`""" +input ClaimedInviteInput { + id: UUID + data: JSON + senderId: UUID + receiverId: UUID + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our create `Invite` mutation.""" +type CreateInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `Invite` that was created by this mutation.""" + invite: Invite + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `Invite`.""" + sender: User + + """An edge for our `Invite`. May be used by Relay 1.""" + inviteEdge( + """The method to use when ordering `Invite`.""" + orderBy: [InvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): InvitesEdge +} + +"""All input for the create `Invite` mutation.""" +input CreateInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `Invite` to be created by this mutation.""" + invite: InviteInput! +} + +"""An input for mutations affecting `Invite`""" +input InviteInput { + id: UUID + email: String + senderId: UUID + inviteToken: String + inviteValid: Boolean + inviteLimit: Int + inviteCount: Int + multiple: Boolean + data: JSON + expiresAt: Datetime + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our create `MembershipClaimedInvite` mutation.""" +type CreateMembershipClaimedInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipClaimedInvite` that was created by this mutation.""" + membershipClaimedInvite: MembershipClaimedInvite + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `MembershipClaimedInvite`. + """ + sender: User + + """ + Reads a single `User` that is related to this `MembershipClaimedInvite`. + """ + receiver: User + + """ + Reads a single `User` that is related to this `MembershipClaimedInvite`. + """ + entity: User + + """An edge for our `MembershipClaimedInvite`. May be used by Relay 1.""" + membershipClaimedInviteEdge( + """The method to use when ordering `MembershipClaimedInvite`.""" + orderBy: [MembershipClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipClaimedInvitesEdge +} + +"""All input for the create `MembershipClaimedInvite` mutation.""" +input CreateMembershipClaimedInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `MembershipClaimedInvite` to be created by this mutation.""" + membershipClaimedInvite: MembershipClaimedInviteInput! +} + +"""An input for mutations affecting `MembershipClaimedInvite`""" +input MembershipClaimedInviteInput { + id: UUID + data: JSON + senderId: UUID + receiverId: UUID + createdAt: Datetime + updatedAt: Datetime + entityId: UUID! +} + +"""The output of our create `MembershipInvite` mutation.""" +type CreateMembershipInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipInvite` that was created by this mutation.""" + membershipInvite: MembershipInvite + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipInvite`.""" + sender: User + + """Reads a single `User` that is related to this `MembershipInvite`.""" + receiver: User + + """Reads a single `User` that is related to this `MembershipInvite`.""" + entity: User + + """An edge for our `MembershipInvite`. May be used by Relay 1.""" + membershipInviteEdge( + """The method to use when ordering `MembershipInvite`.""" + orderBy: [MembershipInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipInvitesEdge +} + +"""All input for the create `MembershipInvite` mutation.""" +input CreateMembershipInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `MembershipInvite` to be created by this mutation.""" + membershipInvite: MembershipInviteInput! +} + +"""An input for mutations affecting `MembershipInvite`""" +input MembershipInviteInput { + id: UUID + email: String + senderId: UUID + receiverId: UUID + inviteToken: String + inviteValid: Boolean + inviteLimit: Int + inviteCount: Int + multiple: Boolean + data: JSON + expiresAt: Datetime + createdAt: Datetime + updatedAt: Datetime + entityId: UUID! +} + +"""The output of our create `AuditLog` mutation.""" +type CreateAuditLogPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AuditLog` that was created by this mutation.""" + auditLog: AuditLog + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AuditLog`.""" + actor: User + + """An edge for our `AuditLog`. May be used by Relay 1.""" + auditLogEdge( + """The method to use when ordering `AuditLog`.""" + orderBy: [AuditLogsOrderBy!] = [PRIMARY_KEY_ASC] + ): AuditLogsEdge +} + +"""All input for the create `AuditLog` mutation.""" +input CreateAuditLogInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """The `AuditLog` to be created by this mutation.""" + auditLog: AuditLogInput! +} + +"""An input for mutations affecting `AuditLog`""" +input AuditLogInput { + id: UUID + event: String! + actorId: UUID + origin: String + userAgent: String + ipAddress: InternetAddress + success: Boolean! + createdAt: Datetime +} + +"""The output of our update `Category` mutation.""" +type UpdateCategoryPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `Category` that was updated by this mutation.""" + category: Category + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `Category`. May be used by Relay 1.""" + categoryEdge( + """The method to use when ordering `Category`.""" + orderBy: [CategoriesOrderBy!] = [PRIMARY_KEY_ASC] + ): CategoriesEdge +} + +"""All input for the `updateCategory` mutation.""" +input UpdateCategoryInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `Category` being updated. + """ + patch: CategoryPatch! + id: UUID! +} + +""" +Represents an update to a `Category`. Fields that are set will be updated. +""" +input CategoryPatch { + id: UUID + name: String + description: String + slug: String + imageUrl: String + isActive: Boolean + sortOrder: Int + createdAt: Datetime +} + +"""The output of our update `CryptoAddress` mutation.""" +type UpdateCryptoAddressPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `CryptoAddress` that was updated by this mutation.""" + cryptoAddress: CryptoAddress + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `CryptoAddress`.""" + owner: User + + """An edge for our `CryptoAddress`. May be used by Relay 1.""" + cryptoAddressEdge( + """The method to use when ordering `CryptoAddress`.""" + orderBy: [CryptoAddressesOrderBy!] = [PRIMARY_KEY_ASC] + ): CryptoAddressesEdge +} + +"""All input for the `updateCryptoAddress` mutation.""" +input UpdateCryptoAddressInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `CryptoAddress` being updated. + """ + patch: CryptoAddressPatch! + id: UUID! +} + +""" +Represents an update to a `CryptoAddress`. Fields that are set will be updated. +""" +input CryptoAddressPatch { + id: UUID + ownerId: UUID + address: String + isVerified: Boolean + isPrimary: Boolean + createdAt: Datetime + updatedAt: Datetime +} + +"""All input for the `updateCryptoAddressByAddress` mutation.""" +input UpdateCryptoAddressByAddressInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `CryptoAddress` being updated. + """ + patch: CryptoAddressPatch! + address: String! +} + +"""The output of our update `Email` mutation.""" +type UpdateEmailPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `Email` that was updated by this mutation.""" + email: Email + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `Email`.""" + owner: User + + """An edge for our `Email`. May be used by Relay 1.""" + emailEdge( + """The method to use when ordering `Email`.""" + orderBy: [EmailsOrderBy!] = [PRIMARY_KEY_ASC] + ): EmailsEdge +} + +"""All input for the `updateEmail` mutation.""" +input UpdateEmailInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `Email` being updated. + """ + patch: EmailPatch! + id: UUID! +} + +""" +Represents an update to a `Email`. Fields that are set will be updated. +""" +input EmailPatch { + id: UUID + ownerId: UUID + email: String + isVerified: Boolean + isPrimary: Boolean + createdAt: Datetime + updatedAt: Datetime +} + +"""All input for the `updateEmailByEmail` mutation.""" +input UpdateEmailByEmailInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `Email` being updated. + """ + patch: EmailPatch! + email: String! +} + +"""The output of our update `OrderItem` mutation.""" +type UpdateOrderItemPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `OrderItem` that was updated by this mutation.""" + orderItem: OrderItem + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `Order` that is related to this `OrderItem`.""" + order: Order + + """Reads a single `Product` that is related to this `OrderItem`.""" + product: Product + + """An edge for our `OrderItem`. May be used by Relay 1.""" + orderItemEdge( + """The method to use when ordering `OrderItem`.""" + orderBy: [OrderItemsOrderBy!] = [PRIMARY_KEY_ASC] + ): OrderItemsEdge +} + +"""All input for the `updateOrderItem` mutation.""" +input UpdateOrderItemInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `OrderItem` being updated. + """ + patch: OrderItemPatch! + id: UUID! +} + +""" +Represents an update to a `OrderItem`. Fields that are set will be updated. +""" +input OrderItemPatch { + id: UUID + quantity: Int + unitPrice: BigFloat + totalPrice: BigFloat + orderId: UUID + productId: UUID +} + +"""The output of our update `Order` mutation.""" +type UpdateOrderPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `Order` that was updated by this mutation.""" + order: Order + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `Order`.""" + customer: User + + """An edge for our `Order`. May be used by Relay 1.""" + orderEdge( + """The method to use when ordering `Order`.""" + orderBy: [OrdersOrderBy!] = [PRIMARY_KEY_ASC] + ): OrdersEdge +} + +"""All input for the `updateOrder` mutation.""" +input UpdateOrderInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `Order` being updated. + """ + patch: OrderPatch! + id: UUID! +} + +""" +Represents an update to a `Order`. Fields that are set will be updated. +""" +input OrderPatch { + id: UUID + orderNumber: String + status: String + totalAmount: BigFloat + shippingAmount: BigFloat + taxAmount: BigFloat + notes: String + shippedAt: Datetime + deliveredAt: Datetime + createdAt: Datetime + updatedAt: Datetime + customerId: UUID +} + +"""The output of our update `PhoneNumber` mutation.""" +type UpdatePhoneNumberPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `PhoneNumber` that was updated by this mutation.""" + phoneNumber: PhoneNumber + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `PhoneNumber`.""" + owner: User + + """An edge for our `PhoneNumber`. May be used by Relay 1.""" + phoneNumberEdge( + """The method to use when ordering `PhoneNumber`.""" + orderBy: [PhoneNumbersOrderBy!] = [PRIMARY_KEY_ASC] + ): PhoneNumbersEdge +} + +"""All input for the `updatePhoneNumber` mutation.""" +input UpdatePhoneNumberInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `PhoneNumber` being updated. + """ + patch: PhoneNumberPatch! + id: UUID! +} + +""" +Represents an update to a `PhoneNumber`. Fields that are set will be updated. +""" +input PhoneNumberPatch { + id: UUID + ownerId: UUID + cc: String + number: String + isVerified: Boolean + isPrimary: Boolean + createdAt: Datetime + updatedAt: Datetime +} + +"""All input for the `updatePhoneNumberByNumber` mutation.""" +input UpdatePhoneNumberByNumberInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `PhoneNumber` being updated. + """ + patch: PhoneNumberPatch! + number: String! +} + +"""The output of our update `Product` mutation.""" +type UpdateProductPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `Product` that was updated by this mutation.""" + product: Product + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `Product`.""" + seller: User + + """Reads a single `Category` that is related to this `Product`.""" + category: Category + + """An edge for our `Product`. May be used by Relay 1.""" + productEdge( + """The method to use when ordering `Product`.""" + orderBy: [ProductsOrderBy!] = [PRIMARY_KEY_ASC] + ): ProductsEdge +} + +"""All input for the `updateProduct` mutation.""" +input UpdateProductInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `Product` being updated. + """ + patch: ProductPatch! + id: UUID! +} + +""" +Represents an update to a `Product`. Fields that are set will be updated. +""" +input ProductPatch { + id: UUID + name: String + description: String + price: BigFloat + compareAtPrice: BigFloat + sku: String + inventoryQuantity: Int + weight: BigFloat + dimensions: String + isActive: Boolean + isFeatured: Boolean + tags: String + imageUrls: String + createdAt: Datetime + updatedAt: Datetime + sellerId: UUID + categoryId: UUID +} + +"""The output of our update `Review` mutation.""" +type UpdateReviewPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `Review` that was updated by this mutation.""" + review: Review + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `Review`.""" + user: User + + """Reads a single `Product` that is related to this `Review`.""" + product: Product + + """An edge for our `Review`. May be used by Relay 1.""" + reviewEdge( + """The method to use when ordering `Review`.""" + orderBy: [ReviewsOrderBy!] = [PRIMARY_KEY_ASC] + ): ReviewsEdge +} + +"""All input for the `updateReview` mutation.""" +input UpdateReviewInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `Review` being updated. + """ + patch: ReviewPatch! + id: UUID! +} + +""" +Represents an update to a `Review`. Fields that are set will be updated. +""" +input ReviewPatch { + id: UUID + rating: Int + title: String + comment: String + isVerifiedPurchase: Boolean + createdAt: Datetime + userId: UUID + productId: UUID +} + +"""The output of our update `RoleType` mutation.""" +type UpdateRoleTypePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `RoleType` that was updated by this mutation.""" + roleType: RoleType + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `RoleType`. May be used by Relay 1.""" + roleTypeEdge( + """The method to use when ordering `RoleType`.""" + orderBy: [RoleTypesOrderBy!] = [PRIMARY_KEY_ASC] + ): RoleTypesEdge +} + +"""All input for the `updateRoleType` mutation.""" +input UpdateRoleTypeInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `RoleType` being updated. + """ + patch: RoleTypePatch! + id: Int! +} + +""" +Represents an update to a `RoleType`. Fields that are set will be updated. +""" +input RoleTypePatch { + id: Int + name: String +} + +"""All input for the `updateRoleTypeByName` mutation.""" +input UpdateRoleTypeByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `RoleType` being updated. + """ + patch: RoleTypePatch! + name: String! +} + +"""The output of our update `User` mutation.""" +type UpdateUserPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `User` that was updated by this mutation.""" + user: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `RoleType` that is related to this `User`.""" + roleTypeByType: RoleType + + """An edge for our `User`. May be used by Relay 1.""" + userEdge( + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UsersEdge +} + +"""All input for the `updateUser` mutation.""" +input UpdateUserInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `User` being updated. + """ + patch: UserPatch! + id: UUID! +} + +"""Represents an update to a `User`. Fields that are set will be updated.""" +input UserPatch { + id: UUID + username: String + displayName: String + profilePicture: JSON + searchTsv: FullText + type: Int + createdAt: Datetime + updatedAt: Datetime + profilePictureUpload: Upload +} + +"""All input for the `updateUserByUsername` mutation.""" +input UpdateUserByUsernameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `User` being updated. + """ + patch: UserPatch! + username: String! +} + +"""The output of our update `AppAdminGrant` mutation.""" +type UpdateAppAdminGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppAdminGrant` that was updated by this mutation.""" + appAdminGrant: AppAdminGrant + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppAdminGrant`.""" + actor: User + + """Reads a single `User` that is related to this `AppAdminGrant`.""" + grantor: User + + """An edge for our `AppAdminGrant`. May be used by Relay 1.""" + appAdminGrantEdge( + """The method to use when ordering `AppAdminGrant`.""" + orderBy: [AppAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppAdminGrantsEdge +} + +"""All input for the `updateAppAdminGrant` mutation.""" +input UpdateAppAdminGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppAdminGrant` being updated. + """ + patch: AppAdminGrantPatch! + id: UUID! +} + +""" +Represents an update to a `AppAdminGrant`. Fields that are set will be updated. +""" +input AppAdminGrantPatch { + id: UUID + isGrant: Boolean + actorId: UUID + grantorId: UUID + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our update `AppGrant` mutation.""" +type UpdateAppGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppGrant` that was updated by this mutation.""" + appGrant: AppGrant + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppGrant`.""" + actor: User + + """Reads a single `User` that is related to this `AppGrant`.""" + grantor: User + + """An edge for our `AppGrant`. May be used by Relay 1.""" + appGrantEdge( + """The method to use when ordering `AppGrant`.""" + orderBy: [AppGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppGrantsEdge +} + +"""All input for the `updateAppGrant` mutation.""" +input UpdateAppGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppGrant` being updated. + """ + patch: AppGrantPatch! + id: UUID! +} + +""" +Represents an update to a `AppGrant`. Fields that are set will be updated. +""" +input AppGrantPatch { + id: UUID + permissions: BitString + isGrant: Boolean + actorId: UUID + grantorId: UUID + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our update `AppMembershipDefault` mutation.""" +type UpdateAppMembershipDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppMembershipDefault` that was updated by this mutation.""" + appMembershipDefault: AppMembershipDefault + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `AppMembershipDefault`. May be used by Relay 1.""" + appMembershipDefaultEdge( + """The method to use when ordering `AppMembershipDefault`.""" + orderBy: [AppMembershipDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppMembershipDefaultsEdge +} + +"""All input for the `updateAppMembershipDefault` mutation.""" +input UpdateAppMembershipDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppMembershipDefault` being updated. + """ + patch: AppMembershipDefaultPatch! + id: UUID! +} + +""" +Represents an update to a `AppMembershipDefault`. Fields that are set will be updated. +""" +input AppMembershipDefaultPatch { + id: UUID + createdAt: Datetime + updatedAt: Datetime + createdBy: UUID + updatedBy: UUID + isApproved: Boolean + isVerified: Boolean +} + +"""The output of our update `AppMembership` mutation.""" +type UpdateAppMembershipPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppMembership` that was updated by this mutation.""" + appMembership: AppMembership + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppMembership`.""" + actor: User + + """An edge for our `AppMembership`. May be used by Relay 1.""" + appMembershipEdge( + """The method to use when ordering `AppMembership`.""" + orderBy: [AppMembershipsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppMembershipsEdge +} + +"""All input for the `updateAppMembership` mutation.""" +input UpdateAppMembershipInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppMembership` being updated. + """ + patch: AppMembershipPatch! + id: UUID! +} + +""" +Represents an update to a `AppMembership`. Fields that are set will be updated. +""" +input AppMembershipPatch { + id: UUID + createdAt: Datetime + updatedAt: Datetime + createdBy: UUID + updatedBy: UUID + isApproved: Boolean + isBanned: Boolean + isDisabled: Boolean + isVerified: Boolean + isActive: Boolean + isOwner: Boolean + isAdmin: Boolean + permissions: BitString + granted: BitString + actorId: UUID +} + +"""All input for the `updateAppMembershipByActorId` mutation.""" +input UpdateAppMembershipByActorIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppMembership` being updated. + """ + patch: AppMembershipPatch! + actorId: UUID! +} + +"""The output of our update `AppOwnerGrant` mutation.""" +type UpdateAppOwnerGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppOwnerGrant` that was updated by this mutation.""" + appOwnerGrant: AppOwnerGrant + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppOwnerGrant`.""" + actor: User + + """Reads a single `User` that is related to this `AppOwnerGrant`.""" + grantor: User + + """An edge for our `AppOwnerGrant`. May be used by Relay 1.""" + appOwnerGrantEdge( + """The method to use when ordering `AppOwnerGrant`.""" + orderBy: [AppOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppOwnerGrantsEdge +} + +"""All input for the `updateAppOwnerGrant` mutation.""" +input UpdateAppOwnerGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppOwnerGrant` being updated. + """ + patch: AppOwnerGrantPatch! + id: UUID! +} + +""" +Represents an update to a `AppOwnerGrant`. Fields that are set will be updated. +""" +input AppOwnerGrantPatch { + id: UUID + isGrant: Boolean + actorId: UUID + grantorId: UUID + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our update `MembershipAdminGrant` mutation.""" +type UpdateMembershipAdminGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipAdminGrant` that was updated by this mutation.""" + membershipAdminGrant: MembershipAdminGrant + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipAdminGrant`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipAdminGrant`.""" + entity: User + + """Reads a single `User` that is related to this `MembershipAdminGrant`.""" + grantor: User + + """An edge for our `MembershipAdminGrant`. May be used by Relay 1.""" + membershipAdminGrantEdge( + """The method to use when ordering `MembershipAdminGrant`.""" + orderBy: [MembershipAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipAdminGrantsEdge +} + +"""All input for the `updateMembershipAdminGrant` mutation.""" +input UpdateMembershipAdminGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipAdminGrant` being updated. + """ + patch: MembershipAdminGrantPatch! + id: UUID! +} + +""" +Represents an update to a `MembershipAdminGrant`. Fields that are set will be updated. +""" +input MembershipAdminGrantPatch { + id: UUID + isGrant: Boolean + actorId: UUID + entityId: UUID + grantorId: UUID + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our update `MembershipGrant` mutation.""" +type UpdateMembershipGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipGrant` that was updated by this mutation.""" + membershipGrant: MembershipGrant + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipGrant`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipGrant`.""" + entity: User + + """Reads a single `User` that is related to this `MembershipGrant`.""" + grantor: User + + """An edge for our `MembershipGrant`. May be used by Relay 1.""" + membershipGrantEdge( + """The method to use when ordering `MembershipGrant`.""" + orderBy: [MembershipGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipGrantsEdge +} + +"""All input for the `updateMembershipGrant` mutation.""" +input UpdateMembershipGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipGrant` being updated. + """ + patch: MembershipGrantPatch! + id: UUID! +} + +""" +Represents an update to a `MembershipGrant`. Fields that are set will be updated. +""" +input MembershipGrantPatch { + id: UUID + permissions: BitString + isGrant: Boolean + actorId: UUID + entityId: UUID + grantorId: UUID + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our update `MembershipMember` mutation.""" +type UpdateMembershipMemberPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipMember` that was updated by this mutation.""" + membershipMember: MembershipMember + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipMember`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipMember`.""" + entity: User + + """An edge for our `MembershipMember`. May be used by Relay 1.""" + membershipMemberEdge( + """The method to use when ordering `MembershipMember`.""" + orderBy: [MembershipMembersOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipMembersEdge +} + +"""All input for the `updateMembershipMember` mutation.""" +input UpdateMembershipMemberInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipMember` being updated. + """ + patch: MembershipMemberPatch! + id: UUID! +} + +""" +Represents an update to a `MembershipMember`. Fields that are set will be updated. +""" +input MembershipMemberPatch { + id: UUID + isAdmin: Boolean + actorId: UUID + entityId: UUID +} + +""" +All input for the `updateMembershipMemberByActorIdAndEntityId` mutation. +""" +input UpdateMembershipMemberByActorIdAndEntityIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipMember` being updated. + """ + patch: MembershipMemberPatch! + actorId: UUID! + entityId: UUID! +} + +"""The output of our update `MembershipMembershipDefault` mutation.""" +type UpdateMembershipMembershipDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipMembershipDefault` that was updated by this mutation.""" + membershipMembershipDefault: MembershipMembershipDefault + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `MembershipMembershipDefault`. + """ + entity: User + + """An edge for our `MembershipMembershipDefault`. May be used by Relay 1.""" + membershipMembershipDefaultEdge( + """The method to use when ordering `MembershipMembershipDefault`.""" + orderBy: [MembershipMembershipDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipMembershipDefaultsEdge +} + +"""All input for the `updateMembershipMembershipDefault` mutation.""" +input UpdateMembershipMembershipDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipMembershipDefault` being updated. + """ + patch: MembershipMembershipDefaultPatch! + id: UUID! +} + +""" +Represents an update to a `MembershipMembershipDefault`. Fields that are set will be updated. +""" +input MembershipMembershipDefaultPatch { + id: UUID + createdAt: Datetime + updatedAt: Datetime + createdBy: UUID + updatedBy: UUID + isApproved: Boolean + entityId: UUID + deleteMemberCascadeGroups: Boolean + createGroupsCascadeMembers: Boolean +} + +""" +All input for the `updateMembershipMembershipDefaultByEntityId` mutation. +""" +input UpdateMembershipMembershipDefaultByEntityIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipMembershipDefault` being updated. + """ + patch: MembershipMembershipDefaultPatch! + entityId: UUID! +} + +"""The output of our update `MembershipMembership` mutation.""" +type UpdateMembershipMembershipPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipMembership` that was updated by this mutation.""" + membershipMembership: MembershipMembership + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipMembership`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipMembership`.""" + entity: User + + """An edge for our `MembershipMembership`. May be used by Relay 1.""" + membershipMembershipEdge( + """The method to use when ordering `MembershipMembership`.""" + orderBy: [MembershipMembershipsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipMembershipsEdge +} + +"""All input for the `updateMembershipMembership` mutation.""" +input UpdateMembershipMembershipInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipMembership` being updated. + """ + patch: MembershipMembershipPatch! + id: UUID! +} + +""" +Represents an update to a `MembershipMembership`. Fields that are set will be updated. +""" +input MembershipMembershipPatch { + id: UUID + createdAt: Datetime + updatedAt: Datetime + createdBy: UUID + updatedBy: UUID + isApproved: Boolean + isBanned: Boolean + isDisabled: Boolean + isActive: Boolean + isOwner: Boolean + isAdmin: Boolean + permissions: BitString + granted: BitString + actorId: UUID + entityId: UUID +} + +""" +All input for the `updateMembershipMembershipByActorIdAndEntityId` mutation. +""" +input UpdateMembershipMembershipByActorIdAndEntityIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipMembership` being updated. + """ + patch: MembershipMembershipPatch! + actorId: UUID! + entityId: UUID! +} + +"""The output of our update `MembershipOwnerGrant` mutation.""" +type UpdateMembershipOwnerGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipOwnerGrant` that was updated by this mutation.""" + membershipOwnerGrant: MembershipOwnerGrant + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipOwnerGrant`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipOwnerGrant`.""" + entity: User + + """Reads a single `User` that is related to this `MembershipOwnerGrant`.""" + grantor: User + + """An edge for our `MembershipOwnerGrant`. May be used by Relay 1.""" + membershipOwnerGrantEdge( + """The method to use when ordering `MembershipOwnerGrant`.""" + orderBy: [MembershipOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipOwnerGrantsEdge +} + +"""All input for the `updateMembershipOwnerGrant` mutation.""" +input UpdateMembershipOwnerGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipOwnerGrant` being updated. + """ + patch: MembershipOwnerGrantPatch! + id: UUID! +} + +""" +Represents an update to a `MembershipOwnerGrant`. Fields that are set will be updated. +""" +input MembershipOwnerGrantPatch { + id: UUID + isGrant: Boolean + actorId: UUID + entityId: UUID + grantorId: UUID + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our update `MembershipType` mutation.""" +type UpdateMembershipTypePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipType` that was updated by this mutation.""" + membershipType: MembershipType + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `MembershipType`. May be used by Relay 1.""" + membershipTypeEdge( + """The method to use when ordering `MembershipType`.""" + orderBy: [MembershipTypesOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipTypesEdge +} + +"""All input for the `updateMembershipType` mutation.""" +input UpdateMembershipTypeInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipType` being updated. + """ + patch: MembershipTypePatch! + id: Int! +} + +""" +Represents an update to a `MembershipType`. Fields that are set will be updated. +""" +input MembershipTypePatch { + id: Int + name: String + description: String + prefix: String +} + +"""All input for the `updateMembershipTypeByName` mutation.""" +input UpdateMembershipTypeByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipType` being updated. + """ + patch: MembershipTypePatch! + name: String! +} + +"""The output of our update `AppPermissionDefault` mutation.""" +type UpdateAppPermissionDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppPermissionDefault` that was updated by this mutation.""" + appPermissionDefault: AppPermissionDefault + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `AppPermissionDefault`. May be used by Relay 1.""" + appPermissionDefaultEdge( + """The method to use when ordering `AppPermissionDefault`.""" + orderBy: [AppPermissionDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppPermissionDefaultsEdge +} + +"""All input for the `updateAppPermissionDefault` mutation.""" +input UpdateAppPermissionDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppPermissionDefault` being updated. + """ + patch: AppPermissionDefaultPatch! + id: UUID! +} + +""" +Represents an update to a `AppPermissionDefault`. Fields that are set will be updated. +""" +input AppPermissionDefaultPatch { + id: UUID + permissions: BitString +} + +"""The output of our update `AppPermission` mutation.""" +type UpdateAppPermissionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppPermission` that was updated by this mutation.""" + appPermission: AppPermission + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `AppPermission`. May be used by Relay 1.""" + appPermissionEdge( + """The method to use when ordering `AppPermission`.""" + orderBy: [AppPermissionsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppPermissionsEdge +} + +"""All input for the `updateAppPermission` mutation.""" +input UpdateAppPermissionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppPermission` being updated. + """ + patch: AppPermissionPatch! + id: UUID! +} + +""" +Represents an update to a `AppPermission`. Fields that are set will be updated. +""" +input AppPermissionPatch { + id: UUID + name: String + bitnum: Int + bitstr: BitString + description: String +} + +"""All input for the `updateAppPermissionByName` mutation.""" +input UpdateAppPermissionByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppPermission` being updated. + """ + patch: AppPermissionPatch! + name: String! +} + +"""All input for the `updateAppPermissionByBitnum` mutation.""" +input UpdateAppPermissionByBitnumInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppPermission` being updated. + """ + patch: AppPermissionPatch! + bitnum: Int! +} + +"""The output of our update `MembershipPermissionDefault` mutation.""" +type UpdateMembershipPermissionDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipPermissionDefault` that was updated by this mutation.""" + membershipPermissionDefault: MembershipPermissionDefault + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `MembershipPermissionDefault`. + """ + entity: User + + """An edge for our `MembershipPermissionDefault`. May be used by Relay 1.""" + membershipPermissionDefaultEdge( + """The method to use when ordering `MembershipPermissionDefault`.""" + orderBy: [MembershipPermissionDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipPermissionDefaultsEdge +} + +"""All input for the `updateMembershipPermissionDefault` mutation.""" +input UpdateMembershipPermissionDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipPermissionDefault` being updated. + """ + patch: MembershipPermissionDefaultPatch! + id: UUID! +} + +""" +Represents an update to a `MembershipPermissionDefault`. Fields that are set will be updated. +""" +input MembershipPermissionDefaultPatch { + id: UUID + permissions: BitString + entityId: UUID +} + +"""The output of our update `MembershipPermission` mutation.""" +type UpdateMembershipPermissionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipPermission` that was updated by this mutation.""" + membershipPermission: MembershipPermission + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `MembershipPermission`. May be used by Relay 1.""" + membershipPermissionEdge( + """The method to use when ordering `MembershipPermission`.""" + orderBy: [MembershipPermissionsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipPermissionsEdge +} + +"""All input for the `updateMembershipPermission` mutation.""" +input UpdateMembershipPermissionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipPermission` being updated. + """ + patch: MembershipPermissionPatch! + id: UUID! +} + +""" +Represents an update to a `MembershipPermission`. Fields that are set will be updated. +""" +input MembershipPermissionPatch { + id: UUID + name: String + bitnum: Int + bitstr: BitString + description: String +} + +"""All input for the `updateMembershipPermissionByName` mutation.""" +input UpdateMembershipPermissionByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipPermission` being updated. + """ + patch: MembershipPermissionPatch! + name: String! +} + +"""All input for the `updateMembershipPermissionByBitnum` mutation.""" +input UpdateMembershipPermissionByBitnumInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipPermission` being updated. + """ + patch: MembershipPermissionPatch! + bitnum: Int! +} + +"""The output of our update `AppLimitDefault` mutation.""" +type UpdateAppLimitDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppLimitDefault` that was updated by this mutation.""" + appLimitDefault: AppLimitDefault + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `AppLimitDefault`. May be used by Relay 1.""" + appLimitDefaultEdge( + """The method to use when ordering `AppLimitDefault`.""" + orderBy: [AppLimitDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLimitDefaultsEdge +} + +"""All input for the `updateAppLimitDefault` mutation.""" +input UpdateAppLimitDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppLimitDefault` being updated. + """ + patch: AppLimitDefaultPatch! + id: UUID! +} + +""" +Represents an update to a `AppLimitDefault`. Fields that are set will be updated. +""" +input AppLimitDefaultPatch { + id: UUID + name: String + max: Int +} + +"""All input for the `updateAppLimitDefaultByName` mutation.""" +input UpdateAppLimitDefaultByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppLimitDefault` being updated. + """ + patch: AppLimitDefaultPatch! + name: String! +} + +"""The output of our update `AppLimit` mutation.""" +type UpdateAppLimitPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppLimit` that was updated by this mutation.""" + appLimit: AppLimit + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppLimit`.""" + actor: User + + """An edge for our `AppLimit`. May be used by Relay 1.""" + appLimitEdge( + """The method to use when ordering `AppLimit`.""" + orderBy: [AppLimitsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLimitsEdge +} + +"""All input for the `updateAppLimit` mutation.""" +input UpdateAppLimitInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppLimit` being updated. + """ + patch: AppLimitPatch! + id: UUID! +} + +""" +Represents an update to a `AppLimit`. Fields that are set will be updated. +""" +input AppLimitPatch { + id: UUID + name: String + actorId: UUID + num: Int + max: Int +} + +"""All input for the `updateAppLimitByNameAndActorId` mutation.""" +input UpdateAppLimitByNameAndActorIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppLimit` being updated. + """ + patch: AppLimitPatch! + name: String! + actorId: UUID! +} + +"""The output of our update `MembershipLimitDefault` mutation.""" +type UpdateMembershipLimitDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipLimitDefault` that was updated by this mutation.""" + membershipLimitDefault: MembershipLimitDefault + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `MembershipLimitDefault`. May be used by Relay 1.""" + membershipLimitDefaultEdge( + """The method to use when ordering `MembershipLimitDefault`.""" + orderBy: [MembershipLimitDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipLimitDefaultsEdge +} + +"""All input for the `updateMembershipLimitDefault` mutation.""" +input UpdateMembershipLimitDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipLimitDefault` being updated. + """ + patch: MembershipLimitDefaultPatch! + id: UUID! +} + +""" +Represents an update to a `MembershipLimitDefault`. Fields that are set will be updated. +""" +input MembershipLimitDefaultPatch { + id: UUID + name: String + max: Int +} + +"""All input for the `updateMembershipLimitDefaultByName` mutation.""" +input UpdateMembershipLimitDefaultByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipLimitDefault` being updated. + """ + patch: MembershipLimitDefaultPatch! + name: String! +} + +"""The output of our update `MembershipLimit` mutation.""" +type UpdateMembershipLimitPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipLimit` that was updated by this mutation.""" + membershipLimit: MembershipLimit + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipLimit`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipLimit`.""" + entity: User + + """An edge for our `MembershipLimit`. May be used by Relay 1.""" + membershipLimitEdge( + """The method to use when ordering `MembershipLimit`.""" + orderBy: [MembershipLimitsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipLimitsEdge +} + +"""All input for the `updateMembershipLimit` mutation.""" +input UpdateMembershipLimitInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipLimit` being updated. + """ + patch: MembershipLimitPatch! + id: UUID! +} + +""" +Represents an update to a `MembershipLimit`. Fields that are set will be updated. +""" +input MembershipLimitPatch { + id: UUID + name: String + actorId: UUID + num: Int + max: Int + entityId: UUID +} + +""" +All input for the `updateMembershipLimitByNameAndActorIdAndEntityId` mutation. +""" +input UpdateMembershipLimitByNameAndActorIdAndEntityIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipLimit` being updated. + """ + patch: MembershipLimitPatch! + name: String! + actorId: UUID! + entityId: UUID! +} + +"""The output of our update `AppAchievement` mutation.""" +type UpdateAppAchievementPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppAchievement` that was updated by this mutation.""" + appAchievement: AppAchievement + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppAchievement`.""" + actor: User + + """An edge for our `AppAchievement`. May be used by Relay 1.""" + appAchievementEdge( + """The method to use when ordering `AppAchievement`.""" + orderBy: [AppAchievementsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppAchievementsEdge +} + +"""All input for the `updateAppAchievement` mutation.""" +input UpdateAppAchievementInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppAchievement` being updated. + """ + patch: AppAchievementPatch! + id: UUID! +} + +""" +Represents an update to a `AppAchievement`. Fields that are set will be updated. +""" +input AppAchievementPatch { + id: UUID + actorId: UUID + name: String + count: Int + createdAt: Datetime + updatedAt: Datetime +} + +"""All input for the `updateAppAchievementByActorIdAndName` mutation.""" +input UpdateAppAchievementByActorIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppAchievement` being updated. + """ + patch: AppAchievementPatch! + actorId: UUID! + name: String! +} + +"""The output of our update `AppLevelRequirement` mutation.""" +type UpdateAppLevelRequirementPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppLevelRequirement` that was updated by this mutation.""" + appLevelRequirement: AppLevelRequirement + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `AppLevelRequirement`. May be used by Relay 1.""" + appLevelRequirementEdge( + """The method to use when ordering `AppLevelRequirement`.""" + orderBy: [AppLevelRequirementsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLevelRequirementsEdge +} + +"""All input for the `updateAppLevelRequirement` mutation.""" +input UpdateAppLevelRequirementInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppLevelRequirement` being updated. + """ + patch: AppLevelRequirementPatch! + id: UUID! +} + +""" +Represents an update to a `AppLevelRequirement`. Fields that are set will be updated. +""" +input AppLevelRequirementPatch { + id: UUID + name: String + level: String + description: String + requiredCount: Int + priority: Int + createdAt: Datetime + updatedAt: Datetime +} + +"""All input for the `updateAppLevelRequirementByNameAndLevel` mutation.""" +input UpdateAppLevelRequirementByNameAndLevelInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppLevelRequirement` being updated. + """ + patch: AppLevelRequirementPatch! + name: String! + level: String! +} + +"""The output of our update `AppLevel` mutation.""" +type UpdateAppLevelPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppLevel` that was updated by this mutation.""" + appLevel: AppLevel + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppLevel`.""" + owner: User + + """An edge for our `AppLevel`. May be used by Relay 1.""" + appLevelEdge( + """The method to use when ordering `AppLevel`.""" + orderBy: [AppLevelsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLevelsEdge +} + +"""All input for the `updateAppLevel` mutation.""" +input UpdateAppLevelInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppLevel` being updated. + """ + patch: AppLevelPatch! + id: UUID! +} + +""" +Represents an update to a `AppLevel`. Fields that are set will be updated. +""" +input AppLevelPatch { + id: UUID + name: String + description: String + image: JSON + ownerId: UUID + createdAt: Datetime + updatedAt: Datetime + imageUpload: Upload +} + +"""All input for the `updateAppLevelByName` mutation.""" +input UpdateAppLevelByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppLevel` being updated. + """ + patch: AppLevelPatch! + name: String! +} + +"""The output of our update `AppStep` mutation.""" +type UpdateAppStepPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppStep` that was updated by this mutation.""" + appStep: AppStep + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppStep`.""" + actor: User + + """An edge for our `AppStep`. May be used by Relay 1.""" + appStepEdge( + """The method to use when ordering `AppStep`.""" + orderBy: [AppStepsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppStepsEdge +} + +"""All input for the `updateAppStep` mutation.""" +input UpdateAppStepInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppStep` being updated. + """ + patch: AppStepPatch! + id: UUID! +} + +""" +Represents an update to a `AppStep`. Fields that are set will be updated. +""" +input AppStepPatch { + id: UUID + actorId: UUID + name: String + count: Int + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our update `ClaimedInvite` mutation.""" +type UpdateClaimedInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `ClaimedInvite` that was updated by this mutation.""" + claimedInvite: ClaimedInvite + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `ClaimedInvite`.""" + sender: User + + """Reads a single `User` that is related to this `ClaimedInvite`.""" + receiver: User + + """An edge for our `ClaimedInvite`. May be used by Relay 1.""" + claimedInviteEdge( + """The method to use when ordering `ClaimedInvite`.""" + orderBy: [ClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): ClaimedInvitesEdge +} + +"""All input for the `updateClaimedInvite` mutation.""" +input UpdateClaimedInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `ClaimedInvite` being updated. + """ + patch: ClaimedInvitePatch! + id: UUID! +} + +""" +Represents an update to a `ClaimedInvite`. Fields that are set will be updated. +""" +input ClaimedInvitePatch { + id: UUID + data: JSON + senderId: UUID + receiverId: UUID + createdAt: Datetime + updatedAt: Datetime +} + +"""The output of our update `Invite` mutation.""" +type UpdateInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `Invite` that was updated by this mutation.""" + invite: Invite + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `Invite`.""" + sender: User + + """An edge for our `Invite`. May be used by Relay 1.""" + inviteEdge( + """The method to use when ordering `Invite`.""" + orderBy: [InvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): InvitesEdge +} + +"""All input for the `updateInvite` mutation.""" +input UpdateInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `Invite` being updated. + """ + patch: InvitePatch! + id: UUID! +} + +""" +Represents an update to a `Invite`. Fields that are set will be updated. +""" +input InvitePatch { + id: UUID + email: String + senderId: UUID + inviteToken: String + inviteValid: Boolean + inviteLimit: Int + inviteCount: Int + multiple: Boolean + data: JSON + expiresAt: Datetime + createdAt: Datetime + updatedAt: Datetime +} + +"""All input for the `updateInviteByEmailAndSenderId` mutation.""" +input UpdateInviteByEmailAndSenderIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `Invite` being updated. + """ + patch: InvitePatch! + email: String! + senderId: UUID! +} + +"""All input for the `updateInviteByInviteToken` mutation.""" +input UpdateInviteByInviteTokenInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `Invite` being updated. + """ + patch: InvitePatch! + inviteToken: String! +} + +"""The output of our update `MembershipClaimedInvite` mutation.""" +type UpdateMembershipClaimedInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipClaimedInvite` that was updated by this mutation.""" + membershipClaimedInvite: MembershipClaimedInvite + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `MembershipClaimedInvite`. + """ + sender: User + + """ + Reads a single `User` that is related to this `MembershipClaimedInvite`. + """ + receiver: User + + """ + Reads a single `User` that is related to this `MembershipClaimedInvite`. + """ + entity: User + + """An edge for our `MembershipClaimedInvite`. May be used by Relay 1.""" + membershipClaimedInviteEdge( + """The method to use when ordering `MembershipClaimedInvite`.""" + orderBy: [MembershipClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipClaimedInvitesEdge +} + +"""All input for the `updateMembershipClaimedInvite` mutation.""" +input UpdateMembershipClaimedInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipClaimedInvite` being updated. + """ + patch: MembershipClaimedInvitePatch! + id: UUID! +} + +""" +Represents an update to a `MembershipClaimedInvite`. Fields that are set will be updated. +""" +input MembershipClaimedInvitePatch { + id: UUID + data: JSON + senderId: UUID + receiverId: UUID + createdAt: Datetime + updatedAt: Datetime + entityId: UUID +} + +"""The output of our update `MembershipInvite` mutation.""" +type UpdateMembershipInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipInvite` that was updated by this mutation.""" + membershipInvite: MembershipInvite + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipInvite`.""" + sender: User + + """Reads a single `User` that is related to this `MembershipInvite`.""" + receiver: User + + """Reads a single `User` that is related to this `MembershipInvite`.""" + entity: User + + """An edge for our `MembershipInvite`. May be used by Relay 1.""" + membershipInviteEdge( + """The method to use when ordering `MembershipInvite`.""" + orderBy: [MembershipInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipInvitesEdge +} + +"""All input for the `updateMembershipInvite` mutation.""" +input UpdateMembershipInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipInvite` being updated. + """ + patch: MembershipInvitePatch! + id: UUID! +} + +""" +Represents an update to a `MembershipInvite`. Fields that are set will be updated. +""" +input MembershipInvitePatch { + id: UUID + email: String + senderId: UUID + receiverId: UUID + inviteToken: String + inviteValid: Boolean + inviteLimit: Int + inviteCount: Int + multiple: Boolean + data: JSON + expiresAt: Datetime + createdAt: Datetime + updatedAt: Datetime + entityId: UUID +} + +""" +All input for the `updateMembershipInviteByEmailAndSenderIdAndEntityId` mutation. +""" +input UpdateMembershipInviteByEmailAndSenderIdAndEntityIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipInvite` being updated. + """ + patch: MembershipInvitePatch! + email: String! + senderId: UUID! + entityId: UUID! +} + +"""All input for the `updateMembershipInviteByInviteToken` mutation.""" +input UpdateMembershipInviteByInviteTokenInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipInvite` being updated. + """ + patch: MembershipInvitePatch! + inviteToken: String! +} + +"""The output of our update `AuditLog` mutation.""" +type UpdateAuditLogPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AuditLog` that was updated by this mutation.""" + auditLog: AuditLog + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AuditLog`.""" + actor: User + + """An edge for our `AuditLog`. May be used by Relay 1.""" + auditLogEdge( + """The method to use when ordering `AuditLog`.""" + orderBy: [AuditLogsOrderBy!] = [PRIMARY_KEY_ASC] + ): AuditLogsEdge +} + +"""All input for the `updateAuditLog` mutation.""" +input UpdateAuditLogInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AuditLog` being updated. + """ + patch: AuditLogPatch! + id: UUID! +} + +""" +Represents an update to a `AuditLog`. Fields that are set will be updated. +""" +input AuditLogPatch { + id: UUID + event: String + actorId: UUID + origin: String + userAgent: String + ipAddress: InternetAddress + success: Boolean + createdAt: Datetime +} + +"""The output of our delete `Category` mutation.""" +type DeleteCategoryPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `Category` that was deleted by this mutation.""" + category: Category + deletedCategoryNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `Category`. May be used by Relay 1.""" + categoryEdge( + """The method to use when ordering `Category`.""" + orderBy: [CategoriesOrderBy!] = [PRIMARY_KEY_ASC] + ): CategoriesEdge +} + +"""All input for the `deleteCategory` mutation.""" +input DeleteCategoryInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""The output of our delete `CryptoAddress` mutation.""" +type DeleteCryptoAddressPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `CryptoAddress` that was deleted by this mutation.""" + cryptoAddress: CryptoAddress + deletedCryptoAddressNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `CryptoAddress`.""" + owner: User + + """An edge for our `CryptoAddress`. May be used by Relay 1.""" + cryptoAddressEdge( + """The method to use when ordering `CryptoAddress`.""" + orderBy: [CryptoAddressesOrderBy!] = [PRIMARY_KEY_ASC] + ): CryptoAddressesEdge +} + +"""All input for the `deleteCryptoAddress` mutation.""" +input DeleteCryptoAddressInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""All input for the `deleteCryptoAddressByAddress` mutation.""" +input DeleteCryptoAddressByAddressInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + address: String! +} + +"""The output of our delete `Email` mutation.""" +type DeleteEmailPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `Email` that was deleted by this mutation.""" + email: Email + deletedEmailNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `Email`.""" + owner: User + + """An edge for our `Email`. May be used by Relay 1.""" + emailEdge( + """The method to use when ordering `Email`.""" + orderBy: [EmailsOrderBy!] = [PRIMARY_KEY_ASC] + ): EmailsEdge +} + +"""All input for the `deleteEmail` mutation.""" +input DeleteEmailInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""All input for the `deleteEmailByEmail` mutation.""" +input DeleteEmailByEmailInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + email: String! +} + +"""The output of our delete `OrderItem` mutation.""" +type DeleteOrderItemPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `OrderItem` that was deleted by this mutation.""" + orderItem: OrderItem + deletedOrderItemNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `Order` that is related to this `OrderItem`.""" + order: Order + + """Reads a single `Product` that is related to this `OrderItem`.""" + product: Product + + """An edge for our `OrderItem`. May be used by Relay 1.""" + orderItemEdge( + """The method to use when ordering `OrderItem`.""" + orderBy: [OrderItemsOrderBy!] = [PRIMARY_KEY_ASC] + ): OrderItemsEdge +} + +"""All input for the `deleteOrderItem` mutation.""" +input DeleteOrderItemInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""The output of our delete `Order` mutation.""" +type DeleteOrderPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `Order` that was deleted by this mutation.""" + order: Order + deletedOrderNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `Order`.""" + customer: User + + """An edge for our `Order`. May be used by Relay 1.""" + orderEdge( + """The method to use when ordering `Order`.""" + orderBy: [OrdersOrderBy!] = [PRIMARY_KEY_ASC] + ): OrdersEdge +} + +"""All input for the `deleteOrder` mutation.""" +input DeleteOrderInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""The output of our delete `PhoneNumber` mutation.""" +type DeletePhoneNumberPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `PhoneNumber` that was deleted by this mutation.""" + phoneNumber: PhoneNumber + deletedPhoneNumberNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `PhoneNumber`.""" + owner: User + + """An edge for our `PhoneNumber`. May be used by Relay 1.""" + phoneNumberEdge( + """The method to use when ordering `PhoneNumber`.""" + orderBy: [PhoneNumbersOrderBy!] = [PRIMARY_KEY_ASC] + ): PhoneNumbersEdge +} + +"""All input for the `deletePhoneNumber` mutation.""" +input DeletePhoneNumberInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""All input for the `deletePhoneNumberByNumber` mutation.""" +input DeletePhoneNumberByNumberInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + number: String! +} + +"""The output of our delete `Product` mutation.""" +type DeleteProductPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `Product` that was deleted by this mutation.""" + product: Product + deletedProductNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `Product`.""" + seller: User + + """Reads a single `Category` that is related to this `Product`.""" + category: Category + + """An edge for our `Product`. May be used by Relay 1.""" + productEdge( + """The method to use when ordering `Product`.""" + orderBy: [ProductsOrderBy!] = [PRIMARY_KEY_ASC] + ): ProductsEdge +} + +"""All input for the `deleteProduct` mutation.""" +input DeleteProductInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""The output of our delete `Review` mutation.""" +type DeleteReviewPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `Review` that was deleted by this mutation.""" + review: Review + deletedReviewNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `Review`.""" + user: User + + """Reads a single `Product` that is related to this `Review`.""" + product: Product + + """An edge for our `Review`. May be used by Relay 1.""" + reviewEdge( + """The method to use when ordering `Review`.""" + orderBy: [ReviewsOrderBy!] = [PRIMARY_KEY_ASC] + ): ReviewsEdge +} + +"""All input for the `deleteReview` mutation.""" +input DeleteReviewInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""The output of our delete `RoleType` mutation.""" +type DeleteRoleTypePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `RoleType` that was deleted by this mutation.""" + roleType: RoleType + deletedRoleTypeNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `RoleType`. May be used by Relay 1.""" + roleTypeEdge( + """The method to use when ordering `RoleType`.""" + orderBy: [RoleTypesOrderBy!] = [PRIMARY_KEY_ASC] + ): RoleTypesEdge +} + +"""All input for the `deleteRoleType` mutation.""" +input DeleteRoleTypeInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: Int! +} + +"""All input for the `deleteRoleTypeByName` mutation.""" +input DeleteRoleTypeByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! +} + +"""The output of our delete `User` mutation.""" +type DeleteUserPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `User` that was deleted by this mutation.""" + user: User + deletedUserNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `RoleType` that is related to this `User`.""" + roleTypeByType: RoleType + + """An edge for our `User`. May be used by Relay 1.""" + userEdge( + """The method to use when ordering `User`.""" + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UsersEdge +} + +"""All input for the `deleteUser` mutation.""" +input DeleteUserInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""All input for the `deleteUserByUsername` mutation.""" +input DeleteUserByUsernameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + username: String! +} + +"""The output of our delete `AppAdminGrant` mutation.""" +type DeleteAppAdminGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppAdminGrant` that was deleted by this mutation.""" + appAdminGrant: AppAdminGrant + deletedAppAdminGrantNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppAdminGrant`.""" + actor: User + + """Reads a single `User` that is related to this `AppAdminGrant`.""" + grantor: User + + """An edge for our `AppAdminGrant`. May be used by Relay 1.""" + appAdminGrantEdge( + """The method to use when ordering `AppAdminGrant`.""" + orderBy: [AppAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppAdminGrantsEdge +} + +"""All input for the `deleteAppAdminGrant` mutation.""" +input DeleteAppAdminGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""The output of our delete `AppGrant` mutation.""" +type DeleteAppGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppGrant` that was deleted by this mutation.""" + appGrant: AppGrant + deletedAppGrantNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppGrant`.""" + actor: User + + """Reads a single `User` that is related to this `AppGrant`.""" + grantor: User + + """An edge for our `AppGrant`. May be used by Relay 1.""" + appGrantEdge( + """The method to use when ordering `AppGrant`.""" + orderBy: [AppGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppGrantsEdge +} + +"""All input for the `deleteAppGrant` mutation.""" +input DeleteAppGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""The output of our delete `AppMembershipDefault` mutation.""" +type DeleteAppMembershipDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppMembershipDefault` that was deleted by this mutation.""" + appMembershipDefault: AppMembershipDefault + deletedAppMembershipDefaultNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `AppMembershipDefault`. May be used by Relay 1.""" + appMembershipDefaultEdge( + """The method to use when ordering `AppMembershipDefault`.""" + orderBy: [AppMembershipDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppMembershipDefaultsEdge +} + +"""All input for the `deleteAppMembershipDefault` mutation.""" +input DeleteAppMembershipDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""The output of our delete `AppMembership` mutation.""" +type DeleteAppMembershipPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppMembership` that was deleted by this mutation.""" + appMembership: AppMembership + deletedAppMembershipNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppMembership`.""" + actor: User + + """An edge for our `AppMembership`. May be used by Relay 1.""" + appMembershipEdge( + """The method to use when ordering `AppMembership`.""" + orderBy: [AppMembershipsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppMembershipsEdge +} + +"""All input for the `deleteAppMembership` mutation.""" +input DeleteAppMembershipInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""All input for the `deleteAppMembershipByActorId` mutation.""" +input DeleteAppMembershipByActorIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + actorId: UUID! +} + +"""The output of our delete `AppOwnerGrant` mutation.""" +type DeleteAppOwnerGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppOwnerGrant` that was deleted by this mutation.""" + appOwnerGrant: AppOwnerGrant + deletedAppOwnerGrantNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppOwnerGrant`.""" + actor: User + + """Reads a single `User` that is related to this `AppOwnerGrant`.""" + grantor: User + + """An edge for our `AppOwnerGrant`. May be used by Relay 1.""" + appOwnerGrantEdge( + """The method to use when ordering `AppOwnerGrant`.""" + orderBy: [AppOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppOwnerGrantsEdge +} + +"""All input for the `deleteAppOwnerGrant` mutation.""" +input DeleteAppOwnerGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""The output of our delete `MembershipAdminGrant` mutation.""" +type DeleteMembershipAdminGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipAdminGrant` that was deleted by this mutation.""" + membershipAdminGrant: MembershipAdminGrant + deletedMembershipAdminGrantNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipAdminGrant`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipAdminGrant`.""" + entity: User + + """Reads a single `User` that is related to this `MembershipAdminGrant`.""" + grantor: User + + """An edge for our `MembershipAdminGrant`. May be used by Relay 1.""" + membershipAdminGrantEdge( + """The method to use when ordering `MembershipAdminGrant`.""" + orderBy: [MembershipAdminGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipAdminGrantsEdge +} + +"""All input for the `deleteMembershipAdminGrant` mutation.""" +input DeleteMembershipAdminGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""The output of our delete `MembershipGrant` mutation.""" +type DeleteMembershipGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipGrant` that was deleted by this mutation.""" + membershipGrant: MembershipGrant + deletedMembershipGrantNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipGrant`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipGrant`.""" + entity: User + + """Reads a single `User` that is related to this `MembershipGrant`.""" + grantor: User + + """An edge for our `MembershipGrant`. May be used by Relay 1.""" + membershipGrantEdge( + """The method to use when ordering `MembershipGrant`.""" + orderBy: [MembershipGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipGrantsEdge +} + +"""All input for the `deleteMembershipGrant` mutation.""" +input DeleteMembershipGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""The output of our delete `MembershipMember` mutation.""" +type DeleteMembershipMemberPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipMember` that was deleted by this mutation.""" + membershipMember: MembershipMember + deletedMembershipMemberNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipMember`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipMember`.""" + entity: User + + """An edge for our `MembershipMember`. May be used by Relay 1.""" + membershipMemberEdge( + """The method to use when ordering `MembershipMember`.""" + orderBy: [MembershipMembersOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipMembersEdge +} + +"""All input for the `deleteMembershipMember` mutation.""" +input DeleteMembershipMemberInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +All input for the `deleteMembershipMemberByActorIdAndEntityId` mutation. +""" +input DeleteMembershipMemberByActorIdAndEntityIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + actorId: UUID! + entityId: UUID! +} + +"""The output of our delete `MembershipMembershipDefault` mutation.""" +type DeleteMembershipMembershipDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipMembershipDefault` that was deleted by this mutation.""" + membershipMembershipDefault: MembershipMembershipDefault + deletedMembershipMembershipDefaultNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `MembershipMembershipDefault`. + """ + entity: User + + """An edge for our `MembershipMembershipDefault`. May be used by Relay 1.""" + membershipMembershipDefaultEdge( + """The method to use when ordering `MembershipMembershipDefault`.""" + orderBy: [MembershipMembershipDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipMembershipDefaultsEdge +} + +"""All input for the `deleteMembershipMembershipDefault` mutation.""" +input DeleteMembershipMembershipDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +All input for the `deleteMembershipMembershipDefaultByEntityId` mutation. +""" +input DeleteMembershipMembershipDefaultByEntityIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + entityId: UUID! +} + +"""The output of our delete `MembershipMembership` mutation.""" +type DeleteMembershipMembershipPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipMembership` that was deleted by this mutation.""" + membershipMembership: MembershipMembership + deletedMembershipMembershipNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipMembership`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipMembership`.""" + entity: User + + """An edge for our `MembershipMembership`. May be used by Relay 1.""" + membershipMembershipEdge( + """The method to use when ordering `MembershipMembership`.""" + orderBy: [MembershipMembershipsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipMembershipsEdge +} + +"""All input for the `deleteMembershipMembership` mutation.""" +input DeleteMembershipMembershipInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +All input for the `deleteMembershipMembershipByActorIdAndEntityId` mutation. +""" +input DeleteMembershipMembershipByActorIdAndEntityIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + actorId: UUID! + entityId: UUID! +} + +"""The output of our delete `MembershipOwnerGrant` mutation.""" +type DeleteMembershipOwnerGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipOwnerGrant` that was deleted by this mutation.""" + membershipOwnerGrant: MembershipOwnerGrant + deletedMembershipOwnerGrantNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipOwnerGrant`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipOwnerGrant`.""" + entity: User + + """Reads a single `User` that is related to this `MembershipOwnerGrant`.""" + grantor: User + + """An edge for our `MembershipOwnerGrant`. May be used by Relay 1.""" + membershipOwnerGrantEdge( + """The method to use when ordering `MembershipOwnerGrant`.""" + orderBy: [MembershipOwnerGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipOwnerGrantsEdge +} + +"""All input for the `deleteMembershipOwnerGrant` mutation.""" +input DeleteMembershipOwnerGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""The output of our delete `MembershipType` mutation.""" +type DeleteMembershipTypePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipType` that was deleted by this mutation.""" + membershipType: MembershipType + deletedMembershipTypeNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `MembershipType`. May be used by Relay 1.""" + membershipTypeEdge( + """The method to use when ordering `MembershipType`.""" + orderBy: [MembershipTypesOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipTypesEdge +} + +"""All input for the `deleteMembershipType` mutation.""" +input DeleteMembershipTypeInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: Int! +} + +"""All input for the `deleteMembershipTypeByName` mutation.""" +input DeleteMembershipTypeByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! +} + +"""The output of our delete `AppPermissionDefault` mutation.""" +type DeleteAppPermissionDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppPermissionDefault` that was deleted by this mutation.""" + appPermissionDefault: AppPermissionDefault + deletedAppPermissionDefaultNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `AppPermissionDefault`. May be used by Relay 1.""" + appPermissionDefaultEdge( + """The method to use when ordering `AppPermissionDefault`.""" + orderBy: [AppPermissionDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppPermissionDefaultsEdge +} + +"""All input for the `deleteAppPermissionDefault` mutation.""" +input DeleteAppPermissionDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""The output of our delete `AppPermission` mutation.""" +type DeleteAppPermissionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppPermission` that was deleted by this mutation.""" + appPermission: AppPermission + deletedAppPermissionNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `AppPermission`. May be used by Relay 1.""" + appPermissionEdge( + """The method to use when ordering `AppPermission`.""" + orderBy: [AppPermissionsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppPermissionsEdge +} + +"""All input for the `deleteAppPermission` mutation.""" +input DeleteAppPermissionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""All input for the `deleteAppPermissionByName` mutation.""" +input DeleteAppPermissionByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! +} + +"""All input for the `deleteAppPermissionByBitnum` mutation.""" +input DeleteAppPermissionByBitnumInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + bitnum: Int! +} + +"""The output of our delete `MembershipPermissionDefault` mutation.""" +type DeleteMembershipPermissionDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipPermissionDefault` that was deleted by this mutation.""" + membershipPermissionDefault: MembershipPermissionDefault + deletedMembershipPermissionDefaultNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `MembershipPermissionDefault`. + """ + entity: User + + """An edge for our `MembershipPermissionDefault`. May be used by Relay 1.""" + membershipPermissionDefaultEdge( + """The method to use when ordering `MembershipPermissionDefault`.""" + orderBy: [MembershipPermissionDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipPermissionDefaultsEdge +} + +"""All input for the `deleteMembershipPermissionDefault` mutation.""" +input DeleteMembershipPermissionDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""The output of our delete `MembershipPermission` mutation.""" +type DeleteMembershipPermissionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipPermission` that was deleted by this mutation.""" + membershipPermission: MembershipPermission + deletedMembershipPermissionNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `MembershipPermission`. May be used by Relay 1.""" + membershipPermissionEdge( + """The method to use when ordering `MembershipPermission`.""" + orderBy: [MembershipPermissionsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipPermissionsEdge +} + +"""All input for the `deleteMembershipPermission` mutation.""" +input DeleteMembershipPermissionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""All input for the `deleteMembershipPermissionByName` mutation.""" +input DeleteMembershipPermissionByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! +} + +"""All input for the `deleteMembershipPermissionByBitnum` mutation.""" +input DeleteMembershipPermissionByBitnumInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + bitnum: Int! +} + +"""The output of our delete `AppLimitDefault` mutation.""" +type DeleteAppLimitDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppLimitDefault` that was deleted by this mutation.""" + appLimitDefault: AppLimitDefault + deletedAppLimitDefaultNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `AppLimitDefault`. May be used by Relay 1.""" + appLimitDefaultEdge( + """The method to use when ordering `AppLimitDefault`.""" + orderBy: [AppLimitDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLimitDefaultsEdge +} + +"""All input for the `deleteAppLimitDefault` mutation.""" +input DeleteAppLimitDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""All input for the `deleteAppLimitDefaultByName` mutation.""" +input DeleteAppLimitDefaultByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! +} + +"""The output of our delete `AppLimit` mutation.""" +type DeleteAppLimitPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppLimit` that was deleted by this mutation.""" + appLimit: AppLimit + deletedAppLimitNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppLimit`.""" + actor: User + + """An edge for our `AppLimit`. May be used by Relay 1.""" + appLimitEdge( + """The method to use when ordering `AppLimit`.""" + orderBy: [AppLimitsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLimitsEdge +} + +"""All input for the `deleteAppLimit` mutation.""" +input DeleteAppLimitInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""All input for the `deleteAppLimitByNameAndActorId` mutation.""" +input DeleteAppLimitByNameAndActorIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + actorId: UUID! +} + +"""The output of our delete `MembershipLimitDefault` mutation.""" +type DeleteMembershipLimitDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipLimitDefault` that was deleted by this mutation.""" + membershipLimitDefault: MembershipLimitDefault + deletedMembershipLimitDefaultNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `MembershipLimitDefault`. May be used by Relay 1.""" + membershipLimitDefaultEdge( + """The method to use when ordering `MembershipLimitDefault`.""" + orderBy: [MembershipLimitDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipLimitDefaultsEdge +} + +"""All input for the `deleteMembershipLimitDefault` mutation.""" +input DeleteMembershipLimitDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""All input for the `deleteMembershipLimitDefaultByName` mutation.""" +input DeleteMembershipLimitDefaultByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! +} + +"""The output of our delete `MembershipLimit` mutation.""" +type DeleteMembershipLimitPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipLimit` that was deleted by this mutation.""" + membershipLimit: MembershipLimit + deletedMembershipLimitNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipLimit`.""" + actor: User + + """Reads a single `User` that is related to this `MembershipLimit`.""" + entity: User + + """An edge for our `MembershipLimit`. May be used by Relay 1.""" + membershipLimitEdge( + """The method to use when ordering `MembershipLimit`.""" + orderBy: [MembershipLimitsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipLimitsEdge +} + +"""All input for the `deleteMembershipLimit` mutation.""" +input DeleteMembershipLimitInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +All input for the `deleteMembershipLimitByNameAndActorIdAndEntityId` mutation. +""" +input DeleteMembershipLimitByNameAndActorIdAndEntityIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + actorId: UUID! + entityId: UUID! +} + +"""The output of our delete `AppAchievement` mutation.""" +type DeleteAppAchievementPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppAchievement` that was deleted by this mutation.""" + appAchievement: AppAchievement + deletedAppAchievementNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppAchievement`.""" + actor: User + + """An edge for our `AppAchievement`. May be used by Relay 1.""" + appAchievementEdge( + """The method to use when ordering `AppAchievement`.""" + orderBy: [AppAchievementsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppAchievementsEdge +} + +"""All input for the `deleteAppAchievement` mutation.""" +input DeleteAppAchievementInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""All input for the `deleteAppAchievementByActorIdAndName` mutation.""" +input DeleteAppAchievementByActorIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + actorId: UUID! + name: String! +} + +"""The output of our delete `AppLevelRequirement` mutation.""" +type DeleteAppLevelRequirementPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppLevelRequirement` that was deleted by this mutation.""" + appLevelRequirement: AppLevelRequirement + deletedAppLevelRequirementNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """An edge for our `AppLevelRequirement`. May be used by Relay 1.""" + appLevelRequirementEdge( + """The method to use when ordering `AppLevelRequirement`.""" + orderBy: [AppLevelRequirementsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLevelRequirementsEdge +} + +"""All input for the `deleteAppLevelRequirement` mutation.""" +input DeleteAppLevelRequirementInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""All input for the `deleteAppLevelRequirementByNameAndLevel` mutation.""" +input DeleteAppLevelRequirementByNameAndLevelInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + level: String! +} + +"""The output of our delete `AppLevel` mutation.""" +type DeleteAppLevelPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppLevel` that was deleted by this mutation.""" + appLevel: AppLevel + deletedAppLevelNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppLevel`.""" + owner: User + + """An edge for our `AppLevel`. May be used by Relay 1.""" + appLevelEdge( + """The method to use when ordering `AppLevel`.""" + orderBy: [AppLevelsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLevelsEdge +} + +"""All input for the `deleteAppLevel` mutation.""" +input DeleteAppLevelInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""All input for the `deleteAppLevelByName` mutation.""" +input DeleteAppLevelByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! +} + +"""The output of our delete `AppStep` mutation.""" +type DeleteAppStepPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AppStep` that was deleted by this mutation.""" + appStep: AppStep + deletedAppStepNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AppStep`.""" + actor: User + + """An edge for our `AppStep`. May be used by Relay 1.""" + appStepEdge( + """The method to use when ordering `AppStep`.""" + orderBy: [AppStepsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppStepsEdge +} + +"""All input for the `deleteAppStep` mutation.""" +input DeleteAppStepInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""The output of our delete `ClaimedInvite` mutation.""" +type DeleteClaimedInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `ClaimedInvite` that was deleted by this mutation.""" + claimedInvite: ClaimedInvite + deletedClaimedInviteNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `ClaimedInvite`.""" + sender: User + + """Reads a single `User` that is related to this `ClaimedInvite`.""" + receiver: User + + """An edge for our `ClaimedInvite`. May be used by Relay 1.""" + claimedInviteEdge( + """The method to use when ordering `ClaimedInvite`.""" + orderBy: [ClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): ClaimedInvitesEdge +} + +"""All input for the `deleteClaimedInvite` mutation.""" +input DeleteClaimedInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""The output of our delete `Invite` mutation.""" +type DeleteInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `Invite` that was deleted by this mutation.""" + invite: Invite + deletedInviteNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `Invite`.""" + sender: User + + """An edge for our `Invite`. May be used by Relay 1.""" + inviteEdge( + """The method to use when ordering `Invite`.""" + orderBy: [InvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): InvitesEdge +} + +"""All input for the `deleteInvite` mutation.""" +input DeleteInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""All input for the `deleteInviteByEmailAndSenderId` mutation.""" +input DeleteInviteByEmailAndSenderIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + email: String! + senderId: UUID! +} + +"""All input for the `deleteInviteByInviteToken` mutation.""" +input DeleteInviteByInviteTokenInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + inviteToken: String! +} + +"""The output of our delete `MembershipClaimedInvite` mutation.""" +type DeleteMembershipClaimedInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipClaimedInvite` that was deleted by this mutation.""" + membershipClaimedInvite: MembershipClaimedInvite + deletedMembershipClaimedInviteNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `MembershipClaimedInvite`. + """ + sender: User + + """ + Reads a single `User` that is related to this `MembershipClaimedInvite`. + """ + receiver: User + + """ + Reads a single `User` that is related to this `MembershipClaimedInvite`. + """ + entity: User + + """An edge for our `MembershipClaimedInvite`. May be used by Relay 1.""" + membershipClaimedInviteEdge( + """The method to use when ordering `MembershipClaimedInvite`.""" + orderBy: [MembershipClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipClaimedInvitesEdge +} + +"""All input for the `deleteMembershipClaimedInvite` mutation.""" +input DeleteMembershipClaimedInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""The output of our delete `MembershipInvite` mutation.""" +type DeleteMembershipInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `MembershipInvite` that was deleted by this mutation.""" + membershipInvite: MembershipInvite + deletedMembershipInviteNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `MembershipInvite`.""" + sender: User + + """Reads a single `User` that is related to this `MembershipInvite`.""" + receiver: User + + """Reads a single `User` that is related to this `MembershipInvite`.""" + entity: User + + """An edge for our `MembershipInvite`. May be used by Relay 1.""" + membershipInviteEdge( + """The method to use when ordering `MembershipInvite`.""" + orderBy: [MembershipInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipInvitesEdge +} + +"""All input for the `deleteMembershipInvite` mutation.""" +input DeleteMembershipInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +All input for the `deleteMembershipInviteByEmailAndSenderIdAndEntityId` mutation. +""" +input DeleteMembershipInviteByEmailAndSenderIdAndEntityIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + email: String! + senderId: UUID! + entityId: UUID! +} + +"""All input for the `deleteMembershipInviteByInviteToken` mutation.""" +input DeleteMembershipInviteByInviteTokenInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + inviteToken: String! +} + +"""The output of our delete `AuditLog` mutation.""" +type DeleteAuditLogPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """The `AuditLog` that was deleted by this mutation.""" + auditLog: AuditLog + deletedAuditLogNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """Reads a single `User` that is related to this `AuditLog`.""" + actor: User + + """An edge for our `AuditLog`. May be used by Relay 1.""" + auditLogEdge( + """The method to use when ordering `AuditLog`.""" + orderBy: [AuditLogsOrderBy!] = [PRIMARY_KEY_ASC] + ): AuditLogsEdge +} + +"""All input for the `deleteAuditLog` mutation.""" +input DeleteAuditLogInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +"""The output of our `uuidGenerateV4` mutation.""" +type UuidGenerateV4Payload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + uuid: UUID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +"""All input for the `uuidGenerateV4` mutation.""" +input UuidGenerateV4Input { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +"""The output of our `submitInviteCode` mutation.""" +type SubmitInviteCodePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + boolean: Boolean + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +"""All input for the `submitInviteCode` mutation.""" +input SubmitInviteCodeInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + token: String +} + +"""The output of our `submitMembershipInviteCode` mutation.""" +type SubmitMembershipInviteCodePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + boolean: Boolean + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +"""All input for the `submitMembershipInviteCode` mutation.""" +input SubmitMembershipInviteCodeInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + token: String +} + +"""The output of our `checkPassword` mutation.""" +type CheckPasswordPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +"""All input for the `checkPassword` mutation.""" +input CheckPasswordInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + password: String +} + +"""The output of our `confirmDeleteAccount` mutation.""" +type ConfirmDeleteAccountPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + boolean: Boolean + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +"""All input for the `confirmDeleteAccount` mutation.""" +input ConfirmDeleteAccountInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + userId: UUID + token: String +} + +"""The output of our `extendTokenExpires` mutation.""" +type ExtendTokenExpiresPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + apiToken: ApiToken + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +type ApiToken { + id: UUID! + userId: UUID! + otToken: String + origin: String + ip: InternetAddress + uagent: String + accessToken: String! + accessTokenExpiresAt: Datetime! + isVerified: Boolean! + lastTotpVerified: Datetime + totpEnabled: Boolean! + lastPasswordVerified: Datetime + createdAt: Datetime + updatedAt: Datetime +} + +"""All input for the `extendTokenExpires` mutation.""" +input ExtendTokenExpiresInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + amount: IntervalInput +} + +""" +An interval of time that has passed where the smallest distinct unit is a second. +""" +input IntervalInput { + """ + A quantity of seconds. This is the only non-integer field, as all the other + fields will dump their overflow into a smaller unit of time. Intervals don’t + have a smaller unit than seconds. + """ + seconds: Float + + """A quantity of minutes.""" + minutes: Int + + """A quantity of hours.""" + hours: Int + + """A quantity of days.""" + days: Int + + """A quantity of months.""" + months: Int + + """A quantity of years.""" + years: Int +} + +"""The output of our `forgotPassword` mutation.""" +type ForgotPasswordPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +"""All input for the `forgotPassword` mutation.""" +input ForgotPasswordInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + email: String +} + +"""The output of our `login` mutation.""" +type LoginPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + apiToken: ApiToken + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +"""All input for the `login` mutation.""" +input LoginInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + email: String! + password: String! + rememberMe: Boolean +} + +"""The output of our `loginOneTimeToken` mutation.""" +type LoginOneTimeTokenPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + apiToken: ApiToken + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +"""All input for the `loginOneTimeToken` mutation.""" +input LoginOneTimeTokenInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + token: String! +} + +"""The output of our `logout` mutation.""" +type LogoutPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +"""All input for the `logout` mutation.""" +input LogoutInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +"""The output of our `oneTimeToken` mutation.""" +type OneTimeTokenPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + string: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +"""All input for the `oneTimeToken` mutation.""" +input OneTimeTokenInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + email: String! + password: String! + origin: String! + rememberMe: Boolean +} + +"""The output of our `register` mutation.""" +type RegisterPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + apiToken: ApiToken + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +"""All input for the `register` mutation.""" +input RegisterInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + email: String + password: String + rememberMe: Boolean +} + +"""The output of our `resetPassword` mutation.""" +type ResetPasswordPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + boolean: Boolean + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +"""All input for the `resetPassword` mutation.""" +input ResetPasswordInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + roleId: UUID + resetToken: String + newPassword: String +} + +"""The output of our `sendAccountDeletionEmail` mutation.""" +type SendAccountDeletionEmailPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + boolean: Boolean + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +"""All input for the `sendAccountDeletionEmail` mutation.""" +input SendAccountDeletionEmailInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +"""The output of our `sendVerificationEmail` mutation.""" +type SendVerificationEmailPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + boolean: Boolean + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +"""All input for the `sendVerificationEmail` mutation.""" +input SendVerificationEmailInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + email: String +} + +"""The output of our `setPassword` mutation.""" +type SetPasswordPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + boolean: Boolean + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +"""All input for the `setPassword` mutation.""" +input SetPasswordInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + currentPassword: String + newPassword: String +} + +"""The output of our `verifyEmail` mutation.""" +type VerifyEmailPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + boolean: Boolean + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +"""All input for the `verifyEmail` mutation.""" +input VerifyEmailInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + emailId: UUID + token: String +} + +"""The output of our `verifyPassword` mutation.""" +type VerifyPasswordPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + apiToken: ApiToken + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +"""All input for the `verifyPassword` mutation.""" +input VerifyPasswordInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + password: String! +} + +"""The output of our `verifyTotp` mutation.""" +type VerifyTotpPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + apiToken: ApiToken + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +"""All input for the `verifyTotp` mutation.""" +input VerifyTotpInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + totpValue: String! +} + +type MetaschemaType { + pgAlias: String! + pgType: String! + gqlType: String! + subtype: String + modifier: Int + typmod: JSON + isArray: Boolean! +} + +type MetaschemaField { + name: String! + type: MetaschemaType! +} + +type MetaschemaTableInflection { + allRows: String! + allRowsSimple: String! + tableFieldName: String! + tableType: String! + createPayloadType: String! + orderByType: String! + filterType: String + inputType: String! + patchType: String + conditionType: String! + patchField: String! + edge: String! + edgeField: String! + connection: String! + typeName: String! + enumType: String! + updatePayloadType: String + deletePayloadType: String! + deleteByPrimaryKey: String + updateByPrimaryKey: String + createField: String! + createInputType: String! +} + +type MetaschemaTableQuery { + all: String! + one: String! + create: String! + update: String + delete: String +} + +type MetaschemaTableManyToManyRelation { + fieldName: String + type: String + leftKeyAttributes: [MetaschemaField]! + rightKeyAttributes: [MetaschemaField]! + junctionLeftKeyAttributes: [MetaschemaField]! + junctionRightKeyAttributes: [MetaschemaField]! + junctionTable: MetaschemaTable! + rightTable: MetaschemaTable! + junctionLeftConstraint: MetaschemaForeignKeyConstraint! + junctionRightConstraint: MetaschemaForeignKeyConstraint! +} + +type MetaschemaTableHasRelation { + fieldName: String + type: String + referencedBy: MetaschemaTable! + isUnique: Boolean! + keys: [MetaschemaField] +} + +type MetaschemaTableBelongsToRelation { + fieldName: String + type: String + references: MetaschemaTable! + isUnique: Boolean! + keys: [MetaschemaField] +} + +type MetaschemaTableRelation { + hasOne: [MetaschemaTableHasRelation] + hasMany: [MetaschemaTableHasRelation] + has: [MetaschemaTableHasRelation] + belongsTo: [MetaschemaTableBelongsToRelation] + manyToMany: [MetaschemaTableManyToManyRelation] +} + +type MetaschemaTable { + name: String! + query: MetaschemaTableQuery! + inflection: MetaschemaTableInflection! + relations: MetaschemaTableRelation + fields: [MetaschemaField] + constraints: [MetaschemaConstraint] + foreignKeyConstraints: [MetaschemaForeignKeyConstraint] + primaryKeyConstraints: [MetaschemaPrimaryKeyConstraint] + uniqueConstraints: [MetaschemaUniqueConstraint] + checkConstraints: [MetaschemaCheckConstraint] + exclusionConstraints: [MetaschemaExclusionConstraint] +} + +union MetaschemaConstraint = MetaschemaForeignKeyConstraint | MetaschemaUniqueConstraint | MetaschemaPrimaryKeyConstraint | MetaschemaCheckConstraint | MetaschemaExclusionConstraint + +type MetaschemaForeignKeyConstraint { + name: String! + fields: [MetaschemaField] + refTable: MetaschemaTable + refFields: [MetaschemaField] +} + +type MetaschemaUniqueConstraint { + name: String! + fields: [MetaschemaField] +} + +type MetaschemaPrimaryKeyConstraint { + name: String! + fields: [MetaschemaField] +} + +type MetaschemaCheckConstraint { + name: String! + fields: [MetaschemaField] +} + +type MetaschemaExclusionConstraint { + name: String! + fields: [MetaschemaField] +} + +type Metaschema { + tables: [MetaschemaTable] +} diff --git a/graphql/codegen/examples/type-inference-test.ts b/graphql/codegen/examples/type-inference-test.ts new file mode 100644 index 000000000..5a1fa823b --- /dev/null +++ b/graphql/codegen/examples/type-inference-test.ts @@ -0,0 +1,160 @@ +/** + * Type inference verification test + * + * This file verifies that Select types with relations have proper type inference. + * Run: npx tsc --noEmit examples/type-inference-test.ts + */ +import { createClient } from '../output-orm'; +import type { OrderSelect, ProductSelect, UserSelect } from '../output-orm/input-types'; + +const db = createClient({ endpoint: 'http://public-0e394519.localhost:3000/graphql' }); + +// ============================================================================ +// TYPE VERIFICATION SECTION +// These type aliases are for verifying the structure is correct +// ============================================================================ + +// Verify OrderSelect has relation fields with proper typing +type OrderSelectKeys = keyof OrderSelect; +type TestBelongsTo = OrderSelect['customer']; // boolean | { select?: UserSelect } +type TestHasMany = OrderSelect['orderItems']; // boolean | { select?: OrderItemSelect; first?: number; ... } + +// Verify ProductSelect has relation fields +type ProductSelectKeys = keyof ProductSelect; +type TestProductSeller = ProductSelect['seller']; // boolean | { select?: UserSelect } +type TestProductCategory = ProductSelect['category']; // boolean | { select?: CategorySelect } + +// ============================================================================ +// COMPILE-TIME TEST SECTION +// If these functions compile without errors, the types are correct +// ============================================================================ + +async function testBelongsToRelation() { + // Test belongsTo relation: Order.customer -> User + const orders = await db.order.findMany({ + select: { + id: true, + orderNumber: true, + status: true, + // belongsTo: nested select should accept UserSelect fields + customer: { + select: { + id: true, + username: true, + displayName: true + } + } + }, + first: 10 + }).execute(); + + // Return type should be narrowed + if (orders.data?.orders?.nodes[0]) { + const order = orders.data.orders.nodes[0]; + console.log(order.id); + console.log(order.orderNumber); + // Uncomment to verify TypeScript error: + // console.log(order.totalAmount); // Error: Property 'totalAmount' does not exist + } +} + +async function testHasManyRelation() { + // Test hasMany relation: Order.orderItems -> OrderItemsConnection + const orders = await db.order.findMany({ + select: { + id: true, + // hasMany: should accept nested select + pagination params + orderItems: { + select: { + id: true, + quantity: true, + price: true + }, + first: 5 + // filter and orderBy are also available but not tested here + } + } + }).execute(); + + return orders; +} + +async function testManyToManyRelation() { + // Test manyToMany relation: Order.productsByOrderItemOrderIdAndProductId -> ProductsConnection + const orders = await db.order.findMany({ + select: { + id: true, + // manyToMany through junction table + productsByOrderItemOrderIdAndProductId: { + select: { + id: true, + name: true, + price: true + }, + first: 10 + } + } + }).execute(); + + return orders; +} + +async function testNestedRelations() { + // Test multiple levels of relations + const products = await db.product.findMany({ + select: { + id: true, + name: true, + // belongsTo: seller + seller: { + select: { + id: true, + username: true + } + }, + // belongsTo: category + category: { + select: { + id: true, + name: true + } + }, + // hasMany: reviews + reviews: { + select: { + id: true, + rating: true, + comment: true + }, + first: 5 + } + }, + first: 10 + }).execute(); + + return products; +} + +// ============================================================================ +// RUNTIME TEST +// ============================================================================ + +async function runTests() { + console.log('Type inference tests:'); + console.log('1. BelongsTo relation...'); + await testBelongsToRelation(); + + console.log('2. HasMany relation...'); + await testHasManyRelation(); + + console.log('3. ManyToMany relation...'); + await testManyToManyRelation(); + + console.log('4. Nested relations...'); + await testNestedRelations(); + + console.log('\nAll type inference tests passed!'); +} + +// This file is primarily for type checking, but can be run for verification +runTests().catch(console.error); diff --git a/graphql/codegen/jest.config.js b/graphql/codegen/jest.config.js index f4c0ce047..92ab69de3 100644 --- a/graphql/codegen/jest.config.js +++ b/graphql/codegen/jest.config.js @@ -1,18 +1,22 @@ -/** @type {import('ts-jest').JestConfigWithTsJest} */ +/** @type {import('jest').Config} */ module.exports = { - preset: 'ts-jest', + preset: 'ts-jest/presets/default-esm', testEnvironment: 'node', + extensionsToTreatAsEsm: ['.ts'], + moduleNameMapper: { + '^@/(.*)$': '/src/$1', + '^(\\.{1,2}/.*)\\.js$': '$1', + }, transform: { '^.+\\.tsx?$': [ 'ts-jest', { - babelConfig: false, + useESM: true, tsconfig: 'tsconfig.json', }, ], }, - transformIgnorePatterns: [`/node_modules/*`], - testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$', - moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'], - modulePathIgnorePatterns: ['dist/*'], + testMatch: ['/src/**/*.test.ts'], + modulePathIgnorePatterns: ['/dist/'], + testPathIgnorePatterns: ['/node_modules/', '/dist/'], }; diff --git a/graphql/codegen/package.json b/graphql/codegen/package.json index dd1a84903..4dc5eceb2 100644 --- a/graphql/codegen/package.json +++ b/graphql/codegen/package.json @@ -1,17 +1,20 @@ { "name": "@constructive-io/graphql-codegen", "version": "2.19.0", - "description": "Generate queries and mutations for use with Graphile", + "description": "CLI-based GraphQL SDK generator for PostGraphile endpoints with React Query hooks", + "keywords": [ + "graphql", + "postgraphile", + "codegen", + "react-query", + "tanstack-query", + "typescript", + "graphile", + "constructive" + ], "author": "Constructive ", - "main": "index.js", - "module": "esm/index.js", - "types": "index.d.ts", - "homepage": "https://github.com/constructive-io/constructive", "license": "MIT", - "publishConfig": { - "access": "public", - "directory": "dist" - }, + "homepage": "https://github.com/constructive-io/constructive", "repository": { "type": "git", "url": "https://github.com/constructive-io/constructive" @@ -19,42 +22,61 @@ "bugs": { "url": "https://github.com/constructive-io/constructive/issues" }, + "publishConfig": { + "access": "public", + "directory": "dist" + }, + + "main": "index.js", + "module": "index.mjs", + "types": "index.d.ts", + "bin": { + "graphql-codegen": "index.js" + }, "scripts": { "clean": "makage clean", "prepack": "npm run build", "build": "makage build", "build:dev": "makage build --dev", + "dev": "ts-node ./src/index.ts", "lint": "eslint . --fix", "test": "jest --passWithNoTests", - "test:watch": "jest --watch" - }, - "devDependencies": { - "@constructive-io/graphql-test": "workspace:^", - "@types/babel__generator": "^7.27.0", - "@types/inflection": "^2.0.0", - "makage": "^0.1.10" + "test:watch": "jest --watch", + "example:orm": "tsx examples/test-orm.ts", + "example:rq": "tsx examples/test-rq.ts", + "example:schema": "tsx examples/download-schema.ts" }, "dependencies": { - "@babel/generator": "^7.26.3", - "@babel/parser": "^7.28.5", - "@babel/types": "^7.26.3", - "@graphql-codegen/core": "5.0.0", - "@graphql-codegen/typescript": "5.0.5", - "@graphql-codegen/typescript-graphql-request": "6.0.1", - "@graphql-codegen/typescript-operations": "5.0.5", - "@graphql-codegen/typescript-react-query": "6.1.1", + "ajv": "^8.17.1", + "commander": "^12.1.0", "gql-ast": "workspace:^", - "graphql": "15.10.1", - "graphql-request": "6.1.0", - "graphql-tag": "2.12.6", - "inflection": "^1.12.0", - "introspectron": "workspace:^" + "graphql": "15.8.0", + "inflection": "^3.0.2", + "jiti": "^2.6.1", + "prettier": "^3.7.4", + "ts-morph": "^27.0.2" }, - "keywords": [ - "graphql", - "codegen", - "generator", - "graphile", - "constructive" - ] + "peerDependencies": { + "@tanstack/react-query": "^5.0.0", + "react": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@tanstack/react-query": { + "optional": true + }, + "react": { + "optional": true + } + }, + "devDependencies": { + "@tanstack/react-query": "^5.90.16", + "@types/inflection": "^1.13.2", + "@types/jest": "^29.5.14", + "@types/node": "^20.19.27", + "@types/react": "^19.2.7", + "jest": "^29.7.0", + "react": "^19.2.3", + "ts-jest": "^29.2.5", + "typescript": "^5.9.3" + } } diff --git a/graphql/codegen/sql/test.sql b/graphql/codegen/sql/test.sql deleted file mode 100644 index 31f88ceca..000000000 --- a/graphql/codegen/sql/test.sql +++ /dev/null @@ -1,38 +0,0 @@ -BEGIN; - -CREATE EXTENSION IF NOT EXISTS citext; -CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; - -DROP SCHEMA IF EXISTS constructive_gen CASCADE; -CREATE SCHEMA constructive_gen; - --- Users table -CREATE TABLE constructive_gen.users ( - id serial PRIMARY KEY, - username citext NOT NULL UNIQUE CHECK (length(username) < 127), - email citext, - created_at timestamptz NOT NULL DEFAULT now() -); - --- Posts table -CREATE TABLE constructive_gen.posts ( - id uuid PRIMARY KEY DEFAULT uuid_generate_v4(), - user_id int NOT NULL REFERENCES constructive_gen.users(id), - title text NOT NULL, - body text, - published boolean DEFAULT false, - published_at timestamptz -); - --- A simple view (to test classKind !== 'r') -CREATE VIEW constructive_gen.active_users AS -SELECT id, username FROM constructive_gen.users WHERE username IS NOT NULL; - --- A function (to test procedure introspection) -CREATE FUNCTION constructive_gen.user_count() RETURNS integer AS $$ -BEGIN - RETURN (SELECT count(*) FROM constructive_gen.users); -END; -$$ LANGUAGE plpgsql STABLE; - -COMMIT; diff --git a/graphql/codegen/src/__tests__/codegen/__snapshots__/input-types-generator.test.ts.snap b/graphql/codegen/src/__tests__/codegen/__snapshots__/input-types-generator.test.ts.snap new file mode 100644 index 000000000..5e72a33c6 --- /dev/null +++ b/graphql/codegen/src/__tests__/codegen/__snapshots__/input-types-generator.test.ts.snap @@ -0,0 +1,2337 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`generateInputTypesFile generates complete types file for multiple tables with relations 1`] = ` +"/** +* GraphQL types for ORM client +* @generated by @constructive-io/graphql-codegen +* DO NOT EDIT - changes will be overwritten +*/ + +// ============================================================================ +// Scalar Filter Types +// ============================================================================ + +export interface StringFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; + includes?: string; + notIncludes?: string; + includesInsensitive?: string; + notIncludesInsensitive?: string; + startsWith?: string; + notStartsWith?: string; + startsWithInsensitive?: string; + notStartsWithInsensitive?: string; + endsWith?: string; + notEndsWith?: string; + endsWithInsensitive?: string; + notEndsWithInsensitive?: string; + like?: string; + notLike?: string; + likeInsensitive?: string; + notLikeInsensitive?: string; +} + +export interface IntFilter { + isNull?: boolean; + equalTo?: number; + notEqualTo?: number; + distinctFrom?: number; + notDistinctFrom?: number; + in?: number[]; + notIn?: number[]; + lessThan?: number; + lessThanOrEqualTo?: number; + greaterThan?: number; + greaterThanOrEqualTo?: number; +} + +export interface FloatFilter { + isNull?: boolean; + equalTo?: number; + notEqualTo?: number; + distinctFrom?: number; + notDistinctFrom?: number; + in?: number[]; + notIn?: number[]; + lessThan?: number; + lessThanOrEqualTo?: number; + greaterThan?: number; + greaterThanOrEqualTo?: number; +} + +export interface BooleanFilter { + isNull?: boolean; + equalTo?: boolean; + notEqualTo?: boolean; +} + +export interface UUIDFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; +} + +export interface DatetimeFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface DateFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface JSONFilter { + isNull?: boolean; + equalTo?: Record; + notEqualTo?: Record; + distinctFrom?: Record; + notDistinctFrom?: Record; + contains?: Record; + containedBy?: Record; + containsKey?: string; + containsAllKeys?: string[]; + containsAnyKeys?: string[]; +} + +export interface BigIntFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface BigFloatFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface BitStringFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; +} + +export interface InternetAddressFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; + contains?: string; + containsOrEqualTo?: string; + containedBy?: string; + containedByOrEqualTo?: string; + containsOrContainedBy?: string; +} + +export interface FullTextFilter { + matches?: string; +} + +// ============================================================================ +// Entity Types +// ============================================================================ + +export interface User { + id: string; + email?: string | null; + name?: string | null; + age?: number | null; + isActive?: boolean | null; + createdAt?: string | null; + metadata?: Record | null; +} + +export interface Post { + id: string; + title?: string | null; + content?: string | null; + authorId?: string | null; + publishedAt?: string | null; + tags?: string | null; +} + +export interface Comment { + id: string; + body?: string | null; + postId?: string | null; + authorId?: string | null; + createdAt?: string | null; +} + +// ============================================================================ +// Relation Helper Types +// ============================================================================ + +export interface ConnectionResult { + nodes: T[]; + totalCount: number; + pageInfo: PageInfo; +} + +export interface PageInfo { + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor?: string | null; + endCursor?: string | null; +} + +// ============================================================================ +// Entity Relation Types +// ============================================================================ + +export interface UserRelations { + posts?: ConnectionResult; + comments?: ConnectionResult; +} + +export interface PostRelations { + author?: User | null; + comments?: ConnectionResult; +} + +export interface CommentRelations { + post?: Post | null; + author?: User | null; +} + +// ============================================================================ +// Entity Types With Relations +// ============================================================================ + +export type UserWithRelations = User & UserRelations; + +export type PostWithRelations = Post & PostRelations; + +export type CommentWithRelations = Comment & CommentRelations; + +// ============================================================================ +// Entity Select Types +// ============================================================================ + +export type UserSelect = { + id?: boolean; + email?: boolean; + name?: boolean; + age?: boolean; + isActive?: boolean; + createdAt?: boolean; + metadata?: boolean; + posts?: boolean | { + select?: PostSelect; + first?: number; + filter?: PostFilter; + orderBy?: PostsOrderBy[]; + }; + comments?: boolean | { + select?: CommentSelect; + first?: number; + filter?: CommentFilter; + orderBy?: CommentsOrderBy[]; + }; + }; + +export type PostSelect = { + id?: boolean; + title?: boolean; + content?: boolean; + authorId?: boolean; + publishedAt?: boolean; + tags?: boolean; + author?: boolean | { select?: UserSelect }; + comments?: boolean | { + select?: CommentSelect; + first?: number; + filter?: CommentFilter; + orderBy?: CommentsOrderBy[]; + }; + }; + +export type CommentSelect = { + id?: boolean; + body?: boolean; + postId?: boolean; + authorId?: boolean; + createdAt?: boolean; + post?: boolean | { select?: PostSelect }; + author?: boolean | { select?: UserSelect }; + }; + +// ============================================================================ +// Table Filter Types +// ============================================================================ + +export interface UserFilter { + id?: UUIDFilter; + email?: StringFilter; + name?: StringFilter; + age?: IntFilter; + isActive?: BooleanFilter; + createdAt?: DatetimeFilter; + metadata?: JSONFilter; + and?: UserFilter[]; + or?: UserFilter[]; + not?: UserFilter; +} + +export interface PostFilter { + id?: UUIDFilter; + title?: StringFilter; + content?: StringFilter; + authorId?: UUIDFilter; + publishedAt?: DatetimeFilter; + tags?: StringFilter; + and?: PostFilter[]; + or?: PostFilter[]; + not?: PostFilter; +} + +export interface CommentFilter { + id?: UUIDFilter; + body?: StringFilter; + postId?: UUIDFilter; + authorId?: UUIDFilter; + createdAt?: DatetimeFilter; + and?: CommentFilter[]; + or?: CommentFilter[]; + not?: CommentFilter; +} + +// ============================================================================ +// OrderBy Types +// ============================================================================ + +export type UsersOrderBy = 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'NATURAL' | 'ID_ASC' | 'ID_DESC' | 'EMAIL_ASC' | 'EMAIL_DESC' | 'NAME_ASC' | 'NAME_DESC' | 'AGE_ASC' | 'AGE_DESC' | 'IS_ACTIVE_ASC' | 'IS_ACTIVE_DESC' | 'CREATED_AT_ASC' | 'CREATED_AT_DESC' | 'METADATA_ASC' | 'METADATA_DESC'; + +export type PostsOrderBy = 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'NATURAL' | 'ID_ASC' | 'ID_DESC' | 'TITLE_ASC' | 'TITLE_DESC' | 'CONTENT_ASC' | 'CONTENT_DESC' | 'AUTHOR_ID_ASC' | 'AUTHOR_ID_DESC' | 'PUBLISHED_AT_ASC' | 'PUBLISHED_AT_DESC' | 'TAGS_ASC' | 'TAGS_DESC'; + +export type CommentsOrderBy = 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'NATURAL' | 'ID_ASC' | 'ID_DESC' | 'BODY_ASC' | 'BODY_DESC' | 'POST_ID_ASC' | 'POST_ID_DESC' | 'AUTHOR_ID_ASC' | 'AUTHOR_ID_DESC' | 'CREATED_AT_ASC' | 'CREATED_AT_DESC'; + +// ============================================================================ +// CRUD Input Types +// ============================================================================ + +export interface CreateUserInput { + clientMutationId?: string; + user: { + email?: string; + name?: string; + age?: number; + isActive?: boolean; + metadata?: Record; + }; +} + +export interface UserPatch { + email?: string | null; + name?: string | null; + age?: number | null; + isActive?: boolean | null; + metadata?: Record | null; +} + +export interface UpdateUserInput { + clientMutationId?: string; + id: string; + patch: UserPatch; +} + +export interface DeleteUserInput { + clientMutationId?: string; + id: string; +} + +export interface CreatePostInput { + clientMutationId?: string; + post: { + title?: string; + content?: string; + authorId: string; + publishedAt?: string; + tags?: string; + }; +} + +export interface PostPatch { + title?: string | null; + content?: string | null; + authorId?: string | null; + publishedAt?: string | null; + tags?: string | null; +} + +export interface UpdatePostInput { + clientMutationId?: string; + id: string; + patch: PostPatch; +} + +export interface DeletePostInput { + clientMutationId?: string; + id: string; +} + +export interface CreateCommentInput { + clientMutationId?: string; + comment: { + body?: string; + postId: string; + authorId: string; + }; +} + +export interface CommentPatch { + body?: string | null; + postId?: string | null; + authorId?: string | null; +} + +export interface UpdateCommentInput { + clientMutationId?: string; + id: string; + patch: CommentPatch; +} + +export interface DeleteCommentInput { + clientMutationId?: string; + id: string; +} + +// ============================================================================ +// Custom Input Types (from schema) +// ============================================================================ +" +`; + +exports[`generateInputTypesFile generates complete types file for single table 1`] = ` +"/** +* GraphQL types for ORM client +* @generated by @constructive-io/graphql-codegen +* DO NOT EDIT - changes will be overwritten +*/ + +// ============================================================================ +// Scalar Filter Types +// ============================================================================ + +export interface StringFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; + includes?: string; + notIncludes?: string; + includesInsensitive?: string; + notIncludesInsensitive?: string; + startsWith?: string; + notStartsWith?: string; + startsWithInsensitive?: string; + notStartsWithInsensitive?: string; + endsWith?: string; + notEndsWith?: string; + endsWithInsensitive?: string; + notEndsWithInsensitive?: string; + like?: string; + notLike?: string; + likeInsensitive?: string; + notLikeInsensitive?: string; +} + +export interface IntFilter { + isNull?: boolean; + equalTo?: number; + notEqualTo?: number; + distinctFrom?: number; + notDistinctFrom?: number; + in?: number[]; + notIn?: number[]; + lessThan?: number; + lessThanOrEqualTo?: number; + greaterThan?: number; + greaterThanOrEqualTo?: number; +} + +export interface FloatFilter { + isNull?: boolean; + equalTo?: number; + notEqualTo?: number; + distinctFrom?: number; + notDistinctFrom?: number; + in?: number[]; + notIn?: number[]; + lessThan?: number; + lessThanOrEqualTo?: number; + greaterThan?: number; + greaterThanOrEqualTo?: number; +} + +export interface BooleanFilter { + isNull?: boolean; + equalTo?: boolean; + notEqualTo?: boolean; +} + +export interface UUIDFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; +} + +export interface DatetimeFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface DateFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface JSONFilter { + isNull?: boolean; + equalTo?: Record; + notEqualTo?: Record; + distinctFrom?: Record; + notDistinctFrom?: Record; + contains?: Record; + containedBy?: Record; + containsKey?: string; + containsAllKeys?: string[]; + containsAnyKeys?: string[]; +} + +export interface BigIntFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface BigFloatFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface BitStringFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; +} + +export interface InternetAddressFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; + contains?: string; + containsOrEqualTo?: string; + containedBy?: string; + containedByOrEqualTo?: string; + containsOrContainedBy?: string; +} + +export interface FullTextFilter { + matches?: string; +} + +// ============================================================================ +// Entity Types +// ============================================================================ + +export interface User { + id: string; + email?: string | null; + name?: string | null; + age?: number | null; + isActive?: boolean | null; + createdAt?: string | null; + metadata?: Record | null; +} + +// ============================================================================ +// Relation Helper Types +// ============================================================================ + +export interface ConnectionResult { + nodes: T[]; + totalCount: number; + pageInfo: PageInfo; +} + +export interface PageInfo { + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor?: string | null; + endCursor?: string | null; +} + +// ============================================================================ +// Entity Relation Types +// ============================================================================ + +export interface UserRelations { +} + +// ============================================================================ +// Entity Types With Relations +// ============================================================================ + +export type UserWithRelations = User & UserRelations; + +// ============================================================================ +// Entity Select Types +// ============================================================================ + +export type UserSelect = { + id?: boolean; + email?: boolean; + name?: boolean; + age?: boolean; + isActive?: boolean; + createdAt?: boolean; + metadata?: boolean; + }; + +// ============================================================================ +// Table Filter Types +// ============================================================================ + +export interface UserFilter { + id?: UUIDFilter; + email?: StringFilter; + name?: StringFilter; + age?: IntFilter; + isActive?: BooleanFilter; + createdAt?: DatetimeFilter; + metadata?: JSONFilter; + and?: UserFilter[]; + or?: UserFilter[]; + not?: UserFilter; +} + +// ============================================================================ +// OrderBy Types +// ============================================================================ + +export type UsersOrderBy = 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'NATURAL' | 'ID_ASC' | 'ID_DESC' | 'EMAIL_ASC' | 'EMAIL_DESC' | 'NAME_ASC' | 'NAME_DESC' | 'AGE_ASC' | 'AGE_DESC' | 'IS_ACTIVE_ASC' | 'IS_ACTIVE_DESC' | 'CREATED_AT_ASC' | 'CREATED_AT_DESC' | 'METADATA_ASC' | 'METADATA_DESC'; + +// ============================================================================ +// CRUD Input Types +// ============================================================================ + +export interface CreateUserInput { + clientMutationId?: string; + user: { + email?: string; + name?: string; + age?: number; + isActive?: boolean; + metadata?: Record; + }; +} + +export interface UserPatch { + email?: string | null; + name?: string | null; + age?: number | null; + isActive?: boolean | null; + metadata?: Record | null; +} + +export interface UpdateUserInput { + clientMutationId?: string; + id: string; + patch: UserPatch; +} + +export interface DeleteUserInput { + clientMutationId?: string; + id: string; +} + +// ============================================================================ +// Custom Input Types (from schema) +// ============================================================================ +" +`; + +exports[`generateInputTypesFile generates custom input types from TypeRegistry 1`] = ` +"/** +* GraphQL types for ORM client +* @generated by @constructive-io/graphql-codegen +* DO NOT EDIT - changes will be overwritten +*/ + +// ============================================================================ +// Scalar Filter Types +// ============================================================================ + +export interface StringFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; + includes?: string; + notIncludes?: string; + includesInsensitive?: string; + notIncludesInsensitive?: string; + startsWith?: string; + notStartsWith?: string; + startsWithInsensitive?: string; + notStartsWithInsensitive?: string; + endsWith?: string; + notEndsWith?: string; + endsWithInsensitive?: string; + notEndsWithInsensitive?: string; + like?: string; + notLike?: string; + likeInsensitive?: string; + notLikeInsensitive?: string; +} + +export interface IntFilter { + isNull?: boolean; + equalTo?: number; + notEqualTo?: number; + distinctFrom?: number; + notDistinctFrom?: number; + in?: number[]; + notIn?: number[]; + lessThan?: number; + lessThanOrEqualTo?: number; + greaterThan?: number; + greaterThanOrEqualTo?: number; +} + +export interface FloatFilter { + isNull?: boolean; + equalTo?: number; + notEqualTo?: number; + distinctFrom?: number; + notDistinctFrom?: number; + in?: number[]; + notIn?: number[]; + lessThan?: number; + lessThanOrEqualTo?: number; + greaterThan?: number; + greaterThanOrEqualTo?: number; +} + +export interface BooleanFilter { + isNull?: boolean; + equalTo?: boolean; + notEqualTo?: boolean; +} + +export interface UUIDFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; +} + +export interface DatetimeFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface DateFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface JSONFilter { + isNull?: boolean; + equalTo?: Record; + notEqualTo?: Record; + distinctFrom?: Record; + notDistinctFrom?: Record; + contains?: Record; + containedBy?: Record; + containsKey?: string; + containsAllKeys?: string[]; + containsAnyKeys?: string[]; +} + +export interface BigIntFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface BigFloatFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface BitStringFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; +} + +export interface InternetAddressFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; + contains?: string; + containsOrEqualTo?: string; + containedBy?: string; + containedByOrEqualTo?: string; + containsOrContainedBy?: string; +} + +export interface FullTextFilter { + matches?: string; +} + +// ============================================================================ +// Entity Types +// ============================================================================ + +export interface User { + id: string; + email?: string | null; + name?: string | null; + age?: number | null; + isActive?: boolean | null; + createdAt?: string | null; + metadata?: Record | null; +} + +// ============================================================================ +// Relation Helper Types +// ============================================================================ + +export interface ConnectionResult { + nodes: T[]; + totalCount: number; + pageInfo: PageInfo; +} + +export interface PageInfo { + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor?: string | null; + endCursor?: string | null; +} + +// ============================================================================ +// Entity Relation Types +// ============================================================================ + +export interface UserRelations { +} + +// ============================================================================ +// Entity Types With Relations +// ============================================================================ + +export type UserWithRelations = User & UserRelations; + +// ============================================================================ +// Entity Select Types +// ============================================================================ + +export type UserSelect = { + id?: boolean; + email?: boolean; + name?: boolean; + age?: boolean; + isActive?: boolean; + createdAt?: boolean; + metadata?: boolean; + }; + +// ============================================================================ +// Table Filter Types +// ============================================================================ + +export interface UserFilter { + id?: UUIDFilter; + email?: StringFilter; + name?: StringFilter; + age?: IntFilter; + isActive?: BooleanFilter; + createdAt?: DatetimeFilter; + metadata?: JSONFilter; + and?: UserFilter[]; + or?: UserFilter[]; + not?: UserFilter; +} + +// ============================================================================ +// OrderBy Types +// ============================================================================ + +export type UsersOrderBy = 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'NATURAL' | 'ID_ASC' | 'ID_DESC' | 'EMAIL_ASC' | 'EMAIL_DESC' | 'NAME_ASC' | 'NAME_DESC' | 'AGE_ASC' | 'AGE_DESC' | 'IS_ACTIVE_ASC' | 'IS_ACTIVE_DESC' | 'CREATED_AT_ASC' | 'CREATED_AT_DESC' | 'METADATA_ASC' | 'METADATA_DESC'; + +// ============================================================================ +// CRUD Input Types +// ============================================================================ + +export interface CreateUserInput { + clientMutationId?: string; + user: { + email?: string; + name?: string; + age?: number; + isActive?: boolean; + metadata?: Record; + }; +} + +export interface UserPatch { + email?: string | null; + name?: string | null; + age?: number | null; + isActive?: boolean | null; + metadata?: Record | null; +} + +export interface UpdateUserInput { + clientMutationId?: string; + id: string; + patch: UserPatch; +} + +export interface DeleteUserInput { + clientMutationId?: string; + id: string; +} + +// ============================================================================ +// Custom Input Types (from schema) +// ============================================================================ + +export interface LoginInput { + email: string; + password: string; + rememberMe?: boolean; +} + +export interface RegisterInput { + email: string; + password: string; + name?: string; +} + +export type UserRole = 'ADMIN' | 'USER' | 'GUEST'; +" +`; + +exports[`generateInputTypesFile generates payload types for custom operations 1`] = ` +"/** +* GraphQL types for ORM client +* @generated by @constructive-io/graphql-codegen +* DO NOT EDIT - changes will be overwritten +*/ + +// ============================================================================ +// Scalar Filter Types +// ============================================================================ + +export interface StringFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; + includes?: string; + notIncludes?: string; + includesInsensitive?: string; + notIncludesInsensitive?: string; + startsWith?: string; + notStartsWith?: string; + startsWithInsensitive?: string; + notStartsWithInsensitive?: string; + endsWith?: string; + notEndsWith?: string; + endsWithInsensitive?: string; + notEndsWithInsensitive?: string; + like?: string; + notLike?: string; + likeInsensitive?: string; + notLikeInsensitive?: string; +} + +export interface IntFilter { + isNull?: boolean; + equalTo?: number; + notEqualTo?: number; + distinctFrom?: number; + notDistinctFrom?: number; + in?: number[]; + notIn?: number[]; + lessThan?: number; + lessThanOrEqualTo?: number; + greaterThan?: number; + greaterThanOrEqualTo?: number; +} + +export interface FloatFilter { + isNull?: boolean; + equalTo?: number; + notEqualTo?: number; + distinctFrom?: number; + notDistinctFrom?: number; + in?: number[]; + notIn?: number[]; + lessThan?: number; + lessThanOrEqualTo?: number; + greaterThan?: number; + greaterThanOrEqualTo?: number; +} + +export interface BooleanFilter { + isNull?: boolean; + equalTo?: boolean; + notEqualTo?: boolean; +} + +export interface UUIDFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; +} + +export interface DatetimeFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface DateFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface JSONFilter { + isNull?: boolean; + equalTo?: Record; + notEqualTo?: Record; + distinctFrom?: Record; + notDistinctFrom?: Record; + contains?: Record; + containedBy?: Record; + containsKey?: string; + containsAllKeys?: string[]; + containsAnyKeys?: string[]; +} + +export interface BigIntFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface BigFloatFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface BitStringFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; +} + +export interface InternetAddressFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; + contains?: string; + containsOrEqualTo?: string; + containedBy?: string; + containedByOrEqualTo?: string; + containsOrContainedBy?: string; +} + +export interface FullTextFilter { + matches?: string; +} + +// ============================================================================ +// Entity Types +// ============================================================================ + +export interface User { + id: string; + email?: string | null; + name?: string | null; + age?: number | null; + isActive?: boolean | null; + createdAt?: string | null; + metadata?: Record | null; +} + +// ============================================================================ +// Relation Helper Types +// ============================================================================ + +export interface ConnectionResult { + nodes: T[]; + totalCount: number; + pageInfo: PageInfo; +} + +export interface PageInfo { + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor?: string | null; + endCursor?: string | null; +} + +// ============================================================================ +// Entity Relation Types +// ============================================================================ + +export interface UserRelations { +} + +// ============================================================================ +// Entity Types With Relations +// ============================================================================ + +export type UserWithRelations = User & UserRelations; + +// ============================================================================ +// Entity Select Types +// ============================================================================ + +export type UserSelect = { + id?: boolean; + email?: boolean; + name?: boolean; + age?: boolean; + isActive?: boolean; + createdAt?: boolean; + metadata?: boolean; + }; + +// ============================================================================ +// Table Filter Types +// ============================================================================ + +export interface UserFilter { + id?: UUIDFilter; + email?: StringFilter; + name?: StringFilter; + age?: IntFilter; + isActive?: BooleanFilter; + createdAt?: DatetimeFilter; + metadata?: JSONFilter; + and?: UserFilter[]; + or?: UserFilter[]; + not?: UserFilter; +} + +// ============================================================================ +// OrderBy Types +// ============================================================================ + +export type UsersOrderBy = 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'NATURAL' | 'ID_ASC' | 'ID_DESC' | 'EMAIL_ASC' | 'EMAIL_DESC' | 'NAME_ASC' | 'NAME_DESC' | 'AGE_ASC' | 'AGE_DESC' | 'IS_ACTIVE_ASC' | 'IS_ACTIVE_DESC' | 'CREATED_AT_ASC' | 'CREATED_AT_DESC' | 'METADATA_ASC' | 'METADATA_DESC'; + +// ============================================================================ +// CRUD Input Types +// ============================================================================ + +export interface CreateUserInput { + clientMutationId?: string; + user: { + email?: string; + name?: string; + age?: number; + isActive?: boolean; + metadata?: Record; + }; +} + +export interface UserPatch { + email?: string | null; + name?: string | null; + age?: number | null; + isActive?: boolean | null; + metadata?: Record | null; +} + +export interface UpdateUserInput { + clientMutationId?: string; + id: string; + patch: UserPatch; +} + +export interface DeleteUserInput { + clientMutationId?: string; + id: string; +} + +// ============================================================================ +// Custom Input Types (from schema) +// ============================================================================ + +export interface LoginInput { + email: string; + password: string; + rememberMe?: boolean; +} + +// ============================================================================ +// Payload/Return Types (for custom operations) +// ============================================================================ + +export interface LoginPayload { + token?: string | null; + user?: User | null; + expiresAt?: string | null; +} + +export type LoginPayloadSelect = { + token?: boolean; + user?: boolean; + expiresAt?: boolean; + }; +" +`; + +exports[`generateInputTypesFile generates types with hasOne relations 1`] = ` +"/** +* GraphQL types for ORM client +* @generated by @constructive-io/graphql-codegen +* DO NOT EDIT - changes will be overwritten +*/ + +// ============================================================================ +// Scalar Filter Types +// ============================================================================ + +export interface StringFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; + includes?: string; + notIncludes?: string; + includesInsensitive?: string; + notIncludesInsensitive?: string; + startsWith?: string; + notStartsWith?: string; + startsWithInsensitive?: string; + notStartsWithInsensitive?: string; + endsWith?: string; + notEndsWith?: string; + endsWithInsensitive?: string; + notEndsWithInsensitive?: string; + like?: string; + notLike?: string; + likeInsensitive?: string; + notLikeInsensitive?: string; +} + +export interface IntFilter { + isNull?: boolean; + equalTo?: number; + notEqualTo?: number; + distinctFrom?: number; + notDistinctFrom?: number; + in?: number[]; + notIn?: number[]; + lessThan?: number; + lessThanOrEqualTo?: number; + greaterThan?: number; + greaterThanOrEqualTo?: number; +} + +export interface FloatFilter { + isNull?: boolean; + equalTo?: number; + notEqualTo?: number; + distinctFrom?: number; + notDistinctFrom?: number; + in?: number[]; + notIn?: number[]; + lessThan?: number; + lessThanOrEqualTo?: number; + greaterThan?: number; + greaterThanOrEqualTo?: number; +} + +export interface BooleanFilter { + isNull?: boolean; + equalTo?: boolean; + notEqualTo?: boolean; +} + +export interface UUIDFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; +} + +export interface DatetimeFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface DateFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface JSONFilter { + isNull?: boolean; + equalTo?: Record; + notEqualTo?: Record; + distinctFrom?: Record; + notDistinctFrom?: Record; + contains?: Record; + containedBy?: Record; + containsKey?: string; + containsAllKeys?: string[]; + containsAnyKeys?: string[]; +} + +export interface BigIntFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface BigFloatFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface BitStringFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; +} + +export interface InternetAddressFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; + contains?: string; + containsOrEqualTo?: string; + containedBy?: string; + containedByOrEqualTo?: string; + containsOrContainedBy?: string; +} + +export interface FullTextFilter { + matches?: string; +} + +// ============================================================================ +// Entity Types +// ============================================================================ + +export interface User { + id: string; + email?: string | null; + name?: string | null; + age?: number | null; + isActive?: boolean | null; + createdAt?: string | null; + metadata?: Record | null; +} + +export interface Profile { + id: string; + bio?: string | null; + userId?: string | null; + avatarUrl?: string | null; +} + +// ============================================================================ +// Relation Helper Types +// ============================================================================ + +export interface ConnectionResult { + nodes: T[]; + totalCount: number; + pageInfo: PageInfo; +} + +export interface PageInfo { + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor?: string | null; + endCursor?: string | null; +} + +// ============================================================================ +// Entity Relation Types +// ============================================================================ + +export interface UserRelations { + profile?: Profile | null; + posts?: ConnectionResult; +} + +export interface ProfileRelations { + user?: User | null; +} + +// ============================================================================ +// Entity Types With Relations +// ============================================================================ + +export type UserWithRelations = User & UserRelations; + +export type ProfileWithRelations = Profile & ProfileRelations; + +// ============================================================================ +// Entity Select Types +// ============================================================================ + +export type UserSelect = { + id?: boolean; + email?: boolean; + name?: boolean; + age?: boolean; + isActive?: boolean; + createdAt?: boolean; + metadata?: boolean; + posts?: boolean | { + select?: PostSelect; + first?: number; + filter?: PostFilter; + orderBy?: PostsOrderBy[]; + }; + profile?: boolean | { select?: ProfileSelect }; + }; + +export type ProfileSelect = { + id?: boolean; + bio?: boolean; + userId?: boolean; + avatarUrl?: boolean; + user?: boolean | { select?: UserSelect }; + }; + +// ============================================================================ +// Table Filter Types +// ============================================================================ + +export interface UserFilter { + id?: UUIDFilter; + email?: StringFilter; + name?: StringFilter; + age?: IntFilter; + isActive?: BooleanFilter; + createdAt?: DatetimeFilter; + metadata?: JSONFilter; + and?: UserFilter[]; + or?: UserFilter[]; + not?: UserFilter; +} + +export interface ProfileFilter { + id?: UUIDFilter; + bio?: StringFilter; + userId?: UUIDFilter; + avatarUrl?: StringFilter; + and?: ProfileFilter[]; + or?: ProfileFilter[]; + not?: ProfileFilter; +} + +// ============================================================================ +// OrderBy Types +// ============================================================================ + +export type UsersOrderBy = 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'NATURAL' | 'ID_ASC' | 'ID_DESC' | 'EMAIL_ASC' | 'EMAIL_DESC' | 'NAME_ASC' | 'NAME_DESC' | 'AGE_ASC' | 'AGE_DESC' | 'IS_ACTIVE_ASC' | 'IS_ACTIVE_DESC' | 'CREATED_AT_ASC' | 'CREATED_AT_DESC' | 'METADATA_ASC' | 'METADATA_DESC'; + +export type ProfilesOrderBy = 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'NATURAL' | 'ID_ASC' | 'ID_DESC' | 'BIO_ASC' | 'BIO_DESC' | 'USER_ID_ASC' | 'USER_ID_DESC' | 'AVATAR_URL_ASC' | 'AVATAR_URL_DESC'; + +// ============================================================================ +// CRUD Input Types +// ============================================================================ + +export interface CreateUserInput { + clientMutationId?: string; + user: { + email?: string; + name?: string; + age?: number; + isActive?: boolean; + metadata?: Record; + }; +} + +export interface UserPatch { + email?: string | null; + name?: string | null; + age?: number | null; + isActive?: boolean | null; + metadata?: Record | null; +} + +export interface UpdateUserInput { + clientMutationId?: string; + id: string; + patch: UserPatch; +} + +export interface DeleteUserInput { + clientMutationId?: string; + id: string; +} + +export interface CreateProfileInput { + clientMutationId?: string; + profile: { + bio?: string; + userId: string; + avatarUrl?: string; + }; +} + +export interface ProfilePatch { + bio?: string | null; + userId?: string | null; + avatarUrl?: string | null; +} + +export interface UpdateProfileInput { + clientMutationId?: string; + id: string; + patch: ProfilePatch; +} + +export interface DeleteProfileInput { + clientMutationId?: string; + id: string; +} + +// ============================================================================ +// Custom Input Types (from schema) +// ============================================================================ +" +`; + +exports[`generateInputTypesFile generates types with manyToMany relations 1`] = ` +"/** +* GraphQL types for ORM client +* @generated by @constructive-io/graphql-codegen +* DO NOT EDIT - changes will be overwritten +*/ + +// ============================================================================ +// Scalar Filter Types +// ============================================================================ + +export interface StringFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; + includes?: string; + notIncludes?: string; + includesInsensitive?: string; + notIncludesInsensitive?: string; + startsWith?: string; + notStartsWith?: string; + startsWithInsensitive?: string; + notStartsWithInsensitive?: string; + endsWith?: string; + notEndsWith?: string; + endsWithInsensitive?: string; + notEndsWithInsensitive?: string; + like?: string; + notLike?: string; + likeInsensitive?: string; + notLikeInsensitive?: string; +} + +export interface IntFilter { + isNull?: boolean; + equalTo?: number; + notEqualTo?: number; + distinctFrom?: number; + notDistinctFrom?: number; + in?: number[]; + notIn?: number[]; + lessThan?: number; + lessThanOrEqualTo?: number; + greaterThan?: number; + greaterThanOrEqualTo?: number; +} + +export interface FloatFilter { + isNull?: boolean; + equalTo?: number; + notEqualTo?: number; + distinctFrom?: number; + notDistinctFrom?: number; + in?: number[]; + notIn?: number[]; + lessThan?: number; + lessThanOrEqualTo?: number; + greaterThan?: number; + greaterThanOrEqualTo?: number; +} + +export interface BooleanFilter { + isNull?: boolean; + equalTo?: boolean; + notEqualTo?: boolean; +} + +export interface UUIDFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; +} + +export interface DatetimeFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface DateFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface JSONFilter { + isNull?: boolean; + equalTo?: Record; + notEqualTo?: Record; + distinctFrom?: Record; + notDistinctFrom?: Record; + contains?: Record; + containedBy?: Record; + containsKey?: string; + containsAllKeys?: string[]; + containsAnyKeys?: string[]; +} + +export interface BigIntFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface BigFloatFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface BitStringFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; +} + +export interface InternetAddressFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; + contains?: string; + containsOrEqualTo?: string; + containedBy?: string; + containedByOrEqualTo?: string; + containsOrContainedBy?: string; +} + +export interface FullTextFilter { + matches?: string; +} + +// ============================================================================ +// Entity Types +// ============================================================================ + +export interface Post { + id: string; + title?: string | null; + content?: string | null; + authorId?: string | null; + publishedAt?: string | null; + tags?: string | null; +} + +export interface Category { + id: string; + name?: string | null; + slug?: string | null; +} + +// ============================================================================ +// Relation Helper Types +// ============================================================================ + +export interface ConnectionResult { + nodes: T[]; + totalCount: number; + pageInfo: PageInfo; +} + +export interface PageInfo { + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor?: string | null; + endCursor?: string | null; +} + +// ============================================================================ +// Entity Relation Types +// ============================================================================ + +export interface PostRelations { + author?: User | null; + comments?: ConnectionResult; +} + +export interface CategoryRelations { + posts?: ConnectionResult; +} + +// ============================================================================ +// Entity Types With Relations +// ============================================================================ + +export type PostWithRelations = Post & PostRelations; + +export type CategoryWithRelations = Category & CategoryRelations; + +// ============================================================================ +// Entity Select Types +// ============================================================================ + +export type PostSelect = { + id?: boolean; + title?: boolean; + content?: boolean; + authorId?: boolean; + publishedAt?: boolean; + tags?: boolean; + author?: boolean | { select?: UserSelect }; + comments?: boolean | { + select?: CommentSelect; + first?: number; + filter?: CommentFilter; + orderBy?: CommentsOrderBy[]; + }; + }; + +export type CategorySelect = { + id?: boolean; + name?: boolean; + slug?: boolean; + posts?: boolean | { + select?: PostSelect; + first?: number; + filter?: PostFilter; + orderBy?: PostsOrderBy[]; + }; + }; + +// ============================================================================ +// Table Filter Types +// ============================================================================ + +export interface PostFilter { + id?: UUIDFilter; + title?: StringFilter; + content?: StringFilter; + authorId?: UUIDFilter; + publishedAt?: DatetimeFilter; + tags?: StringFilter; + and?: PostFilter[]; + or?: PostFilter[]; + not?: PostFilter; +} + +export interface CategoryFilter { + id?: UUIDFilter; + name?: StringFilter; + slug?: StringFilter; + and?: CategoryFilter[]; + or?: CategoryFilter[]; + not?: CategoryFilter; +} + +// ============================================================================ +// OrderBy Types +// ============================================================================ + +export type PostsOrderBy = 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'NATURAL' | 'ID_ASC' | 'ID_DESC' | 'TITLE_ASC' | 'TITLE_DESC' | 'CONTENT_ASC' | 'CONTENT_DESC' | 'AUTHOR_ID_ASC' | 'AUTHOR_ID_DESC' | 'PUBLISHED_AT_ASC' | 'PUBLISHED_AT_DESC' | 'TAGS_ASC' | 'TAGS_DESC'; + +export type CategorysOrderBy = 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'NATURAL' | 'ID_ASC' | 'ID_DESC' | 'NAME_ASC' | 'NAME_DESC' | 'SLUG_ASC' | 'SLUG_DESC'; + +// ============================================================================ +// CRUD Input Types +// ============================================================================ + +export interface CreatePostInput { + clientMutationId?: string; + post: { + title?: string; + content?: string; + authorId: string; + publishedAt?: string; + tags?: string; + }; +} + +export interface PostPatch { + title?: string | null; + content?: string | null; + authorId?: string | null; + publishedAt?: string | null; + tags?: string | null; +} + +export interface UpdatePostInput { + clientMutationId?: string; + id: string; + patch: PostPatch; +} + +export interface DeletePostInput { + clientMutationId?: string; + id: string; +} + +export interface CreateCategoryInput { + clientMutationId?: string; + category: { + name?: string; + slug?: string; + }; +} + +export interface CategoryPatch { + name?: string | null; + slug?: string | null; +} + +export interface UpdateCategoryInput { + clientMutationId?: string; + id: string; + patch: CategoryPatch; +} + +export interface DeleteCategoryInput { + clientMutationId?: string; + id: string; +} + +// ============================================================================ +// Custom Input Types (from schema) +// ============================================================================ +" +`; + +exports[`generateInputTypesFile handles empty tables array 1`] = ` +"/** +* GraphQL types for ORM client +* @generated by @constructive-io/graphql-codegen +* DO NOT EDIT - changes will be overwritten +*/ + +// ============================================================================ +// Scalar Filter Types +// ============================================================================ + +export interface StringFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; + includes?: string; + notIncludes?: string; + includesInsensitive?: string; + notIncludesInsensitive?: string; + startsWith?: string; + notStartsWith?: string; + startsWithInsensitive?: string; + notStartsWithInsensitive?: string; + endsWith?: string; + notEndsWith?: string; + endsWithInsensitive?: string; + notEndsWithInsensitive?: string; + like?: string; + notLike?: string; + likeInsensitive?: string; + notLikeInsensitive?: string; +} + +export interface IntFilter { + isNull?: boolean; + equalTo?: number; + notEqualTo?: number; + distinctFrom?: number; + notDistinctFrom?: number; + in?: number[]; + notIn?: number[]; + lessThan?: number; + lessThanOrEqualTo?: number; + greaterThan?: number; + greaterThanOrEqualTo?: number; +} + +export interface FloatFilter { + isNull?: boolean; + equalTo?: number; + notEqualTo?: number; + distinctFrom?: number; + notDistinctFrom?: number; + in?: number[]; + notIn?: number[]; + lessThan?: number; + lessThanOrEqualTo?: number; + greaterThan?: number; + greaterThanOrEqualTo?: number; +} + +export interface BooleanFilter { + isNull?: boolean; + equalTo?: boolean; + notEqualTo?: boolean; +} + +export interface UUIDFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; +} + +export interface DatetimeFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface DateFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface JSONFilter { + isNull?: boolean; + equalTo?: Record; + notEqualTo?: Record; + distinctFrom?: Record; + notDistinctFrom?: Record; + contains?: Record; + containedBy?: Record; + containsKey?: string; + containsAllKeys?: string[]; + containsAnyKeys?: string[]; +} + +export interface BigIntFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface BigFloatFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface BitStringFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; +} + +export interface InternetAddressFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; + contains?: string; + containsOrEqualTo?: string; + containedBy?: string; + containedByOrEqualTo?: string; + containsOrContainedBy?: string; +} + +export interface FullTextFilter { + matches?: string; +} + +// ============================================================================ +// Custom Input Types (from schema) +// ============================================================================ +" +`; diff --git a/graphql/codegen/src/__tests__/codegen/input-types-generator.test.ts b/graphql/codegen/src/__tests__/codegen/input-types-generator.test.ts new file mode 100644 index 000000000..520ea4ef3 --- /dev/null +++ b/graphql/codegen/src/__tests__/codegen/input-types-generator.test.ts @@ -0,0 +1,742 @@ +/** + * Comprehensive tests for input-types-generator.ts + * + * Uses snapshot testing to validate generated TypeScript output. + * These snapshots capture the current string-based output and will be + * used to validate the AST-based migration produces equivalent results. + */ +// Jest globals - no import needed +import { generateInputTypesFile, collectInputTypeNames, collectPayloadTypeNames } from '../../cli/codegen/orm/input-types-generator'; +import type { + CleanTable, + CleanFieldType, + CleanRelations, + TypeRegistry, + ResolvedType, + CleanArgument, + CleanTypeRef, +} from '../../types/schema'; + +// ============================================================================ +// Test Fixtures - Field Types +// ============================================================================ + +const fieldTypes = { + uuid: { gqlType: 'UUID', isArray: false } as CleanFieldType, + string: { gqlType: 'String', isArray: false } as CleanFieldType, + int: { gqlType: 'Int', isArray: false } as CleanFieldType, + float: { gqlType: 'Float', isArray: false } as CleanFieldType, + boolean: { gqlType: 'Boolean', isArray: false } as CleanFieldType, + datetime: { gqlType: 'Datetime', isArray: false } as CleanFieldType, + date: { gqlType: 'Date', isArray: false } as CleanFieldType, + json: { gqlType: 'JSON', isArray: false } as CleanFieldType, + bigint: { gqlType: 'BigInt', isArray: false } as CleanFieldType, + stringArray: { gqlType: 'String', isArray: true } as CleanFieldType, + intArray: { gqlType: 'Int', isArray: true } as CleanFieldType, +}; + +// ============================================================================ +// Test Fixtures - Helper Functions +// ============================================================================ + +const emptyRelations: CleanRelations = { + belongsTo: [], + hasOne: [], + hasMany: [], + manyToMany: [], +}; + +function createTable(partial: Partial & { name: string }): CleanTable { + return { + name: partial.name, + fields: partial.fields ?? [], + relations: partial.relations ?? emptyRelations, + query: partial.query, + inflection: partial.inflection, + constraints: partial.constraints, + }; +} + +function createTypeRegistry(types: Record): TypeRegistry { + return new Map(Object.entries(types)); +} + +function createTypeRef(kind: CleanTypeRef['kind'], name: string | null, ofType?: CleanTypeRef): CleanTypeRef { + return { kind, name, ofType }; +} + +function createNonNull(inner: CleanTypeRef): CleanTypeRef { + return { kind: 'NON_NULL', name: null, ofType: inner }; +} + +function createList(inner: CleanTypeRef): CleanTypeRef { + return { kind: 'LIST', name: null, ofType: inner }; +} + +// ============================================================================ +// Test Fixtures - Sample Tables +// ============================================================================ + +/** + * Simple User table with basic scalar fields + */ +const userTable = createTable({ + name: 'User', + fields: [ + { name: 'id', type: fieldTypes.uuid }, + { name: 'email', type: fieldTypes.string }, + { name: 'name', type: fieldTypes.string }, + { name: 'age', type: fieldTypes.int }, + { name: 'isActive', type: fieldTypes.boolean }, + { name: 'createdAt', type: fieldTypes.datetime }, + { name: 'metadata', type: fieldTypes.json }, + ], + query: { + all: 'users', + one: 'user', + create: 'createUser', + update: 'updateUser', + delete: 'deleteUser', + }, +}); + +/** + * Post table with belongsTo relation to User + */ +const postTable = createTable({ + name: 'Post', + fields: [ + { name: 'id', type: fieldTypes.uuid }, + { name: 'title', type: fieldTypes.string }, + { name: 'content', type: fieldTypes.string }, + { name: 'authorId', type: fieldTypes.uuid }, + { name: 'publishedAt', type: fieldTypes.datetime }, + { name: 'tags', type: fieldTypes.stringArray }, + ], + relations: { + belongsTo: [ + { + fieldName: 'author', + isUnique: false, + referencesTable: 'User', + type: null, + keys: [{ name: 'authorId', type: fieldTypes.uuid }], + }, + ], + hasOne: [], + hasMany: [ + { + fieldName: 'comments', + isUnique: false, + referencedByTable: 'Comment', + type: null, + keys: [], + }, + ], + manyToMany: [], + }, + query: { + all: 'posts', + one: 'post', + create: 'createPost', + update: 'updatePost', + delete: 'deletePost', + }, +}); + +/** + * Comment table with relations + */ +const commentTable = createTable({ + name: 'Comment', + fields: [ + { name: 'id', type: fieldTypes.uuid }, + { name: 'body', type: fieldTypes.string }, + { name: 'postId', type: fieldTypes.uuid }, + { name: 'authorId', type: fieldTypes.uuid }, + { name: 'createdAt', type: fieldTypes.datetime }, + ], + relations: { + belongsTo: [ + { + fieldName: 'post', + isUnique: false, + referencesTable: 'Post', + type: null, + keys: [], + }, + { + fieldName: 'author', + isUnique: false, + referencesTable: 'User', + type: null, + keys: [], + }, + ], + hasOne: [], + hasMany: [], + manyToMany: [], + }, + query: { + all: 'comments', + one: 'comment', + create: 'createComment', + update: 'updateComment', + delete: 'deleteComment', + }, +}); + +/** + * User table with hasMany to posts (update to include relation) + */ +const userTableWithRelations = createTable({ + ...userTable, + relations: { + belongsTo: [], + hasOne: [], + hasMany: [ + { + fieldName: 'posts', + isUnique: false, + referencedByTable: 'Post', + type: null, + keys: [], + }, + { + fieldName: 'comments', + isUnique: false, + referencedByTable: 'Comment', + type: null, + keys: [], + }, + ], + manyToMany: [], + }, +}); + +/** + * Category table with manyToMany relation + */ +const categoryTable = createTable({ + name: 'Category', + fields: [ + { name: 'id', type: fieldTypes.uuid }, + { name: 'name', type: fieldTypes.string }, + { name: 'slug', type: fieldTypes.string }, + ], + relations: { + belongsTo: [], + hasOne: [], + hasMany: [], + manyToMany: [ + { + fieldName: 'posts', + rightTable: 'Post', + junctionTable: 'PostCategory', + type: null, + }, + ], + }, + query: { + all: 'categories', + one: 'category', + create: 'createCategory', + update: 'updateCategory', + delete: 'deleteCategory', + }, +}); + +/** + * Profile table with hasOne relation + */ +const profileTable = createTable({ + name: 'Profile', + fields: [ + { name: 'id', type: fieldTypes.uuid }, + { name: 'bio', type: fieldTypes.string }, + { name: 'userId', type: fieldTypes.uuid }, + { name: 'avatarUrl', type: fieldTypes.string }, + ], + relations: { + belongsTo: [ + { + fieldName: 'user', + isUnique: true, + referencesTable: 'User', + type: null, + keys: [], + }, + ], + hasOne: [], + hasMany: [], + manyToMany: [], + }, + query: { + all: 'profiles', + one: 'profile', + create: 'createProfile', + update: 'updateProfile', + delete: 'deleteProfile', + }, +}); + +// User with hasOne to profile +const userTableWithProfile = createTable({ + ...userTable, + relations: { + belongsTo: [], + hasOne: [ + { + fieldName: 'profile', + isUnique: true, + referencedByTable: 'Profile', + type: null, + keys: [], + }, + ], + hasMany: [ + { + fieldName: 'posts', + isUnique: false, + referencedByTable: 'Post', + type: null, + keys: [], + }, + ], + manyToMany: [], + }, +}); + +// ============================================================================ +// Test Fixtures - Sample TypeRegistry (for custom operations) +// ============================================================================ + +const sampleTypeRegistry = createTypeRegistry({ + LoginInput: { + kind: 'INPUT_OBJECT', + name: 'LoginInput', + inputFields: [ + { name: 'email', type: createNonNull(createTypeRef('SCALAR', 'String')) }, + { name: 'password', type: createNonNull(createTypeRef('SCALAR', 'String')) }, + { name: 'rememberMe', type: createTypeRef('SCALAR', 'Boolean') }, + ], + }, + RegisterInput: { + kind: 'INPUT_OBJECT', + name: 'RegisterInput', + inputFields: [ + { name: 'email', type: createNonNull(createTypeRef('SCALAR', 'String')) }, + { name: 'password', type: createNonNull(createTypeRef('SCALAR', 'String')) }, + { name: 'name', type: createTypeRef('SCALAR', 'String') }, + ], + }, + UserRole: { + kind: 'ENUM', + name: 'UserRole', + enumValues: ['ADMIN', 'USER', 'GUEST'], + }, + LoginPayload: { + kind: 'OBJECT', + name: 'LoginPayload', + fields: [ + { name: 'token', type: createTypeRef('SCALAR', 'String') }, + { name: 'user', type: createTypeRef('OBJECT', 'User') }, + { name: 'expiresAt', type: createTypeRef('SCALAR', 'Datetime') }, + ], + }, +}); + +// ============================================================================ +// Tests - Full File Generation +// ============================================================================ + +describe('generateInputTypesFile', () => { + it('generates complete types file for single table', () => { + const result = generateInputTypesFile(new Map(), new Set(), [userTable]); + expect(result.content).toMatchSnapshot(); + }); + + it('generates complete types file for multiple tables with relations', () => { + const tables = [userTableWithRelations, postTable, commentTable]; + const result = generateInputTypesFile(new Map(), new Set(), tables); + expect(result.content).toMatchSnapshot(); + }); + + it('generates types with hasOne relations', () => { + const tables = [userTableWithProfile, profileTable]; + const result = generateInputTypesFile(new Map(), new Set(), tables); + expect(result.content).toMatchSnapshot(); + }); + + it('generates types with manyToMany relations', () => { + const tables = [postTable, categoryTable]; + const result = generateInputTypesFile(new Map(), new Set(), tables); + expect(result.content).toMatchSnapshot(); + }); + + it('generates custom input types from TypeRegistry', () => { + const usedInputTypes = new Set(['LoginInput', 'RegisterInput', 'UserRole']); + const result = generateInputTypesFile(sampleTypeRegistry, usedInputTypes, [userTable]); + expect(result.content).toMatchSnapshot(); + }); + + it('generates payload types for custom operations', () => { + const usedInputTypes = new Set(['LoginInput']); + const usedPayloadTypes = new Set(['LoginPayload']); + const result = generateInputTypesFile(sampleTypeRegistry, usedInputTypes, [userTable], usedPayloadTypes); + expect(result.content).toMatchSnapshot(); + }); + + it('handles empty tables array', () => { + const result = generateInputTypesFile(new Map(), new Set()); + expect(result.content).toMatchSnapshot(); + }); +}); + +// ============================================================================ +// Tests - Scalar Filter Types +// ============================================================================ + +describe('scalar filter types', () => { + it('includes all standard scalar filter interfaces', () => { + const result = generateInputTypesFile(new Map(), new Set(), [userTable]); + + // String filters + expect(result.content).toContain('export interface StringFilter {'); + expect(result.content).toContain('equalTo?: string;'); + expect(result.content).toContain('includes?: string;'); + expect(result.content).toContain('likeInsensitive?: string;'); + + // Int filters + expect(result.content).toContain('export interface IntFilter {'); + expect(result.content).toContain('lessThan?: number;'); + expect(result.content).toContain('greaterThanOrEqualTo?: number;'); + + // UUID filters + expect(result.content).toContain('export interface UUIDFilter {'); + + // Datetime filters + expect(result.content).toContain('export interface DatetimeFilter {'); + + // JSON filters + expect(result.content).toContain('export interface JSONFilter {'); + expect(result.content).toContain('containsKey?: string;'); + expect(result.content).toContain('containsAllKeys?: string[];'); + + // Boolean filters + expect(result.content).toContain('export interface BooleanFilter {'); + + // BigInt filters + expect(result.content).toContain('export interface BigIntFilter {'); + + // Float filters + expect(result.content).toContain('export interface FloatFilter {'); + }); +}); + +// ============================================================================ +// Tests - Entity Types +// ============================================================================ + +describe('entity types', () => { + it('generates entity interface with correct field types', () => { + const result = generateInputTypesFile(new Map(), new Set(), [userTable]); + + expect(result.content).toContain('export interface User {'); + expect(result.content).toContain('id: string;'); // UUID -> string + expect(result.content).toContain('email?: string | null;'); + expect(result.content).toContain('age?: number | null;'); + expect(result.content).toContain('isActive?: boolean | null;'); + expect(result.content).toContain('metadata?: Record | null;'); + }); + + it('generates entity relations interface', () => { + const result = generateInputTypesFile(new Map(), new Set(), [userTableWithRelations, postTable]); + + expect(result.content).toContain('export interface UserRelations {'); + expect(result.content).toContain('posts?: ConnectionResult;'); + }); + + it('generates WithRelations type alias', () => { + const result = generateInputTypesFile(new Map(), new Set(), [userTableWithRelations]); + + expect(result.content).toContain('export type UserWithRelations = User & UserRelations;'); + }); +}); + +// ============================================================================ +// Tests - Select Types +// ============================================================================ + +describe('entity select types', () => { + it('generates select type with scalar fields', () => { + const result = generateInputTypesFile(new Map(), new Set(), [userTable]); + + expect(result.content).toContain('export type UserSelect = {'); + expect(result.content).toContain('id?: boolean;'); + expect(result.content).toContain('email?: boolean;'); + expect(result.content).toContain('name?: boolean;'); + }); + + it('generates select type with belongsTo relation options', () => { + const result = generateInputTypesFile(new Map(), new Set(), [postTable, userTable]); + + expect(result.content).toContain('export type PostSelect = {'); + expect(result.content).toContain('author?: boolean | { select?: UserSelect };'); + }); + + it('generates select type with hasMany relation options', () => { + const result = generateInputTypesFile(new Map(), new Set(), [userTableWithRelations, postTable]); + + expect(result.content).toContain('posts?: boolean | {'); + expect(result.content).toContain('select?: PostSelect;'); + expect(result.content).toContain('first?: number;'); + expect(result.content).toContain('filter?: PostFilter;'); + expect(result.content).toContain('orderBy?: PostsOrderBy[];'); + }); + + it('generates select type with manyToMany relation options', () => { + const result = generateInputTypesFile(new Map(), new Set(), [categoryTable, postTable]); + + expect(result.content).toContain('export type CategorySelect = {'); + expect(result.content).toContain('posts?: boolean | {'); + expect(result.content).toContain('select?: PostSelect;'); + }); +}); + +// ============================================================================ +// Tests - Table Filter Types +// ============================================================================ + +describe('table filter types', () => { + it('generates filter type for table', () => { + const result = generateInputTypesFile(new Map(), new Set(), [userTable]); + + expect(result.content).toContain('export interface UserFilter {'); + expect(result.content).toContain('id?: UUIDFilter;'); + expect(result.content).toContain('email?: StringFilter;'); + expect(result.content).toContain('age?: IntFilter;'); + expect(result.content).toContain('isActive?: BooleanFilter;'); + expect(result.content).toContain('createdAt?: DatetimeFilter;'); + expect(result.content).toContain('metadata?: JSONFilter;'); + + // Logical operators + expect(result.content).toContain('and?: UserFilter[];'); + expect(result.content).toContain('or?: UserFilter[];'); + expect(result.content).toContain('not?: UserFilter;'); + }); +}); + +// ============================================================================ +// Tests - OrderBy Types +// ============================================================================ + +describe('orderBy types', () => { + it('generates orderBy type for table', () => { + const result = generateInputTypesFile(new Map(), new Set(), [userTable]); + + expect(result.content).toContain('export type UsersOrderBy ='); + expect(result.content).toContain("'PRIMARY_KEY_ASC'"); + expect(result.content).toContain("'PRIMARY_KEY_DESC'"); + expect(result.content).toContain("'NATURAL'"); + expect(result.content).toContain("'ID_ASC'"); + expect(result.content).toContain("'ID_DESC'"); + expect(result.content).toContain("'EMAIL_ASC'"); + expect(result.content).toContain("'NAME_DESC'"); + }); +}); + +// ============================================================================ +// Tests - CRUD Input Types +// ============================================================================ + +describe('CRUD input types', () => { + it('generates create input type', () => { + const result = generateInputTypesFile(new Map(), new Set(), [userTable]); + + expect(result.content).toContain('export interface CreateUserInput {'); + expect(result.content).toContain('clientMutationId?: string;'); + expect(result.content).toContain('user: {'); + expect(result.content).toContain('email?: string;'); + expect(result.content).toContain('name?: string;'); + // Should not include auto-generated fields + expect(result.content).not.toMatch(/user:\s*\{[^}]*\bid\b/); + }); + + it('generates update input type with patch', () => { + const result = generateInputTypesFile(new Map(), new Set(), [userTable]); + + expect(result.content).toContain('export interface UserPatch {'); + expect(result.content).toContain('email?: string | null;'); + expect(result.content).toContain('name?: string | null;'); + + expect(result.content).toContain('export interface UpdateUserInput {'); + expect(result.content).toContain('id: string;'); + expect(result.content).toContain('patch: UserPatch;'); + }); + + it('generates delete input type', () => { + const result = generateInputTypesFile(new Map(), new Set(), [userTable]); + + expect(result.content).toContain('export interface DeleteUserInput {'); + expect(result.content).toContain('clientMutationId?: string;'); + expect(result.content).toContain('id: string;'); + }); +}); + +// ============================================================================ +// Tests - Custom Input Types (from TypeRegistry) +// ============================================================================ + +describe('custom input types', () => { + it('generates input types from TypeRegistry', () => { + const usedInputTypes = new Set(['LoginInput', 'RegisterInput']); + const result = generateInputTypesFile(sampleTypeRegistry, usedInputTypes, []); + + expect(result.content).toContain('export interface LoginInput {'); + expect(result.content).toContain('email: string;'); // Non-null + expect(result.content).toContain('password: string;'); // Non-null + expect(result.content).toContain('rememberMe?: boolean;'); // Optional + }); + + it('generates enum types from TypeRegistry', () => { + const usedInputTypes = new Set(['UserRole']); + const result = generateInputTypesFile(sampleTypeRegistry, usedInputTypes, []); + + expect(result.content).toContain("export type UserRole = 'ADMIN' | 'USER' | 'GUEST';"); + }); +}); + +// ============================================================================ +// Tests - Payload/Return Types +// ============================================================================ + +describe('payload types', () => { + it('generates payload types for custom operations', () => { + const usedInputTypes = new Set(); + const usedPayloadTypes = new Set(['LoginPayload']); + const result = generateInputTypesFile(sampleTypeRegistry, usedInputTypes, [], usedPayloadTypes); + + expect(result.content).toContain('export interface LoginPayload {'); + expect(result.content).toContain('token?: string | null;'); + expect(result.content).toContain('expiresAt?: string | null;'); + }); + + it('generates Select types for payload types', () => { + const usedInputTypes = new Set(); + const usedPayloadTypes = new Set(['LoginPayload']); + const result = generateInputTypesFile(sampleTypeRegistry, usedInputTypes, [], usedPayloadTypes); + + expect(result.content).toContain('export type LoginPayloadSelect = {'); + expect(result.content).toContain('token?: boolean;'); + expect(result.content).toContain('expiresAt?: boolean;'); + }); +}); + +// ============================================================================ +// Tests - Helper Functions +// ============================================================================ + +describe('collectInputTypeNames', () => { + it('collects Input type names from operations', () => { + const operations = [ + { + args: [ + { name: 'input', type: createNonNull(createTypeRef('INPUT_OBJECT', 'LoginInput')) }, + ] as CleanArgument[], + }, + { + args: [ + { name: 'data', type: createTypeRef('INPUT_OBJECT', 'RegisterInput') }, + ] as CleanArgument[], + }, + ]; + + const result = collectInputTypeNames(operations); + + expect(result.has('LoginInput')).toBe(true); + expect(result.has('RegisterInput')).toBe(true); + }); + + it('collects Filter type names', () => { + const operations = [ + { + args: [ + { name: 'filter', type: createTypeRef('INPUT_OBJECT', 'UserFilter') }, + ] as CleanArgument[], + }, + ]; + + const result = collectInputTypeNames(operations); + + expect(result.has('UserFilter')).toBe(true); + }); +}); + +describe('collectPayloadTypeNames', () => { + it('collects Payload type names from operations', () => { + const operations = [ + { returnType: createTypeRef('OBJECT', 'LoginPayload') }, + { returnType: createTypeRef('OBJECT', 'RegisterPayload') }, + ]; + + const result = collectPayloadTypeNames(operations); + + expect(result.has('LoginPayload')).toBe(true); + expect(result.has('RegisterPayload')).toBe(true); + }); + + it('excludes Connection types', () => { + const operations = [ + { returnType: createTypeRef('OBJECT', 'UsersConnection') }, + ]; + + const result = collectPayloadTypeNames(operations); + + expect(result.has('UsersConnection')).toBe(false); + }); +}); + +// ============================================================================ +// Tests - Edge Cases +// ============================================================================ + +describe('edge cases', () => { + it('handles table with no fields', () => { + const emptyTable = createTable({ name: 'Empty', fields: [] }); + const result = generateInputTypesFile(new Map(), new Set(), [emptyTable]); + + expect(result.content).toContain('export interface Empty {'); + expect(result.content).toContain('export interface EmptyFilter {'); + }); + + it('handles table with only id field', () => { + const minimalTable = createTable({ + name: 'Minimal', + fields: [{ name: 'id', type: fieldTypes.uuid }], + }); + const result = generateInputTypesFile(new Map(), new Set(), [minimalTable]); + + expect(result.content).toContain('export interface Minimal {'); + expect(result.content).toContain('id: string;'); + }); + + it('handles circular relations gracefully', () => { + // User has posts, Post has author (User) + const tables = [userTableWithRelations, postTable]; + const result = generateInputTypesFile(new Map(), new Set(), tables); + + // Should not cause infinite loops or errors + expect(result.content).toContain('export type UserSelect = {'); + expect(result.content).toContain('export type PostSelect = {'); + }); + + it('handles unknown input type gracefully', () => { + const usedInputTypes = new Set(['UnknownType']); + const result = generateInputTypesFile(new Map(), usedInputTypes, []); + + // Should generate a fallback type + expect(result.content).toContain("// Type 'UnknownType' not found in schema"); + expect(result.content).toContain('export type UnknownType = Record;'); + }); +}); diff --git a/graphql/codegen/src/cli/codegen/barrel.ts b/graphql/codegen/src/cli/codegen/barrel.ts new file mode 100644 index 000000000..4067d34e7 --- /dev/null +++ b/graphql/codegen/src/cli/codegen/barrel.ts @@ -0,0 +1,198 @@ +/** + * Barrel file generators - creates index.ts files for exports + * + * Using simple string generation for barrel files since they're straightforward + * and ts-morph has issues with insertText + addStatements combination. + */ +import type { CleanTable } from '../../types/schema'; +import { createFileHeader } from './ts-ast'; +import { + getListQueryHookName, + getSingleQueryHookName, + getCreateMutationHookName, + getUpdateMutationHookName, + getDeleteMutationHookName, +} from './utils'; +import { getOperationHookName } from './type-resolver'; + +/** + * Generate the queries/index.ts barrel file + */ +export function generateQueriesBarrel(tables: CleanTable[]): string { + const lines: string[] = [ + createFileHeader('Query hooks barrel export'), + '', + ]; + + // Export all query hooks + for (const table of tables) { + const listHookName = getListQueryHookName(table); + const singleHookName = getSingleQueryHookName(table); + + lines.push(`export * from './${listHookName}';`); + lines.push(`export * from './${singleHookName}';`); + } + + return lines.join('\n') + '\n'; +} + +/** + * Generate the mutations/index.ts barrel file + */ +export function generateMutationsBarrel(tables: CleanTable[]): string { + const lines: string[] = [ + createFileHeader('Mutation hooks barrel export'), + '', + ]; + + // Export all mutation hooks + for (const table of tables) { + const createHookName = getCreateMutationHookName(table); + const updateHookName = getUpdateMutationHookName(table); + const deleteHookName = getDeleteMutationHookName(table); + + lines.push(`export * from './${createHookName}';`); + + // Only add update/delete if they exist + if (table.query?.update !== null) { + lines.push(`export * from './${updateHookName}';`); + } + if (table.query?.delete !== null) { + lines.push(`export * from './${deleteHookName}';`); + } + } + + return lines.join('\n') + '\n'; +} + +/** + * Generate the main index.ts barrel file + */ +export function generateMainBarrel(tables: CleanTable[]): string { + const tableNames = tables.map((t) => t.name).join(', '); + + return `/** + * Auto-generated GraphQL SDK + * @generated by @constructive-io/graphql-codegen + * + * Tables: ${tableNames} + * + * Usage: + * + * 1. Configure the client: + * \`\`\`ts + * import { configure } from './generated'; + * + * configure({ + * endpoint: 'https://api.example.com/graphql', + * headers: { Authorization: 'Bearer ' }, + * }); + * \`\`\` + * + * 2. Use the hooks: + * \`\`\`tsx + * import { useCarsQuery, useCreateCarMutation } from './generated'; + * + * function MyComponent() { + * const { data, isLoading } = useCarsQuery({ first: 10 }); + * const { mutate } = useCreateCarMutation(); + * // ... + * } + * \`\`\` + */ + +// Client configuration +export * from './client'; + +// Entity and filter types +export * from './types'; + +// Query hooks +export * from './queries'; + +// Mutation hooks +export * from './mutations'; +`; +} + +// ============================================================================ +// Custom operation barrels (includes both table and custom hooks) +// ============================================================================ + +/** + * Generate queries barrel including custom query operations + */ +export function generateCustomQueriesBarrel( + tables: CleanTable[], + customQueryNames: string[] +): string { + const lines: string[] = [ + createFileHeader('Query hooks barrel export'), + '', + '// Table-based query hooks', + ]; + + // Export all table query hooks + for (const table of tables) { + const listHookName = getListQueryHookName(table); + const singleHookName = getSingleQueryHookName(table); + + lines.push(`export * from './${listHookName}';`); + lines.push(`export * from './${singleHookName}';`); + } + + // Add custom query hooks + if (customQueryNames.length > 0) { + lines.push(''); + lines.push('// Custom query hooks'); + for (const name of customQueryNames) { + const hookName = getOperationHookName(name, 'query'); + lines.push(`export * from './${hookName}';`); + } + } + + return lines.join('\n') + '\n'; +} + +/** + * Generate mutations barrel including custom mutation operations + */ +export function generateCustomMutationsBarrel( + tables: CleanTable[], + customMutationNames: string[] +): string { + const lines: string[] = [ + createFileHeader('Mutation hooks barrel export'), + '', + '// Table-based mutation hooks', + ]; + + // Export all table mutation hooks + for (const table of tables) { + const createHookName = getCreateMutationHookName(table); + const updateHookName = getUpdateMutationHookName(table); + const deleteHookName = getDeleteMutationHookName(table); + + lines.push(`export * from './${createHookName}';`); + + // Only add update/delete if they exist + if (table.query?.update !== null) { + lines.push(`export * from './${updateHookName}';`); + } + if (table.query?.delete !== null) { + lines.push(`export * from './${deleteHookName}';`); + } + } + + // Add custom mutation hooks + if (customMutationNames.length > 0) { + lines.push(''); + lines.push('// Custom mutation hooks'); + for (const name of customMutationNames) { + const hookName = getOperationHookName(name, 'mutation'); + lines.push(`export * from './${hookName}';`); + } + } + + return lines.join('\n') + '\n'; +} diff --git a/graphql/codegen/src/cli/codegen/client.ts b/graphql/codegen/src/cli/codegen/client.ts new file mode 100644 index 000000000..4bb19b723 --- /dev/null +++ b/graphql/codegen/src/cli/codegen/client.ts @@ -0,0 +1,168 @@ +/** + * Client generator - generates client.ts with configure() and execute() + */ +import { getGeneratedFileHeader } from './utils'; + +/** + * Generate client.ts content + */ +export function generateClientFile(): string { + return `${getGeneratedFileHeader('GraphQL client configuration and execution')} + +// ============================================================================ +// Configuration +// ============================================================================ + +export interface GraphQLClientConfig { + /** GraphQL endpoint URL */ + endpoint: string; + /** Default headers to include in all requests */ + headers?: Record; +} + +let globalConfig: GraphQLClientConfig | null = null; + +/** + * Configure the GraphQL client + * + * @example + * \`\`\`ts + * import { configure } from './generated'; + * + * configure({ + * endpoint: 'https://api.example.com/graphql', + * headers: { + * Authorization: 'Bearer ', + * }, + * }); + * \`\`\` + */ +export function configure(config: GraphQLClientConfig): void { + globalConfig = config; +} + +/** + * Get the current configuration + * @throws Error if not configured + */ +export function getConfig(): GraphQLClientConfig { + if (!globalConfig) { + throw new Error( + 'GraphQL client not configured. Call configure() before making requests.' + ); + } + return globalConfig; +} + +// ============================================================================ +// Error handling +// ============================================================================ + +export interface GraphQLError { + message: string; + locations?: Array<{ line: number; column: number }>; + path?: Array; + extensions?: Record; +} + +export class GraphQLClientError extends Error { + constructor( + message: string, + public errors: GraphQLError[], + public response?: Response + ) { + super(message); + this.name = 'GraphQLClientError'; + } +} + +// ============================================================================ +// Execution +// ============================================================================ + +export interface ExecuteOptions { + /** Override headers for this request */ + headers?: Record; + /** AbortSignal for request cancellation */ + signal?: AbortSignal; +} + +/** + * Execute a GraphQL operation + * + * @example + * \`\`\`ts + * const result = await execute( + * carsQueryDocument, + * { first: 10 } + * ); + * \`\`\` + */ +export async function execute>( + document: string, + variables?: TVariables, + options?: ExecuteOptions +): Promise { + const config = getConfig(); + + const response = await fetch(config.endpoint, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + ...config.headers, + ...options?.headers, + }, + body: JSON.stringify({ + query: document, + variables, + }), + signal: options?.signal, + }); + + const json = await response.json(); + + if (json.errors && json.errors.length > 0) { + throw new GraphQLClientError( + json.errors[0].message || 'GraphQL request failed', + json.errors, + response + ); + } + + return json.data as TData; +} + +/** + * Execute a GraphQL operation with full response (data + errors) + * Useful when you want to handle partial data with errors + */ +export async function executeWithErrors>( + document: string, + variables?: TVariables, + options?: ExecuteOptions +): Promise<{ data: TData | null; errors: GraphQLError[] | null }> { + const config = getConfig(); + + const response = await fetch(config.endpoint, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + ...config.headers, + ...options?.headers, + }, + body: JSON.stringify({ + query: document, + variables, + }), + signal: options?.signal, + }); + + const json = await response.json(); + + return { + data: json.data ?? null, + errors: json.errors ?? null, + }; +} +`; +} diff --git a/graphql/codegen/src/cli/codegen/custom-mutations.ts b/graphql/codegen/src/cli/codegen/custom-mutations.ts new file mode 100644 index 000000000..73c3bd868 --- /dev/null +++ b/graphql/codegen/src/cli/codegen/custom-mutations.ts @@ -0,0 +1,252 @@ +/** + * Custom mutation hook generators for non-table operations + * + * Generates hooks for operations discovered via schema introspection + * that are NOT table CRUD operations (e.g., login, register, etc.) + * + * Output structure: + * mutations/ + * useLoginMutation.ts + * useRegisterMutation.ts + * ... + */ +import type { + CleanOperation, + CleanArgument, + TypeRegistry, +} from '../../types/schema'; +import { + createProject, + createSourceFile, + getFormattedOutput, + createFileHeader, + createImport, + createInterface, + createConst, + type InterfaceProperty, +} from './ts-ast'; +import { buildCustomMutationString } from './schema-gql-ast'; +import { + typeRefToTsType, + isTypeRequired, + getOperationHookName, + getOperationFileName, + getOperationVariablesTypeName, + getOperationResultTypeName, + getDocumentConstName, +} from './type-resolver'; + +export interface GeneratedCustomMutationFile { + fileName: string; + content: string; + operationName: string; +} + +// ============================================================================ +// Single custom mutation hook generator +// ============================================================================ + +export interface GenerateCustomMutationHookOptions { + operation: CleanOperation; + typeRegistry: TypeRegistry; + maxDepth?: number; + skipQueryField?: boolean; +} + +/** + * Generate a custom mutation hook file + */ +export function generateCustomMutationHook( + options: GenerateCustomMutationHookOptions +): GeneratedCustomMutationFile { + const { operation } = options; + + try { + return generateCustomMutationHookInternal(options); + } catch (err) { + console.error(`Error generating hook for mutation: ${operation.name}`); + console.error(` Args: ${operation.args.length}, Return type: ${operation.returnType.kind}/${operation.returnType.name}`); + throw err; + } +} + +function generateCustomMutationHookInternal( + options: GenerateCustomMutationHookOptions +): GeneratedCustomMutationFile { + const { operation, typeRegistry, maxDepth = 2, skipQueryField = true } = options; + + const project = createProject(); + const hookName = getOperationHookName(operation.name, 'mutation'); + const fileName = getOperationFileName(operation.name, 'mutation'); + const variablesTypeName = getOperationVariablesTypeName(operation.name, 'mutation'); + const resultTypeName = getOperationResultTypeName(operation.name, 'mutation'); + const documentConstName = getDocumentConstName(operation.name, 'mutation'); + + // Generate GraphQL document + const mutationDocument = buildCustomMutationString({ + operation, + typeRegistry, + maxDepth, + skipQueryField, + }); + + const sourceFile = createSourceFile(project, fileName); + + // Add file header + sourceFile.insertText( + 0, + createFileHeader(`Custom mutation hook for ${operation.name}`) + '\n\n' + ); + + // Add imports + sourceFile.addImportDeclarations([ + createImport({ + moduleSpecifier: '@tanstack/react-query', + namedImports: ['useMutation'], + typeOnlyNamedImports: ['UseMutationOptions'], + }), + createImport({ + moduleSpecifier: '../client', + namedImports: ['execute'], + }), + ]); + + // Add mutation document constant + sourceFile.addVariableStatement( + createConst(documentConstName, '`\n' + mutationDocument + '`', { + docs: ['GraphQL mutation document'], + }) + ); + + // Generate variables interface if there are arguments + if (operation.args.length > 0) { + const variablesProps = generateVariablesProperties(operation.args); + sourceFile.addInterface(createInterface(variablesTypeName, variablesProps)); + } + + // Generate result interface + const resultType = typeRefToTsType(operation.returnType); + const resultProps: InterfaceProperty[] = [ + { name: operation.name, type: resultType }, + ]; + sourceFile.addInterface(createInterface(resultTypeName, resultProps)); + + // Generate hook function + const hookParams = generateHookParameters(operation, variablesTypeName, resultTypeName); + const hookBody = generateHookBody(operation, documentConstName, variablesTypeName, resultTypeName); + + // Note: docs can cause ts-morph issues with certain content, so we skip them + sourceFile.addFunction({ + name: hookName, + isExported: true, + parameters: hookParams, + statements: hookBody, + }); + + return { + fileName, + content: getFormattedOutput(sourceFile), + operationName: operation.name, + }; +} + +// ============================================================================ +// Helper functions +// ============================================================================ + +/** + * Generate interface properties from CleanArguments + */ +function generateVariablesProperties(args: CleanArgument[]): InterfaceProperty[] { + return args.map((arg) => ({ + name: arg.name, + type: typeRefToTsType(arg.type), + optional: !isTypeRequired(arg.type), + docs: arg.description ? [arg.description] : undefined, + })); +} + +/** + * Generate hook function parameters + */ +function generateHookParameters( + operation: CleanOperation, + variablesTypeName: string, + resultTypeName: string +): Array<{ name: string; type: string; hasQuestionToken?: boolean }> { + const hasArgs = operation.args.length > 0; + + // Mutation hooks use UseMutationOptions with variables as the second type param + const optionsType = hasArgs + ? `Omit, 'mutationFn'>` + : `Omit, 'mutationFn'>`; + + return [ + { + name: 'options', + type: optionsType, + hasQuestionToken: true, + }, + ]; +} + +/** + * Generate hook function body + */ +function generateHookBody( + operation: CleanOperation, + documentConstName: string, + variablesTypeName: string, + resultTypeName: string +): string { + const hasArgs = operation.args.length > 0; + + if (hasArgs) { + return `return useMutation({ + mutationFn: (variables: ${variablesTypeName}) => + execute<${resultTypeName}, ${variablesTypeName}>( + ${documentConstName}, + variables + ), + ...options, + });`; + } else { + return `return useMutation({ + mutationFn: () => execute<${resultTypeName}>(${documentConstName}), + ...options, + });`; + } +} + +// NOTE: JSDoc generation removed due to ts-morph issues with certain content + +// ============================================================================ +// Batch generator +// ============================================================================ + +export interface GenerateAllCustomMutationHooksOptions { + operations: CleanOperation[]; + typeRegistry: TypeRegistry; + maxDepth?: number; + skipQueryField?: boolean; +} + +/** + * Generate all custom mutation hook files + */ +export function generateAllCustomMutationHooks( + options: GenerateAllCustomMutationHooksOptions +): GeneratedCustomMutationFile[] { + const { operations, typeRegistry, maxDepth = 2, skipQueryField = true } = options; + + return operations + .filter((op) => op.kind === 'mutation') + .map((operation) => + generateCustomMutationHook({ + operation, + typeRegistry, + maxDepth, + skipQueryField, + }) + ); +} diff --git a/graphql/codegen/src/cli/codegen/custom-queries.ts b/graphql/codegen/src/cli/codegen/custom-queries.ts new file mode 100644 index 000000000..567dd5d0f --- /dev/null +++ b/graphql/codegen/src/cli/codegen/custom-queries.ts @@ -0,0 +1,505 @@ +/** + * Custom query hook generators for non-table operations + * + * Generates hooks for operations discovered via schema introspection + * that are NOT table CRUD operations (e.g., currentUser, nodeById, etc.) + * + * Output structure: + * queries/ + * useCurrentUserQuery.ts + * useNodeQuery.ts + * ... + */ +import type { + CleanOperation, + CleanArgument, + TypeRegistry, +} from '../../types/schema'; +import { + createProject, + createSourceFile, + getFormattedOutput, + createFileHeader, + createImport, + createInterface, + createConst, + type InterfaceProperty, +} from './ts-ast'; +import { buildCustomQueryString } from './schema-gql-ast'; +import { + typeRefToTsType, + isTypeRequired, + getOperationHookName, + getOperationFileName, + getOperationVariablesTypeName, + getOperationResultTypeName, + getDocumentConstName, + getQueryKeyName, +} from './type-resolver'; +import { ucFirst } from './utils'; + +export interface GeneratedCustomQueryFile { + fileName: string; + content: string; + operationName: string; +} + +// ============================================================================ +// Single custom query hook generator +// ============================================================================ + +export interface GenerateCustomQueryHookOptions { + operation: CleanOperation; + typeRegistry: TypeRegistry; + maxDepth?: number; + skipQueryField?: boolean; +} + +/** + * Generate a custom query hook file + */ +export function generateCustomQueryHook( + options: GenerateCustomQueryHookOptions +): GeneratedCustomQueryFile { + const { operation, typeRegistry, maxDepth = 2, skipQueryField = true } = options; + + const project = createProject(); + const hookName = getOperationHookName(operation.name, 'query'); + const fileName = getOperationFileName(operation.name, 'query'); + const variablesTypeName = getOperationVariablesTypeName(operation.name, 'query'); + const resultTypeName = getOperationResultTypeName(operation.name, 'query'); + const documentConstName = getDocumentConstName(operation.name, 'query'); + const queryKeyName = getQueryKeyName(operation.name); + + // Generate GraphQL document + const queryDocument = buildCustomQueryString({ + operation, + typeRegistry, + maxDepth, + skipQueryField, + }); + + const sourceFile = createSourceFile(project, fileName); + + // Add file header + sourceFile.insertText( + 0, + createFileHeader(`Custom query hook for ${operation.name}`) + '\n\n' + ); + + // Add imports + sourceFile.addImportDeclarations([ + createImport({ + moduleSpecifier: '@tanstack/react-query', + namedImports: ['useQuery'], + typeOnlyNamedImports: ['UseQueryOptions', 'QueryClient'], + }), + createImport({ + moduleSpecifier: '../client', + namedImports: ['execute'], + typeOnlyNamedImports: ['ExecuteOptions'], + }), + ]); + + // Add query document constant + sourceFile.addVariableStatement( + createConst(documentConstName, '`\n' + queryDocument + '`', { + docs: ['GraphQL query document'], + }) + ); + + // Generate variables interface if there are arguments + if (operation.args.length > 0) { + const variablesProps = generateVariablesProperties(operation.args); + sourceFile.addInterface(createInterface(variablesTypeName, variablesProps)); + } + + // Generate result interface + const resultType = typeRefToTsType(operation.returnType); + const resultProps: InterfaceProperty[] = [ + { name: operation.name, type: resultType }, + ]; + sourceFile.addInterface(createInterface(resultTypeName, resultProps)); + + // Query key factory + if (operation.args.length > 0) { + sourceFile.addVariableStatement( + createConst( + queryKeyName, + `(variables?: ${variablesTypeName}) => + ['${operation.name}', variables] as const`, + { docs: ['Query key factory for caching'] } + ) + ); + } else { + sourceFile.addVariableStatement( + createConst(queryKeyName, `() => ['${operation.name}'] as const`, { + docs: ['Query key factory for caching'], + }) + ); + } + + // Generate hook function + const hookParams = generateHookParameters(operation, variablesTypeName, resultTypeName); + const hookBody = generateHookBody(operation, documentConstName, queryKeyName, variablesTypeName, resultTypeName); + const hookDoc = generateHookDoc(operation, hookName); + + sourceFile.addFunction({ + name: hookName, + isExported: true, + parameters: hookParams, + statements: hookBody, + docs: [{ description: hookDoc }], + }); + + // Add standalone functions section + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Standalone Functions (non-React)'); + sourceFile.addStatements('// ============================================================================\n'); + + // Generate standalone fetch function + const fetchFnName = `fetch${ucFirst(operation.name)}Query`; + const fetchParams = generateFetchParameters(operation, variablesTypeName); + const fetchBody = generateFetchBody(operation, documentConstName, variablesTypeName, resultTypeName); + const fetchDoc = generateFetchDoc(operation, fetchFnName); + + sourceFile.addFunction({ + name: fetchFnName, + isExported: true, + isAsync: true, + parameters: fetchParams, + returnType: `Promise<${resultTypeName}>`, + statements: fetchBody, + docs: [{ description: fetchDoc }], + }); + + // Generate prefetch function + const prefetchFnName = `prefetch${ucFirst(operation.name)}Query`; + const prefetchParams = generatePrefetchParameters(operation, variablesTypeName); + const prefetchBody = generatePrefetchBody(operation, documentConstName, queryKeyName, variablesTypeName, resultTypeName); + const prefetchDoc = generatePrefetchDoc(operation, prefetchFnName); + + sourceFile.addFunction({ + name: prefetchFnName, + isExported: true, + isAsync: true, + parameters: prefetchParams, + returnType: 'Promise', + statements: prefetchBody, + docs: [{ description: prefetchDoc }], + }); + + return { + fileName, + content: getFormattedOutput(sourceFile), + operationName: operation.name, + }; +} + +// ============================================================================ +// Helper functions +// ============================================================================ + +/** + * Generate interface properties from CleanArguments + */ +function generateVariablesProperties(args: CleanArgument[]): InterfaceProperty[] { + return args.map((arg) => ({ + name: arg.name, + type: typeRefToTsType(arg.type), + optional: !isTypeRequired(arg.type), + docs: arg.description ? [arg.description] : undefined, + })); +} + +/** + * Generate hook function parameters + */ +function generateHookParameters( + operation: CleanOperation, + variablesTypeName: string, + resultTypeName: string +): Array<{ name: string; type: string; hasQuestionToken?: boolean }> { + const params: Array<{ name: string; type: string; hasQuestionToken?: boolean }> = []; + + // Add variables parameter if there are required args + const hasRequiredArgs = operation.args.some((arg) => isTypeRequired(arg.type)); + + if (operation.args.length > 0) { + params.push({ + name: 'variables', + type: variablesTypeName, + hasQuestionToken: !hasRequiredArgs, + }); + } + + // Add options parameter + params.push({ + name: 'options', + type: `Omit, 'queryKey' | 'queryFn'>`, + hasQuestionToken: true, + }); + + return params; +} + +/** + * Generate hook function body + */ +function generateHookBody( + operation: CleanOperation, + documentConstName: string, + queryKeyName: string, + variablesTypeName: string, + resultTypeName: string +): string { + const hasArgs = operation.args.length > 0; + const hasRequiredArgs = operation.args.some((arg) => isTypeRequired(arg.type)); + + if (hasArgs) { + // With variables + const enabledCondition = hasRequiredArgs + ? `enabled: !!variables && (options?.enabled !== false),` + : ''; + + return `return useQuery({ + queryKey: ${queryKeyName}(variables), + queryFn: () => execute<${resultTypeName}, ${variablesTypeName}>( + ${documentConstName}, + variables + ), + ${enabledCondition} + ...options, + });`; + } else { + // No variables + return `return useQuery({ + queryKey: ${queryKeyName}(), + queryFn: () => execute<${resultTypeName}>(${documentConstName}), + ...options, + });`; + } +} + +/** + * Generate hook JSDoc documentation + */ +function generateHookDoc(operation: CleanOperation, hookName: string): string { + const description = operation.description + ? operation.description + : `Query hook for ${operation.name}`; + + const hasArgs = operation.args.length > 0; + + let example: string; + if (hasArgs) { + const argNames = operation.args.map((a) => a.name).join(', '); + example = ` +@example +\`\`\`tsx +const { data, isLoading } = ${hookName}({ ${argNames} }); + +if (data?.${operation.name}) { + console.log(data.${operation.name}); +} +\`\`\``; + } else { + example = ` +@example +\`\`\`tsx +const { data, isLoading } = ${hookName}(); + +if (data?.${operation.name}) { + console.log(data.${operation.name}); +} +\`\`\``; + } + + return description + '\n' + example; +} + +// ============================================================================ +// Standalone function generators +// ============================================================================ + +/** + * Generate fetch function parameters + */ +function generateFetchParameters( + operation: CleanOperation, + variablesTypeName: string +): Array<{ name: string; type: string; hasQuestionToken?: boolean }> { + const params: Array<{ name: string; type: string; hasQuestionToken?: boolean }> = []; + + if (operation.args.length > 0) { + const hasRequiredArgs = operation.args.some((arg) => isTypeRequired(arg.type)); + params.push({ + name: 'variables', + type: variablesTypeName, + hasQuestionToken: !hasRequiredArgs, + }); + } + + params.push({ + name: 'options', + type: 'ExecuteOptions', + hasQuestionToken: true, + }); + + return params; +} + +/** + * Generate fetch function body + */ +function generateFetchBody( + operation: CleanOperation, + documentConstName: string, + variablesTypeName: string, + resultTypeName: string +): string { + if (operation.args.length > 0) { + return `return execute<${resultTypeName}, ${variablesTypeName}>( + ${documentConstName}, + variables, + options + );`; + } else { + return `return execute<${resultTypeName}>(${documentConstName}, undefined, options);`; + } +} + +/** + * Generate fetch function documentation + */ +function generateFetchDoc(operation: CleanOperation, fnName: string): string { + const description = `Fetch ${operation.name} without React hooks`; + + if (operation.args.length > 0) { + const argNames = operation.args.map((a) => a.name).join(', '); + return `${description} + +@example +\`\`\`ts +const data = await ${fnName}({ ${argNames} }); +\`\`\``; + } else { + return `${description} + +@example +\`\`\`ts +const data = await ${fnName}(); +\`\`\``; + } +} + +/** + * Generate prefetch function parameters + */ +function generatePrefetchParameters( + operation: CleanOperation, + variablesTypeName: string +): Array<{ name: string; type: string; hasQuestionToken?: boolean }> { + const params: Array<{ name: string; type: string; hasQuestionToken?: boolean }> = [ + { name: 'queryClient', type: 'QueryClient' }, + ]; + + if (operation.args.length > 0) { + const hasRequiredArgs = operation.args.some((arg) => isTypeRequired(arg.type)); + params.push({ + name: 'variables', + type: variablesTypeName, + hasQuestionToken: !hasRequiredArgs, + }); + } + + params.push({ + name: 'options', + type: 'ExecuteOptions', + hasQuestionToken: true, + }); + + return params; +} + +/** + * Generate prefetch function body + */ +function generatePrefetchBody( + operation: CleanOperation, + documentConstName: string, + queryKeyName: string, + variablesTypeName: string, + resultTypeName: string +): string { + if (operation.args.length > 0) { + return `await queryClient.prefetchQuery({ + queryKey: ${queryKeyName}(variables), + queryFn: () => execute<${resultTypeName}, ${variablesTypeName}>( + ${documentConstName}, + variables, + options + ), + });`; + } else { + return `await queryClient.prefetchQuery({ + queryKey: ${queryKeyName}(), + queryFn: () => execute<${resultTypeName}>(${documentConstName}, undefined, options), + });`; + } +} + +/** + * Generate prefetch function documentation + */ +function generatePrefetchDoc(operation: CleanOperation, fnName: string): string { + const description = `Prefetch ${operation.name} for SSR or cache warming`; + + if (operation.args.length > 0) { + const argNames = operation.args.map((a) => a.name).join(', '); + return `${description} + +@example +\`\`\`ts +await ${fnName}(queryClient, { ${argNames} }); +\`\`\``; + } else { + return `${description} + +@example +\`\`\`ts +await ${fnName}(queryClient); +\`\`\``; + } +} + +// ============================================================================ +// Batch generator +// ============================================================================ + +export interface GenerateAllCustomQueryHooksOptions { + operations: CleanOperation[]; + typeRegistry: TypeRegistry; + maxDepth?: number; + skipQueryField?: boolean; +} + +/** + * Generate all custom query hook files + */ +export function generateAllCustomQueryHooks( + options: GenerateAllCustomQueryHooksOptions +): GeneratedCustomQueryFile[] { + const { operations, typeRegistry, maxDepth = 2, skipQueryField = true } = options; + + return operations + .filter((op) => op.kind === 'query') + .map((operation) => + generateCustomQueryHook({ + operation, + typeRegistry, + maxDepth, + skipQueryField, + }) + ); +} diff --git a/graphql/codegen/src/cli/codegen/filters.ts b/graphql/codegen/src/cli/codegen/filters.ts new file mode 100644 index 000000000..36ad08f12 --- /dev/null +++ b/graphql/codegen/src/cli/codegen/filters.ts @@ -0,0 +1,384 @@ +/** + * PostGraphile filter type generators + * + * Generates TypeScript interfaces for PostGraphile filter types: + * - Base scalar filters (StringFilter, IntFilter, etc.) + * - Table-specific filters (CarFilter, UserFilter, etc.) + * - OrderBy enum types + */ +import type { CleanTable, CleanField } from '../../types/schema'; +import { + getFilterTypeName, + getOrderByTypeName, + getScalarFilterType, + getScalarFields, + toScreamingSnake, + getGeneratedFileHeader, +} from './utils'; + +// ============================================================================ +// Base filter type definitions +// ============================================================================ + +/** + * Generate all base PostGraphile filter types + * These are shared across all tables + */ +export function generateBaseFilterTypes(): string { + return `${getGeneratedFileHeader('PostGraphile base filter types')} + +// ============================================================================ +// String filters +// ============================================================================ + +export interface StringFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; + includes?: string; + notIncludes?: string; + includesInsensitive?: string; + notIncludesInsensitive?: string; + startsWith?: string; + notStartsWith?: string; + startsWithInsensitive?: string; + notStartsWithInsensitive?: string; + endsWith?: string; + notEndsWith?: string; + endsWithInsensitive?: string; + notEndsWithInsensitive?: string; + like?: string; + notLike?: string; + likeInsensitive?: string; + notLikeInsensitive?: string; +} + +export interface StringListFilter { + isNull?: boolean; + equalTo?: string[]; + notEqualTo?: string[]; + distinctFrom?: string[]; + notDistinctFrom?: string[]; + lessThan?: string[]; + lessThanOrEqualTo?: string[]; + greaterThan?: string[]; + greaterThanOrEqualTo?: string[]; + contains?: string[]; + containedBy?: string[]; + overlaps?: string[]; + anyEqualTo?: string; + anyNotEqualTo?: string; + anyLessThan?: string; + anyLessThanOrEqualTo?: string; + anyGreaterThan?: string; + anyGreaterThanOrEqualTo?: string; +} + +// ============================================================================ +// Numeric filters +// ============================================================================ + +export interface IntFilter { + isNull?: boolean; + equalTo?: number; + notEqualTo?: number; + distinctFrom?: number; + notDistinctFrom?: number; + in?: number[]; + notIn?: number[]; + lessThan?: number; + lessThanOrEqualTo?: number; + greaterThan?: number; + greaterThanOrEqualTo?: number; +} + +export interface IntListFilter { + isNull?: boolean; + equalTo?: number[]; + notEqualTo?: number[]; + distinctFrom?: number[]; + notDistinctFrom?: number[]; + lessThan?: number[]; + lessThanOrEqualTo?: number[]; + greaterThan?: number[]; + greaterThanOrEqualTo?: number[]; + contains?: number[]; + containedBy?: number[]; + overlaps?: number[]; + anyEqualTo?: number; + anyNotEqualTo?: number; + anyLessThan?: number; + anyLessThanOrEqualTo?: number; + anyGreaterThan?: number; + anyGreaterThanOrEqualTo?: number; +} + +export interface FloatFilter { + isNull?: boolean; + equalTo?: number; + notEqualTo?: number; + distinctFrom?: number; + notDistinctFrom?: number; + in?: number[]; + notIn?: number[]; + lessThan?: number; + lessThanOrEqualTo?: number; + greaterThan?: number; + greaterThanOrEqualTo?: number; +} + +export interface BigIntFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface BigFloatFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +// ============================================================================ +// Boolean filter +// ============================================================================ + +export interface BooleanFilter { + isNull?: boolean; + equalTo?: boolean; + notEqualTo?: boolean; + distinctFrom?: boolean; + notDistinctFrom?: boolean; + in?: boolean[]; + notIn?: boolean[]; +} + +// ============================================================================ +// UUID filter +// ============================================================================ + +export interface UUIDFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface UUIDListFilter { + isNull?: boolean; + equalTo?: string[]; + notEqualTo?: string[]; + distinctFrom?: string[]; + notDistinctFrom?: string[]; + lessThan?: string[]; + lessThanOrEqualTo?: string[]; + greaterThan?: string[]; + greaterThanOrEqualTo?: string[]; + contains?: string[]; + containedBy?: string[]; + overlaps?: string[]; + anyEqualTo?: string; + anyNotEqualTo?: string; + anyLessThan?: string; + anyLessThanOrEqualTo?: string; + anyGreaterThan?: string; + anyGreaterThanOrEqualTo?: string; +} + +// ============================================================================ +// Date/Time filters +// ============================================================================ + +export interface DatetimeFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface DateFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +export interface TimeFilter { + isNull?: boolean; + equalTo?: string; + notEqualTo?: string; + distinctFrom?: string; + notDistinctFrom?: string; + in?: string[]; + notIn?: string[]; + lessThan?: string; + lessThanOrEqualTo?: string; + greaterThan?: string; + greaterThanOrEqualTo?: string; +} + +// ============================================================================ +// JSON filter +// ============================================================================ + +export interface JSONFilter { + isNull?: boolean; + equalTo?: unknown; + notEqualTo?: unknown; + distinctFrom?: unknown; + notDistinctFrom?: unknown; + in?: unknown[]; + notIn?: unknown[]; + contains?: unknown; + containedBy?: unknown; + containsKey?: string; + containsAllKeys?: string[]; + containsAnyKeys?: string[]; +} +`; +} + +// ============================================================================ +// Table-specific filter generators +// ============================================================================ + +/** + * Generate filter interface for a specific table + */ +export function generateTableFilter(table: CleanTable): string { + const filterTypeName = getFilterTypeName(table); + const scalarFields = getScalarFields(table); + + const fieldFilters = scalarFields + .map((field) => { + const filterType = getFieldFilterType(field); + if (!filterType) return null; + return ` ${field.name}?: ${filterType};`; + }) + .filter(Boolean) + .join('\n'); + + return `export interface ${filterTypeName} { +${fieldFilters} + /** Logical AND */ + and?: ${filterTypeName}[]; + /** Logical OR */ + or?: ${filterTypeName}[]; + /** Logical NOT */ + not?: ${filterTypeName}; +}`; +} + +/** + * Get the filter type for a specific field + */ +function getFieldFilterType(field: CleanField): string | null { + const { gqlType, isArray } = field.type; + + // Handle array types + if (isArray) { + const cleanType = gqlType.replace(/!/g, ''); + switch (cleanType) { + case 'String': + return 'StringListFilter'; + case 'Int': + return 'IntListFilter'; + case 'UUID': + return 'UUIDListFilter'; + default: + return null; + } + } + + return getScalarFilterType(gqlType); +} + +// ============================================================================ +// OrderBy enum generators +// ============================================================================ + +/** + * Generate OrderBy type for a specific table + */ +export function generateTableOrderBy(table: CleanTable): string { + const orderByTypeName = getOrderByTypeName(table); + const scalarFields = getScalarFields(table); + + const fieldOrderBys = scalarFields.flatMap((field) => { + const screamingName = toScreamingSnake(field.name); + return [`'${screamingName}_ASC'`, `'${screamingName}_DESC'`]; + }); + + // Add standard PostGraphile order options + const standardOrderBys = [ + "'NATURAL'", + "'PRIMARY_KEY_ASC'", + "'PRIMARY_KEY_DESC'", + ]; + + const allOrderBys = [...fieldOrderBys, ...standardOrderBys]; + + return `export type ${orderByTypeName} = ${allOrderBys.join(' | ')};`; +} + +// ============================================================================ +// Combined generators for hook files +// ============================================================================ + +/** + * Generate inline filter and orderBy types for a query hook file + * These are embedded directly in the hook file for self-containment + */ +export function generateInlineFilterTypes(table: CleanTable): string { + const filterDef = generateTableFilter(table); + const orderByDef = generateTableOrderBy(table); + + return `${filterDef} + +${orderByDef}`; +} diff --git a/graphql/codegen/src/cli/codegen/gql-ast.ts b/graphql/codegen/src/cli/codegen/gql-ast.ts new file mode 100644 index 000000000..a07ec3f7b --- /dev/null +++ b/graphql/codegen/src/cli/codegen/gql-ast.ts @@ -0,0 +1,378 @@ +/** + * GraphQL AST builders using gql-ast + * + * Provides utilities for generating GraphQL queries and mutations via AST + * instead of string concatenation. + */ +import * as t from 'gql-ast'; +import { print } from 'graphql'; +import type { + DocumentNode, + FieldNode, + ArgumentNode, + VariableDefinitionNode, +} from 'graphql'; +import type { CleanTable, CleanField } from '../../types/schema'; +import { + getTableNames, + getAllRowsQueryName, + getSingleRowQueryName, + getCreateMutationName, + getUpdateMutationName, + getDeleteMutationName, + getFilterTypeName, + getOrderByTypeName, + getScalarFields, + ucFirst, +} from './utils'; + + + +// ============================================================================ +// Field selection builders +// ============================================================================ + +/** + * Create field selections from CleanField array + */ +function createFieldSelections(fields: CleanField[]): FieldNode[] { + return fields.map((field) => t.field({ name: field.name })); +} + +/** + * Create pageInfo selection + */ +function createPageInfoSelection(): FieldNode { + return t.field({ + name: 'pageInfo', + selectionSet: t.selectionSet({ + selections: [ + t.field({ name: 'hasNextPage' }), + t.field({ name: 'hasPreviousPage' }), + t.field({ name: 'startCursor' }), + t.field({ name: 'endCursor' }), + ], + }), + }); +} + +// ============================================================================ +// List query builder +// ============================================================================ + +export interface ListQueryConfig { + table: CleanTable; +} + +/** + * Build a list query AST for a table + */ +export function buildListQueryAST(config: ListQueryConfig): DocumentNode { + const { table } = config; + const queryName = getAllRowsQueryName(table); + const filterType = getFilterTypeName(table); + const orderByType = getOrderByTypeName(table); + const scalarFields = getScalarFields(table); + + // Variable definitions + const variableDefinitions: VariableDefinitionNode[] = [ + t.variableDefinition({ + variable: t.variable({ name: 'first' }), + type: t.namedType({ type: 'Int' }), + }), + t.variableDefinition({ + variable: t.variable({ name: 'offset' }), + type: t.namedType({ type: 'Int' }), + }), + t.variableDefinition({ + variable: t.variable({ name: 'filter' }), + type: t.namedType({ type: filterType }), + }), + t.variableDefinition({ + variable: t.variable({ name: 'orderBy' }), + type: t.listType({ + type: t.nonNullType({ type: t.namedType({ type: orderByType }) }), + }), + }), + ]; + + // Query arguments + const args: ArgumentNode[] = [ + t.argument({ name: 'first', value: t.variable({ name: 'first' }) }), + t.argument({ name: 'offset', value: t.variable({ name: 'offset' }) }), + t.argument({ name: 'filter', value: t.variable({ name: 'filter' }) }), + t.argument({ name: 'orderBy', value: t.variable({ name: 'orderBy' }) }), + ]; + + // Field selections + const fieldSelections = createFieldSelections(scalarFields); + + // Connection fields + const connectionFields: FieldNode[] = [ + t.field({ name: 'totalCount' }), + t.field({ + name: 'nodes', + selectionSet: t.selectionSet({ selections: fieldSelections }), + }), + createPageInfoSelection(), + ]; + + return t.document({ + definitions: [ + t.operationDefinition({ + operation: 'query', + name: `${ucFirst(queryName)}Query`, + variableDefinitions, + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: queryName, + args, + selectionSet: t.selectionSet({ selections: connectionFields }), + }), + ], + }), + }), + ], + }); +} + +// ============================================================================ +// Single item query builder +// ============================================================================ + +export interface SingleQueryConfig { + table: CleanTable; +} + +/** + * Build a single item query AST for a table + */ +export function buildSingleQueryAST(config: SingleQueryConfig): DocumentNode { + const { table } = config; + const queryName = getSingleRowQueryName(table); + const scalarFields = getScalarFields(table); + + // Variable definitions - assume UUID primary key + const variableDefinitions: VariableDefinitionNode[] = [ + t.variableDefinition({ + variable: t.variable({ name: 'id' }), + type: t.nonNullType({ type: t.namedType({ type: 'UUID' }) }), + }), + ]; + + // Query arguments + const args: ArgumentNode[] = [ + t.argument({ name: 'id', value: t.variable({ name: 'id' }) }), + ]; + + // Field selections + const fieldSelections = createFieldSelections(scalarFields); + + return t.document({ + definitions: [ + t.operationDefinition({ + operation: 'query', + name: `${ucFirst(queryName)}Query`, + variableDefinitions, + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: queryName, + args, + selectionSet: t.selectionSet({ selections: fieldSelections }), + }), + ], + }), + }), + ], + }); +} + +// ============================================================================ +// Create mutation builder +// ============================================================================ + +export interface CreateMutationConfig { + table: CleanTable; +} + +/** + * Build a create mutation AST for a table + */ +export function buildCreateMutationAST(config: CreateMutationConfig): DocumentNode { + const { table } = config; + const { typeName, singularName } = getTableNames(table); + const mutationName = getCreateMutationName(table); + const inputTypeName = `Create${typeName}Input`; + const scalarFields = getScalarFields(table); + + // Variable definitions + const variableDefinitions: VariableDefinitionNode[] = [ + t.variableDefinition({ + variable: t.variable({ name: 'input' }), + type: t.nonNullType({ type: t.namedType({ type: inputTypeName }) }), + }), + ]; + + // Mutation arguments + const args: ArgumentNode[] = [ + t.argument({ name: 'input', value: t.variable({ name: 'input' }) }), + ]; + + // Field selections + const fieldSelections = createFieldSelections(scalarFields); + + return t.document({ + definitions: [ + t.operationDefinition({ + operation: 'mutation', + name: `${ucFirst(mutationName)}Mutation`, + variableDefinitions, + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: mutationName, + args, + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: singularName, + selectionSet: t.selectionSet({ selections: fieldSelections }), + }), + ], + }), + }), + ], + }), + }), + ], + }); +} + +// ============================================================================ +// Update mutation builder +// ============================================================================ + +export interface UpdateMutationConfig { + table: CleanTable; +} + +/** + * Build an update mutation AST for a table + */ +export function buildUpdateMutationAST(config: UpdateMutationConfig): DocumentNode { + const { table } = config; + const { typeName, singularName } = getTableNames(table); + const mutationName = getUpdateMutationName(table); + const inputTypeName = `Update${typeName}Input`; + const scalarFields = getScalarFields(table); + + // Variable definitions + const variableDefinitions: VariableDefinitionNode[] = [ + t.variableDefinition({ + variable: t.variable({ name: 'input' }), + type: t.nonNullType({ type: t.namedType({ type: inputTypeName }) }), + }), + ]; + + // Mutation arguments + const args: ArgumentNode[] = [ + t.argument({ name: 'input', value: t.variable({ name: 'input' }) }), + ]; + + // Field selections + const fieldSelections = createFieldSelections(scalarFields); + + return t.document({ + definitions: [ + t.operationDefinition({ + operation: 'mutation', + name: `${ucFirst(mutationName)}Mutation`, + variableDefinitions, + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: mutationName, + args, + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: singularName, + selectionSet: t.selectionSet({ selections: fieldSelections }), + }), + ], + }), + }), + ], + }), + }), + ], + }); +} + +// ============================================================================ +// Delete mutation builder +// ============================================================================ + +export interface DeleteMutationConfig { + table: CleanTable; +} + +/** + * Build a delete mutation AST for a table + */ +export function buildDeleteMutationAST(config: DeleteMutationConfig): DocumentNode { + const { table } = config; + const { typeName } = getTableNames(table); + const mutationName = getDeleteMutationName(table); + const inputTypeName = `Delete${typeName}Input`; + + // Variable definitions + const variableDefinitions: VariableDefinitionNode[] = [ + t.variableDefinition({ + variable: t.variable({ name: 'input' }), + type: t.nonNullType({ type: t.namedType({ type: inputTypeName }) }), + }), + ]; + + // Mutation arguments + const args: ArgumentNode[] = [ + t.argument({ name: 'input', value: t.variable({ name: 'input' }) }), + ]; + + return t.document({ + definitions: [ + t.operationDefinition({ + operation: 'mutation', + name: `${ucFirst(mutationName)}Mutation`, + variableDefinitions, + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: mutationName, + args, + selectionSet: t.selectionSet({ + selections: [ + t.field({ name: 'clientMutationId' }), + t.field({ name: 'deletedId' }), + ], + }), + }), + ], + }), + }), + ], + }); +} + +// ============================================================================ +// Print utilities +// ============================================================================ + +/** + * Print AST to GraphQL string + */ +export function printGraphQL(ast: DocumentNode): string { + return print(ast); +} diff --git a/graphql/codegen/src/cli/codegen/index.ts b/graphql/codegen/src/cli/codegen/index.ts new file mode 100644 index 000000000..fbcd8d96b --- /dev/null +++ b/graphql/codegen/src/cli/codegen/index.ts @@ -0,0 +1,226 @@ +/** + * Code generation orchestrator + * + * Coordinates all code generators to produce the complete SDK output. + * + * Output structure: + * generated/ + * index.ts - Main barrel export + * client.ts - GraphQL client with configure() and execute() + * types.ts - Entity interfaces and filter types + * queries/ + * index.ts - Query hooks barrel + * useCarsQuery.ts - List query hook (table-based) + * useCarQuery.ts - Single item query hook (table-based) + * useCurrentUserQuery.ts - Custom query hook + * ... + * mutations/ + * index.ts - Mutation hooks barrel + * useCreateCarMutation.ts - Table-based CRUD + * useUpdateCarMutation.ts + * useDeleteCarMutation.ts + * useLoginMutation.ts - Custom mutation + * useRegisterMutation.ts + * ... + */ +import type { CleanTable, CleanOperation, TypeRegistry } from '../../types/schema'; +import type { ResolvedConfig } from '../../types/config'; + +import { generateClientFile } from './client'; +import { generateTypesFile } from './types'; +import { generateAllQueryHooks } from './queries'; +import { generateAllMutationHooks } from './mutations'; +import { generateAllCustomQueryHooks } from './custom-queries'; +import { generateAllCustomMutationHooks } from './custom-mutations'; +import { + generateQueriesBarrel, + generateMutationsBarrel, + generateMainBarrel, + generateCustomQueriesBarrel, + generateCustomMutationsBarrel, +} from './barrel'; + +// ============================================================================ +// Types +// ============================================================================ + +export interface GeneratedFile { + /** Relative path from output directory */ + path: string; + /** File content */ + content: string; +} + +export interface GenerateResult { + files: GeneratedFile[]; + stats: { + tables: number; + queryHooks: number; + mutationHooks: number; + customQueryHooks: number; + customMutationHooks: number; + totalFiles: number; + }; +} + +export interface GenerateOptions { + /** Tables from _meta introspection */ + tables: CleanTable[]; + /** Custom operations from __schema introspection */ + customOperations?: { + queries: CleanOperation[]; + mutations: CleanOperation[]; + typeRegistry: TypeRegistry; + }; + /** Resolved configuration */ + config: ResolvedConfig; +} + +// ============================================================================ +// Main orchestrator +// ============================================================================ + +/** + * Generate all SDK files for tables only (legacy function signature) + */ +export function generateAllFiles( + tables: CleanTable[], + config: ResolvedConfig +): GenerateResult { + return generate({ tables, config }); +} + +/** + * Generate all SDK files with full support for custom operations + */ +export function generate(options: GenerateOptions): GenerateResult { + const { tables, customOperations, config } = options; + const files: GeneratedFile[] = []; + + // Extract codegen options + const maxDepth = config.codegen.maxFieldDepth; + const skipQueryField = config.codegen.skipQueryField; + + // 1. Generate client.ts + files.push({ + path: 'client.ts', + content: generateClientFile(), + }); + + // 2. Generate types.ts + files.push({ + path: 'types.ts', + content: generateTypesFile(tables), + }); + + // 3. Generate table-based query hooks (queries/*.ts) + const queryHooks = generateAllQueryHooks(tables); + for (const hook of queryHooks) { + files.push({ + path: `queries/${hook.fileName}`, + content: hook.content, + }); + } + + // 4. Generate custom query hooks if available + let customQueryHooks: Array<{ fileName: string; content: string; operationName: string }> = []; + if (customOperations && customOperations.queries.length > 0) { + customQueryHooks = generateAllCustomQueryHooks({ + operations: customOperations.queries, + typeRegistry: customOperations.typeRegistry, + maxDepth, + skipQueryField, + }); + + for (const hook of customQueryHooks) { + files.push({ + path: `queries/${hook.fileName}`, + content: hook.content, + }); + } + } + + // 5. Generate queries/index.ts barrel (includes both table and custom queries) + files.push({ + path: 'queries/index.ts', + content: customQueryHooks.length > 0 + ? generateCustomQueriesBarrel(tables, customQueryHooks.map((h) => h.operationName)) + : generateQueriesBarrel(tables), + }); + + // 6. Generate table-based mutation hooks (mutations/*.ts) + const mutationHooks = generateAllMutationHooks(tables); + for (const hook of mutationHooks) { + files.push({ + path: `mutations/${hook.fileName}`, + content: hook.content, + }); + } + + // 7. Generate custom mutation hooks if available + let customMutationHooks: Array<{ fileName: string; content: string; operationName: string }> = []; + if (customOperations && customOperations.mutations.length > 0) { + customMutationHooks = generateAllCustomMutationHooks({ + operations: customOperations.mutations, + typeRegistry: customOperations.typeRegistry, + maxDepth, + skipQueryField, + }); + + for (const hook of customMutationHooks) { + files.push({ + path: `mutations/${hook.fileName}`, + content: hook.content, + }); + } + } + + // 8. Generate mutations/index.ts barrel (includes both table and custom mutations) + files.push({ + path: 'mutations/index.ts', + content: customMutationHooks.length > 0 + ? generateCustomMutationsBarrel(tables, customMutationHooks.map((h) => h.operationName)) + : generateMutationsBarrel(tables), + }); + + // 9. Generate main index.ts barrel + files.push({ + path: 'index.ts', + content: generateMainBarrel(tables), + }); + + return { + files, + stats: { + tables: tables.length, + queryHooks: queryHooks.length, + mutationHooks: mutationHooks.length, + customQueryHooks: customQueryHooks.length, + customMutationHooks: customMutationHooks.length, + totalFiles: files.length, + }, + }; +} + +// ============================================================================ +// Re-exports for convenience +// ============================================================================ + +export { generateClientFile } from './client'; +export { generateTypesFile } from './types'; +export { generateAllQueryHooks, generateListQueryHook, generateSingleQueryHook } from './queries'; +export { + generateAllMutationHooks, + generateCreateMutationHook, + generateUpdateMutationHook, + generateDeleteMutationHook, +} from './mutations'; +export { generateAllCustomQueryHooks, generateCustomQueryHook } from './custom-queries'; +export { generateAllCustomMutationHooks, generateCustomMutationHook } from './custom-mutations'; +export { + generateQueriesBarrel, + generateMutationsBarrel, + generateMainBarrel, + generateCustomQueriesBarrel, + generateCustomMutationsBarrel, +} from './barrel'; diff --git a/graphql/codegen/src/cli/codegen/mutations.ts b/graphql/codegen/src/cli/codegen/mutations.ts new file mode 100644 index 000000000..24090e855 --- /dev/null +++ b/graphql/codegen/src/cli/codegen/mutations.ts @@ -0,0 +1,526 @@ +/** + * Mutation hook generators using AST-based code generation + * + * Output structure: + * mutations/ + * useCreateCarMutation.ts + * useUpdateCarMutation.ts + * useDeleteCarMutation.ts + */ +import type { CleanTable } from '../../types/schema'; +import { + createProject, + createSourceFile, + getFormattedOutput, + createFileHeader, + createImport, + createInterface, + createConst, + type InterfaceProperty, +} from './ts-ast'; +import { + buildCreateMutationAST, + buildUpdateMutationAST, + buildDeleteMutationAST, + printGraphQL, +} from './gql-ast'; +import { + getTableNames, + getCreateMutationHookName, + getUpdateMutationHookName, + getDeleteMutationHookName, + getCreateMutationFileName, + getUpdateMutationFileName, + getDeleteMutationFileName, + getCreateMutationName, + getUpdateMutationName, + getDeleteMutationName, + getScalarFields, + fieldTypeToTs, + ucFirst, + lcFirst, +} from './utils'; + +export interface GeneratedMutationFile { + fileName: string; + content: string; +} + +// ============================================================================ +// Create mutation hook generator +// ============================================================================ + +/** + * Generate create mutation hook file content using AST + */ +export function generateCreateMutationHook(table: CleanTable): GeneratedMutationFile { + const project = createProject(); + const { typeName, singularName } = getTableNames(table); + const hookName = getCreateMutationHookName(table); + const mutationName = getCreateMutationName(table); + const scalarFields = getScalarFields(table); + + // Generate GraphQL document via AST + const mutationAST = buildCreateMutationAST({ table }); + const mutationDocument = printGraphQL(mutationAST); + + const sourceFile = createSourceFile(project, getCreateMutationFileName(table)); + + // Add file header + sourceFile.insertText(0, createFileHeader(`Create mutation hook for ${typeName}`) + '\n\n'); + + // Add imports + sourceFile.addImportDeclarations([ + createImport({ + moduleSpecifier: '@tanstack/react-query', + namedImports: ['useMutation', 'useQueryClient'], + typeOnlyNamedImports: ['UseMutationOptions'], + }), + createImport({ + moduleSpecifier: '../client', + namedImports: ['execute'], + }), + createImport({ + moduleSpecifier: '../types', + typeOnlyNamedImports: [typeName], + }), + ]); + + // Re-export entity type + sourceFile.addStatements(`\n// Re-export entity type for convenience\nexport type { ${typeName} };\n`); + + // Add section comment + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// GraphQL Document'); + sourceFile.addStatements('// ============================================================================\n'); + + // Add mutation document constant + sourceFile.addVariableStatement( + createConst(`${mutationName}MutationDocument`, '`\n' + mutationDocument + '`') + ); + + // Add section comment + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Types'); + sourceFile.addStatements('// ============================================================================\n'); + + // Generate CreateInput type - exclude auto-generated fields + const inputFields: InterfaceProperty[] = scalarFields + .filter((f) => { + const name = f.name.toLowerCase(); + return !['id', 'createdat', 'updatedat', 'created_at', 'updated_at'].includes(name); + }) + .map((f) => ({ + name: f.name, + type: `${fieldTypeToTs(f.type)} | null`, + optional: true, + })); + + sourceFile.addInterface( + createInterface(`${typeName}CreateInput`, inputFields, { + docs: [`Input type for creating a ${typeName}`], + }) + ); + + // Variables interface + sourceFile.addInterface( + createInterface(`${ucFirst(mutationName)}MutationVariables`, [ + { + name: 'input', + type: `{ + ${lcFirst(typeName)}: ${typeName}CreateInput; + }`, + }, + ]) + ); + + // Result interface + sourceFile.addInterface( + createInterface(`${ucFirst(mutationName)}MutationResult`, [ + { + name: mutationName, + type: `{ + ${singularName}: ${typeName}; + }`, + }, + ]) + ); + + // Add section comment + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Hook'); + sourceFile.addStatements('// ============================================================================\n'); + + // Hook function + sourceFile.addFunction({ + name: hookName, + isExported: true, + parameters: [ + { + name: 'options', + type: `Omit, 'mutationFn'>`, + hasQuestionToken: true, + }, + ], + statements: `const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: (variables: ${ucFirst(mutationName)}MutationVariables) => + execute<${ucFirst(mutationName)}MutationResult, ${ucFirst(mutationName)}MutationVariables>( + ${mutationName}MutationDocument, + variables + ), + onSuccess: () => { + // Invalidate list queries to refetch + queryClient.invalidateQueries({ queryKey: ['${typeName.toLowerCase()}', 'list'] }); + }, + ...options, + });`, + docs: [ + { + description: `Mutation hook for creating a ${typeName} + +@example +\`\`\`tsx +const { mutate, isPending } = ${hookName}(); + +mutate({ + input: { + ${lcFirst(typeName)}: { + // ... fields + }, + }, +}); +\`\`\``, + }, + ], + }); + + return { + fileName: getCreateMutationFileName(table), + content: getFormattedOutput(sourceFile), + }; +} + +// ============================================================================ +// Update mutation hook generator +// ============================================================================ + +/** + * Generate update mutation hook file content using AST + */ +export function generateUpdateMutationHook(table: CleanTable): GeneratedMutationFile | null { + // Check if update mutation exists + if (table.query?.update === null) { + return null; + } + + const project = createProject(); + const { typeName, singularName } = getTableNames(table); + const hookName = getUpdateMutationHookName(table); + const mutationName = getUpdateMutationName(table); + const scalarFields = getScalarFields(table); + + // Generate GraphQL document via AST + const mutationAST = buildUpdateMutationAST({ table }); + const mutationDocument = printGraphQL(mutationAST); + + const sourceFile = createSourceFile(project, getUpdateMutationFileName(table)); + + // Add file header + sourceFile.insertText(0, createFileHeader(`Update mutation hook for ${typeName}`) + '\n\n'); + + // Add imports + sourceFile.addImportDeclarations([ + createImport({ + moduleSpecifier: '@tanstack/react-query', + namedImports: ['useMutation', 'useQueryClient'], + typeOnlyNamedImports: ['UseMutationOptions'], + }), + createImport({ + moduleSpecifier: '../client', + namedImports: ['execute'], + }), + createImport({ + moduleSpecifier: '../types', + typeOnlyNamedImports: [typeName], + }), + ]); + + // Re-export entity type + sourceFile.addStatements(`\n// Re-export entity type for convenience\nexport type { ${typeName} };\n`); + + // Add section comment + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// GraphQL Document'); + sourceFile.addStatements('// ============================================================================\n'); + + // Add mutation document constant + sourceFile.addVariableStatement( + createConst(`${mutationName}MutationDocument`, '`\n' + mutationDocument + '`') + ); + + // Add section comment + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Types'); + sourceFile.addStatements('// ============================================================================\n'); + + // Generate Patch type - all fields optional + const patchFields: InterfaceProperty[] = scalarFields + .filter((f) => f.name.toLowerCase() !== 'id') + .map((f) => ({ + name: f.name, + type: `${fieldTypeToTs(f.type)} | null`, + optional: true, + })); + + sourceFile.addInterface( + createInterface(`${typeName}Patch`, patchFields, { + docs: [`Patch type for updating a ${typeName} - all fields optional`], + }) + ); + + // Variables interface + sourceFile.addInterface( + createInterface(`${ucFirst(mutationName)}MutationVariables`, [ + { + name: 'input', + type: `{ + id: string; + patch: ${typeName}Patch; + }`, + }, + ]) + ); + + // Result interface + sourceFile.addInterface( + createInterface(`${ucFirst(mutationName)}MutationResult`, [ + { + name: mutationName, + type: `{ + ${singularName}: ${typeName}; + }`, + }, + ]) + ); + + // Add section comment + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Hook'); + sourceFile.addStatements('// ============================================================================\n'); + + // Hook function + sourceFile.addFunction({ + name: hookName, + isExported: true, + parameters: [ + { + name: 'options', + type: `Omit, 'mutationFn'>`, + hasQuestionToken: true, + }, + ], + statements: `const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: (variables: ${ucFirst(mutationName)}MutationVariables) => + execute<${ucFirst(mutationName)}MutationResult, ${ucFirst(mutationName)}MutationVariables>( + ${mutationName}MutationDocument, + variables + ), + onSuccess: (_, variables) => { + // Invalidate specific item and list queries + queryClient.invalidateQueries({ queryKey: ['${typeName.toLowerCase()}', 'detail', variables.input.id] }); + queryClient.invalidateQueries({ queryKey: ['${typeName.toLowerCase()}', 'list'] }); + }, + ...options, + });`, + docs: [ + { + description: `Mutation hook for updating a ${typeName} + +@example +\`\`\`tsx +const { mutate, isPending } = ${hookName}(); + +mutate({ + input: { + id: 'uuid-here', + patch: { + // ... fields to update + }, + }, +}); +\`\`\``, + }, + ], + }); + + return { + fileName: getUpdateMutationFileName(table), + content: getFormattedOutput(sourceFile), + }; +} + +// ============================================================================ +// Delete mutation hook generator +// ============================================================================ + +/** + * Generate delete mutation hook file content using AST + */ +export function generateDeleteMutationHook(table: CleanTable): GeneratedMutationFile | null { + // Check if delete mutation exists + if (table.query?.delete === null) { + return null; + } + + const project = createProject(); + const { typeName } = getTableNames(table); + const hookName = getDeleteMutationHookName(table); + const mutationName = getDeleteMutationName(table); + + // Generate GraphQL document via AST + const mutationAST = buildDeleteMutationAST({ table }); + const mutationDocument = printGraphQL(mutationAST); + + const sourceFile = createSourceFile(project, getDeleteMutationFileName(table)); + + // Add file header + sourceFile.insertText(0, createFileHeader(`Delete mutation hook for ${typeName}`) + '\n\n'); + + // Add imports + sourceFile.addImportDeclarations([ + createImport({ + moduleSpecifier: '@tanstack/react-query', + namedImports: ['useMutation', 'useQueryClient'], + typeOnlyNamedImports: ['UseMutationOptions'], + }), + createImport({ + moduleSpecifier: '../client', + namedImports: ['execute'], + }), + ]); + + // Add section comment + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// GraphQL Document'); + sourceFile.addStatements('// ============================================================================\n'); + + // Add mutation document constant + sourceFile.addVariableStatement( + createConst(`${mutationName}MutationDocument`, '`\n' + mutationDocument + '`') + ); + + // Add section comment + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Types'); + sourceFile.addStatements('// ============================================================================\n'); + + // Variables interface + sourceFile.addInterface( + createInterface(`${ucFirst(mutationName)}MutationVariables`, [ + { + name: 'input', + type: `{ + id: string; + }`, + }, + ]) + ); + + // Result interface + sourceFile.addInterface( + createInterface(`${ucFirst(mutationName)}MutationResult`, [ + { + name: mutationName, + type: `{ + clientMutationId: string | null; + deletedId: string | null; + }`, + }, + ]) + ); + + // Add section comment + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Hook'); + sourceFile.addStatements('// ============================================================================\n'); + + // Hook function + sourceFile.addFunction({ + name: hookName, + isExported: true, + parameters: [ + { + name: 'options', + type: `Omit, 'mutationFn'>`, + hasQuestionToken: true, + }, + ], + statements: `const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: (variables: ${ucFirst(mutationName)}MutationVariables) => + execute<${ucFirst(mutationName)}MutationResult, ${ucFirst(mutationName)}MutationVariables>( + ${mutationName}MutationDocument, + variables + ), + onSuccess: (_, variables) => { + // Remove from cache and invalidate list + queryClient.removeQueries({ queryKey: ['${typeName.toLowerCase()}', 'detail', variables.input.id] }); + queryClient.invalidateQueries({ queryKey: ['${typeName.toLowerCase()}', 'list'] }); + }, + ...options, + });`, + docs: [ + { + description: `Mutation hook for deleting a ${typeName} + +@example +\`\`\`tsx +const { mutate, isPending } = ${hookName}(); + +mutate({ + input: { + id: 'uuid-to-delete', + }, +}); +\`\`\``, + }, + ], + }); + + return { + fileName: getDeleteMutationFileName(table), + content: getFormattedOutput(sourceFile), + }; +} + +// ============================================================================ +// Batch generator +// ============================================================================ + +/** + * Generate all mutation hook files for all tables + */ +export function generateAllMutationHooks(tables: CleanTable[]): GeneratedMutationFile[] { + const files: GeneratedMutationFile[] = []; + + for (const table of tables) { + files.push(generateCreateMutationHook(table)); + + const updateHook = generateUpdateMutationHook(table); + if (updateHook) { + files.push(updateHook); + } + + const deleteHook = generateDeleteMutationHook(table); + if (deleteHook) { + files.push(deleteHook); + } + } + + return files; +} diff --git a/graphql/codegen/src/cli/codegen/orm/barrel.ts b/graphql/codegen/src/cli/codegen/orm/barrel.ts new file mode 100644 index 000000000..1537a1542 --- /dev/null +++ b/graphql/codegen/src/cli/codegen/orm/barrel.ts @@ -0,0 +1,70 @@ +/** + * Barrel file generators for ORM client + * + * Generates index.ts files that re-export all models and operations. + */ +import type { CleanTable } from '../../../types/schema'; +import { + createProject, + createSourceFile, + getFormattedOutput, + createFileHeader, +} from '../ts-ast'; +import { getTableNames, lcFirst } from '../utils'; + +export interface GeneratedBarrelFile { + fileName: string; + content: string; +} + +/** + * Generate the models/index.ts barrel file + */ +export function generateModelsBarrel(tables: CleanTable[]): GeneratedBarrelFile { + const project = createProject(); + const sourceFile = createSourceFile(project, 'index.ts'); + + // Add file header + sourceFile.insertText( + 0, + createFileHeader('Models barrel export') + '\n\n' + ); + + // Export all model classes (Select types are now in input-types.ts) + for (const table of tables) { + const { typeName } = getTableNames(table); + const modelName = `${typeName}Model`; + const fileName = lcFirst(typeName); + + sourceFile.addExportDeclaration({ + moduleSpecifier: `./${fileName}`, + namedExports: [modelName], + }); + } + + return { + fileName: 'models/index.ts', + content: getFormattedOutput(sourceFile), + }; +} + +/** + * Generate the types.ts file that re-exports all types + */ +export function generateTypesBarrel(_useSharedTypes: boolean): GeneratedBarrelFile { + // Always re-export from input-types since that's where all types are generated + const content = `/** + * Types re-export + * @generated by @constructive-io/graphql-codegen + * DO NOT EDIT - changes will be overwritten + */ + +// Re-export all types from input-types +export * from './input-types'; +`; + + return { + fileName: 'types.ts', + content, + }; +} diff --git a/graphql/codegen/src/cli/codegen/orm/client-generator.ts b/graphql/codegen/src/cli/codegen/orm/client-generator.ts new file mode 100644 index 000000000..564290df7 --- /dev/null +++ b/graphql/codegen/src/cli/codegen/orm/client-generator.ts @@ -0,0 +1,706 @@ +/** + * ORM Client generator + * + * Generates the createClient() factory function and main client file. + * + * Example output: + * ```typescript + * import { OrmClient, OrmClientConfig } from './client'; + * import { UserModel } from './models/user'; + * import { queryOperations } from './query'; + * import { mutationOperations } from './mutation'; + * + * export function createClient(config: OrmClientConfig) { + * const client = new OrmClient(config); + * return { + * user: new UserModel(client), + * post: new PostModel(client), + * query: queryOperations(client), + * mutation: mutationOperations(client), + * }; + * } + * ``` + */ +import type { CleanTable } from '../../../types/schema'; +import { + createProject, + createSourceFile, + getFormattedOutput, + createFileHeader, + createImport, +} from '../ts-ast'; +import { getTableNames, lcFirst } from '../utils'; + +export interface GeneratedClientFile { + fileName: string; + content: string; +} + +/** + * Generate the main client.ts file (OrmClient class) + * This is the runtime client that handles GraphQL execution + */ +export function generateOrmClientFile(): GeneratedClientFile { + // This is runtime code that doesn't change based on schema + // We generate it as a static file + const content = `/** + * ORM Client - Runtime GraphQL executor + * @generated by @constructive-io/graphql-codegen + * DO NOT EDIT - changes will be overwritten + */ + +export interface OrmClientConfig { + endpoint: string; + headers?: Record; +} + +export interface GraphQLError { + message: string; + locations?: { line: number; column: number }[]; + path?: (string | number)[]; + extensions?: Record; +} + +/** + * Error thrown when GraphQL request fails + */ +export class GraphQLRequestError extends Error { + constructor( + public readonly errors: GraphQLError[], + public readonly data: unknown = null + ) { + const messages = errors.map(e => e.message).join('; '); + super(\`GraphQL Error: \${messages}\`); + this.name = 'GraphQLRequestError'; + } +} + +/** + * Discriminated union for query results + * Use .ok to check success, or use .unwrap() to get data or throw + */ +export type QueryResult = + | { ok: true; data: T; errors: undefined } + | { ok: false; data: null; errors: GraphQLError[] }; + +/** + * Legacy QueryResult type for backwards compatibility + * @deprecated Use QueryResult discriminated union instead + */ +export interface LegacyQueryResult { + data: T | null; + errors?: GraphQLError[]; +} + +export class OrmClient { + private endpoint: string; + private headers: Record; + + constructor(config: OrmClientConfig) { + this.endpoint = config.endpoint; + this.headers = config.headers ?? {}; + } + + async execute( + document: string, + variables?: Record + ): Promise> { + const response = await fetch(this.endpoint, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + ...this.headers, + }, + body: JSON.stringify({ + query: document, + variables: variables ?? {}, + }), + }); + + if (!response.ok) { + return { + ok: false, + data: null, + errors: [{ message: \`HTTP \${response.status}: \${response.statusText}\` }], + }; + } + + const json = (await response.json()) as { + data?: T; + errors?: GraphQLError[]; + }; + + // Return discriminated union based on presence of errors + if (json.errors && json.errors.length > 0) { + return { + ok: false, + data: null, + errors: json.errors, + }; + } + + return { + ok: true, + data: json.data as T, + errors: undefined, + }; + } + + setHeaders(headers: Record): void { + this.headers = { ...this.headers, ...headers }; + } + + getEndpoint(): string { + return this.endpoint; + } +} +`; + + return { + fileName: 'client.ts', + content, + }; +} + +/** + * Generate the query-builder.ts file (runtime query builder) + */ +export function generateQueryBuilderFile(): GeneratedClientFile { + const content = `/** + * Query Builder - Builds and executes GraphQL operations + * @generated by @constructive-io/graphql-codegen + * DO NOT EDIT - changes will be overwritten + */ + +import { OrmClient, QueryResult, GraphQLRequestError } from './client'; + +export interface QueryBuilderConfig { + client: OrmClient; + operation: 'query' | 'mutation'; + operationName: string; + fieldName: string; + document: string; + variables?: Record; +} + +export class QueryBuilder { + private config: QueryBuilderConfig; + + constructor(config: QueryBuilderConfig) { + this.config = config; + } + + /** + * Execute the query and return a discriminated union result + * Use result.ok to check success, or .unwrap() to throw on error + */ + async execute(): Promise> { + return this.config.client.execute( + this.config.document, + this.config.variables + ); + } + + /** + * Execute and unwrap the result, throwing GraphQLRequestError on failure + * @throws {GraphQLRequestError} If the query returns errors + */ + async unwrap(): Promise { + const result = await this.execute(); + if (!result.ok) { + throw new GraphQLRequestError(result.errors, result.data); + } + return result.data; + } + + /** + * Execute and unwrap, returning defaultValue on error instead of throwing + */ + async unwrapOr(defaultValue: D): Promise { + const result = await this.execute(); + if (!result.ok) { + return defaultValue; + } + return result.data; + } + + /** + * Execute and unwrap, calling onError callback on failure + */ + async unwrapOrElse(onError: (errors: import('./client').GraphQLError[]) => D): Promise { + const result = await this.execute(); + if (!result.ok) { + return onError(result.errors); + } + return result.data; + } + + toGraphQL(): string { + return this.config.document; + } + + getVariables(): Record | undefined { + return this.config.variables; + } +} + +// ============================================================================ +// Document Builders +// ============================================================================ + +export function buildSelections(select: T): string { + if (!select) return ''; + + const fields: string[] = []; + + for (const [key, value] of Object.entries(select)) { + if (value === false || value === undefined) continue; + + if (value === true) { + fields.push(key); + continue; + } + + if (typeof value === 'object' && value !== null) { + const nested = value as { + select?: Record; + first?: number; + filter?: Record; + orderBy?: string[]; + // New: connection flag to differentiate connection types from regular objects + connection?: boolean; + }; + + if (nested.select) { + const nestedSelections = buildSelections(nested.select); + + // Check if this is a connection type (has pagination args or explicit connection flag) + const isConnection = nested.connection === true || nested.first !== undefined || nested.filter !== undefined; + + if (isConnection) { + // Connection type - wrap in nodes/totalCount/pageInfo + const args: string[] = []; + if (nested.first !== undefined) args.push(\`first: \${nested.first}\`); + if (nested.orderBy?.length) args.push(\`orderBy: [\${nested.orderBy.join(', ')}]\`); + const argsStr = args.length > 0 ? \`(\${args.join(', ')})\` : ''; + + fields.push(\`\${key}\${argsStr} { + nodes { \${nestedSelections} } + totalCount + pageInfo { hasNextPage hasPreviousPage startCursor endCursor } + }\`); + } else { + // Regular nested object - just wrap in braces + fields.push(\`\${key} { \${nestedSelections} }\`); + } + } + } + } + + return fields.join('\\n '); +} + +export function buildFindManyDocument( + operationName: string, + queryField: string, + select: TSelect, + args: { + where?: TWhere; + orderBy?: string[]; + first?: number; + last?: number; + after?: string; + before?: string; + offset?: number; + }, + filterTypeName: string +): { document: string; variables: Record } { + const selections = select ? buildSelections(select) : 'id'; + + const varDefs: string[] = []; + const queryArgs: string[] = []; + const variables: Record = {}; + + if (args.where) { + varDefs.push(\`$where: \${filterTypeName}\`); + queryArgs.push('filter: $where'); + variables.where = args.where; + } + if (args.orderBy?.length) { + varDefs.push(\`$orderBy: [\${operationName}sOrderBy!]\`); + queryArgs.push('orderBy: $orderBy'); + variables.orderBy = args.orderBy; + } + if (args.first !== undefined) { + varDefs.push('$first: Int'); + queryArgs.push('first: $first'); + variables.first = args.first; + } + if (args.last !== undefined) { + varDefs.push('$last: Int'); + queryArgs.push('last: $last'); + variables.last = args.last; + } + if (args.after) { + varDefs.push('$after: Cursor'); + queryArgs.push('after: $after'); + variables.after = args.after; + } + if (args.before) { + varDefs.push('$before: Cursor'); + queryArgs.push('before: $before'); + variables.before = args.before; + } + if (args.offset !== undefined) { + varDefs.push('$offset: Int'); + queryArgs.push('offset: $offset'); + variables.offset = args.offset; + } + + const varDefsStr = varDefs.length > 0 ? \`(\${varDefs.join(', ')})\` : ''; + const queryArgsStr = queryArgs.length > 0 ? \`(\${queryArgs.join(', ')})\` : ''; + + const document = \`query \${operationName}Query\${varDefsStr} { + \${queryField}\${queryArgsStr} { + nodes { \${selections} } + totalCount + pageInfo { hasNextPage hasPreviousPage startCursor endCursor } + } +}\`; + + return { document, variables }; +} + +export function buildFindFirstDocument( + operationName: string, + queryField: string, + select: TSelect, + args: { where?: TWhere }, + filterTypeName: string +): { document: string; variables: Record } { + const selections = select ? buildSelections(select) : 'id'; + + const varDefs: string[] = ['$first: Int']; + const queryArgs: string[] = ['first: $first']; + const variables: Record = { first: 1 }; + + if (args.where) { + varDefs.push(\`$where: \${filterTypeName}\`); + queryArgs.push('filter: $where'); + variables.where = args.where; + } + + const document = \`query \${operationName}Query(\${varDefs.join(', ')}) { + \${queryField}(\${queryArgs.join(', ')}) { + nodes { \${selections} } + } +}\`; + + return { document, variables }; +} + +export function buildCreateDocument( + operationName: string, + mutationField: string, + entityField: string, + select: TSelect, + data: TData, + inputTypeName: string +): { document: string; variables: Record } { + const selections = select ? buildSelections(select) : 'id'; + + const document = \`mutation \${operationName}Mutation($input: \${inputTypeName}!) { + \${mutationField}(input: $input) { + \${entityField} { \${selections} } + } +}\`; + + return { + document, + variables: { input: { [entityField]: data } }, + }; +} + +export function buildUpdateDocument( + operationName: string, + mutationField: string, + entityField: string, + select: TSelect, + where: TWhere, + data: TData, + inputTypeName: string +): { document: string; variables: Record } { + const selections = select ? buildSelections(select) : 'id'; + + const document = \`mutation \${operationName}Mutation($input: \${inputTypeName}!) { + \${mutationField}(input: $input) { + \${entityField} { \${selections} } + } +}\`; + + return { + document, + variables: { input: { id: where.id, patch: data } }, + }; +} + +export function buildDeleteDocument( + operationName: string, + mutationField: string, + entityField: string, + where: TWhere, + inputTypeName: string +): { document: string; variables: Record } { + const document = \`mutation \${operationName}Mutation($input: \${inputTypeName}!) { + \${mutationField}(input: $input) { + \${entityField} { id } + } +}\`; + + return { + document, + variables: { input: { id: where.id } }, + }; +} + +export function buildCustomDocument( + operationType: 'query' | 'mutation', + operationName: string, + fieldName: string, + select: TSelect, + args: TArgs, + variableDefinitions: Array<{ name: string; type: string }> +): { document: string; variables: Record } { + const selections = select ? buildSelections(select) : ''; + + const varDefs = variableDefinitions.map(v => \`$\${v.name}: \${v.type}\`); + const fieldArgs = variableDefinitions.map(v => \`\${v.name}: $\${v.name}\`); + + const varDefsStr = varDefs.length > 0 ? \`(\${varDefs.join(', ')})\` : ''; + const fieldArgsStr = fieldArgs.length > 0 ? \`(\${fieldArgs.join(', ')})\` : ''; + const selectionsBlock = selections ? \` { \${selections} }\` : ''; + + const opType = operationType === 'query' ? 'query' : 'mutation'; + const document = \`\${opType} \${operationName}\${varDefsStr} { + \${fieldName}\${fieldArgsStr}\${selectionsBlock} +}\`; + + return { document, variables: (args ?? {}) as Record }; +} +`; + + return { + fileName: 'query-builder.ts', + content, + }; +} + +/** + * Generate the select-types.ts file + */ +export function generateSelectTypesFile(): GeneratedClientFile { + const content = `/** + * Type utilities for select inference + * @generated by @constructive-io/graphql-codegen + * DO NOT EDIT - changes will be overwritten + */ + +export interface ConnectionResult { + nodes: T[]; + totalCount: number; + pageInfo: PageInfo; +} + +export interface PageInfo { + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor?: string | null; + endCursor?: string | null; +} + +export interface FindManyArgs { + select?: TSelect; + where?: TWhere; + orderBy?: TOrderBy[]; + first?: number; + last?: number; + after?: string; + before?: string; + offset?: number; +} + +export interface FindFirstArgs { + select?: TSelect; + where?: TWhere; +} + +export interface CreateArgs { + data: TData; + select?: TSelect; +} + +export interface UpdateArgs { + where: TWhere; + data: TData; + select?: TSelect; +} + +export interface DeleteArgs { + where: TWhere; +} + +/** + * Infer result type from select configuration + */ +export type InferSelectResult = TSelect extends undefined + ? TEntity + : { + [K in keyof TSelect as TSelect[K] extends false | undefined ? never : K]: TSelect[K] extends true + ? K extends keyof TEntity + ? TEntity[K] + : never + : TSelect[K] extends { select: infer NestedSelect } + ? K extends keyof TEntity + ? NonNullable extends ConnectionResult + ? ConnectionResult> + : InferSelectResult, NestedSelect> | (null extends TEntity[K] ? null : never) + : never + : K extends keyof TEntity + ? TEntity[K] + : never; + }; +`; + + return { + fileName: 'select-types.ts', + content, + }; +} + +/** + * Generate the main index.ts with createClient factory + */ +export function generateCreateClientFile( + tables: CleanTable[], + hasCustomQueries: boolean, + hasCustomMutations: boolean +): GeneratedClientFile { + const project = createProject(); + const sourceFile = createSourceFile(project, 'index.ts'); + + // Add file header + sourceFile.insertText( + 0, + createFileHeader('ORM Client - createClient factory') + '\n\n' + ); + + // Add imports + const imports = [ + createImport({ + moduleSpecifier: './client', + namedImports: ['OrmClient'], + typeOnlyNamedImports: ['OrmClientConfig'], + }), + ]; + + // Import models + for (const table of tables) { + const { typeName } = getTableNames(table); + const modelName = `${typeName}Model`; + const fileName = lcFirst(typeName); + imports.push( + createImport({ + moduleSpecifier: `./models/${fileName}`, + namedImports: [modelName], + }) + ); + } + + // Import custom operations + if (hasCustomQueries) { + imports.push( + createImport({ + moduleSpecifier: './query', + namedImports: ['createQueryOperations'], + }) + ); + } + if (hasCustomMutations) { + imports.push( + createImport({ + moduleSpecifier: './mutation', + namedImports: ['createMutationOperations'], + }) + ); + } + + sourceFile.addImportDeclarations(imports); + + // Re-export types and classes + sourceFile.addStatements('\n// Re-export types and classes'); + sourceFile.addStatements("export type { OrmClientConfig, QueryResult, GraphQLError } from './client';"); + sourceFile.addStatements("export { GraphQLRequestError } from './client';"); + sourceFile.addStatements("export { QueryBuilder } from './query-builder';"); + sourceFile.addStatements("export * from './select-types';"); + + // Generate createClient function + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Client Factory'); + sourceFile.addStatements('// ============================================================================\n'); + + // Build the return object + const modelEntries = tables.map((table) => { + const { typeName, singularName } = getTableNames(table); + return `${singularName}: new ${typeName}Model(client)`; + }); + + let returnObject = modelEntries.join(',\n '); + if (hasCustomQueries) { + returnObject += ',\n query: createQueryOperations(client)'; + } + if (hasCustomMutations) { + returnObject += ',\n mutation: createMutationOperations(client)'; + } + + sourceFile.addFunction({ + name: 'createClient', + isExported: true, + parameters: [{ name: 'config', type: 'OrmClientConfig' }], + statements: `const client = new OrmClient(config); + + return { + ${returnObject}, + };`, + docs: [ + { + description: `Create an ORM client instance + +@example +\`\`\`typescript +const db = createClient({ + endpoint: 'https://api.example.com/graphql', + headers: { Authorization: 'Bearer token' }, +}); + +// Query users +const users = await db.user.findMany({ + select: { id: true, name: true }, + first: 10, +}).execute(); + +// Create a user +const newUser = await db.user.create({ + data: { name: 'John', email: 'john@example.com' }, + select: { id: true }, +}).execute(); +\`\`\``, + }, + ], + }); + + return { + fileName: 'index.ts', + content: getFormattedOutput(sourceFile), + }; +} diff --git a/graphql/codegen/src/cli/codegen/orm/custom-ops-generator.ts b/graphql/codegen/src/cli/codegen/orm/custom-ops-generator.ts new file mode 100644 index 000000000..23804712a --- /dev/null +++ b/graphql/codegen/src/cli/codegen/orm/custom-ops-generator.ts @@ -0,0 +1,418 @@ +/** + * Custom operations generator for ORM client + * + * Generates db.query.* and db.mutation.* namespaces for non-table operations + * like login, register, currentUser, etc. + * + * Example output: + * ```typescript + * // query/index.ts + * export function createQueryOperations(client: OrmClient) { + * return { + * currentUser: (args?: { select?: CurrentUserSelect }) => + * new QueryBuilder({ ... }), + * }; + * } + * ``` + */ +import type { CleanOperation, CleanArgument } from '../../../types/schema'; +import { + createProject, + createSourceFile, + getFormattedOutput, + createFileHeader, + createImport, +} from '../ts-ast'; +import { ucFirst } from '../utils'; +import { typeRefToTsType, isTypeRequired, getTypeBaseName } from '../type-resolver'; +import { SCALAR_NAMES } from '../scalars'; + +export interface GeneratedCustomOpsFile { + fileName: string; + content: string; +} + +/** + * Collect all input type names used by operations + */ +function collectInputTypeNamesFromOps(operations: CleanOperation[]): string[] { + const inputTypes = new Set(); + + for (const op of operations) { + for (const arg of op.args) { + const baseName = getTypeBaseName(arg.type); + if (baseName && (baseName.endsWith('Input') || baseName.endsWith('Filter'))) { + inputTypes.add(baseName); + } + } + } + + return Array.from(inputTypes); +} + +// Types that don't need Select types +const NON_SELECT_TYPES = new Set([...SCALAR_NAMES, 'Query', 'Mutation']); + +/** + * Collect all payload/return type names from operations (for Select types) + * Filters out scalar types + */ +function collectPayloadTypeNamesFromOps(operations: CleanOperation[]): string[] { + const payloadTypes = new Set(); + + for (const op of operations) { + const baseName = getTypeBaseName(op.returnType); + if (baseName && + !baseName.endsWith('Connection') && + baseName !== 'Query' && + baseName !== 'Mutation' && + !NON_SELECT_TYPES.has(baseName)) { + payloadTypes.add(baseName); + } + } + + return Array.from(payloadTypes); +} + +/** + * Get the Select type name for a return type + * Returns null for scalar types, Connection types (no select needed) + */ +function getSelectTypeName(returnType: CleanArgument['type']): string | null { + const baseName = getTypeBaseName(returnType); + if (baseName && + !NON_SELECT_TYPES.has(baseName) && + baseName !== 'Query' && + baseName !== 'Mutation' && + !baseName.endsWith('Connection')) { + return `${baseName}Select`; + } + return null; +} + +/** + * Generate the query/index.ts file for custom query operations + */ +export function generateCustomQueryOpsFile( + operations: CleanOperation[] +): GeneratedCustomOpsFile { + const project = createProject(); + const sourceFile = createSourceFile(project, 'index.ts'); + + // Collect all input type names and payload type names + const inputTypeNames = collectInputTypeNamesFromOps(operations); + const payloadTypeNames = collectPayloadTypeNamesFromOps(operations); + + // Generate Select type names for payloads + const selectTypeNames = payloadTypeNames.map((p) => `${p}Select`); + + // Combine all type imports + const allTypeImports = [...new Set([...inputTypeNames, ...payloadTypeNames, ...selectTypeNames])]; + + // Add file header + sourceFile.insertText( + 0, + createFileHeader('Custom query operations') + '\n\n' + ); + + // Add imports + sourceFile.addImportDeclarations([ + createImport({ + moduleSpecifier: '../client', + namedImports: ['OrmClient'], + }), + createImport({ + moduleSpecifier: '../query-builder', + namedImports: ['QueryBuilder', 'buildCustomDocument'], + }), + createImport({ + moduleSpecifier: '../select-types', + typeOnlyNamedImports: ['InferSelectResult'], + }), + ]); + + // Import types from input-types if we have any + if (allTypeImports.length > 0) { + sourceFile.addImportDeclarations([ + createImport({ + moduleSpecifier: '../input-types', + typeOnlyNamedImports: allTypeImports, + }), + ]); + } + + // Generate variable definitions type for each operation + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Variable Types'); + sourceFile.addStatements('// ============================================================================\n'); + + for (const op of operations) { + if (op.args.length > 0) { + const varTypeName = `${ucFirst(op.name)}Variables`; + const props = op.args.map((arg) => { + const optional = !isTypeRequired(arg.type); + return `${arg.name}${optional ? '?' : ''}: ${typeRefToTsType(arg.type)};`; + }); + sourceFile.addStatements(`export interface ${varTypeName} {\n ${props.join('\n ')}\n}\n`); + } + } + + // Generate factory function + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Query Operations Factory'); + sourceFile.addStatements('// ============================================================================\n'); + + // Build the operations object + const operationMethods = operations.map((op) => { + const hasArgs = op.args.length > 0; + const varTypeName = `${ucFirst(op.name)}Variables`; + const varDefs = op.args.map((arg) => ({ + name: arg.name, + type: formatGraphQLType(arg.type), + })); + const varDefsJson = JSON.stringify(varDefs); + + // Get Select type for return type + const selectTypeName = getSelectTypeName(op.returnType); + const payloadTypeName = getTypeBaseName(op.returnType); + + // Use typed select if available, otherwise fall back to Record + const selectType = selectTypeName ?? 'Record'; + const returnTypePart = selectTypeName && payloadTypeName + ? `{ ${op.name}: InferSelectResult<${payloadTypeName}, S> }` + : 'unknown'; + + if (hasArgs) { + if (selectTypeName) { + return `${op.name}: (args: ${varTypeName}, options?: { select?: S }) => + new QueryBuilder<${returnTypePart}>({ + client, + operation: 'query', + operationName: '${ucFirst(op.name)}', + fieldName: '${op.name}', + ...buildCustomDocument('query', '${ucFirst(op.name)}', '${op.name}', options?.select, args, ${varDefsJson}), + })`; + } else { + return `${op.name}: (args: ${varTypeName}, options?: { select?: Record }) => + new QueryBuilder({ + client, + operation: 'query', + operationName: '${ucFirst(op.name)}', + fieldName: '${op.name}', + ...buildCustomDocument('query', '${ucFirst(op.name)}', '${op.name}', options?.select, args, ${varDefsJson}), + })`; + } + } else { + // No args - still provide typed select + if (selectTypeName) { + return `${op.name}: (options?: { select?: S }) => + new QueryBuilder<${returnTypePart}>({ + client, + operation: 'query', + operationName: '${ucFirst(op.name)}', + fieldName: '${op.name}', + ...buildCustomDocument('query', '${ucFirst(op.name)}', '${op.name}', options?.select, undefined, []), + })`; + } else { + return `${op.name}: (options?: { select?: Record }) => + new QueryBuilder({ + client, + operation: 'query', + operationName: '${ucFirst(op.name)}', + fieldName: '${op.name}', + ...buildCustomDocument('query', '${ucFirst(op.name)}', '${op.name}', options?.select, undefined, []), + })`; + } + } + }); + + sourceFile.addFunction({ + name: 'createQueryOperations', + isExported: true, + parameters: [{ name: 'client', type: 'OrmClient' }], + statements: `return { + ${operationMethods.join(',\n ')}, + };`, + }); + + return { + fileName: 'query/index.ts', + content: getFormattedOutput(sourceFile), + }; +} + +/** + * Generate the mutation/index.ts file for custom mutation operations + */ +export function generateCustomMutationOpsFile( + operations: CleanOperation[] +): GeneratedCustomOpsFile { + const project = createProject(); + const sourceFile = createSourceFile(project, 'index.ts'); + + // Collect all input type names and payload type names + const inputTypeNames = collectInputTypeNamesFromOps(operations); + const payloadTypeNames = collectPayloadTypeNamesFromOps(operations); + + // Generate Select type names for payloads + const selectTypeNames = payloadTypeNames.map((p) => `${p}Select`); + + // Combine all type imports + const allTypeImports = [...new Set([...inputTypeNames, ...payloadTypeNames, ...selectTypeNames])]; + + // Add file header + sourceFile.insertText( + 0, + createFileHeader('Custom mutation operations') + '\n\n' + ); + + // Add imports + sourceFile.addImportDeclarations([ + createImport({ + moduleSpecifier: '../client', + namedImports: ['OrmClient'], + }), + createImport({ + moduleSpecifier: '../query-builder', + namedImports: ['QueryBuilder', 'buildCustomDocument'], + }), + createImport({ + moduleSpecifier: '../select-types', + typeOnlyNamedImports: ['InferSelectResult'], + }), + ]); + + // Import types from input-types if we have any + if (allTypeImports.length > 0) { + sourceFile.addImportDeclarations([ + createImport({ + moduleSpecifier: '../input-types', + typeOnlyNamedImports: allTypeImports, + }), + ]); + } + + // Generate variable definitions type for each operation + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Variable Types'); + sourceFile.addStatements('// ============================================================================\n'); + + for (const op of operations) { + if (op.args.length > 0) { + const varTypeName = `${ucFirst(op.name)}Variables`; + const props = op.args.map((arg) => { + const optional = !isTypeRequired(arg.type); + return `${arg.name}${optional ? '?' : ''}: ${typeRefToTsType(arg.type)};`; + }); + sourceFile.addStatements(`export interface ${varTypeName} {\n ${props.join('\n ')}\n}\n`); + } + } + + // Generate factory function + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Mutation Operations Factory'); + sourceFile.addStatements('// ============================================================================\n'); + + // Build the operations object + const operationMethods = operations.map((op) => { + const hasArgs = op.args.length > 0; + const varTypeName = `${ucFirst(op.name)}Variables`; + const varDefs = op.args.map((arg) => ({ + name: arg.name, + type: formatGraphQLType(arg.type), + })); + const varDefsJson = JSON.stringify(varDefs); + + // Get Select type for return type + const selectTypeName = getSelectTypeName(op.returnType); + const payloadTypeName = getTypeBaseName(op.returnType); + + // Use typed select if available, otherwise fall back to Record + const selectType = selectTypeName ?? 'Record'; + const returnTypePart = selectTypeName && payloadTypeName + ? `{ ${op.name}: InferSelectResult<${payloadTypeName}, S> }` + : 'unknown'; + + if (hasArgs) { + if (selectTypeName) { + return `${op.name}: (args: ${varTypeName}, options?: { select?: S }) => + new QueryBuilder<${returnTypePart}>({ + client, + operation: 'mutation', + operationName: '${ucFirst(op.name)}', + fieldName: '${op.name}', + ...buildCustomDocument('mutation', '${ucFirst(op.name)}', '${op.name}', options?.select, args, ${varDefsJson}), + })`; + } else { + return `${op.name}: (args: ${varTypeName}, options?: { select?: Record }) => + new QueryBuilder({ + client, + operation: 'mutation', + operationName: '${ucFirst(op.name)}', + fieldName: '${op.name}', + ...buildCustomDocument('mutation', '${ucFirst(op.name)}', '${op.name}', options?.select, args, ${varDefsJson}), + })`; + } + } else { + // No args - still provide typed select + if (selectTypeName) { + return `${op.name}: (options?: { select?: S }) => + new QueryBuilder<${returnTypePart}>({ + client, + operation: 'mutation', + operationName: '${ucFirst(op.name)}', + fieldName: '${op.name}', + ...buildCustomDocument('mutation', '${ucFirst(op.name)}', '${op.name}', options?.select, undefined, []), + })`; + } else { + return `${op.name}: (options?: { select?: Record }) => + new QueryBuilder({ + client, + operation: 'mutation', + operationName: '${ucFirst(op.name)}', + fieldName: '${op.name}', + ...buildCustomDocument('mutation', '${ucFirst(op.name)}', '${op.name}', options?.select, undefined, []), + })`; + } + } + }); + + sourceFile.addFunction({ + name: 'createMutationOperations', + isExported: true, + parameters: [{ name: 'client', type: 'OrmClient' }], + statements: `return { + ${operationMethods.join(',\n ')}, + };`, + }); + + return { + fileName: 'mutation/index.ts', + content: getFormattedOutput(sourceFile), + }; +} + +/** + * Format a CleanTypeRef to GraphQL type string + */ +function formatGraphQLType(typeRef: CleanArgument['type']): string { + let result = ''; + + if (typeRef.kind === 'NON_NULL') { + if (typeRef.ofType) { + result = formatGraphQLType(typeRef.ofType as CleanArgument['type']) + '!'; + } else { + result = (typeRef.name ?? 'String') + '!'; + } + } else if (typeRef.kind === 'LIST') { + if (typeRef.ofType) { + result = `[${formatGraphQLType(typeRef.ofType as CleanArgument['type'])}]`; + } else { + result = '[String]'; + } + } else { + result = typeRef.name ?? 'String'; + } + + return result; +} diff --git a/graphql/codegen/src/cli/codegen/orm/index.ts b/graphql/codegen/src/cli/codegen/orm/index.ts new file mode 100644 index 000000000..729fba67c --- /dev/null +++ b/graphql/codegen/src/cli/codegen/orm/index.ts @@ -0,0 +1,135 @@ +/** + * ORM Generator Orchestrator + * + * Main entry point for ORM code generation. Coordinates all generators + * and produces the complete ORM client output. + */ +import type { CleanTable, CleanOperation, TypeRegistry } from '../../../types/schema'; +import type { ResolvedConfig } from '../../../types/config'; +import { + generateOrmClientFile, + generateQueryBuilderFile, + generateSelectTypesFile, + generateCreateClientFile, +} from './client-generator'; +import { generateAllModelFiles } from './model-generator'; +import { + generateCustomQueryOpsFile, + generateCustomMutationOpsFile, +} from './custom-ops-generator'; +import { generateModelsBarrel, generateTypesBarrel } from './barrel'; +import { generateInputTypesFile, collectInputTypeNames, collectPayloadTypeNames } from './input-types-generator'; + +export interface GeneratedFile { + path: string; + content: string; +} + +export interface GenerateOrmOptions { + tables: CleanTable[]; + customOperations?: { + queries: CleanOperation[]; + mutations: CleanOperation[]; + typeRegistry?: TypeRegistry; + }; + config: ResolvedConfig; +} + +export interface GenerateOrmResult { + files: GeneratedFile[]; + stats: { + tables: number; + customQueries: number; + customMutations: number; + totalFiles: number; + }; +} + +/** + * Generate all ORM client files + */ +export function generateOrm(options: GenerateOrmOptions): GenerateOrmResult { + const { tables, customOperations, config } = options; + const files: GeneratedFile[] = []; + + const useSharedTypes = config.orm?.useSharedTypes ?? true; + const hasCustomQueries = (customOperations?.queries.length ?? 0) > 0; + const hasCustomMutations = (customOperations?.mutations.length ?? 0) > 0; + const typeRegistry = customOperations?.typeRegistry; + + // 1. Generate runtime files (client, query-builder, select-types) + const clientFile = generateOrmClientFile(); + files.push({ path: clientFile.fileName, content: clientFile.content }); + + const queryBuilderFile = generateQueryBuilderFile(); + files.push({ path: queryBuilderFile.fileName, content: queryBuilderFile.content }); + + const selectTypesFile = generateSelectTypesFile(); + files.push({ path: selectTypesFile.fileName, content: selectTypesFile.content }); + + // 2. Generate model files + const modelFiles = generateAllModelFiles(tables, useSharedTypes); + for (const modelFile of modelFiles) { + files.push({ + path: `models/${modelFile.fileName}`, + content: modelFile.content, + }); + } + + // 3. Generate models barrel + const modelsBarrel = generateModelsBarrel(tables); + files.push({ path: modelsBarrel.fileName, content: modelsBarrel.content }); + + // 4. Generate comprehensive input types (entities, filters, orderBy, CRUD inputs, custom inputs, payload types) + // Always generate if we have tables or custom operations + if (tables.length > 0 || (typeRegistry && (hasCustomQueries || hasCustomMutations))) { + const allOps = [ + ...(customOperations?.queries ?? []), + ...(customOperations?.mutations ?? []), + ]; + const usedInputTypes = collectInputTypeNames(allOps); + const usedPayloadTypes = collectPayloadTypeNames(allOps); + const inputTypesFile = generateInputTypesFile( + typeRegistry ?? new Map(), + usedInputTypes, + tables, + usedPayloadTypes + ); + files.push({ path: inputTypesFile.fileName, content: inputTypesFile.content }); + } + + // 5. Generate custom operations (if any) + if (hasCustomQueries && customOperations?.queries) { + const queryOpsFile = generateCustomQueryOpsFile(customOperations.queries); + files.push({ path: queryOpsFile.fileName, content: queryOpsFile.content }); + } + + if (hasCustomMutations && customOperations?.mutations) { + const mutationOpsFile = generateCustomMutationOpsFile(customOperations.mutations); + files.push({ path: mutationOpsFile.fileName, content: mutationOpsFile.content }); + } + + // 6. Generate types barrel + const typesBarrel = generateTypesBarrel(useSharedTypes); + files.push({ path: typesBarrel.fileName, content: typesBarrel.content }); + + // 7. Generate main index.ts with createClient + const indexFile = generateCreateClientFile(tables, hasCustomQueries, hasCustomMutations); + files.push({ path: indexFile.fileName, content: indexFile.content }); + + return { + files, + stats: { + tables: tables.length, + customQueries: customOperations?.queries.length ?? 0, + customMutations: customOperations?.mutations.length ?? 0, + totalFiles: files.length, + }, + }; +} + +// Re-export generators for direct use +export { generateOrmClientFile, generateQueryBuilderFile, generateSelectTypesFile } from './client-generator'; +export { generateModelFile, generateAllModelFiles } from './model-generator'; +export { generateCustomQueryOpsFile, generateCustomMutationOpsFile } from './custom-ops-generator'; +export { generateModelsBarrel, generateTypesBarrel } from './barrel'; diff --git a/graphql/codegen/src/cli/codegen/orm/input-types-generator.test.ts b/graphql/codegen/src/cli/codegen/orm/input-types-generator.test.ts new file mode 100644 index 000000000..5e6e0dbae --- /dev/null +++ b/graphql/codegen/src/cli/codegen/orm/input-types-generator.test.ts @@ -0,0 +1,81 @@ +// Jest globals - no import needed + +import { generateInputTypesFile } from './input-types-generator'; +import type { CleanTable, CleanFieldType } from '../../../types/schema'; + +const uuidType: CleanFieldType = { gqlType: 'UUID', isArray: false }; +const stringType: CleanFieldType = { gqlType: 'String', isArray: false }; + +function createTable(table: Partial & Pick): CleanTable { + return { + name: table.name, + fields: table.fields ?? [], + relations: table.relations ?? { + belongsTo: [], + hasOne: [], + hasMany: [], + manyToMany: [], + }, + query: table.query, + inflection: table.inflection, + constraints: table.constraints, + }; +} + +describe('input-types-generator', () => { + it('emits relation helpers and select types with related names', () => { + const userTable = createTable({ + name: 'User', + fields: [ + { name: 'id', type: uuidType }, + { name: 'name', type: stringType }, + ], + relations: { + belongsTo: [], + hasOne: [], + hasMany: [ + { + fieldName: 'posts', + isUnique: false, + referencedByTable: 'Post', + type: null, + keys: [], + }, + ], + manyToMany: [], + }, + }); + + const postTable = createTable({ + name: 'Post', + fields: [ + { name: 'id', type: uuidType }, + { name: 'title', type: stringType }, + ], + relations: { + belongsTo: [ + { + fieldName: 'author', + isUnique: false, + referencesTable: 'User', + type: null, + keys: [], + }, + ], + hasOne: [], + hasMany: [], + manyToMany: [], + }, + }); + + const result = generateInputTypesFile(new Map(), new Set(), [userTable, postTable]); + + expect(result.content).toContain('export interface ConnectionResult'); + expect(result.content).toContain('export interface UserRelations'); + expect(result.content).toContain('posts?: ConnectionResult'); + expect(result.content).toContain('export type UserWithRelations = User & UserRelations;'); + expect(result.content).toContain('posts?: boolean | {'); + expect(result.content).toContain('orderBy?: PostsOrderBy[];'); + expect(result.content).toContain('author?: boolean | { select?: UserSelect };'); + }); +}); diff --git a/graphql/codegen/src/cli/codegen/orm/input-types-generator.ts b/graphql/codegen/src/cli/codegen/orm/input-types-generator.ts new file mode 100644 index 000000000..57d24afb6 --- /dev/null +++ b/graphql/codegen/src/cli/codegen/orm/input-types-generator.ts @@ -0,0 +1,965 @@ +/** + * Input types generator for ORM client (AST-based) + * + * Generates TypeScript interfaces for: + * 1. Scalar filter types (StringFilter, IntFilter, UUIDFilter, etc.) + * 2. Entity interfaces (User, Order, etc.) + * 3. Table filter types (UserFilter, OrderFilter, etc.) + * 4. OrderBy enums (UsersOrderBy, OrdersOrderBy, etc.) + * 5. Input types (LoginInput, CreateUserInput, etc.) + * + * Uses ts-morph for robust AST-based code generation. + */ +import type { SourceFile } from 'ts-morph'; +import type { TypeRegistry, CleanArgument, CleanTable } from '../../../types/schema'; +import { + createProject, + createSourceFile, + getMinimalFormattedOutput, + createFileHeader, + createInterface, + createTypeAlias, + addSectionComment, + type InterfaceProperty, +} from '../ts-ast'; +import { + getTableNames, + getFilterTypeName, + getOrderByTypeName, + isRelationField, +} from '../utils'; +import { getTypeBaseName } from '../type-resolver'; +import { scalarToTsType, scalarToFilterType } from '../scalars'; + +export interface GeneratedInputTypesFile { + fileName: string; + content: string; +} + +// ============================================================================ +// Constants +// ============================================================================ + +/** Fields excluded from Create/Update inputs (auto-generated or system fields) */ +const EXCLUDED_MUTATION_FIELDS = ['id', 'createdAt', 'updatedAt', 'nodeId'] as const; + +// ============================================================================ +// Type Conversion Utilities +// ============================================================================ + +/** + * Overrides for input-type generation + */ +const INPUT_SCALAR_OVERRIDES: Record = { + JSON: 'Record', +}; + +/** + * Convert GraphQL scalar to TypeScript type + */ +function scalarToInputTs(scalar: string): string { + return scalarToTsType(scalar, { + unknownScalar: 'name', + overrides: INPUT_SCALAR_OVERRIDES, + }); +} + +/** + * Convert a CleanTypeRef to TypeScript type string + */ +function typeRefToTs(typeRef: CleanArgument['type']): string { + if (typeRef.kind === 'NON_NULL') { + if (typeRef.ofType) { + return typeRefToTs(typeRef.ofType as CleanArgument['type']); + } + return typeRef.name ?? 'unknown'; + } + + if (typeRef.kind === 'LIST') { + if (typeRef.ofType) { + return `${typeRefToTs(typeRef.ofType as CleanArgument['type'])}[]`; + } + return 'unknown[]'; + } + + // Scalar or named type + const name = typeRef.name ?? 'unknown'; + return scalarToInputTs(name); +} + +/** + * Check if a type is required (NON_NULL) + */ +function isRequired(typeRef: CleanArgument['type']): boolean { + return typeRef.kind === 'NON_NULL'; +} + +// ============================================================================ +// Scalar Filter Types Generator (AST-based) +// ============================================================================ + +/** Filter operator sets for different scalar types */ +type FilterOperators = 'equality' | 'distinct' | 'inArray' | 'comparison' | 'string' | 'json' | 'inet' | 'fulltext'; + +interface ScalarFilterConfig { + name: string; + tsType: string; + operators: FilterOperators[]; +} + +/** Configuration for all scalar filter types - matches PostGraphile's generated filters */ +const SCALAR_FILTER_CONFIGS: ScalarFilterConfig[] = [ + { name: 'StringFilter', tsType: 'string', operators: ['equality', 'distinct', 'inArray', 'comparison', 'string'] }, + { name: 'IntFilter', tsType: 'number', operators: ['equality', 'distinct', 'inArray', 'comparison'] }, + { name: 'FloatFilter', tsType: 'number', operators: ['equality', 'distinct', 'inArray', 'comparison'] }, + { name: 'BooleanFilter', tsType: 'boolean', operators: ['equality'] }, + { name: 'UUIDFilter', tsType: 'string', operators: ['equality', 'distinct', 'inArray'] }, + { name: 'DatetimeFilter', tsType: 'string', operators: ['equality', 'distinct', 'inArray', 'comparison'] }, + { name: 'DateFilter', tsType: 'string', operators: ['equality', 'distinct', 'inArray', 'comparison'] }, + { name: 'JSONFilter', tsType: 'Record', operators: ['equality', 'distinct', 'json'] }, + { name: 'BigIntFilter', tsType: 'string', operators: ['equality', 'distinct', 'inArray', 'comparison'] }, + { name: 'BigFloatFilter', tsType: 'string', operators: ['equality', 'distinct', 'inArray', 'comparison'] }, + { name: 'BitStringFilter', tsType: 'string', operators: ['equality'] }, + { name: 'InternetAddressFilter', tsType: 'string', operators: ['equality', 'distinct', 'inArray', 'comparison', 'inet'] }, + { name: 'FullTextFilter', tsType: 'string', operators: ['fulltext'] }, +]; + +/** + * Build filter properties based on operator sets + */ +function buildScalarFilterProperties(config: ScalarFilterConfig): InterfaceProperty[] { + const { tsType, operators } = config; + const props: InterfaceProperty[] = []; + + // Equality operators (isNull, equalTo, notEqualTo) + if (operators.includes('equality')) { + props.push( + { name: 'isNull', type: 'boolean', optional: true }, + { name: 'equalTo', type: tsType, optional: true }, + { name: 'notEqualTo', type: tsType, optional: true }, + ); + } + + // Distinct operators + if (operators.includes('distinct')) { + props.push( + { name: 'distinctFrom', type: tsType, optional: true }, + { name: 'notDistinctFrom', type: tsType, optional: true }, + ); + } + + // In/notIn operators + if (operators.includes('inArray')) { + props.push( + { name: 'in', type: `${tsType}[]`, optional: true }, + { name: 'notIn', type: `${tsType}[]`, optional: true }, + ); + } + + // Comparison operators (less than, greater than) + if (operators.includes('comparison')) { + props.push( + { name: 'lessThan', type: tsType, optional: true }, + { name: 'lessThanOrEqualTo', type: tsType, optional: true }, + { name: 'greaterThan', type: tsType, optional: true }, + { name: 'greaterThanOrEqualTo', type: tsType, optional: true }, + ); + } + + // String operators (includes, startsWith, like, etc.) + if (operators.includes('string')) { + props.push( + { name: 'includes', type: 'string', optional: true }, + { name: 'notIncludes', type: 'string', optional: true }, + { name: 'includesInsensitive', type: 'string', optional: true }, + { name: 'notIncludesInsensitive', type: 'string', optional: true }, + { name: 'startsWith', type: 'string', optional: true }, + { name: 'notStartsWith', type: 'string', optional: true }, + { name: 'startsWithInsensitive', type: 'string', optional: true }, + { name: 'notStartsWithInsensitive', type: 'string', optional: true }, + { name: 'endsWith', type: 'string', optional: true }, + { name: 'notEndsWith', type: 'string', optional: true }, + { name: 'endsWithInsensitive', type: 'string', optional: true }, + { name: 'notEndsWithInsensitive', type: 'string', optional: true }, + { name: 'like', type: 'string', optional: true }, + { name: 'notLike', type: 'string', optional: true }, + { name: 'likeInsensitive', type: 'string', optional: true }, + { name: 'notLikeInsensitive', type: 'string', optional: true }, + ); + } + + // JSON operators (contains, containsKey, etc.) + if (operators.includes('json')) { + props.push( + { name: 'contains', type: 'Record', optional: true }, + { name: 'containedBy', type: 'Record', optional: true }, + { name: 'containsKey', type: 'string', optional: true }, + { name: 'containsAllKeys', type: 'string[]', optional: true }, + { name: 'containsAnyKeys', type: 'string[]', optional: true }, + ); + } + + // Internet address operators + if (operators.includes('inet')) { + props.push( + { name: 'contains', type: 'string', optional: true }, + { name: 'containsOrEqualTo', type: 'string', optional: true }, + { name: 'containedBy', type: 'string', optional: true }, + { name: 'containedByOrEqualTo', type: 'string', optional: true }, + { name: 'containsOrContainedBy', type: 'string', optional: true }, + ); + } + + // Full-text search operators + if (operators.includes('fulltext')) { + props.push({ name: 'matches', type: 'string', optional: true }); + } + + return props; +} + +/** + * Add scalar filter types to source file using ts-morph + */ +function addScalarFilterTypes(sourceFile: SourceFile): void { + addSectionComment(sourceFile, 'Scalar Filter Types'); + + for (const config of SCALAR_FILTER_CONFIGS) { + sourceFile.addInterface( + createInterface(config.name, buildScalarFilterProperties(config)) + ); + } +} + +// ============================================================================ +// Entity Types Generator (AST-based) +// ============================================================================ + +/** + * Build properties for an entity interface + */ +function buildEntityProperties(table: CleanTable): InterfaceProperty[] { + const properties: InterfaceProperty[] = []; + + for (const field of table.fields) { + if (isRelationField(field.name, table)) continue; + + const fieldType = typeof field.type === 'string' ? field.type : field.type.gqlType; + const tsType = scalarToInputTs(fieldType); + const isNullable = field.name !== 'id' && field.name !== 'nodeId'; + + properties.push({ + name: field.name, + type: isNullable ? `${tsType} | null` : tsType, + optional: isNullable, + }); + } + + return properties; +} + +/** + * Add entity type interface for a table + */ +function addEntityType(sourceFile: SourceFile, table: CleanTable): void { + const { typeName } = getTableNames(table); + sourceFile.addInterface(createInterface(typeName, buildEntityProperties(table))); +} + +/** + * Add all entity types + */ +function addEntityTypes(sourceFile: SourceFile, tables: CleanTable[]): void { + addSectionComment(sourceFile, 'Entity Types'); + for (const table of tables) { + addEntityType(sourceFile, table); + } +} + +// ============================================================================ +// Relation Helper Types Generator (AST-based) +// ============================================================================ + +/** + * Add relation helper types (ConnectionResult, PageInfo) + */ +function addRelationHelperTypes(sourceFile: SourceFile): void { + addSectionComment(sourceFile, 'Relation Helper Types'); + + sourceFile.addInterface(createInterface('ConnectionResult', [ + { name: 'nodes', type: 'T[]', optional: false }, + { name: 'totalCount', type: 'number', optional: false }, + { name: 'pageInfo', type: 'PageInfo', optional: false }, + ])); + + sourceFile.addInterface(createInterface('PageInfo', [ + { name: 'hasNextPage', type: 'boolean', optional: false }, + { name: 'hasPreviousPage', type: 'boolean', optional: false }, + { name: 'startCursor', type: 'string | null', optional: true }, + { name: 'endCursor', type: 'string | null', optional: true }, + ])); +} + +// ============================================================================ +// Entity Relation Types Generator (AST-based) +// ============================================================================ + +function getRelatedTypeName( + tableName: string, + tableByName: Map +): string { + const relatedTable = tableByName.get(tableName); + return relatedTable ? getTableNames(relatedTable).typeName : tableName; +} + +function getRelatedOrderByName( + tableName: string, + tableByName: Map +): string { + const relatedTable = tableByName.get(tableName); + return relatedTable ? getOrderByTypeName(relatedTable) : `${tableName}sOrderBy`; +} + +function getRelatedFilterName( + tableName: string, + tableByName: Map +): string { + const relatedTable = tableByName.get(tableName); + return relatedTable ? getFilterTypeName(relatedTable) : `${tableName}Filter`; +} + +/** + * Build properties for entity relations interface + */ +function buildEntityRelationProperties( + table: CleanTable, + tableByName: Map +): InterfaceProperty[] { + const properties: InterfaceProperty[] = []; + + for (const relation of table.relations.belongsTo) { + if (!relation.fieldName) continue; + const relatedTypeName = getRelatedTypeName(relation.referencesTable, tableByName); + properties.push({ + name: relation.fieldName, + type: `${relatedTypeName} | null`, + optional: true, + }); + } + + for (const relation of table.relations.hasOne) { + if (!relation.fieldName) continue; + const relatedTypeName = getRelatedTypeName(relation.referencedByTable, tableByName); + properties.push({ + name: relation.fieldName, + type: `${relatedTypeName} | null`, + optional: true, + }); + } + + for (const relation of table.relations.hasMany) { + if (!relation.fieldName) continue; + const relatedTypeName = getRelatedTypeName(relation.referencedByTable, tableByName); + properties.push({ + name: relation.fieldName, + type: `ConnectionResult<${relatedTypeName}>`, + optional: true, + }); + } + + for (const relation of table.relations.manyToMany) { + if (!relation.fieldName) continue; + const relatedTypeName = getRelatedTypeName(relation.rightTable, tableByName); + properties.push({ + name: relation.fieldName, + type: `ConnectionResult<${relatedTypeName}>`, + optional: true, + }); + } + + return properties; +} + +/** + * Add entity relation types + */ +function addEntityRelationTypes( + sourceFile: SourceFile, + tables: CleanTable[], + tableByName: Map +): void { + addSectionComment(sourceFile, 'Entity Relation Types'); + + for (const table of tables) { + const { typeName } = getTableNames(table); + sourceFile.addInterface( + createInterface(`${typeName}Relations`, buildEntityRelationProperties(table, tableByName)) + ); + } +} + +/** + * Add entity types with relations (intersection types) + */ +function addEntityWithRelations(sourceFile: SourceFile, tables: CleanTable[]): void { + addSectionComment(sourceFile, 'Entity Types With Relations'); + + for (const table of tables) { + const { typeName } = getTableNames(table); + sourceFile.addTypeAlias( + createTypeAlias(`${typeName}WithRelations`, `${typeName} & ${typeName}Relations`) + ); + } +} + +// ============================================================================ +// Entity Select Types Generator (AST-based) +// ============================================================================ + +/** + * Build the type string for a Select type (as object type literal) + */ +function buildSelectTypeBody( + table: CleanTable, + tableByName: Map +): string { + const lines: string[] = ['{']; + + // Add scalar fields + for (const field of table.fields) { + if (!isRelationField(field.name, table)) { + lines.push(`${field.name}?: boolean;`); + } + } + + // Add belongsTo relations + for (const relation of table.relations.belongsTo) { + if (relation.fieldName) { + const relatedTypeName = getRelatedTypeName(relation.referencesTable, tableByName); + lines.push(`${relation.fieldName}?: boolean | { select?: ${relatedTypeName}Select };`); + } + } + + // Add hasMany relations + for (const relation of table.relations.hasMany) { + if (relation.fieldName) { + const relatedTypeName = getRelatedTypeName(relation.referencedByTable, tableByName); + const filterName = getRelatedFilterName(relation.referencedByTable, tableByName); + const orderByName = getRelatedOrderByName(relation.referencedByTable, tableByName); + lines.push(`${relation.fieldName}?: boolean | {`); + lines.push(` select?: ${relatedTypeName}Select;`); + lines.push(` first?: number;`); + lines.push(` filter?: ${filterName};`); + lines.push(` orderBy?: ${orderByName}[];`); + lines.push(`};`); + } + } + + // Add manyToMany relations + for (const relation of table.relations.manyToMany) { + if (relation.fieldName) { + const relatedTypeName = getRelatedTypeName(relation.rightTable, tableByName); + const filterName = getRelatedFilterName(relation.rightTable, tableByName); + const orderByName = getRelatedOrderByName(relation.rightTable, tableByName); + lines.push(`${relation.fieldName}?: boolean | {`); + lines.push(` select?: ${relatedTypeName}Select;`); + lines.push(` first?: number;`); + lines.push(` filter?: ${filterName};`); + lines.push(` orderBy?: ${orderByName}[];`); + lines.push(`};`); + } + } + + // Add hasOne relations + for (const relation of table.relations.hasOne) { + if (relation.fieldName) { + const relatedTypeName = getRelatedTypeName(relation.referencedByTable, tableByName); + lines.push(`${relation.fieldName}?: boolean | { select?: ${relatedTypeName}Select };`); + } + } + + lines.push('}'); + return lines.join('\n'); +} + +/** + * Add entity Select types + */ +function addEntitySelectTypes( + sourceFile: SourceFile, + tables: CleanTable[], + tableByName: Map +): void { + addSectionComment(sourceFile, 'Entity Select Types'); + + for (const table of tables) { + const { typeName } = getTableNames(table); + sourceFile.addTypeAlias( + createTypeAlias(`${typeName}Select`, buildSelectTypeBody(table, tableByName)) + ); + } +} + +// ============================================================================ +// Table Filter Types Generator (AST-based) +// ============================================================================ + +/** + * Map field type to filter type + */ +function getFilterTypeForField(fieldType: string): string { + return scalarToFilterType(fieldType) ?? 'StringFilter'; +} + +/** + * Build properties for a table filter interface + */ +function buildTableFilterProperties(table: CleanTable): InterfaceProperty[] { + const filterName = getFilterTypeName(table); + const properties: InterfaceProperty[] = []; + + for (const field of table.fields) { + const fieldType = typeof field.type === 'string' ? field.type : field.type.gqlType; + if (isRelationField(field.name, table)) continue; + + const filterType = getFilterTypeForField(fieldType); + properties.push({ name: field.name, type: filterType, optional: true }); + } + + // Add logical operators + properties.push({ name: 'and', type: `${filterName}[]`, optional: true }); + properties.push({ name: 'or', type: `${filterName}[]`, optional: true }); + properties.push({ name: 'not', type: filterName, optional: true }); + + return properties; +} + +/** + * Add table filter types + */ +function addTableFilterTypes(sourceFile: SourceFile, tables: CleanTable[]): void { + addSectionComment(sourceFile, 'Table Filter Types'); + + for (const table of tables) { + const filterName = getFilterTypeName(table); + sourceFile.addInterface(createInterface(filterName, buildTableFilterProperties(table))); + } +} + +// ============================================================================ +// OrderBy Types Generator (AST-based) +// ============================================================================ + +/** + * Build OrderBy union type string + */ +function buildOrderByUnion(table: CleanTable): string { + const values: string[] = ['PRIMARY_KEY_ASC', 'PRIMARY_KEY_DESC', 'NATURAL']; + + for (const field of table.fields) { + if (isRelationField(field.name, table)) continue; + const upperSnake = field.name.replace(/([A-Z])/g, '_$1').toUpperCase(); + values.push(`${upperSnake}_ASC`); + values.push(`${upperSnake}_DESC`); + } + + return values.map((v) => `'${v}'`).join(' | '); +} + +/** + * Add OrderBy types + */ +function addOrderByTypes(sourceFile: SourceFile, tables: CleanTable[]): void { + addSectionComment(sourceFile, 'OrderBy Types'); + + for (const table of tables) { + const enumName = getOrderByTypeName(table); + sourceFile.addTypeAlias(createTypeAlias(enumName, buildOrderByUnion(table))); + } +} + +// ============================================================================ +// CRUD Input Types Generator (AST-based) +// ============================================================================ + +/** + * Build the nested data object fields for Create input + */ +function buildCreateDataFields(table: CleanTable): Array<{ name: string; type: string; optional: boolean }> { + const fields: Array<{ name: string; type: string; optional: boolean }> = []; + + for (const field of table.fields) { + if (EXCLUDED_MUTATION_FIELDS.includes(field.name as typeof EXCLUDED_MUTATION_FIELDS[number])) continue; + if (isRelationField(field.name, table)) continue; + + const fieldType = typeof field.type === 'string' ? field.type : field.type.gqlType; + const tsType = scalarToInputTs(fieldType); + const isOptional = !field.name.endsWith('Id'); + + fields.push({ name: field.name, type: tsType, optional: isOptional }); + } + + return fields; +} + +/** + * Generate Create input interface as formatted string. + * + * ts-morph doesn't handle nested object types in interface properties well, + * so we build this manually with pre-doubled indentation (4→2, 8→4) since + * getMinimalFormattedOutput halves all indentation. + */ +function buildCreateInputInterface(table: CleanTable): string { + const { typeName, singularName } = getTableNames(table); + const fields = buildCreateDataFields(table); + + const lines = [ + `export interface Create${typeName}Input {`, + ` clientMutationId?: string;`, + ` ${singularName}: {`, + ]; + + for (const field of fields) { + const opt = field.optional ? '?' : ''; + lines.push(` ${field.name}${opt}: ${field.type};`); + } + + lines.push(' };'); + lines.push('}'); + + return lines.join('\n'); +} + +/** + * Build Patch type properties + */ +function buildPatchProperties(table: CleanTable): InterfaceProperty[] { + const properties: InterfaceProperty[] = []; + + for (const field of table.fields) { + if (EXCLUDED_MUTATION_FIELDS.includes(field.name as typeof EXCLUDED_MUTATION_FIELDS[number])) continue; + if (isRelationField(field.name, table)) continue; + + const fieldType = typeof field.type === 'string' ? field.type : field.type.gqlType; + const tsType = scalarToInputTs(fieldType); + + properties.push({ name: field.name, type: `${tsType} | null`, optional: true }); + } + + return properties; +} + +/** + * Add CRUD input types for a table + */ +function addCrudInputTypes(sourceFile: SourceFile, table: CleanTable): void { + const { typeName } = getTableNames(table); + const patchName = `${typeName}Patch`; + + // Create input - build as raw statement due to nested object type formatting + sourceFile.addStatements(buildCreateInputInterface(table)); + + // Patch interface + sourceFile.addInterface(createInterface(patchName, buildPatchProperties(table))); + + // Update input + sourceFile.addInterface(createInterface(`Update${typeName}Input`, [ + { name: 'clientMutationId', type: 'string', optional: true }, + { name: 'id', type: 'string', optional: false }, + { name: 'patch', type: patchName, optional: false }, + ])); + + // Delete input + sourceFile.addInterface(createInterface(`Delete${typeName}Input`, [ + { name: 'clientMutationId', type: 'string', optional: true }, + { name: 'id', type: 'string', optional: false }, + ])); +} + +/** + * Add all CRUD input types + */ +function addAllCrudInputTypes(sourceFile: SourceFile, tables: CleanTable[]): void { + addSectionComment(sourceFile, 'CRUD Input Types'); + + for (const table of tables) { + addCrudInputTypes(sourceFile, table); + } +} + +// ============================================================================ +// Custom Input Types Generator (AST-based) +// ============================================================================ + +/** + * Collect all input type names used by operations + */ +export function collectInputTypeNames( + operations: Array<{ args: CleanArgument[] }> +): Set { + const inputTypes = new Set(); + + function collectFromTypeRef(typeRef: CleanArgument['type']) { + const baseName = getTypeBaseName(typeRef); + if (baseName && baseName.endsWith('Input')) { + inputTypes.add(baseName); + } + if (baseName && baseName.endsWith('Filter')) { + inputTypes.add(baseName); + } + } + + for (const op of operations) { + for (const arg of op.args) { + collectFromTypeRef(arg.type); + } + } + + return inputTypes; +} + +/** + * Add custom input types from TypeRegistry + */ +function addCustomInputTypes( + sourceFile: SourceFile, + typeRegistry: TypeRegistry, + usedInputTypes: Set +): void { + addSectionComment(sourceFile, 'Custom Input Types (from schema)'); + + const generatedTypes = new Set(); + const typesToGenerate = new Set(Array.from(usedInputTypes)); + + // Filter out types we've already generated + const typesToRemove: string[] = []; + typesToGenerate.forEach((typeName) => { + if ( + typeName.endsWith('Filter') || + typeName.startsWith('Create') || + typeName.startsWith('Update') || + typeName.startsWith('Delete') + ) { + const isTableCrud = + /^(Create|Update|Delete)[A-Z][a-zA-Z]+Input$/.test(typeName) || + /^[A-Z][a-zA-Z]+Filter$/.test(typeName); + + if (isTableCrud) { + typesToRemove.push(typeName); + } + } + }); + typesToRemove.forEach((t) => typesToGenerate.delete(t)); + + let iterations = 0; + const maxIterations = 200; + + while (typesToGenerate.size > 0 && iterations < maxIterations) { + iterations++; + const typeNameResult = typesToGenerate.values().next(); + if (typeNameResult.done) break; + const typeName: string = typeNameResult.value; + typesToGenerate.delete(typeName); + + if (generatedTypes.has(typeName)) continue; + generatedTypes.add(typeName); + + const typeInfo = typeRegistry.get(typeName); + if (!typeInfo) { + sourceFile.addStatements(`// Type '${typeName}' not found in schema`); + sourceFile.addTypeAlias(createTypeAlias(typeName, 'Record')); + continue; + } + + if (typeInfo.kind === 'INPUT_OBJECT' && typeInfo.inputFields) { + const properties: InterfaceProperty[] = []; + + for (const field of typeInfo.inputFields) { + const optional = !isRequired(field.type); + const tsType = typeRefToTs(field.type); + properties.push({ name: field.name, type: tsType, optional }); + + // Follow nested Input types + const baseType = getTypeBaseName(field.type); + if (baseType && baseType.endsWith('Input') && !generatedTypes.has(baseType)) { + typesToGenerate.add(baseType); + } + } + + sourceFile.addInterface(createInterface(typeName, properties)); + } else if (typeInfo.kind === 'ENUM' && typeInfo.enumValues) { + const values = typeInfo.enumValues.map((v) => `'${v}'`).join(' | '); + sourceFile.addTypeAlias(createTypeAlias(typeName, values)); + } else { + sourceFile.addStatements(`// Type '${typeName}' is ${typeInfo.kind}`); + sourceFile.addTypeAlias(createTypeAlias(typeName, 'unknown')); + } + } +} + +// ============================================================================ +// Payload/Return Types Generator (AST-based) +// ============================================================================ + +/** + * Collect all payload type names from operation return types + */ +export function collectPayloadTypeNames( + operations: Array<{ returnType: CleanArgument['type'] }> +): Set { + const payloadTypes = new Set(); + + for (const op of operations) { + const baseName = getTypeBaseName(op.returnType); + if (baseName && (baseName.endsWith('Payload') || !baseName.endsWith('Connection'))) { + payloadTypes.add(baseName); + } + } + + return payloadTypes; +} + +/** + * Add payload/return types + */ +function addPayloadTypes( + sourceFile: SourceFile, + typeRegistry: TypeRegistry, + usedPayloadTypes: Set, + alreadyGeneratedTypes: Set +): void { + addSectionComment(sourceFile, 'Payload/Return Types (for custom operations)'); + + const generatedTypes = new Set(alreadyGeneratedTypes); + const typesToGenerate = new Set(Array.from(usedPayloadTypes)); + + const skipTypes = new Set([ + 'String', 'Int', 'Float', 'Boolean', 'ID', 'UUID', 'Datetime', 'Date', + 'Time', 'JSON', 'BigInt', 'BigFloat', 'Cursor', 'Query', 'Mutation', + ]); + + let iterations = 0; + const maxIterations = 200; + + while (typesToGenerate.size > 0 && iterations < maxIterations) { + iterations++; + const typeNameResult = typesToGenerate.values().next(); + if (typeNameResult.done) break; + const typeName: string = typeNameResult.value; + typesToGenerate.delete(typeName); + + if (generatedTypes.has(typeName) || skipTypes.has(typeName)) continue; + + const typeInfo = typeRegistry.get(typeName); + if (!typeInfo) continue; + + if (typeInfo.kind !== 'OBJECT' || !typeInfo.fields) continue; + + generatedTypes.add(typeName); + + // Build interface properties + const interfaceProps: InterfaceProperty[] = []; + for (const field of typeInfo.fields) { + const baseType = getTypeBaseName(field.type); + if (baseType === 'Query' || baseType === 'Mutation') continue; + + const tsType = typeRefToTs(field.type); + const isNullable = !isRequired(field.type); + interfaceProps.push({ + name: field.name, + type: isNullable ? `${tsType} | null` : tsType, + optional: isNullable, + }); + + // Follow nested OBJECT types + if (baseType && !generatedTypes.has(baseType) && !skipTypes.has(baseType)) { + const nestedType = typeRegistry.get(baseType); + if (nestedType?.kind === 'OBJECT') { + typesToGenerate.add(baseType); + } + } + } + + sourceFile.addInterface(createInterface(typeName, interfaceProps)); + + // Build Select type (no indentation - ts-morph adds it) + const selectLines: string[] = ['{']; + for (const field of typeInfo.fields) { + const baseType = getTypeBaseName(field.type); + if (baseType === 'Query' || baseType === 'Mutation') continue; + + const nestedType = baseType ? typeRegistry.get(baseType) : null; + if (nestedType?.kind === 'OBJECT') { + selectLines.push(`${field.name}?: boolean | { select?: ${baseType}Select };`); + } else { + selectLines.push(`${field.name}?: boolean;`); + } + } + selectLines.push('}'); + + sourceFile.addTypeAlias(createTypeAlias(`${typeName}Select`, selectLines.join('\n'))); + } +} + +// ============================================================================ +// Main Generator (AST-based) +// ============================================================================ + +/** + * Generate comprehensive input-types.ts file using ts-morph AST + */ +export function generateInputTypesFile( + typeRegistry: TypeRegistry, + usedInputTypes: Set, + tables?: CleanTable[], + usedPayloadTypes?: Set +): GeneratedInputTypesFile { + const project = createProject(); + const sourceFile = createSourceFile(project, 'input-types.ts'); + + // Add file header + sourceFile.insertText(0, createFileHeader('GraphQL types for ORM client') + '\n'); + + // 1. Scalar filter types + addScalarFilterTypes(sourceFile); + + // 2. Entity and relation types (if tables provided) + if (tables && tables.length > 0) { + const tableByName = new Map(tables.map((table) => [table.name, table])); + + addEntityTypes(sourceFile, tables); + addRelationHelperTypes(sourceFile); + addEntityRelationTypes(sourceFile, tables, tableByName); + addEntityWithRelations(sourceFile, tables); + addEntitySelectTypes(sourceFile, tables, tableByName); + + // 3. Table filter types + addTableFilterTypes(sourceFile, tables); + + // 4. OrderBy types + addOrderByTypes(sourceFile, tables); + + // 5. CRUD input types + addAllCrudInputTypes(sourceFile, tables); + } + + // 6. Custom input types from TypeRegistry + addCustomInputTypes(sourceFile, typeRegistry, usedInputTypes); + + // 7. Payload/return types for custom operations + if (usedPayloadTypes && usedPayloadTypes.size > 0) { + const alreadyGeneratedTypes = new Set(); + if (tables) { + for (const table of tables) { + const { typeName } = getTableNames(table); + alreadyGeneratedTypes.add(typeName); + } + } + addPayloadTypes(sourceFile, typeRegistry, usedPayloadTypes, alreadyGeneratedTypes); + } + + return { + fileName: 'input-types.ts', + content: getMinimalFormattedOutput(sourceFile), + }; +} diff --git a/graphql/codegen/src/cli/codegen/orm/model-generator.ts b/graphql/codegen/src/cli/codegen/orm/model-generator.ts new file mode 100644 index 000000000..077a680ea --- /dev/null +++ b/graphql/codegen/src/cli/codegen/orm/model-generator.ts @@ -0,0 +1,321 @@ +/** + * Model class generator for ORM client + * + * Generates per-table model classes with findMany, findFirst, create, update, delete methods. + * + * Example output: + * ```typescript + * export class UserModel { + * constructor(private client: OrmClient) {} + * + * findMany(args?: FindManyArgs) { + * return new QueryBuilder<...>({ ... }); + * } + * // ... + * } + * ``` + */ +import type { CleanTable } from '../../../types/schema'; +import { + createProject, + createSourceFile, + getFormattedOutput, + createFileHeader, + createImport, +} from '../ts-ast'; +import { getTableNames, lcFirst } from '../utils'; + +export interface GeneratedModelFile { + fileName: string; + content: string; + modelName: string; + tableName: string; +} + +/** + * Generate a model class file for a table + */ +export function generateModelFile( + table: CleanTable, + _useSharedTypes: boolean +): GeneratedModelFile { + const project = createProject(); + const { typeName, singularName, pluralName } = getTableNames(table); + const modelName = `${typeName}Model`; + const fileName = `${lcFirst(typeName)}.ts`; + const entityLower = singularName; + + // Type names for this entity + const selectTypeName = `${typeName}Select`; + const relationTypeName = `${typeName}WithRelations`; + const whereTypeName = `${typeName}Filter`; + const orderByTypeName = `${typeName}sOrderBy`; // PostGraphile uses plural + const createInputTypeName = `Create${typeName}Input`; + const updateInputTypeName = `Update${typeName}Input`; + const deleteInputTypeName = `Delete${typeName}Input`; + const patchTypeName = `${typeName}Patch`; + const createDataType = `${createInputTypeName}['${singularName}']`; + + // Query names from PostGraphile + const pluralQueryName = table.query?.all ?? pluralName; + const createMutationName = table.query?.create ?? `create${typeName}`; + const updateMutationName = table.query?.update; + const deleteMutationName = table.query?.delete; + + const sourceFile = createSourceFile(project, fileName); + + // Add file header + sourceFile.insertText( + 0, + createFileHeader(`${typeName} model for ORM client`) + '\n\n' + ); + + // Add imports - import types from respective modules + sourceFile.addImportDeclarations([ + createImport({ + moduleSpecifier: '../client', + namedImports: ['OrmClient'], + }), + createImport({ + moduleSpecifier: '../query-builder', + namedImports: [ + 'QueryBuilder', + 'buildFindManyDocument', + 'buildFindFirstDocument', + 'buildCreateDocument', + 'buildUpdateDocument', + 'buildDeleteDocument', + ], + }), + createImport({ + moduleSpecifier: '../select-types', + typeOnlyNamedImports: [ + 'ConnectionResult', + 'FindManyArgs', + 'FindFirstArgs', + 'CreateArgs', + 'UpdateArgs', + 'DeleteArgs', + 'InferSelectResult', + ], + }), + ]); + + // Build complete set of input-types imports + // Select types are now centralized in input-types.ts with relations included + const inputTypeImports = new Set([ + typeName, + relationTypeName, + selectTypeName, + whereTypeName, + orderByTypeName, + createInputTypeName, + updateInputTypeName, + patchTypeName, + ]); + + // Add single combined import from input-types + sourceFile.addImportDeclaration( + createImport({ + moduleSpecifier: '../input-types', + typeOnlyNamedImports: Array.from(inputTypeImports), + }) + ); + + // Add Model class + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Model Class'); + sourceFile.addStatements('// ============================================================================\n'); + + // Generate the model class + const classDeclaration = sourceFile.addClass({ + name: modelName, + isExported: true, + }); + + // Constructor + classDeclaration.addConstructor({ + parameters: [ + { + name: 'client', + type: 'OrmClient', + scope: 'private' as any, + }, + ], + }); + + // findMany method - uses const generic for proper literal type inference + classDeclaration.addMethod({ + name: 'findMany', + typeParameters: [`const S extends ${selectTypeName}`], + parameters: [ + { + name: 'args', + type: `FindManyArgs`, + hasQuestionToken: true, + }, + ], + returnType: `QueryBuilder<{ ${pluralQueryName}: ConnectionResult> }>`, + statements: `const { document, variables } = buildFindManyDocument( + '${typeName}', + '${pluralQueryName}', + args?.select, + { + where: args?.where, + orderBy: args?.orderBy as string[] | undefined, + first: args?.first, + last: args?.last, + after: args?.after, + before: args?.before, + offset: args?.offset, + }, + '${whereTypeName}' + ); + return new QueryBuilder({ + client: this.client, + operation: 'query', + operationName: '${typeName}', + fieldName: '${pluralQueryName}', + document, + variables, + });`, + }); + + // findFirst method - uses const generic for proper literal type inference + classDeclaration.addMethod({ + name: 'findFirst', + typeParameters: [`const S extends ${selectTypeName}`], + parameters: [ + { + name: 'args', + type: `FindFirstArgs`, + hasQuestionToken: true, + }, + ], + returnType: `QueryBuilder<{ ${pluralQueryName}: { nodes: InferSelectResult<${relationTypeName}, S>[] } }>`, + statements: `const { document, variables } = buildFindFirstDocument( + '${typeName}', + '${pluralQueryName}', + args?.select, + { where: args?.where }, + '${whereTypeName}' + ); + return new QueryBuilder({ + client: this.client, + operation: 'query', + operationName: '${typeName}', + fieldName: '${pluralQueryName}', + document, + variables, + });`, + }); + + // create method - uses const generic for proper literal type inference + classDeclaration.addMethod({ + name: 'create', + typeParameters: [`const S extends ${selectTypeName}`], + parameters: [ + { + name: 'args', + type: `CreateArgs`, + }, + ], + returnType: `QueryBuilder<{ ${createMutationName}: { ${entityLower}: InferSelectResult<${relationTypeName}, S> } }>`, + statements: `const { document, variables } = buildCreateDocument( + '${typeName}', + '${createMutationName}', + '${entityLower}', + args.select, + args.data, + '${createInputTypeName}' + ); + return new QueryBuilder({ + client: this.client, + operation: 'mutation', + operationName: '${typeName}', + fieldName: '${createMutationName}', + document, + variables, + });`, + }); + + // update method (if available) - uses const generic for proper literal type inference + if (updateMutationName) { + classDeclaration.addMethod({ + name: 'update', + typeParameters: [`const S extends ${selectTypeName}`], + parameters: [ + { + name: 'args', + type: `UpdateArgs`, + }, + ], + returnType: `QueryBuilder<{ ${updateMutationName}: { ${entityLower}: InferSelectResult<${relationTypeName}, S> } }>`, + statements: `const { document, variables } = buildUpdateDocument( + '${typeName}', + '${updateMutationName}', + '${entityLower}', + args.select, + args.where, + args.data, + '${updateInputTypeName}' + ); + return new QueryBuilder({ + client: this.client, + operation: 'mutation', + operationName: '${typeName}', + fieldName: '${updateMutationName}', + document, + variables, + });`, + }); + } + + // delete method (if available) + if (deleteMutationName) { + classDeclaration.addMethod({ + name: 'delete', + parameters: [ + { + name: 'args', + type: `DeleteArgs<{ id: string }>`, + }, + ], + returnType: `QueryBuilder<{ ${deleteMutationName}: { ${entityLower}: { id: string } } }>`, + statements: `const { document, variables } = buildDeleteDocument( + '${typeName}', + '${deleteMutationName}', + '${entityLower}', + args.where, + '${deleteInputTypeName}' + ); + return new QueryBuilder({ + client: this.client, + operation: 'mutation', + operationName: '${typeName}', + fieldName: '${deleteMutationName}', + document, + variables, + });`, + }); + } + + return { + fileName, + content: getFormattedOutput(sourceFile), + modelName, + tableName: table.name, + }; +} + +// Select types with relations are now generated in input-types.ts + +/** + * Generate all model files for a list of tables + */ +export function generateAllModelFiles( + tables: CleanTable[], + useSharedTypes: boolean +): GeneratedModelFile[] { + return tables.map((table) => generateModelFile(table, useSharedTypes)); +} diff --git a/graphql/codegen/src/cli/codegen/orm/query-builder.ts b/graphql/codegen/src/cli/codegen/orm/query-builder.ts new file mode 100644 index 000000000..6098d6251 --- /dev/null +++ b/graphql/codegen/src/cli/codegen/orm/query-builder.ts @@ -0,0 +1,514 @@ +/** + * Runtime query builder for ORM client + * + * This module provides the runtime functionality that builds GraphQL + * queries/mutations from the fluent API calls and executes them. + * + * This file will be copied to the generated output (not generated via AST) + * since it's runtime code that doesn't change based on schema. + */ + +import type { QueryResult, GraphQLError } from './select-types'; + +/** + * ORM client configuration + */ +export interface OrmClientConfig { + endpoint: string; + headers?: Record; +} + +/** + * Internal client state + */ +export class OrmClient { + private endpoint: string; + private headers: Record; + + constructor(config: OrmClientConfig) { + this.endpoint = config.endpoint; + this.headers = config.headers ?? {}; + } + + /** + * Execute a GraphQL query/mutation + */ + async execute( + document: string, + variables?: Record + ): Promise> { + const response = await fetch(this.endpoint, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + ...this.headers, + }, + body: JSON.stringify({ + query: document, + variables: variables ?? {}, + }), + }); + + if (!response.ok) { + return { + data: null, + errors: [ + { + message: `HTTP ${response.status}: ${response.statusText}`, + }, + ], + }; + } + + const json = (await response.json()) as { + data?: T; + errors?: GraphQLError[]; + }; + + return { + data: json.data ?? null, + errors: json.errors, + }; + } + + /** + * Update headers (e.g., for auth token refresh) + */ + setHeaders(headers: Record): void { + this.headers = { ...this.headers, ...headers }; + } + + /** + * Get current endpoint + */ + getEndpoint(): string { + return this.endpoint; + } +} + +/** + * Configuration for building a query + */ +export interface QueryBuilderConfig { + client: OrmClient; + operation: 'query' | 'mutation'; + operationName: string; + fieldName: string; + document: string; + variables?: Record; +} + +/** + * Query builder that holds the query configuration and executes it + * + * Usage: + * ```typescript + * const result = await new QueryBuilder(config).execute(); + * ``` + */ +export class QueryBuilder { + private config: QueryBuilderConfig; + + constructor(config: QueryBuilderConfig) { + this.config = config; + } + + /** + * Execute the query and return the result + */ + async execute(): Promise> { + return this.config.client.execute( + this.config.document, + this.config.variables + ); + } + + /** + * Get the GraphQL document (useful for debugging) + */ + toGraphQL(): string { + return this.config.document; + } + + /** + * Get the variables (useful for debugging) + */ + getVariables(): Record | undefined { + return this.config.variables; + } +} + +// ============================================================================ +// GraphQL Document Builders (Runtime) +// ============================================================================ + +/** + * Build field selections from a select object + * + * Converts: + * { id: true, name: true, posts: { select: { title: true } } } + * + * To: + * id + * name + * posts { + * nodes { title } + * totalCount + * pageInfo { hasNextPage hasPreviousPage startCursor endCursor } + * } + */ +export function buildSelections( + select: Record | undefined, + fieldMeta?: Record +): string { + if (!select) { + return ''; + } + + const fields: string[] = []; + + for (const [key, value] of Object.entries(select)) { + if (value === false || value === undefined) { + continue; + } + + if (value === true) { + fields.push(key); + continue; + } + + // Nested select + if (typeof value === 'object' && value !== null) { + const nested = value as { + select?: Record; + first?: number; + filter?: Record; + orderBy?: string[]; + }; + + const meta = fieldMeta?.[key]; + const isConnection = meta?.isConnection ?? true; // Default to connection for relations + + if (nested.select) { + const nestedSelections = buildSelections(nested.select); + + // Build arguments for the relation field + const args: string[] = []; + if (nested.first !== undefined) { + args.push(`first: ${nested.first}`); + } + if (nested.filter) { + args.push(`filter: ${JSON.stringify(nested.filter)}`); + } + if (nested.orderBy && nested.orderBy.length > 0) { + args.push(`orderBy: [${nested.orderBy.join(', ')}]`); + } + + const argsStr = args.length > 0 ? `(${args.join(', ')})` : ''; + + if (isConnection) { + // Connection type - include nodes, totalCount, pageInfo + fields.push(`${key}${argsStr} { + nodes { ${nestedSelections} } + totalCount + pageInfo { hasNextPage hasPreviousPage startCursor endCursor } + }`); + } else { + // Direct relation (not a connection) + fields.push(`${key}${argsStr} { ${nestedSelections} }`); + } + } + } + } + + return fields.join('\n '); +} + +/** + * Field metadata for determining connection vs direct relation + */ +export interface FieldMeta { + isConnection: boolean; + isNullable: boolean; + typeName: string; +} + +/** + * Build a findMany query document + */ +export function buildFindManyDocument( + operationName: string, + queryField: string, + select: Record | undefined, + args: { + where?: Record; + orderBy?: string[]; + first?: number; + last?: number; + after?: string; + before?: string; + offset?: number; + }, + filterTypeName: string +): { document: string; variables: Record } { + const selections = select ? buildSelections(select) : 'id'; + + // Build variable definitions and query arguments + const varDefs: string[] = []; + const queryArgs: string[] = []; + const variables: Record = {}; + + if (args.where) { + varDefs.push(`$where: ${filterTypeName}`); + queryArgs.push('filter: $where'); + variables.where = args.where; + } + if (args.orderBy && args.orderBy.length > 0) { + varDefs.push(`$orderBy: [${operationName}OrderBy!]`); + queryArgs.push('orderBy: $orderBy'); + variables.orderBy = args.orderBy; + } + if (args.first !== undefined) { + varDefs.push('$first: Int'); + queryArgs.push('first: $first'); + variables.first = args.first; + } + if (args.last !== undefined) { + varDefs.push('$last: Int'); + queryArgs.push('last: $last'); + variables.last = args.last; + } + if (args.after) { + varDefs.push('$after: Cursor'); + queryArgs.push('after: $after'); + variables.after = args.after; + } + if (args.before) { + varDefs.push('$before: Cursor'); + queryArgs.push('before: $before'); + variables.before = args.before; + } + if (args.offset !== undefined) { + varDefs.push('$offset: Int'); + queryArgs.push('offset: $offset'); + variables.offset = args.offset; + } + + const varDefsStr = varDefs.length > 0 ? `(${varDefs.join(', ')})` : ''; + const queryArgsStr = queryArgs.length > 0 ? `(${queryArgs.join(', ')})` : ''; + + const document = `query ${operationName}Query${varDefsStr} { + ${queryField}${queryArgsStr} { + nodes { + ${selections} + } + totalCount + pageInfo { + hasNextPage + hasPreviousPage + startCursor + endCursor + } + } +}`; + + return { document, variables }; +} + +/** + * Build a findFirst query document + */ +export function buildFindFirstDocument( + operationName: string, + queryField: string, + select: Record | undefined, + args: { + where?: Record; + }, + filterTypeName: string +): { document: string; variables: Record } { + const selections = select ? buildSelections(select) : 'id'; + + const varDefs: string[] = []; + const queryArgs: string[] = []; + const variables: Record = {}; + + if (args.where) { + varDefs.push(`$where: ${filterTypeName}`); + queryArgs.push('filter: $where'); + variables.where = args.where; + } + + // findFirst uses the list query with first: 1 + varDefs.push('$first: Int'); + queryArgs.push('first: $first'); + variables.first = 1; + + const varDefsStr = varDefs.length > 0 ? `(${varDefs.join(', ')})` : ''; + const queryArgsStr = queryArgs.length > 0 ? `(${queryArgs.join(', ')})` : ''; + + const document = `query ${operationName}Query${varDefsStr} { + ${queryField}${queryArgsStr} { + nodes { + ${selections} + } + } +}`; + + return { document, variables }; +} + +/** + * Build a create mutation document + */ +export function buildCreateDocument( + operationName: string, + mutationField: string, + entityField: string, + select: Record | undefined, + data: Record, + inputTypeName: string +): { document: string; variables: Record } { + const selections = select ? buildSelections(select) : 'id'; + + const document = `mutation ${operationName}Mutation($input: ${inputTypeName}!) { + ${mutationField}(input: $input) { + ${entityField} { + ${selections} + } + } +}`; + + return { + document, + variables: { + input: { + [entityField]: data, + }, + }, + }; +} + +/** + * Build an update mutation document + */ +export function buildUpdateDocument( + operationName: string, + mutationField: string, + entityField: string, + select: Record | undefined, + where: Record, + data: Record, + inputTypeName: string +): { document: string; variables: Record } { + const selections = select ? buildSelections(select) : 'id'; + + // PostGraphile update uses nodeId or primary key in input + const document = `mutation ${operationName}Mutation($input: ${inputTypeName}!) { + ${mutationField}(input: $input) { + ${entityField} { + ${selections} + } + } +}`; + + return { + document, + variables: { + input: { + id: where.id, // Assumes id-based where clause + patch: data, + }, + }, + }; +} + +/** + * Build a delete mutation document + */ +export function buildDeleteDocument( + operationName: string, + mutationField: string, + entityField: string, + where: Record, + inputTypeName: string +): { document: string; variables: Record } { + const document = `mutation ${operationName}Mutation($input: ${inputTypeName}!) { + ${mutationField}(input: $input) { + ${entityField} { + id + } + } +}`; + + return { + document, + variables: { + input: { + id: where.id, + }, + }, + }; +} + +/** + * Build a custom query document + */ +export function buildCustomQueryDocument( + operationName: string, + queryField: string, + select: Record | undefined, + args: Record | undefined, + variableDefinitions: Array<{ name: string; type: string }> +): { document: string; variables: Record } { + const selections = select ? buildSelections(select) : ''; + + const varDefs = variableDefinitions.map((v) => `$${v.name}: ${v.type}`); + const queryArgs = variableDefinitions.map((v) => `${v.name}: $${v.name}`); + + const varDefsStr = varDefs.length > 0 ? `(${varDefs.join(', ')})` : ''; + const queryArgsStr = queryArgs.length > 0 ? `(${queryArgs.join(', ')})` : ''; + + const selectionsBlock = selections ? ` {\n ${selections}\n }` : ''; + + const document = `query ${operationName}Query${varDefsStr} { + ${queryField}${queryArgsStr}${selectionsBlock} +}`; + + return { + document, + variables: args ?? {}, + }; +} + +/** + * Build a custom mutation document + */ +export function buildCustomMutationDocument( + operationName: string, + mutationField: string, + select: Record | undefined, + args: Record | undefined, + variableDefinitions: Array<{ name: string; type: string }> +): { document: string; variables: Record } { + const selections = select ? buildSelections(select) : ''; + + const varDefs = variableDefinitions.map((v) => `$${v.name}: ${v.type}`); + const mutationArgs = variableDefinitions.map((v) => `${v.name}: $${v.name}`); + + const varDefsStr = varDefs.length > 0 ? `(${varDefs.join(', ')})` : ''; + const mutationArgsStr = + mutationArgs.length > 0 ? `(${mutationArgs.join(', ')})` : ''; + + const selectionsBlock = selections ? ` {\n ${selections}\n }` : ''; + + const document = `mutation ${operationName}Mutation${varDefsStr} { + ${mutationField}${mutationArgsStr}${selectionsBlock} +}`; + + return { + document, + variables: args ?? {}, + }; +} diff --git a/graphql/codegen/src/cli/codegen/orm/select-types.test.ts b/graphql/codegen/src/cli/codegen/orm/select-types.test.ts new file mode 100644 index 000000000..d671bc4af --- /dev/null +++ b/graphql/codegen/src/cli/codegen/orm/select-types.test.ts @@ -0,0 +1,56 @@ +/** + * Type-level tests for select-types.ts + * + * These tests verify the compile-time type inference behavior. + * The TypeScript compiler validates these types during build. + * + * Note: Type-only tests using expectTypeOf have been removed as they + * are not compatible with Jest. The TypeScript compiler validates + * these types at compile time via the type assertions below. + */ + +import type { ConnectionResult, InferSelectResult } from './select-types'; + +type Profile = { + bio: string | null; +}; + +type Post = { + id: string; + title: string; +}; + +type User = { + id: string; + name?: string | null; + profile?: Profile | null; + posts?: ConnectionResult; +}; + +// Type assertions - these will fail at compile time if types are wrong +type UserSelect = { + id: true; + profile: { select: { bio: true } }; + posts: { select: { id: true } }; +}; + +type Selected = InferSelectResult; + +// Compile-time type check: verify the inferred type matches expected structure +const _typeCheck: Selected = {} as { + id: string; + profile: { bio: string | null } | null; + posts: ConnectionResult<{ id: string }>; +}; + +// Compile-time type check: fields set to false should be excluded +type SelectedWithExclusion = InferSelectResult; +const _excludedTypeCheck: SelectedWithExclusion = {} as { id: string }; + +// Dummy test to satisfy Jest +describe('InferSelectResult', () => { + it('type assertions compile correctly', () => { + // If this file compiles, the type tests pass + expect(true).toBe(true); + }); +}); diff --git a/graphql/codegen/src/cli/codegen/orm/select-types.ts b/graphql/codegen/src/cli/codegen/orm/select-types.ts new file mode 100644 index 000000000..e500302e8 --- /dev/null +++ b/graphql/codegen/src/cli/codegen/orm/select-types.ts @@ -0,0 +1,200 @@ +/** + * TypeScript utility types for ORM select inference + * + * These types enable Prisma-like type inference where the return type + * is automatically derived from the `select` object passed to queries. + * + * Example: + * ```typescript + * const user = await db.user.findFirst({ + * select: { id: true, name: true } + * }).execute(); + * // user type is { id: string; name: string } | null + * ``` + */ + +/** + * Extracts the element type from an array or connection type + */ +export type ElementType = T extends (infer E)[] + ? E + : T extends { nodes: (infer E)[] } + ? E + : T; + +/** + * Checks if a type is a connection type (has nodes array) + */ +export type IsConnection = T extends { nodes: unknown[]; totalCount: number } + ? true + : false; + +/** + * Base select type - maps fields to boolean or nested select config + * This is generated per-entity + */ +export type SelectConfig = { + [K in TFields]?: boolean | NestedSelectConfig; +}; + +/** + * Nested select configuration for relations + */ +export interface NestedSelectConfig { + select?: Record; + first?: number; + last?: number; + after?: string; + before?: string; + filter?: Record; + orderBy?: string[]; +} + +/** + * Infers the result type from a select configuration + * + * Rules: + * - If field is `true`, include the field with its original type + * - If field is `false` or not present, exclude the field + * - If field is an object with `select`, recursively apply inference + * - For connection types, preserve the connection structure + */ +export type InferSelectResult = TSelect extends undefined + ? TEntity + : { + [K in keyof TSelect as TSelect[K] extends false | undefined ? never : K]: TSelect[K] extends true + ? K extends keyof TEntity + ? TEntity[K] + : never + : TSelect[K] extends { select: infer NestedSelect } + ? K extends keyof TEntity + ? NonNullable extends ConnectionResult + ? ConnectionResult> + : InferSelectResult, NestedSelect> | (null extends TEntity[K] ? null : never) + : never + : K extends keyof TEntity + ? TEntity[K] + : never; + }; + +/** + * Makes all properties in the result optional for partial selects + * Used when select is not provided (returns all fields) + */ +export type PartialEntity = { + [K in keyof T]?: T[K]; +}; + +/** + * Result wrapper that matches GraphQL response structure + */ +export interface QueryResult { + data: T | null; + errors?: GraphQLError[]; +} + +/** + * GraphQL error type + */ +export interface GraphQLError { + message: string; + locations?: { line: number; column: number }[]; + path?: (string | number)[]; + extensions?: Record; +} + +/** + * Connection result type for list queries + */ +export interface ConnectionResult { + nodes: T[]; + totalCount: number; + pageInfo: PageInfo; +} + +/** + * PageInfo type from GraphQL connections + */ +export interface PageInfo { + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor?: string | null; + endCursor?: string | null; +} + +/** + * Arguments for findMany operations + */ +export interface FindManyArgs { + select?: TSelect; + where?: TWhere; + orderBy?: TOrderBy[]; + first?: number; + last?: number; + after?: string; + before?: string; + offset?: number; +} + +/** + * Arguments for findFirst/findUnique operations + */ +export interface FindFirstArgs { + select?: TSelect; + where?: TWhere; +} + +/** + * Arguments for create operations + */ +export interface CreateArgs { + data: TData; + select?: TSelect; +} + +/** + * Arguments for update operations + */ +export interface UpdateArgs { + where: TWhere; + data: TData; + select?: TSelect; +} + +/** + * Arguments for delete operations + */ +export interface DeleteArgs { + where: TWhere; +} + +/** + * Helper type to get the final result type from a query + * Handles the case where select is optional + */ +export type ResolveSelectResult = TSelect extends undefined + ? TEntity + : InferSelectResult>; + +/** + * Type for operation that returns a single entity or null + */ +export type SingleResult = QueryResult<{ + [K: string]: ResolveSelectResult | null; +}>; + +/** + * Type for operation that returns a connection + */ +export type ConnectionQueryResult = QueryResult<{ + [K: string]: ConnectionResult>; +}>; + +/** + * Type for mutation that returns a payload with the entity + */ +export type MutationResult = QueryResult<{ + [K in TPayloadKey]: { + [EntityKey: string]: ResolveSelectResult; + }; +}>; diff --git a/graphql/codegen/src/cli/codegen/queries.ts b/graphql/codegen/src/cli/codegen/queries.ts new file mode 100644 index 000000000..7eb30cfcb --- /dev/null +++ b/graphql/codegen/src/cli/codegen/queries.ts @@ -0,0 +1,549 @@ +/** + * Query hook generators using AST-based code generation + * + * Output structure: + * queries/ + * useCarsQuery.ts - List query hook + * useCarQuery.ts - Single item query hook + */ +import type { CleanTable } from '../../types/schema'; +import { + createProject, + createSourceFile, + getFormattedOutput, + createFileHeader, + createImport, + createInterface, + createConst, + createTypeAlias, + createUnionType, + createFilterInterface, + type InterfaceProperty, +} from './ts-ast'; +import { + buildListQueryAST, + buildSingleQueryAST, + printGraphQL, +} from './gql-ast'; +import { + getTableNames, + getListQueryHookName, + getSingleQueryHookName, + getListQueryFileName, + getSingleQueryFileName, + getAllRowsQueryName, + getSingleRowQueryName, + getFilterTypeName, + getOrderByTypeName, + getScalarFields, + getScalarFilterType, + toScreamingSnake, + ucFirst, +} from './utils'; + +export interface GeneratedQueryFile { + fileName: string; + content: string; +} + +// ============================================================================ +// List query hook generator +// ============================================================================ + +/** + * Generate list query hook file content using AST + */ +export function generateListQueryHook(table: CleanTable): GeneratedQueryFile { + const project = createProject(); + const { typeName, pluralName } = getTableNames(table); + const hookName = getListQueryHookName(table); + const queryName = getAllRowsQueryName(table); + const filterTypeName = getFilterTypeName(table); + const orderByTypeName = getOrderByTypeName(table); + const scalarFields = getScalarFields(table); + + // Generate GraphQL document via AST + const queryAST = buildListQueryAST({ table }); + const queryDocument = printGraphQL(queryAST); + + const sourceFile = createSourceFile(project, getListQueryFileName(table)); + + // Add file header as leading comment + sourceFile.insertText(0, createFileHeader(`List query hook for ${typeName}`) + '\n\n'); + + // Collect all filter types used by this table's fields + const filterTypesUsed = new Set(); + for (const field of scalarFields) { + const filterType = getScalarFilterType(field.type.gqlType); + if (filterType) { + filterTypesUsed.add(filterType); + } + } + + // Add imports + sourceFile.addImportDeclarations([ + createImport({ + moduleSpecifier: '@tanstack/react-query', + namedImports: ['useQuery'], + typeOnlyNamedImports: ['UseQueryOptions', 'QueryClient'], + }), + createImport({ + moduleSpecifier: '../client', + namedImports: ['execute'], + typeOnlyNamedImports: ['ExecuteOptions'], + }), + createImport({ + moduleSpecifier: '../types', + typeOnlyNamedImports: [typeName, ...Array.from(filterTypesUsed)], + }), + ]); + + // Re-export entity type + sourceFile.addStatements(`\n// Re-export entity type for convenience\nexport type { ${typeName} };\n`); + + // Add section comment + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// GraphQL Document'); + sourceFile.addStatements('// ============================================================================\n'); + + // Add query document constant + sourceFile.addVariableStatement( + createConst(`${queryName}QueryDocument`, '`\n' + queryDocument + '`') + ); + + // Add section comment + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Types'); + sourceFile.addStatements('// ============================================================================\n'); + + // Generate filter interface + const fieldFilters = scalarFields + .map((field) => { + const filterType = getScalarFilterType(field.type.gqlType); + return filterType ? { fieldName: field.name, filterType } : null; + }) + .filter((f): f is { fieldName: string; filterType: string } => f !== null); + + sourceFile.addInterface(createFilterInterface(filterTypeName, fieldFilters)); + + // Generate OrderBy type + const orderByValues = [ + ...scalarFields.flatMap((f) => [ + `${toScreamingSnake(f.name)}_ASC`, + `${toScreamingSnake(f.name)}_DESC`, + ]), + 'NATURAL', + 'PRIMARY_KEY_ASC', + 'PRIMARY_KEY_DESC', + ]; + sourceFile.addTypeAlias( + createTypeAlias(orderByTypeName, createUnionType(orderByValues)) + ); + + // Variables interface + const variablesProps: InterfaceProperty[] = [ + { name: 'first', type: 'number', optional: true }, + { name: 'offset', type: 'number', optional: true }, + { name: 'filter', type: filterTypeName, optional: true }, + { name: 'orderBy', type: `${orderByTypeName}[]`, optional: true }, + ]; + sourceFile.addInterface( + createInterface(`${ucFirst(pluralName)}QueryVariables`, variablesProps) + ); + + // Result interface + const resultProps: InterfaceProperty[] = [ + { + name: queryName, + type: `{ + totalCount: number; + nodes: ${typeName}[]; + pageInfo: { + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; + endCursor: string | null; + }; + }`, + }, + ]; + sourceFile.addInterface( + createInterface(`${ucFirst(pluralName)}QueryResult`, resultProps) + ); + + // Add section comment + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Query Key'); + sourceFile.addStatements('// ============================================================================\n'); + + // Query key factory + sourceFile.addVariableStatement( + createConst( + `${queryName}QueryKey`, + `(variables?: ${ucFirst(pluralName)}QueryVariables) => + ['${typeName.toLowerCase()}', 'list', variables] as const` + ) + ); + + // Add section comment + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Hook'); + sourceFile.addStatements('// ============================================================================\n'); + + // Hook function + sourceFile.addFunction({ + name: hookName, + isExported: true, + parameters: [ + { + name: 'variables', + type: `${ucFirst(pluralName)}QueryVariables`, + hasQuestionToken: true, + }, + { + name: 'options', + type: `Omit, 'queryKey' | 'queryFn'>`, + hasQuestionToken: true, + }, + ], + statements: `return useQuery({ + queryKey: ${queryName}QueryKey(variables), + queryFn: () => execute<${ucFirst(pluralName)}QueryResult, ${ucFirst(pluralName)}QueryVariables>( + ${queryName}QueryDocument, + variables + ), + ...options, + });`, + docs: [ + { + description: `Query hook for fetching ${typeName} list + +@example +\`\`\`tsx +const { data, isLoading } = ${hookName}({ + first: 10, + filter: { name: { equalTo: "example" } }, + orderBy: ['CREATED_AT_DESC'], +}); +\`\`\``, + }, + ], + }); + + // Add section comment for standalone functions + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Standalone Functions (non-React)'); + sourceFile.addStatements('// ============================================================================\n'); + + // Fetch function (standalone, no React) + sourceFile.addFunction({ + name: `fetch${ucFirst(pluralName)}Query`, + isExported: true, + isAsync: true, + parameters: [ + { + name: 'variables', + type: `${ucFirst(pluralName)}QueryVariables`, + hasQuestionToken: true, + }, + { + name: 'options', + type: 'ExecuteOptions', + hasQuestionToken: true, + }, + ], + returnType: `Promise<${ucFirst(pluralName)}QueryResult>`, + statements: `return execute<${ucFirst(pluralName)}QueryResult, ${ucFirst(pluralName)}QueryVariables>( + ${queryName}QueryDocument, + variables, + options + );`, + docs: [ + { + description: `Fetch ${typeName} list without React hooks + +@example +\`\`\`ts +// Direct fetch +const data = await fetch${ucFirst(pluralName)}Query({ first: 10 }); + +// With QueryClient +const data = await queryClient.fetchQuery({ + queryKey: ${queryName}QueryKey(variables), + queryFn: () => fetch${ucFirst(pluralName)}Query(variables), +}); +\`\`\``, + }, + ], + }); + + // Prefetch function (for SSR/QueryClient) + sourceFile.addFunction({ + name: `prefetch${ucFirst(pluralName)}Query`, + isExported: true, + isAsync: true, + parameters: [ + { + name: 'queryClient', + type: 'QueryClient', + }, + { + name: 'variables', + type: `${ucFirst(pluralName)}QueryVariables`, + hasQuestionToken: true, + }, + { + name: 'options', + type: 'ExecuteOptions', + hasQuestionToken: true, + }, + ], + returnType: 'Promise', + statements: `await queryClient.prefetchQuery({ + queryKey: ${queryName}QueryKey(variables), + queryFn: () => execute<${ucFirst(pluralName)}QueryResult, ${ucFirst(pluralName)}QueryVariables>( + ${queryName}QueryDocument, + variables, + options + ), + });`, + docs: [ + { + description: `Prefetch ${typeName} list for SSR or cache warming + +@example +\`\`\`ts +await prefetch${ucFirst(pluralName)}Query(queryClient, { first: 10 }); +\`\`\``, + }, + ], + }); + + return { + fileName: getListQueryFileName(table), + content: getFormattedOutput(sourceFile), + }; +} + +// ============================================================================ +// Single item query hook generator +// ============================================================================ + +/** + * Generate single item query hook file content using AST + */ +export function generateSingleQueryHook(table: CleanTable): GeneratedQueryFile { + const project = createProject(); + const { typeName, singularName } = getTableNames(table); + const hookName = getSingleQueryHookName(table); + const queryName = getSingleRowQueryName(table); + + // Generate GraphQL document via AST + const queryAST = buildSingleQueryAST({ table }); + const queryDocument = printGraphQL(queryAST); + + const sourceFile = createSourceFile(project, getSingleQueryFileName(table)); + + // Add file header + sourceFile.insertText(0, createFileHeader(`Single item query hook for ${typeName}`) + '\n\n'); + + // Add imports + sourceFile.addImportDeclarations([ + createImport({ + moduleSpecifier: '@tanstack/react-query', + namedImports: ['useQuery'], + typeOnlyNamedImports: ['UseQueryOptions', 'QueryClient'], + }), + createImport({ + moduleSpecifier: '../client', + namedImports: ['execute'], + typeOnlyNamedImports: ['ExecuteOptions'], + }), + createImport({ + moduleSpecifier: '../types', + typeOnlyNamedImports: [typeName], + }), + ]); + + // Re-export entity type + sourceFile.addStatements(`\n// Re-export entity type for convenience\nexport type { ${typeName} };\n`); + + // Add section comment + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// GraphQL Document'); + sourceFile.addStatements('// ============================================================================\n'); + + // Add query document constant + sourceFile.addVariableStatement( + createConst(`${queryName}QueryDocument`, '`\n' + queryDocument + '`') + ); + + // Add section comment + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Types'); + sourceFile.addStatements('// ============================================================================\n'); + + // Variables interface + sourceFile.addInterface( + createInterface(`${ucFirst(singularName)}QueryVariables`, [ + { name: 'id', type: 'string' }, + ]) + ); + + // Result interface + sourceFile.addInterface( + createInterface(`${ucFirst(singularName)}QueryResult`, [ + { name: queryName, type: `${typeName} | null` }, + ]) + ); + + // Add section comment + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Query Key'); + sourceFile.addStatements('// ============================================================================\n'); + + // Query key factory + sourceFile.addVariableStatement( + createConst( + `${queryName}QueryKey`, + `(id: string) => + ['${typeName.toLowerCase()}', 'detail', id] as const` + ) + ); + + // Add section comment + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Hook'); + sourceFile.addStatements('// ============================================================================\n'); + + // Hook function + sourceFile.addFunction({ + name: hookName, + isExported: true, + parameters: [ + { name: 'id', type: 'string' }, + { + name: 'options', + type: `Omit, 'queryKey' | 'queryFn'>`, + hasQuestionToken: true, + }, + ], + statements: `return useQuery({ + queryKey: ${queryName}QueryKey(id), + queryFn: () => execute<${ucFirst(singularName)}QueryResult, ${ucFirst(singularName)}QueryVariables>( + ${queryName}QueryDocument, + { id } + ), + enabled: !!id && (options?.enabled !== false), + ...options, + });`, + docs: [ + { + description: `Query hook for fetching a single ${typeName} by ID + +@example +\`\`\`tsx +const { data, isLoading } = ${hookName}('uuid-here'); + +if (data?.${queryName}) { + console.log(data.${queryName}.id); +} +\`\`\``, + }, + ], + }); + + // Add section comment for standalone functions + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Standalone Functions (non-React)'); + sourceFile.addStatements('// ============================================================================\n'); + + // Fetch function (standalone, no React) + sourceFile.addFunction({ + name: `fetch${ucFirst(singularName)}Query`, + isExported: true, + isAsync: true, + parameters: [ + { name: 'id', type: 'string' }, + { + name: 'options', + type: 'ExecuteOptions', + hasQuestionToken: true, + }, + ], + returnType: `Promise<${ucFirst(singularName)}QueryResult>`, + statements: `return execute<${ucFirst(singularName)}QueryResult, ${ucFirst(singularName)}QueryVariables>( + ${queryName}QueryDocument, + { id }, + options + );`, + docs: [ + { + description: `Fetch a single ${typeName} by ID without React hooks + +@example +\`\`\`ts +const data = await fetch${ucFirst(singularName)}Query('uuid-here'); +\`\`\``, + }, + ], + }); + + // Prefetch function (for SSR/QueryClient) + sourceFile.addFunction({ + name: `prefetch${ucFirst(singularName)}Query`, + isExported: true, + isAsync: true, + parameters: [ + { name: 'queryClient', type: 'QueryClient' }, + { name: 'id', type: 'string' }, + { + name: 'options', + type: 'ExecuteOptions', + hasQuestionToken: true, + }, + ], + returnType: 'Promise', + statements: `await queryClient.prefetchQuery({ + queryKey: ${queryName}QueryKey(id), + queryFn: () => execute<${ucFirst(singularName)}QueryResult, ${ucFirst(singularName)}QueryVariables>( + ${queryName}QueryDocument, + { id }, + options + ), + });`, + docs: [ + { + description: `Prefetch a single ${typeName} for SSR or cache warming + +@example +\`\`\`ts +await prefetch${ucFirst(singularName)}Query(queryClient, 'uuid-here'); +\`\`\``, + }, + ], + }); + + return { + fileName: getSingleQueryFileName(table), + content: getFormattedOutput(sourceFile), + }; +} + +// ============================================================================ +// Batch generator +// ============================================================================ + +/** + * Generate all query hook files for all tables + */ +export function generateAllQueryHooks(tables: CleanTable[]): GeneratedQueryFile[] { + const files: GeneratedQueryFile[] = []; + + for (const table of tables) { + files.push(generateListQueryHook(table)); + files.push(generateSingleQueryHook(table)); + } + + return files; +} diff --git a/graphql/codegen/src/cli/codegen/scalars.ts b/graphql/codegen/src/cli/codegen/scalars.ts new file mode 100644 index 000000000..e22ae5774 --- /dev/null +++ b/graphql/codegen/src/cli/codegen/scalars.ts @@ -0,0 +1,83 @@ +/** + * Shared scalar mappings for code generation + */ + +export const SCALAR_TS_MAP: Record = { + // Standard GraphQL scalars + String: 'string', + Int: 'number', + Float: 'number', + Boolean: 'boolean', + ID: 'string', + + // PostGraphile scalars + UUID: 'string', + Cursor: 'string', + Datetime: 'string', + Date: 'string', + Time: 'string', + JSON: 'unknown', + BigInt: 'string', + BigFloat: 'string', + + // Geometry types + GeoJSON: 'unknown', + Geometry: 'unknown', + Point: 'unknown', + + // Interval + Interval: 'string', + + // PostgreSQL-specific types + BitString: 'string', + FullText: 'string', + InternetAddress: 'string', + Inet: 'string', + Cidr: 'string', + MacAddr: 'string', + TsVector: 'string', + TsQuery: 'string', +}; + +export const SCALAR_FILTER_MAP: Record = { + String: 'StringFilter', + Int: 'IntFilter', + Float: 'FloatFilter', + Boolean: 'BooleanFilter', + UUID: 'UUIDFilter', + ID: 'UUIDFilter', + Datetime: 'DatetimeFilter', + Date: 'DateFilter', + Time: 'StringFilter', + JSON: 'JSONFilter', + BigInt: 'BigIntFilter', + BigFloat: 'BigFloatFilter', + BitString: 'BitStringFilter', + InternetAddress: 'InternetAddressFilter', + FullText: 'FullTextFilter', + Interval: 'StringFilter', +}; + +export const SCALAR_NAMES = new Set(Object.keys(SCALAR_TS_MAP)); + +export interface ScalarToTsOptions { + unknownScalar?: 'unknown' | 'name'; + overrides?: Record; +} + +export function scalarToTsType( + scalarName: string, + options: ScalarToTsOptions = {} +): string { + const override = options.overrides?.[scalarName]; + if (override) return override; + + const mapped = SCALAR_TS_MAP[scalarName]; + if (mapped) return mapped; + + return options.unknownScalar === 'unknown' ? 'unknown' : scalarName; +} + +export function scalarToFilterType(scalarName: string): string | null { + return SCALAR_FILTER_MAP[scalarName] ?? null; +} diff --git a/graphql/codegen/src/cli/codegen/schema-gql-ast.ts b/graphql/codegen/src/cli/codegen/schema-gql-ast.ts new file mode 100644 index 000000000..1d51f33de --- /dev/null +++ b/graphql/codegen/src/cli/codegen/schema-gql-ast.ts @@ -0,0 +1,518 @@ +/** + * Dynamic GraphQL AST builders for custom operations + * + * Generates GraphQL query/mutation documents from CleanOperation data + * using gql-ast library for proper AST construction. + */ +import * as t from 'gql-ast'; +import { print } from 'graphql'; +import type { + DocumentNode, + FieldNode, + ArgumentNode, + VariableDefinitionNode, + TypeNode, +} from 'graphql'; +import type { + CleanOperation, + CleanArgument, + CleanTypeRef, + CleanObjectField, + TypeRegistry, +} from '../../types/schema'; +import { getBaseTypeKind, shouldSkipField } from './type-resolver'; + +// ============================================================================ +// Configuration +// ============================================================================ + +export interface FieldSelectionConfig { + /** Max depth for nested object selections */ + maxDepth: number; + /** Skip the 'query' field in payloads */ + skipQueryField: boolean; + /** Type registry for resolving nested types */ + typeRegistry?: TypeRegistry; +} + +// ============================================================================ +// Type Node Builders (GraphQL Type AST) +// ============================================================================ + +/** + * Build a GraphQL type node from CleanTypeRef + * Handles NON_NULL, LIST, and named types + */ +function buildTypeNode(typeRef: CleanTypeRef): TypeNode { + switch (typeRef.kind) { + case 'NON_NULL': + if (typeRef.ofType) { + const innerType = buildTypeNode(typeRef.ofType); + // Can't wrap NON_NULL in NON_NULL + if (innerType.kind === 'NonNullType') { + return innerType; + } + return t.nonNullType({ type: innerType as any }); + } + return t.namedType({ type: 'String' }); + + case 'LIST': + if (typeRef.ofType) { + return t.listType({ type: buildTypeNode(typeRef.ofType) }); + } + return t.listType({ type: t.namedType({ type: 'String' }) }); + + case 'SCALAR': + case 'ENUM': + case 'OBJECT': + case 'INPUT_OBJECT': + return t.namedType({ type: typeRef.name ?? 'String' }); + + default: + return t.namedType({ type: typeRef.name ?? 'String' }); + } +} + +// ============================================================================ +// Variable Definition Builders +// ============================================================================ + +/** + * Build variable definitions from operation arguments + */ +export function buildVariableDefinitions( + args: CleanArgument[] +): VariableDefinitionNode[] { + return args.map((arg) => + t.variableDefinition({ + variable: t.variable({ name: arg.name }), + type: buildTypeNode(arg.type), + }) + ); +} + +/** + * Build argument nodes that reference variables + */ +function buildArgumentNodes(args: CleanArgument[]): ArgumentNode[] { + return args.map((arg) => + t.argument({ + name: arg.name, + value: t.variable({ name: arg.name }), + }) + ); +} + +// ============================================================================ +// Field Selection Builders +// ============================================================================ + +/** + * Check if a type should have selections (is an object type) + */ +function typeNeedsSelections(typeRef: CleanTypeRef): boolean { + const baseKind = getBaseTypeKind(typeRef); + return baseKind === 'OBJECT'; +} + +/** + * Get the resolved fields for a type reference + * Uses type registry for deep resolution + */ +function getResolvedFields( + typeRef: CleanTypeRef, + typeRegistry?: TypeRegistry +): CleanObjectField[] | undefined { + // First check if fields are directly on the typeRef + if (typeRef.fields) { + return typeRef.fields; + } + + // For wrapper types, unwrap and check + if (typeRef.ofType) { + return getResolvedFields(typeRef.ofType, typeRegistry); + } + + // Look up in type registry + if (typeRegistry && typeRef.name) { + const resolved = typeRegistry.get(typeRef.name); + if (resolved?.fields) { + return resolved.fields; + } + } + + return undefined; +} + +/** + * Build field selections for an object type + * Recursively handles nested objects up to maxDepth + */ +export function buildFieldSelections( + typeRef: CleanTypeRef, + config: FieldSelectionConfig, + currentDepth: number = 0 +): FieldNode[] { + const { maxDepth, skipQueryField, typeRegistry } = config; + + // Stop recursion at max depth + if (currentDepth >= maxDepth) { + return []; + } + + const fields = getResolvedFields(typeRef, typeRegistry); + if (!fields || fields.length === 0) { + return []; + } + + const selections: FieldNode[] = []; + + for (const field of fields) { + // Skip internal fields + if (shouldSkipField(field.name, skipQueryField)) { + continue; + } + + const fieldKind = getBaseTypeKind(field.type); + + // For scalar and enum types, just add the field + if (fieldKind === 'SCALAR' || fieldKind === 'ENUM') { + selections.push(t.field({ name: field.name })); + continue; + } + + // For object types, recurse if within depth limit + if (fieldKind === 'OBJECT' && currentDepth < maxDepth - 1) { + const nestedSelections = buildFieldSelections( + field.type, + config, + currentDepth + 1 + ); + + if (nestedSelections.length > 0) { + selections.push( + t.field({ + name: field.name, + selectionSet: t.selectionSet({ selections: nestedSelections }), + }) + ); + } + } + } + + return selections; +} + +/** + * Build selections for a return type, handling connections and payloads + */ +function buildReturnTypeSelections( + returnType: CleanTypeRef, + config: FieldSelectionConfig +): FieldNode[] { + const fields = getResolvedFields(returnType, config.typeRegistry); + + if (!fields || fields.length === 0) { + return []; + } + + // Check if this is a connection type + const hasNodes = fields.some((f) => f.name === 'nodes'); + const hasTotalCount = fields.some((f) => f.name === 'totalCount'); + + if (hasNodes && hasTotalCount) { + return buildConnectionSelections(fields, config); + } + + // Check if this is a mutation payload (has clientMutationId) + const hasClientMutationId = fields.some( + (f) => f.name === 'clientMutationId' + ); + + if (hasClientMutationId) { + return buildPayloadSelections(fields, config); + } + + // Regular object - build normal selections + return buildFieldSelections(returnType, config); +} + +/** + * Build selections for a connection type + */ +function buildConnectionSelections( + fields: CleanObjectField[], + config: FieldSelectionConfig +): FieldNode[] { + const selections: FieldNode[] = []; + + // Add totalCount + const totalCountField = fields.find((f) => f.name === 'totalCount'); + if (totalCountField) { + selections.push(t.field({ name: 'totalCount' })); + } + + // Add nodes with nested selections + const nodesField = fields.find((f) => f.name === 'nodes'); + if (nodesField) { + const nodeSelections = buildFieldSelections(nodesField.type, config); + if (nodeSelections.length > 0) { + selections.push( + t.field({ + name: 'nodes', + selectionSet: t.selectionSet({ selections: nodeSelections }), + }) + ); + } + } + + // Add pageInfo + const pageInfoField = fields.find((f) => f.name === 'pageInfo'); + if (pageInfoField) { + selections.push( + t.field({ + name: 'pageInfo', + selectionSet: t.selectionSet({ + selections: [ + t.field({ name: 'hasNextPage' }), + t.field({ name: 'hasPreviousPage' }), + t.field({ name: 'startCursor' }), + t.field({ name: 'endCursor' }), + ], + }), + }) + ); + } + + return selections; +} + +/** + * Build selections for a mutation payload type + */ +function buildPayloadSelections( + fields: CleanObjectField[], + config: FieldSelectionConfig +): FieldNode[] { + const selections: FieldNode[] = []; + + for (const field of fields) { + // Skip query field + if (shouldSkipField(field.name, config.skipQueryField)) { + continue; + } + + const fieldKind = getBaseTypeKind(field.type); + + // Add scalar fields directly + if (fieldKind === 'SCALAR' || fieldKind === 'ENUM') { + selections.push(t.field({ name: field.name })); + continue; + } + + // For object fields (like the returned entity), add with selections + if (fieldKind === 'OBJECT') { + const nestedSelections = buildFieldSelections(field.type, config); + if (nestedSelections.length > 0) { + selections.push( + t.field({ + name: field.name, + selectionSet: t.selectionSet({ selections: nestedSelections }), + }) + ); + } + } + } + + return selections; +} + +// ============================================================================ +// Custom Query Builder +// ============================================================================ + +export interface CustomQueryConfig { + operation: CleanOperation; + typeRegistry?: TypeRegistry; + maxDepth?: number; + skipQueryField?: boolean; +} + +/** + * Build a custom query AST from a CleanOperation + */ +export function buildCustomQueryAST(config: CustomQueryConfig): DocumentNode { + const { + operation, + typeRegistry, + maxDepth = 2, + skipQueryField = true, + } = config; + + const operationName = `${ucFirst(operation.name)}Query`; + + // Build variable definitions + const variableDefinitions = buildVariableDefinitions(operation.args); + + // Build arguments that reference the variables + const args = buildArgumentNodes(operation.args); + + // Build return type selections + const fieldSelectionConfig: FieldSelectionConfig = { + maxDepth, + skipQueryField, + typeRegistry, + }; + + const returnTypeNeedsSelections = typeNeedsSelections(operation.returnType); + let selections: FieldNode[] = []; + + if (returnTypeNeedsSelections) { + selections = buildReturnTypeSelections( + operation.returnType, + fieldSelectionConfig + ); + } + + // Build the query field + const queryField: FieldNode = + selections.length > 0 + ? t.field({ + name: operation.name, + args: args.length > 0 ? args : undefined, + selectionSet: t.selectionSet({ selections }), + }) + : t.field({ + name: operation.name, + args: args.length > 0 ? args : undefined, + }); + + return t.document({ + definitions: [ + t.operationDefinition({ + operation: 'query', + name: operationName, + variableDefinitions: + variableDefinitions.length > 0 ? variableDefinitions : undefined, + selectionSet: t.selectionSet({ + selections: [queryField], + }), + }), + ], + }); +} + +// ============================================================================ +// Custom Mutation Builder +// ============================================================================ + +export interface CustomMutationConfig { + operation: CleanOperation; + typeRegistry?: TypeRegistry; + maxDepth?: number; + skipQueryField?: boolean; +} + +/** + * Build a custom mutation AST from a CleanOperation + */ +export function buildCustomMutationAST( + config: CustomMutationConfig +): DocumentNode { + const { + operation, + typeRegistry, + maxDepth = 2, + skipQueryField = true, + } = config; + + const operationName = `${ucFirst(operation.name)}Mutation`; + + // Build variable definitions + const variableDefinitions = buildVariableDefinitions(operation.args); + + // Build arguments that reference the variables + const args = buildArgumentNodes(operation.args); + + // Build return type selections + const fieldSelectionConfig: FieldSelectionConfig = { + maxDepth, + skipQueryField, + typeRegistry, + }; + + const returnTypeNeedsSelections = typeNeedsSelections(operation.returnType); + let selections: FieldNode[] = []; + + if (returnTypeNeedsSelections) { + selections = buildReturnTypeSelections( + operation.returnType, + fieldSelectionConfig + ); + } + + // Build the mutation field + const mutationField: FieldNode = + selections.length > 0 + ? t.field({ + name: operation.name, + args: args.length > 0 ? args : undefined, + selectionSet: t.selectionSet({ selections }), + }) + : t.field({ + name: operation.name, + args: args.length > 0 ? args : undefined, + }); + + return t.document({ + definitions: [ + t.operationDefinition({ + operation: 'mutation', + name: operationName, + variableDefinitions: + variableDefinitions.length > 0 ? variableDefinitions : undefined, + selectionSet: t.selectionSet({ + selections: [mutationField], + }), + }), + ], + }); +} + +// ============================================================================ +// Print Utilities +// ============================================================================ + +/** + * Print a document AST to GraphQL string + */ +export function printGraphQL(ast: DocumentNode): string { + return print(ast); +} + +/** + * Build and print a custom query in one call + */ +export function buildCustomQueryString(config: CustomQueryConfig): string { + return printGraphQL(buildCustomQueryAST(config)); +} + +/** + * Build and print a custom mutation in one call + */ +export function buildCustomMutationString( + config: CustomMutationConfig +): string { + return printGraphQL(buildCustomMutationAST(config)); +} + +// ============================================================================ +// Helper Utilities +// ============================================================================ + +/** + * Uppercase first character + */ +function ucFirst(str: string): string { + return str.charAt(0).toUpperCase() + str.slice(1); +} diff --git a/graphql/codegen/src/cli/codegen/ts-ast.ts b/graphql/codegen/src/cli/codegen/ts-ast.ts new file mode 100644 index 000000000..3c72c398b --- /dev/null +++ b/graphql/codegen/src/cli/codegen/ts-ast.ts @@ -0,0 +1,389 @@ +/** + * TypeScript AST builders using ts-morph + * + * Provides utilities for generating TypeScript code via AST manipulation + * instead of string concatenation. + */ +import { + Project, + SourceFile, + StructureKind, + VariableDeclarationKind, + ScriptTarget, + ModuleKind, + type InterfaceDeclarationStructure, + type PropertySignatureStructure, + type FunctionDeclarationStructure, + type VariableStatementStructure, + type ImportDeclarationStructure, + type TypeAliasDeclarationStructure, +} from 'ts-morph'; + +// ============================================================================ +// Project management +// ============================================================================ + +/** + * Create a new ts-morph project for code generation + */ +export function createProject(): Project { + return new Project({ + useInMemoryFileSystem: true, + compilerOptions: { + declaration: true, + strict: true, + target: ScriptTarget.ESNext, + module: ModuleKind.ESNext, + }, + }); +} + +/** + * Create a source file in the project + */ +export function createSourceFile(project: Project, fileName: string): SourceFile { + return project.createSourceFile(fileName, '', { overwrite: true }); +} + +/** + * Get formatted output from source file + */ +export function getFormattedOutput(sourceFile: SourceFile): string { + sourceFile.formatText({ + indentSize: 2, + convertTabsToSpaces: true, + }); + return sourceFile.getFullText(); +} + +/** + * Get output with minimal formatting (preserves intentional blank lines) + * Post-processes to fix indentation and section comment spacing + * + * ts-morph generates type alias bodies with extra indentation: + * - Properties get 6 spaces (we want 2) + * - Closing brace gets 4 spaces (we want 0) + * + * For interfaces it uses 4 spaces which we convert to 2. + */ +export function getMinimalFormattedOutput(sourceFile: SourceFile): string { + let text = sourceFile.getFullText(); + + // Process each line to fix indentation + // ts-morph uses inconsistent indentation for type alias bodies + // We halve all indentation: 4->2, 6->3 (rounds to 2), 8->4, etc. + text = text.split('\n').map(line => { + // Match leading whitespace + const match = line.match(/^(\s*)/); + if (!match) return line; + + const spaces = match[1].length; + const content = line.slice(spaces); + + // Skip empty lines + if (content === '') return line; + + // No indentation - keep as-is + if (spaces === 0) return line; + + // Halve the indentation (minimum 0) + const newSpaces = Math.floor(spaces / 2); + return ' '.repeat(newSpaces) + content; + }).join('\n'); + + // Ensure blank line after section comment blocks + text = text.replace( + /(\/\/ =+\n\/\/ .+\n\/\/ =+)\n(export|\/\/)/g, + '$1\n\n$2' + ); + + // Add blank line between consecutive export declarations (type aliases, interfaces) + // Pattern: "}\nexport" or ";\nexport" should become "}\n\nexport" or ";\n\nexport" + text = text.replace(/(\}|\;)\n(export )/g, '$1\n\n$2'); + + // Remove trailing extra blank lines at end of file + text = text.replace(/\n\n+$/, '\n'); + + return text; +} + +// ============================================================================ +// Comment helpers +// ============================================================================ + +/** + * Create a file header comment + */ +export function createFileHeader(description: string): string { + return [ + '/**', + ` * ${description}`, + ' * @generated by @constructive-io/graphql-codegen', + ' * DO NOT EDIT - changes will be overwritten', + ' */', + ].join('\n'); +} + +/** + * Create JSDoc comment for a declaration + */ +export function createJsDoc(lines: string[]): string { + if (lines.length === 1) { + return `/** ${lines[0]} */`; + } + return ['/**', ...lines.map((l) => ` * ${l}`), ' */'].join('\n'); +} + +// ============================================================================ +// Import builders +// ============================================================================ + +export interface ImportSpec { + moduleSpecifier: string; + namedImports?: string[]; + typeOnlyNamedImports?: string[]; + defaultImport?: string; +} + +/** + * Create import declaration structure + */ +export function createImport(spec: ImportSpec): ImportDeclarationStructure { + const namedImports: Array<{ name: string; isTypeOnly?: boolean }> = []; + + if (spec.namedImports) { + namedImports.push(...spec.namedImports.map((name) => ({ name }))); + } + + if (spec.typeOnlyNamedImports) { + namedImports.push( + ...spec.typeOnlyNamedImports.map((name) => ({ name, isTypeOnly: true })) + ); + } + + return { + kind: StructureKind.ImportDeclaration, + moduleSpecifier: spec.moduleSpecifier, + defaultImport: spec.defaultImport, + namedImports: namedImports.length > 0 ? namedImports : undefined, + }; +} + +// ============================================================================ +// Interface builders +// ============================================================================ + +export interface InterfaceProperty { + name: string; + type: string; + optional?: boolean; + docs?: string[]; +} + +/** + * Create interface declaration structure + */ +export function createInterface( + name: string, + properties: InterfaceProperty[], + options?: { + docs?: string[]; + isExported?: boolean; + extends?: string[]; + } +): InterfaceDeclarationStructure { + return { + kind: StructureKind.Interface, + name, + isExported: options?.isExported ?? true, + extends: options?.extends, + docs: options?.docs ? [{ description: options.docs.join('\n') }] : undefined, + properties: properties.map( + (prop): PropertySignatureStructure => ({ + kind: StructureKind.PropertySignature, + name: prop.name, + type: prop.type, + hasQuestionToken: prop.optional, + docs: prop.docs ? [{ description: prop.docs.join('\n') }] : undefined, + }) + ), + }; +} + +/** + * Create filter interface with standard PostGraphile operators + */ +export function createFilterInterface( + name: string, + fieldFilters: Array<{ fieldName: string; filterType: string }> +): InterfaceDeclarationStructure { + const properties: InterfaceProperty[] = [ + ...fieldFilters.map((f) => ({ + name: f.fieldName, + type: f.filterType, + optional: true, + })), + { name: 'and', type: `${name}[]`, optional: true, docs: ['Logical AND'] }, + { name: 'or', type: `${name}[]`, optional: true, docs: ['Logical OR'] }, + { name: 'not', type: name, optional: true, docs: ['Logical NOT'] }, + ]; + + return createInterface(name, properties); +} + +// ============================================================================ +// Type alias builders +// ============================================================================ + +/** + * Create type alias declaration structure + */ +export function createTypeAlias( + name: string, + type: string, + options?: { + docs?: string[]; + isExported?: boolean; + } +): TypeAliasDeclarationStructure { + return { + kind: StructureKind.TypeAlias, + name, + type, + isExported: options?.isExported ?? true, + docs: options?.docs ? [{ description: options.docs.join('\n') }] : undefined, + }; +} + +/** + * Create union type from string literals + */ +export function createUnionType(values: string[]): string { + return values.map((v) => `'${v}'`).join(' | '); +} + +// ============================================================================ +// Variable/constant builders +// ============================================================================ + +/** + * Create const variable statement structure + */ +export function createConst( + name: string, + initializer: string, + options?: { + docs?: string[]; + isExported?: boolean; + type?: string; + } +): VariableStatementStructure { + return { + kind: StructureKind.VariableStatement, + declarationKind: VariableDeclarationKind.Const, + isExported: options?.isExported ?? true, + docs: options?.docs ? [{ description: options.docs.join('\n') }] : undefined, + declarations: [ + { + name, + type: options?.type, + initializer, + }, + ], + }; +} + +/** + * Create a template literal string (for GraphQL documents) + */ +export function createTemplateLiteral(content: string): string { + return '`\n' + content + '\n`'; +} + +// ============================================================================ +// Function builders +// ============================================================================ + +export interface FunctionParameter { + name: string; + type: string; + optional?: boolean; + initializer?: string; +} + +/** + * Create function declaration structure + */ +export function createFunction( + name: string, + parameters: FunctionParameter[], + returnType: string, + body: string, + options?: { + docs?: string[]; + isExported?: boolean; + isAsync?: boolean; + } +): FunctionDeclarationStructure { + return { + kind: StructureKind.Function, + name, + isExported: options?.isExported ?? true, + isAsync: options?.isAsync, + parameters: parameters.map((p) => ({ + name: p.name, + type: p.type, + hasQuestionToken: p.optional, + initializer: p.initializer, + })), + returnType, + statements: body, + }; +} + +// ============================================================================ +// Export builders +// ============================================================================ + +/** + * Create re-export statement + */ +export function createReExport( + names: string[], + moduleSpecifier: string, + isTypeOnly: boolean = false +): string { + const typePrefix = isTypeOnly ? 'type ' : ''; + return `export ${typePrefix}{ ${names.join(', ')} } from '${moduleSpecifier}';`; +} + +/** + * Create barrel export statement + */ +export function createBarrelExport(moduleSpecifier: string): string { + return `export * from '${moduleSpecifier}';`; +} + +// ============================================================================ +// Section comment helpers +// ============================================================================ + +/** + * Create a section divider comment for generated code + */ +export function createSectionComment(title: string): string { + return [ + '// ============================================================================', + `// ${title}`, + '// ============================================================================', + ].join('\n'); +} + +/** + * Add a section comment to source file with proper spacing + */ +export function addSectionComment(sourceFile: SourceFile, title: string): void { + sourceFile.addStatements(`\n${createSectionComment(title)}\n\n`); +} + + diff --git a/graphql/codegen/src/cli/codegen/type-resolver.ts b/graphql/codegen/src/cli/codegen/type-resolver.ts new file mode 100644 index 000000000..9b514fa2b --- /dev/null +++ b/graphql/codegen/src/cli/codegen/type-resolver.ts @@ -0,0 +1,283 @@ +/** + * Type Resolver - Convert GraphQL types to TypeScript + * + * Utilities for converting CleanTypeRef and other GraphQL types + * into TypeScript type strings and interface definitions. + */ +import type { + CleanTypeRef, + CleanArgument, + CleanObjectField, +} from '../../types/schema'; +import type { InterfaceProperty } from './ts-ast'; +import { scalarToTsType as resolveScalarToTs } from './scalars'; + +// ============================================================================ +// GraphQL to TypeScript Type Mapping +// ============================================================================ + +/** + * Convert a GraphQL scalar type to TypeScript type + */ +export function scalarToTsType(scalarName: string): string { + return resolveScalarToTs(scalarName, { unknownScalar: 'unknown' }); +} + +// ============================================================================ +// CleanTypeRef to TypeScript +// ============================================================================ + +/** + * Convert a CleanTypeRef to a TypeScript type string + * Handles nested LIST and NON_NULL wrappers + */ +export function typeRefToTsType(typeRef: CleanTypeRef): string { + switch (typeRef.kind) { + case 'NON_NULL': + // Non-null wrapper - unwrap and return the inner type + if (typeRef.ofType) { + return typeRefToTsType(typeRef.ofType); + } + return 'unknown'; + + case 'LIST': + // List wrapper - wrap inner type in array + if (typeRef.ofType) { + const innerType = typeRefToTsType(typeRef.ofType); + return `${innerType}[]`; + } + return 'unknown[]'; + + case 'SCALAR': + // Scalar type - map to TS type + return scalarToTsType(typeRef.name ?? 'unknown'); + + case 'ENUM': + // Enum type - use the GraphQL enum name + return typeRef.name ?? 'string'; + + case 'OBJECT': + case 'INPUT_OBJECT': + // Object types - use the GraphQL type name + return typeRef.name ?? 'unknown'; + + default: + return 'unknown'; + } +} + +/** + * Convert a CleanTypeRef to a nullable TypeScript type string + * (for optional fields that can be null) + */ +export function typeRefToNullableTsType(typeRef: CleanTypeRef): string { + const baseType = typeRefToTsType(typeRef); + + // If the outer type is NON_NULL, it's required + if (typeRef.kind === 'NON_NULL') { + return baseType; + } + + // Otherwise, it can be null + return `${baseType} | null`; +} + +/** + * Check if a type reference is required (wrapped in NON_NULL) + */ +export function isTypeRequired(typeRef: CleanTypeRef): boolean { + return typeRef.kind === 'NON_NULL'; +} + +/** + * Check if a type reference is a list + */ +export function isTypeList(typeRef: CleanTypeRef): boolean { + if (typeRef.kind === 'LIST') return true; + if (typeRef.kind === 'NON_NULL' && typeRef.ofType) { + return typeRef.ofType.kind === 'LIST'; + } + return false; +} + +/** + * Get the base type name from a type reference (unwrapping wrappers) + */ +export function getTypeBaseName(typeRef: CleanTypeRef): string | null { + if (typeRef.name) return typeRef.name; + if (typeRef.ofType) return getTypeBaseName(typeRef.ofType); + return null; +} + +/** + * Get the base type kind (unwrapping LIST and NON_NULL) + */ +export function getBaseTypeKind(typeRef: CleanTypeRef): CleanTypeRef['kind'] { + if (typeRef.kind === 'LIST' || typeRef.kind === 'NON_NULL') { + if (typeRef.ofType) { + return getBaseTypeKind(typeRef.ofType); + } + } + return typeRef.kind; +} + +// ============================================================================ +// Interface Property Generation +// ============================================================================ + +/** + * Convert CleanArgument to InterfaceProperty for ts-morph + */ +export function argumentToInterfaceProperty(arg: CleanArgument): InterfaceProperty { + return { + name: arg.name, + type: typeRefToTsType(arg.type), + optional: !isTypeRequired(arg.type), + docs: arg.description ? [arg.description] : undefined, + }; +} + +/** + * Convert CleanObjectField to InterfaceProperty for ts-morph + */ +export function fieldToInterfaceProperty(field: CleanObjectField): InterfaceProperty { + return { + name: field.name, + type: typeRefToNullableTsType(field.type), + optional: false, // Fields are always present, just potentially null + docs: field.description ? [field.description] : undefined, + }; +} + +/** + * Convert an array of CleanArguments to InterfaceProperty array + */ +export function argumentsToInterfaceProperties(args: CleanArgument[]): InterfaceProperty[] { + return args.map(argumentToInterfaceProperty); +} + +/** + * Convert an array of CleanObjectFields to InterfaceProperty array + */ +export function fieldsToInterfaceProperties(fields: CleanObjectField[]): InterfaceProperty[] { + return fields.map(fieldToInterfaceProperty); +} + +// ============================================================================ +// Type Filtering +// ============================================================================ + +/** + * Check if a field should be skipped in selections + */ +export function shouldSkipField(fieldName: string, skipQueryField: boolean): boolean { + if (skipQueryField && fieldName === 'query') return true; + if (fieldName === 'nodeId') return true; + if (fieldName === '__typename') return true; + return false; +} + +/** + * Filter fields to only include selectable scalar and object fields + */ +export function getSelectableFields( + fields: CleanObjectField[] | undefined, + skipQueryField: boolean, + maxDepth: number = 2, + currentDepth: number = 0 +): CleanObjectField[] { + if (!fields || currentDepth >= maxDepth) return []; + + return fields.filter((field) => { + // Skip internal fields + if (shouldSkipField(field.name, skipQueryField)) return false; + + // Get base type kind + const baseKind = getBaseTypeKind(field.type); + + // Include scalars and enums + if (baseKind === 'SCALAR' || baseKind === 'ENUM') return true; + + // Include objects up to max depth + if (baseKind === 'OBJECT' && currentDepth < maxDepth - 1) return true; + + return false; + }); +} + +// ============================================================================ +// Type Name Utilities +// ============================================================================ + +/** + * Convert operation name to PascalCase for type names + */ +export function operationNameToPascal(name: string): string { + return name.charAt(0).toUpperCase() + name.slice(1); +} + +/** + * Generate variables type name for an operation + * e.g., "login" -> "LoginMutationVariables" + */ +export function getOperationVariablesTypeName( + operationName: string, + kind: 'query' | 'mutation' +): string { + const pascal = operationNameToPascal(operationName); + return `${pascal}${kind === 'query' ? 'Query' : 'Mutation'}Variables`; +} + +/** + * Generate result type name for an operation + * e.g., "login" -> "LoginMutationResult" + */ +export function getOperationResultTypeName( + operationName: string, + kind: 'query' | 'mutation' +): string { + const pascal = operationNameToPascal(operationName); + return `${pascal}${kind === 'query' ? 'Query' : 'Mutation'}Result`; +} + +/** + * Generate hook name for an operation + * e.g., "login" -> "useLoginMutation", "currentUser" -> "useCurrentUserQuery" + */ +export function getOperationHookName( + operationName: string, + kind: 'query' | 'mutation' +): string { + const pascal = operationNameToPascal(operationName); + return `use${pascal}${kind === 'query' ? 'Query' : 'Mutation'}`; +} + +/** + * Generate file name for an operation hook + * e.g., "login" -> "useLoginMutation.ts" + */ +export function getOperationFileName( + operationName: string, + kind: 'query' | 'mutation' +): string { + return `${getOperationHookName(operationName, kind)}.ts`; +} + +/** + * Generate query key factory name + * e.g., "currentUser" -> "currentUserQueryKey" + */ +export function getQueryKeyName(operationName: string): string { + return `${operationName}QueryKey`; +} + +/** + * Generate GraphQL document constant name + * e.g., "login" -> "loginMutationDocument" + */ +export function getDocumentConstName( + operationName: string, + kind: 'query' | 'mutation' +): string { + return `${operationName}${kind === 'query' ? 'Query' : 'Mutation'}Document`; +} diff --git a/graphql/codegen/src/cli/codegen/types.ts b/graphql/codegen/src/cli/codegen/types.ts new file mode 100644 index 000000000..3931f02c0 --- /dev/null +++ b/graphql/codegen/src/cli/codegen/types.ts @@ -0,0 +1,95 @@ +/** + * Types generator - generates types.ts with entity interfaces using AST + */ +import type { CleanTable } from '../../types/schema'; +import { + createProject, + createSourceFile, + getFormattedOutput, + createFileHeader, + createInterface, + type InterfaceProperty, +} from './ts-ast'; +import { getScalarFields, fieldTypeToTs } from './utils'; +import { generateBaseFilterTypes } from './filters'; + +/** + * Generate types.ts content with all entity interfaces and base filter types + */ +export function generateTypesFile(tables: CleanTable[]): string { + const project = createProject(); + const sourceFile = createSourceFile(project, 'types.ts'); + + // Add file header + sourceFile.insertText(0, createFileHeader('Entity types and filter types') + '\n\n'); + + // Add section comment + sourceFile.addStatements('// ============================================================================'); + sourceFile.addStatements('// Entity types'); + sourceFile.addStatements('// ============================================================================\n'); + + // Generate entity interfaces + for (const table of tables) { + const scalarFields = getScalarFields(table); + + const properties: InterfaceProperty[] = scalarFields.map((field) => ({ + name: field.name, + type: `${fieldTypeToTs(field.type)} | null`, + })); + + sourceFile.addInterface(createInterface(table.name, properties)); + } + + // Add section comment for filters + sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements('// Filter types (shared)'); + sourceFile.addStatements('// ============================================================================\n'); + + // Add base filter types (using string concat for complex types - acceptable for static definitions) + const filterTypesContent = generateBaseFilterTypes(); + // Extract just the interfaces part (skip the header) + const filterInterfaces = filterTypesContent + .split('\n') + .slice(6) // Skip header lines + .join('\n'); + + sourceFile.addStatements(filterInterfaces); + + return getFormattedOutput(sourceFile); +} + +/** + * Generate a minimal entity type (just id and display fields) + */ +export function generateMinimalEntityType(table: CleanTable): string { + const project = createProject(); + const sourceFile = createSourceFile(project, 'minimal.ts'); + + const scalarFields = getScalarFields(table); + + // Find id and likely display fields + const displayFields = scalarFields.filter((f) => { + const name = f.name.toLowerCase(); + return ( + name === 'id' || + name === 'name' || + name === 'title' || + name === 'label' || + name === 'email' || + name.endsWith('name') || + name.endsWith('title') + ); + }); + + // If no display fields found, take first 5 scalar fields + const fieldsToUse = displayFields.length > 0 ? displayFields : scalarFields.slice(0, 5); + + const properties: InterfaceProperty[] = fieldsToUse.map((field) => ({ + name: field.name, + type: `${fieldTypeToTs(field.type)} | null`, + })); + + sourceFile.addInterface(createInterface(`${table.name}Minimal`, properties)); + + return getFormattedOutput(sourceFile); +} diff --git a/graphql/codegen/src/cli/codegen/utils.ts b/graphql/codegen/src/cli/codegen/utils.ts new file mode 100644 index 000000000..2da06e24c --- /dev/null +++ b/graphql/codegen/src/cli/codegen/utils.ts @@ -0,0 +1,355 @@ +/** + * Codegen utilities - naming conventions, type mapping, and helpers + */ +import type { CleanTable, CleanField, CleanFieldType } from '../../types/schema'; +import { scalarToTsType, scalarToFilterType } from './scalars'; + +// ============================================================================ +// String manipulation +// ============================================================================ + +/** Lowercase first character */ +export function lcFirst(str: string): string { + return str.charAt(0).toLowerCase() + str.slice(1); +} + +/** Uppercase first character */ +export function ucFirst(str: string): string { + return str.charAt(0).toUpperCase() + str.slice(1); +} + +/** Convert to camelCase */ +export function toCamelCase(str: string): string { + return str + .replace(/[-_](.)/g, (_, char) => char.toUpperCase()) + .replace(/^(.)/, (_, char) => char.toLowerCase()); +} + +/** Convert to PascalCase */ +export function toPascalCase(str: string): string { + return str + .replace(/[-_](.)/g, (_, char) => char.toUpperCase()) + .replace(/^(.)/, (_, char) => char.toUpperCase()); +} + +/** Convert to SCREAMING_SNAKE_CASE */ +export function toScreamingSnake(str: string): string { + return str + .replace(/([A-Z])/g, '_$1') + .replace(/[-\s]/g, '_') + .toUpperCase() + .replace(/^_/, ''); +} + +// ============================================================================ +// Naming conventions for generated code +// ============================================================================ + +export interface TableNames { + /** PascalCase singular (e.g., "Car") */ + typeName: string; + /** camelCase singular (e.g., "car") */ + singularName: string; + /** camelCase plural (e.g., "cars") */ + pluralName: string; + /** PascalCase plural (e.g., "Cars") */ + pluralTypeName: string; +} + +/** + * Derive all naming variants from a table + */ +export function getTableNames(table: CleanTable): TableNames { + const typeName = table.name; + const singularName = table.inflection?.tableFieldName || lcFirst(typeName); + const pluralName = table.query?.all || table.inflection?.allRows || singularName + 's'; + const pluralTypeName = ucFirst(pluralName); + + return { + typeName, + singularName, + pluralName, + pluralTypeName, + }; +} + +/** + * Generate hook function name for list query + * e.g., "useCarsQuery" + */ +export function getListQueryHookName(table: CleanTable): string { + const { pluralName } = getTableNames(table); + return `use${ucFirst(pluralName)}Query`; +} + +/** + * Generate hook function name for single item query + * e.g., "useCarQuery" + */ +export function getSingleQueryHookName(table: CleanTable): string { + const { singularName } = getTableNames(table); + return `use${ucFirst(singularName)}Query`; +} + +/** + * Generate hook function name for create mutation + * e.g., "useCreateCarMutation" + */ +export function getCreateMutationHookName(table: CleanTable): string { + const { typeName } = getTableNames(table); + return `useCreate${typeName}Mutation`; +} + +/** + * Generate hook function name for update mutation + * e.g., "useUpdateCarMutation" + */ +export function getUpdateMutationHookName(table: CleanTable): string { + const { typeName } = getTableNames(table); + return `useUpdate${typeName}Mutation`; +} + +/** + * Generate hook function name for delete mutation + * e.g., "useDeleteCarMutation" + */ +export function getDeleteMutationHookName(table: CleanTable): string { + const { typeName } = getTableNames(table); + return `useDelete${typeName}Mutation`; +} + +/** + * Generate file name for list query hook + * e.g., "useCarsQuery.ts" + */ +export function getListQueryFileName(table: CleanTable): string { + return `${getListQueryHookName(table)}.ts`; +} + +/** + * Generate file name for single query hook + * e.g., "useCarQuery.ts" + */ +export function getSingleQueryFileName(table: CleanTable): string { + return `${getSingleQueryHookName(table)}.ts`; +} + +/** + * Generate file name for create mutation hook + */ +export function getCreateMutationFileName(table: CleanTable): string { + return `${getCreateMutationHookName(table)}.ts`; +} + +/** + * Generate file name for update mutation hook + */ +export function getUpdateMutationFileName(table: CleanTable): string { + return `${getUpdateMutationHookName(table)}.ts`; +} + +/** + * Generate file name for delete mutation hook + */ +export function getDeleteMutationFileName(table: CleanTable): string { + return `${getDeleteMutationHookName(table)}.ts`; +} + +// ============================================================================ +// GraphQL operation names +// ============================================================================ + +/** + * Get the GraphQL query name for fetching all rows + * Uses inflection from _meta, falls back to convention + */ +export function getAllRowsQueryName(table: CleanTable): string { + return table.query?.all || table.inflection?.allRows || lcFirst(table.name) + 's'; +} + +/** + * Get the GraphQL query name for fetching single row + */ +export function getSingleRowQueryName(table: CleanTable): string { + return table.query?.one || table.inflection?.tableFieldName || lcFirst(table.name); +} + +/** + * Get the GraphQL mutation name for creating + */ +export function getCreateMutationName(table: CleanTable): string { + return table.query?.create || `create${table.name}`; +} + +/** + * Get the GraphQL mutation name for updating + */ +export function getUpdateMutationName(table: CleanTable): string { + return table.query?.update || `update${table.name}`; +} + +/** + * Get the GraphQL mutation name for deleting + */ +export function getDeleteMutationName(table: CleanTable): string { + return table.query?.delete || `delete${table.name}`; +} + +// ============================================================================ +// Type names +// ============================================================================ + +/** + * Get PostGraphile filter type name + * e.g., "CarFilter" + */ +export function getFilterTypeName(table: CleanTable): string { + return table.inflection?.filterType || `${table.name}Filter`; +} + +/** + * Get PostGraphile OrderBy enum type name + * e.g., "CarsOrderBy" + */ +export function getOrderByTypeName(table: CleanTable): string { + return table.inflection?.orderByType || `${table.name}sOrderBy`; +} + +/** + * Get PostGraphile create input type name + * e.g., "CreateCarInput" + */ +export function getCreateInputTypeName(table: CleanTable): string { + return table.inflection?.createInputType || `Create${table.name}Input`; +} + +/** + * Get PostGraphile patch type name for updates + * e.g., "CarPatch" + */ +export function getPatchTypeName(table: CleanTable): string { + return table.inflection?.patchType || `${table.name}Patch`; +} + +/** + * Get PostGraphile update input type name + * e.g., "UpdateCarInput" + */ +export function getUpdateInputTypeName(table: CleanTable): string { + return `Update${table.name}Input`; +} + +/** + * Get PostGraphile delete input type name + * e.g., "DeleteCarInput" + */ +export function getDeleteInputTypeName(table: CleanTable): string { + return `Delete${table.name}Input`; +} + +// ============================================================================ +// Type mapping: GraphQL → TypeScript +// ============================================================================ + +/** + * Convert GraphQL type to TypeScript type + */ +export function gqlTypeToTs(gqlType: string, isArray: boolean = false): string { + // Remove non-null markers + const cleanType = gqlType.replace(/!/g, ''); + + // Look up in map, fallback to the type name itself (custom type) + const tsType = scalarToTsType(cleanType, { unknownScalar: 'name' }); + + return isArray ? `${tsType}[]` : tsType; +} + +/** + * Convert CleanFieldType to TypeScript type string + */ +export function fieldTypeToTs(fieldType: CleanFieldType): string { + return gqlTypeToTs(fieldType.gqlType, fieldType.isArray); +} + +// ============================================================================ +// Type mapping: GraphQL → Filter type +// ============================================================================ + +/** + * Get the PostGraphile filter type for a GraphQL scalar + */ +export function getScalarFilterType(gqlType: string): string | null { + const cleanType = gqlType.replace(/!/g, ''); + return scalarToFilterType(cleanType); +} + +// ============================================================================ +// Field filtering utilities +// ============================================================================ + +/** + * Check if a field is a relation field (not a scalar) + */ +export function isRelationField(fieldName: string, table: CleanTable): boolean { + const { belongsTo, hasOne, hasMany, manyToMany } = table.relations; + return ( + belongsTo.some((r) => r.fieldName === fieldName) || + hasOne.some((r) => r.fieldName === fieldName) || + hasMany.some((r) => r.fieldName === fieldName) || + manyToMany.some((r) => r.fieldName === fieldName) + ); +} + +/** + * Get only scalar fields (non-relation fields) + */ +export function getScalarFields(table: CleanTable): CleanField[] { + return table.fields.filter((f) => !isRelationField(f.name, table)); +} + +/** + * Get primary key field names + */ +export function getPrimaryKeyFields(table: CleanTable): string[] { + const pk = table.constraints?.primaryKey?.[0]; + if (!pk) return ['id']; // Default assumption + return pk.fields.map((f) => f.name); +} + +// ============================================================================ +// Query key generation +// ============================================================================ + +/** + * Generate query key prefix for a table + * e.g., "cars" for list queries, "car" for detail queries + */ +export function getQueryKeyPrefix(table: CleanTable): string { + return lcFirst(table.name); +} + +// ============================================================================ +// Code generation helpers +// ============================================================================ + +/** + * Generate a doc comment header for generated files + */ +export function getGeneratedFileHeader(description: string): string { + return `/** + * ${description} + * @generated by @constructive-io/graphql-codegen + * DO NOT EDIT - changes will be overwritten + */`; +} + +/** + * Indent a multi-line string + */ +export function indent(str: string, spaces: number = 2): string { + const pad = ' '.repeat(spaces); + return str + .split('\n') + .map((line) => (line.trim() ? pad + line : line)) + .join('\n'); +} diff --git a/graphql/codegen/src/cli/commands/generate-orm.ts b/graphql/codegen/src/cli/commands/generate-orm.ts new file mode 100644 index 000000000..8d22da0d4 --- /dev/null +++ b/graphql/codegen/src/cli/commands/generate-orm.ts @@ -0,0 +1,312 @@ +/** + * Generate ORM command - generates Prisma-like ORM client + * + * This command: + * 1. Fetches _meta query for table-based CRUD operations + * 2. Fetches __schema introspection for custom operations + * 3. Generates a Prisma-like ORM client with fluent API + */ + +import type { GraphQLSDKConfig, ResolvedConfig } from '../../types/config'; +import { resolveConfig } from '../../types/config'; +import { fetchMeta, validateEndpoint } from '../introspect/fetch-meta'; +import { fetchSchema } from '../introspect/fetch-schema'; +import { + transformMetaToCleanTables, + filterTables, +} from '../introspect/transform'; +import { + transformSchemaToOperations, + filterOperations, + getTableOperationNames, + getCustomOperations, +} from '../introspect/transform-schema'; +import { findConfigFile, loadConfigFile } from './init'; +import { writeGeneratedFiles } from './generate'; +import { generateOrm } from '../codegen/orm'; + +export interface GenerateOrmOptions { + /** Path to config file */ + config?: string; + /** GraphQL endpoint URL (overrides config) */ + endpoint?: string; + /** Output directory (overrides config) */ + output?: string; + /** Authorization header */ + authorization?: string; + /** Verbose output */ + verbose?: boolean; + /** Dry run - don't write files */ + dryRun?: boolean; + /** Skip custom operations (only generate table CRUD) */ + skipCustomOperations?: boolean; +} + +export interface GenerateOrmResult { + success: boolean; + message: string; + tables?: string[]; + customQueries?: string[]; + customMutations?: string[]; + filesWritten?: string[]; + errors?: string[]; +} + +/** + * Execute the generate-orm command + */ +export async function generateOrmCommand( + options: GenerateOrmOptions = {} +): Promise { + const log = options.verbose ? console.log : () => {}; + + // 1. Load config + log('Loading configuration...'); + const configResult = await loadConfig(options); + if (!configResult.success) { + return { + success: false, + message: configResult.error!, + }; + } + + const config = configResult.config!; + + // Use ORM output directory if specified, otherwise default + const outputDir = options.output || config.orm?.output || './generated/orm'; + + log(` Endpoint: ${config.endpoint}`); + log(` Output: ${outputDir}`); + + // 2. Validate endpoint + const endpointValidation = validateEndpoint(config.endpoint); + if (!endpointValidation.valid) { + return { + success: false, + message: `Invalid endpoint: ${endpointValidation.error}`, + }; + } + + // Build authorization header if provided + const authHeader = options.authorization || config.headers['Authorization']; + + // 3. Fetch _meta for table-based operations + log('Fetching schema metadata (_meta)...'); + + const metaResult = await fetchMeta({ + endpoint: config.endpoint, + authorization: authHeader, + headers: config.headers, + timeout: 30000, + }); + + if (!metaResult.success) { + return { + success: false, + message: `Failed to fetch _meta: ${metaResult.error}`, + }; + } + + // 4. Transform to CleanTable[] + log('Transforming table schema...'); + let tables = transformMetaToCleanTables(metaResult.data!); + log(` Found ${tables.length} tables`); + + // 5. Filter tables + tables = filterTables(tables, config.tables.include, config.tables.exclude); + log(` After filtering: ${tables.length} tables`); + + if (tables.length === 0) { + return { + success: false, + message: + 'No tables found after filtering. Check your include/exclude patterns.', + }; + } + + // Get table operation names for filtering custom operations + const tableOperationNames = getTableOperationNames(tables); + + // 6. Fetch __schema for custom operations (unless skipped) + let customQueries: string[] = []; + let customMutations: string[] = []; + let customOperationsData: + | { + queries: ReturnType; + mutations: ReturnType; + typeRegistry: ReturnType['typeRegistry']; + } + | undefined; + + if (!options.skipCustomOperations) { + log('Fetching schema introspection (__schema)...'); + + const schemaResult = await fetchSchema({ + endpoint: config.endpoint, + authorization: authHeader, + headers: config.headers, + timeout: 30000, + }); + + if (schemaResult.success && schemaResult.data) { + log('Transforming custom operations...'); + + // Transform to CleanOperation[] + const { queries: allQueries, mutations: allMutations, typeRegistry } = + transformSchemaToOperations(schemaResult.data); + + log( + ` Found ${allQueries.length} queries and ${allMutations.length} mutations total` + ); + + // Filter by config include/exclude + const filteredQueries = filterOperations( + allQueries, + config.queries.include, + config.queries.exclude + ); + const filteredMutations = filterOperations( + allMutations, + config.mutations.include, + config.mutations.exclude + ); + + log( + ` After config filtering: ${filteredQueries.length} queries, ${filteredMutations.length} mutations` + ); + + // Remove table operations (already handled by table generators) + const customQueriesOps = getCustomOperations( + filteredQueries, + tableOperationNames + ); + const customMutationsOps = getCustomOperations( + filteredMutations, + tableOperationNames + ); + + log( + ` Custom operations: ${customQueriesOps.length} queries, ${customMutationsOps.length} mutations` + ); + + customQueries = customQueriesOps.map((q) => q.name); + customMutations = customMutationsOps.map((m) => m.name); + + customOperationsData = { + queries: customQueriesOps, + mutations: customMutationsOps, + typeRegistry, + }; + } else { + log(` Warning: Could not fetch __schema: ${schemaResult.error}`); + log(' Continuing with table-only generation...'); + } + } + + // 7. Generate ORM code + log('Generating ORM client...'); + const { files: generatedFiles, stats } = generateOrm({ + tables, + customOperations: customOperationsData, + config, + }); + + log(` Generated ${stats.tables} table models`); + log(` Generated ${stats.customQueries} custom query operations`); + log(` Generated ${stats.customMutations} custom mutation operations`); + log(` Total files: ${stats.totalFiles}`); + + if (options.dryRun) { + return { + success: true, + message: `Dry run complete. Would generate ${generatedFiles.length} files for ${tables.length} tables and ${customQueries.length + customMutations.length} custom operations.`, + tables: tables.map((t) => t.name), + customQueries, + customMutations, + filesWritten: generatedFiles.map((f) => f.path), + }; + } + + // 8. Write files + log('Writing files...'); + const writeResult = await writeGeneratedFiles( + generatedFiles, + outputDir, + ['models', 'query', 'mutation'] + ); + + if (!writeResult.success) { + return { + success: false, + message: `Failed to write files: ${writeResult.errors?.join(', ')}`, + errors: writeResult.errors, + }; + } + + const totalOps = customQueries.length + customMutations.length; + const customOpsMsg = totalOps > 0 ? ` and ${totalOps} custom operations` : ''; + + return { + success: true, + message: `Generated ORM client for ${tables.length} tables${customOpsMsg}. Files written to ${outputDir}`, + tables: tables.map((t) => t.name), + customQueries, + customMutations, + filesWritten: writeResult.filesWritten, + }; +} + +interface LoadConfigResult { + success: boolean; + config?: ResolvedConfig; + error?: string; +} + +async function loadConfig( + options: GenerateOrmOptions +): Promise { + // Find config file + let configPath = options.config; + if (!configPath) { + configPath = findConfigFile() ?? undefined; + } + + let baseConfig: Partial = {}; + + if (configPath) { + const loadResult = await loadConfigFile(configPath); + if (!loadResult.success) { + return { success: false, error: loadResult.error }; + } + baseConfig = loadResult.config; + } + + // Override with CLI options + const mergedConfig: GraphQLSDKConfig = { + endpoint: options.endpoint || baseConfig.endpoint || '', + output: options.output || baseConfig.output, + headers: baseConfig.headers, + tables: baseConfig.tables, + queries: baseConfig.queries, + mutations: baseConfig.mutations, + excludeFields: baseConfig.excludeFields, + hooks: baseConfig.hooks, + postgraphile: baseConfig.postgraphile, + codegen: baseConfig.codegen, + orm: baseConfig.orm, + }; + + if (!mergedConfig.endpoint) { + return { + success: false, + error: + 'No endpoint specified. Use --endpoint or create a config file with "graphql-codegen init".', + }; + } + + // Resolve with defaults + const config = resolveConfig(mergedConfig); + + return { success: true, config }; +} + diff --git a/graphql/codegen/src/cli/commands/generate.ts b/graphql/codegen/src/cli/commands/generate.ts new file mode 100644 index 000000000..8d3700478 --- /dev/null +++ b/graphql/codegen/src/cli/commands/generate.ts @@ -0,0 +1,386 @@ +/** + * Generate command - introspects endpoint and generates SDK + * + * This command: + * 1. Fetches _meta query for table-based CRUD operations + * 2. Fetches __schema introspection for ALL operations + * 3. Filters out table operations from custom operations to avoid duplicates + * 4. Generates hooks for both table CRUD and custom operations + */ +import * as fs from 'node:fs'; +import * as path from 'node:path'; +import * as prettier from 'prettier'; + +import type { GraphQLSDKConfig, ResolvedConfig } from '../../types/config'; +import { resolveConfig } from '../../types/config'; +import { fetchMeta, validateEndpoint } from '../introspect/fetch-meta'; +import { fetchSchema } from '../introspect/fetch-schema'; +import { + transformMetaToCleanTables, + filterTables, +} from '../introspect/transform'; +import { + transformSchemaToOperations, + filterOperations, + getTableOperationNames, + getCustomOperations, +} from '../introspect/transform-schema'; +import { findConfigFile, loadConfigFile } from './init'; +import { generate } from '../codegen'; + +export interface GenerateOptions { + /** Path to config file */ + config?: string; + /** GraphQL endpoint URL (overrides config) */ + endpoint?: string; + /** Output directory (overrides config) */ + output?: string; + /** Authorization header */ + authorization?: string; + /** Verbose output */ + verbose?: boolean; + /** Dry run - don't write files */ + dryRun?: boolean; + /** Skip custom operations (only generate table CRUD) */ + skipCustomOperations?: boolean; +} + +export interface GenerateResult { + success: boolean; + message: string; + tables?: string[]; + customQueries?: string[]; + customMutations?: string[]; + filesWritten?: string[]; + errors?: string[]; +} + +/** + * Execute the generate command + */ +export async function generateCommand( + options: GenerateOptions = {} +): Promise { + const log = options.verbose ? console.log : () => {}; + + // 1. Load config + log('Loading configuration...'); + const configResult = await loadConfig(options); + if (!configResult.success) { + return { + success: false, + message: configResult.error!, + }; + } + + const config = configResult.config!; + log(` Endpoint: ${config.endpoint}`); + log(` Output: ${config.output}`); + + // 2. Validate endpoint + const endpointValidation = validateEndpoint(config.endpoint); + if (!endpointValidation.valid) { + return { + success: false, + message: `Invalid endpoint: ${endpointValidation.error}`, + }; + } + + // Build authorization header if provided + const authHeader = options.authorization || config.headers['Authorization']; + + // 3. Fetch _meta for table-based operations + log('Fetching schema metadata (_meta)...'); + + const metaResult = await fetchMeta({ + endpoint: config.endpoint, + authorization: authHeader, + headers: config.headers, + timeout: 30000, + }); + + if (!metaResult.success) { + return { + success: false, + message: `Failed to fetch _meta: ${metaResult.error}`, + }; + } + + // 4. Transform to CleanTable[] + log('Transforming table schema...'); + let tables = transformMetaToCleanTables(metaResult.data!); + log(` Found ${tables.length} tables`); + + // 5. Filter tables + tables = filterTables( + tables, + config.tables.include, + config.tables.exclude + ); + log(` After filtering: ${tables.length} tables`); + + if (tables.length === 0) { + return { + success: false, + message: + 'No tables found after filtering. Check your include/exclude patterns.', + }; + } + + // Get table operation names for filtering custom operations + const tableOperationNames = getTableOperationNames(tables); + + // 6. Fetch __schema for custom operations (unless skipped) + let customQueries: string[] = []; + let customMutations: string[] = []; + let customOperationsData: { + queries: ReturnType; + mutations: ReturnType; + typeRegistry: ReturnType['typeRegistry']; + } | undefined; + + if (!options.skipCustomOperations) { + log('Fetching schema introspection (__schema)...'); + + const schemaResult = await fetchSchema({ + endpoint: config.endpoint, + authorization: authHeader, + headers: config.headers, + timeout: 30000, + }); + + if (schemaResult.success && schemaResult.data) { + log('Transforming custom operations...'); + + // Transform to CleanOperation[] + const { queries: allQueries, mutations: allMutations, typeRegistry } = + transformSchemaToOperations(schemaResult.data); + + log(` Found ${allQueries.length} queries and ${allMutations.length} mutations total`); + + // Filter by config include/exclude + const filteredQueries = filterOperations( + allQueries, + config.queries.include, + config.queries.exclude + ); + const filteredMutations = filterOperations( + allMutations, + config.mutations.include, + config.mutations.exclude + ); + + log(` After config filtering: ${filteredQueries.length} queries, ${filteredMutations.length} mutations`); + + // Remove table operations (already handled by table generators) + const customQueriesOps = getCustomOperations(filteredQueries, tableOperationNames); + const customMutationsOps = getCustomOperations(filteredMutations, tableOperationNames); + + log(` Custom operations: ${customQueriesOps.length} queries, ${customMutationsOps.length} mutations`); + + customQueries = customQueriesOps.map((q) => q.name); + customMutations = customMutationsOps.map((m) => m.name); + + customOperationsData = { + queries: customQueriesOps, + mutations: customMutationsOps, + typeRegistry, + }; + } else { + log(` Warning: Could not fetch __schema: ${schemaResult.error}`); + log(' Continuing with table-only generation...'); + } + } + + // 7. Generate code + log('Generating code...'); + const { files: generatedFiles, stats } = generate({ + tables, + customOperations: customOperationsData, + config, + }); + + log(` Generated ${stats.queryHooks} table query hooks`); + log(` Generated ${stats.mutationHooks} table mutation hooks`); + log(` Generated ${stats.customQueryHooks} custom query hooks`); + log(` Generated ${stats.customMutationHooks} custom mutation hooks`); + log(` Total files: ${stats.totalFiles}`); + + if (options.dryRun) { + return { + success: true, + message: `Dry run complete. Would generate ${generatedFiles.length} files for ${tables.length} tables and ${customQueries.length + customMutations.length} custom operations.`, + tables: tables.map((t) => t.name), + customQueries, + customMutations, + filesWritten: generatedFiles.map((f) => f.path), + }; + } + + // 8. Write files + log('Writing files...'); + const writeResult = await writeGeneratedFiles( + generatedFiles, + config.output, + ['queries', 'mutations'] + ); + + if (!writeResult.success) { + return { + success: false, + message: `Failed to write files: ${writeResult.errors?.join(', ')}`, + errors: writeResult.errors, + }; + } + + const totalOps = customQueries.length + customMutations.length; + const customOpsMsg = totalOps > 0 ? ` and ${totalOps} custom operations` : ''; + + return { + success: true, + message: `Generated SDK for ${tables.length} tables${customOpsMsg}. Files written to ${config.output}`, + tables: tables.map((t) => t.name), + customQueries, + customMutations, + filesWritten: writeResult.filesWritten, + }; +} + +interface LoadConfigResult { + success: boolean; + config?: ResolvedConfig; + error?: string; +} + +async function loadConfig(options: GenerateOptions): Promise { + // Find config file + let configPath = options.config; + if (!configPath) { + configPath = findConfigFile() ?? undefined; + } + + let baseConfig: Partial = {}; + + if (configPath) { + const loadResult = await loadConfigFile(configPath); + if (!loadResult.success) { + return { success: false, error: loadResult.error }; + } + baseConfig = loadResult.config; + } + + // Override with CLI options + const mergedConfig: GraphQLSDKConfig = { + endpoint: options.endpoint || baseConfig.endpoint || '', + output: options.output || baseConfig.output, + headers: baseConfig.headers, + tables: baseConfig.tables, + queries: baseConfig.queries, + mutations: baseConfig.mutations, + excludeFields: baseConfig.excludeFields, + hooks: baseConfig.hooks, + postgraphile: baseConfig.postgraphile, + codegen: baseConfig.codegen, + }; + + if (!mergedConfig.endpoint) { + return { + success: false, + error: + 'No endpoint specified. Use --endpoint or create a config file with "graphql-codegen init".', + }; + } + + // Resolve with defaults + const config = resolveConfig(mergedConfig); + + return { success: true, config }; +} + +export interface GeneratedFile { + path: string; + content: string; +} + +export interface WriteResult { + success: boolean; + filesWritten?: string[]; + errors?: string[]; +} + +export async function writeGeneratedFiles( + files: GeneratedFile[], + outputDir: string, + subdirs: string[] +): Promise { + const errors: string[] = []; + const written: string[] = []; + + // Ensure output directory exists + try { + fs.mkdirSync(outputDir, { recursive: true }); + } catch (err) { + const message = err instanceof Error ? err.message : 'Unknown error'; + return { + success: false, + errors: [`Failed to create output directory: ${message}`], + }; + } + + // Create subdirectories + for (const subdir of subdirs) { + const subdirPath = path.join(outputDir, subdir); + try { + fs.mkdirSync(subdirPath, { recursive: true }); + } catch (err) { + const message = err instanceof Error ? err.message : 'Unknown error'; + errors.push(`Failed to create directory ${subdirPath}: ${message}`); + } + } + + if (errors.length > 0) { + return { success: false, errors }; + } + + for (const file of files) { + const filePath = path.join(outputDir, file.path); + + // Ensure parent directory exists + const parentDir = path.dirname(filePath); + try { + fs.mkdirSync(parentDir, { recursive: true }); + } catch { + // Ignore if already exists + } + + try { + // Format with prettier + const formattedContent = await formatCode(file.content); + fs.writeFileSync(filePath, formattedContent, 'utf-8'); + written.push(filePath); + } catch (err) { + const message = err instanceof Error ? err.message : 'Unknown error'; + errors.push(`Failed to write ${filePath}: ${message}`); + } + } + + return { + success: errors.length === 0, + filesWritten: written, + errors: errors.length > 0 ? errors : undefined, + }; +} + +async function formatCode(code: string): Promise { + try { + return await prettier.format(code, { + parser: 'typescript', + singleQuote: true, + trailingComma: 'es5', + tabWidth: 2, + }); + } catch { + // If prettier fails, return unformatted code + return code; + } +} diff --git a/graphql/codegen/src/cli/commands/index.ts b/graphql/codegen/src/cli/commands/index.ts new file mode 100644 index 000000000..52f3b0cd3 --- /dev/null +++ b/graphql/codegen/src/cli/commands/index.ts @@ -0,0 +1,9 @@ +/** + * CLI commands exports + */ + +export { initCommand, findConfigFile, loadConfigFile } from './init'; +export type { InitOptions, InitResult } from './init'; + +export { generateCommand } from './generate'; +export type { GenerateOptions, GenerateResult } from './generate'; diff --git a/graphql/codegen/src/cli/commands/init.ts b/graphql/codegen/src/cli/commands/init.ts new file mode 100644 index 000000000..197f31ea0 --- /dev/null +++ b/graphql/codegen/src/cli/commands/init.ts @@ -0,0 +1,176 @@ +/** + * Init command - creates a new graphql-codegen configuration file + */ +import * as fs from 'node:fs'; +import * as path from 'node:path'; +import { createJiti } from 'jiti'; + +export interface InitOptions { + /** Target directory for the config file */ + directory?: string; + /** Force overwrite existing config */ + force?: boolean; + /** GraphQL endpoint URL to pre-populate */ + endpoint?: string; + /** Output directory to pre-populate */ + output?: string; +} + +const CONFIG_FILENAME = 'graphql-codegen.config.ts'; + +const CONFIG_TEMPLATE = `import { defineConfig } from '@constructive-io/graphql-codegen'; + +export default defineConfig({ + // GraphQL endpoint URL (PostGraphile with _meta plugin) + endpoint: '{{ENDPOINT}}', + + // Output directory for generated files + output: '{{OUTPUT}}', + + // Optional: Tables to include/exclude (supports glob patterns) + // tables: { + // include: ['*'], + // exclude: ['_*', 'pg_*'], + // }, + + // Optional: Authorization header for authenticated endpoints + // headers: { + // Authorization: 'Bearer YOUR_TOKEN', + // }, + + // Optional: Watch mode settings (in-memory caching, no file I/O) + // watch: { + // pollInterval: 3000, // ms + // debounce: 800, // ms + // clearScreen: true, + // touchFile: '.trigger', // Optional: file to touch on change + // }, +}); +`; + +export interface InitResult { + success: boolean; + message: string; + configPath?: string; +} + +/** + * Execute the init command + */ +export async function initCommand(options: InitOptions = {}): Promise { + const { directory = process.cwd(), force = false, endpoint = '', output = './generated' } = options; + + const configPath = path.join(directory, CONFIG_FILENAME); + + // Check if config already exists + if (fs.existsSync(configPath) && !force) { + return { + success: false, + message: `Configuration file already exists: ${configPath}\nUse --force to overwrite.`, + }; + } + + // Generate config content + const content = CONFIG_TEMPLATE + .replace('{{ENDPOINT}}', endpoint || 'http://localhost:5000/graphql') + .replace('{{OUTPUT}}', output); + + try { + // Ensure directory exists + fs.mkdirSync(directory, { recursive: true }); + + // Write config file + fs.writeFileSync(configPath, content, 'utf-8'); + + return { + success: true, + message: `Created configuration file: ${configPath}`, + configPath, + }; + } catch (err) { + const message = err instanceof Error ? err.message : 'Unknown error'; + return { + success: false, + message: `Failed to create configuration file: ${message}`, + }; + } +} + +/** + * Find the nearest config file by walking up directories + */ +export function findConfigFile(startDir: string = process.cwd()): string | null { + let currentDir = startDir; + + while (true) { + const configPath = path.join(currentDir, CONFIG_FILENAME); + if (fs.existsSync(configPath)) { + return configPath; + } + + const parentDir = path.dirname(currentDir); + if (parentDir === currentDir) { + // Reached root + return null; + } + currentDir = parentDir; + } +} + +/** + * Load and validate a config file + * + * Uses jiti to support TypeScript config files (.ts) in addition to + * JavaScript (.js, .mjs, .cjs) without requiring the user to have + * tsx or ts-node installed. + */ +export async function loadConfigFile(configPath: string): Promise<{ + success: boolean; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + config?: any; + error?: string; +}> { + if (!fs.existsSync(configPath)) { + return { + success: false, + error: `Config file not found: ${configPath}`, + }; + } + + try { + // Use jiti to load TypeScript/ESM config files seamlessly + // jiti handles .ts, .js, .mjs, .cjs and ESM/CJS interop + const jiti = createJiti(import.meta.url, { + interopDefault: true, + debug: process.env.JITI_DEBUG === '1', + }); + + // jiti.import() with { default: true } returns mod?.default ?? mod + const config = await jiti.import(configPath, { default: true }); + + if (!config || typeof config !== 'object') { + return { + success: false, + error: 'Config file must export a configuration object', + }; + } + + if (!('endpoint' in config)) { + return { + success: false, + error: 'Config file missing required "endpoint" property', + }; + } + + return { + success: true, + config, + }; + } catch (err) { + const message = err instanceof Error ? err.message : 'Unknown error'; + return { + success: false, + error: `Failed to load config file: ${message}`, + }; + } +} diff --git a/graphql/codegen/src/cli/index.ts b/graphql/codegen/src/cli/index.ts new file mode 100644 index 000000000..36ff443d8 --- /dev/null +++ b/graphql/codegen/src/cli/index.ts @@ -0,0 +1,288 @@ +/** + * CLI entry point for graphql-codegen + */ + +import { Command } from 'commander'; + +import { initCommand, findConfigFile, loadConfigFile } from './commands/init'; +import { generateCommand } from './commands/generate'; +import { generateOrmCommand } from './commands/generate-orm'; +import { startWatch } from './watch'; +import { resolveConfig, type GraphQLSDKConfig, type ResolvedConfig } from '../types/config'; + +const program = new Command(); + +/** + * Load configuration for watch mode, merging CLI options with config file + */ +async function loadWatchConfig(options: { + config?: string; + endpoint?: string; + pollInterval?: number; + debounce?: number; + touch?: string; + clear?: boolean; +}): Promise { + // Find config file + let configPath = options.config; + if (!configPath) { + configPath = findConfigFile() ?? undefined; + } + + let baseConfig: Partial = {}; + + if (configPath) { + const loadResult = await loadConfigFile(configPath); + if (!loadResult.success) { + console.error('✗', loadResult.error); + return null; + } + baseConfig = loadResult.config; + } + + // Merge CLI options with config + const mergedConfig: GraphQLSDKConfig = { + endpoint: options.endpoint || baseConfig.endpoint || '', + output: baseConfig.output, + headers: baseConfig.headers, + tables: baseConfig.tables, + queries: baseConfig.queries, + mutations: baseConfig.mutations, + excludeFields: baseConfig.excludeFields, + hooks: baseConfig.hooks, + postgraphile: baseConfig.postgraphile, + codegen: baseConfig.codegen, + orm: baseConfig.orm, + watch: { + ...baseConfig.watch, + // CLI options override config + ...(options.pollInterval !== undefined && { pollInterval: options.pollInterval }), + ...(options.debounce !== undefined && { debounce: options.debounce }), + ...(options.touch !== undefined && { touchFile: options.touch }), + ...(options.clear !== undefined && { clearScreen: options.clear }), + }, + }; + + if (!mergedConfig.endpoint) { + console.error('✗ No endpoint specified. Use --endpoint or create a config file with "graphql-codegen init".'); + return null; + } + + return resolveConfig(mergedConfig); +} + +program + .name('graphql-codegen') + .description('CLI for generating GraphQL SDK from PostGraphile endpoints') + .version('2.17.48'); + +// Init command +program + .command('init') + .description('Initialize a new graphql-codegen configuration file') + .option('-d, --directory ', 'Target directory for the config file', '.') + .option('-f, --force', 'Force overwrite existing config', false) + .option('-e, --endpoint ', 'GraphQL endpoint URL to pre-populate') + .option('-o, --output ', 'Output directory to pre-populate', './generated') + .action(async (options) => { + const result = await initCommand({ + directory: options.directory, + force: options.force, + endpoint: options.endpoint, + output: options.output, + }); + + if (result.success) { + console.log('✓', result.message); + } else { + console.error('✗', result.message); + process.exit(1); + } + }); + +// Generate command +program + .command('generate') + .description('Generate SDK from GraphQL endpoint') + .option('-c, --config ', 'Path to config file') + .option('-e, --endpoint ', 'GraphQL endpoint URL (overrides config)') + .option('-o, --output ', 'Output directory (overrides config)') + .option('-a, --authorization
', 'Authorization header value') + .option('-v, --verbose', 'Verbose output', false) + .option('--dry-run', 'Dry run - show what would be generated without writing files', false) + .option('-w, --watch', 'Watch mode - poll endpoint for schema changes (in-memory)', false) + .option('--poll-interval ', 'Polling interval in milliseconds (default: 3000)', parseInt) + .option('--debounce ', 'Debounce delay before regenerating (default: 800)', parseInt) + .option('--touch ', 'File to touch on schema change') + .option('--no-clear', 'Do not clear terminal on regeneration') + .action(async (options) => { + // Watch mode + if (options.watch) { + const config = await loadWatchConfig(options); + if (!config) { + process.exit(1); + } + + await startWatch({ + config, + generatorType: 'generate', + verbose: options.verbose, + authorization: options.authorization, + outputDir: options.output, + }); + return; + } + + // Normal one-shot generation + const result = await generateCommand({ + config: options.config, + endpoint: options.endpoint, + output: options.output, + authorization: options.authorization, + verbose: options.verbose, + dryRun: options.dryRun, + }); + + if (result.success) { + console.log('✓', result.message); + if (result.tables && result.tables.length > 0) { + console.log('\nTables:'); + result.tables.forEach((t) => console.log(` - ${t}`)); + } + if (result.filesWritten && result.filesWritten.length > 0) { + console.log('\nFiles written:'); + result.filesWritten.forEach((f) => console.log(` - ${f}`)); + } + } else { + console.error('✗', result.message); + if (result.errors) { + result.errors.forEach((e) => console.error(' -', e)); + } + process.exit(1); + } + }); + +// Generate ORM command +program + .command('generate-orm') + .description('Generate Prisma-like ORM client from GraphQL endpoint') + .option('-c, --config ', 'Path to config file') + .option('-e, --endpoint ', 'GraphQL endpoint URL (overrides config)') + .option('-o, --output ', 'Output directory (overrides config)', './generated/orm') + .option('-a, --authorization
', 'Authorization header value') + .option('-v, --verbose', 'Verbose output', false) + .option('--dry-run', 'Dry run - show what would be generated without writing files', false) + .option('--skip-custom-operations', 'Skip custom operations (only generate table CRUD)', false) + .option('-w, --watch', 'Watch mode - poll endpoint for schema changes (in-memory)', false) + .option('--poll-interval ', 'Polling interval in milliseconds (default: 3000)', parseInt) + .option('--debounce ', 'Debounce delay before regenerating (default: 800)', parseInt) + .option('--touch ', 'File to touch on schema change') + .option('--no-clear', 'Do not clear terminal on regeneration') + .action(async (options) => { + // Watch mode + if (options.watch) { + const config = await loadWatchConfig(options); + if (!config) { + process.exit(1); + } + + await startWatch({ + config, + generatorType: 'generate-orm', + verbose: options.verbose, + authorization: options.authorization, + outputDir: options.output, + skipCustomOperations: options.skipCustomOperations, + }); + return; + } + + // Normal one-shot generation + const result = await generateOrmCommand({ + config: options.config, + endpoint: options.endpoint, + output: options.output, + authorization: options.authorization, + verbose: options.verbose, + dryRun: options.dryRun, + skipCustomOperations: options.skipCustomOperations, + }); + + if (result.success) { + console.log('✓', result.message); + if (result.tables && result.tables.length > 0) { + console.log('\nTables:'); + result.tables.forEach((t) => console.log(` - ${t}`)); + } + if (result.customQueries && result.customQueries.length > 0) { + console.log('\nCustom Queries:'); + result.customQueries.forEach((q) => console.log(` - ${q}`)); + } + if (result.customMutations && result.customMutations.length > 0) { + console.log('\nCustom Mutations:'); + result.customMutations.forEach((m) => console.log(` - ${m}`)); + } + if (result.filesWritten && result.filesWritten.length > 0) { + console.log('\nFiles written:'); + result.filesWritten.forEach((f) => console.log(` - ${f}`)); + } + } else { + console.error('✗', result.message); + if (result.errors) { + result.errors.forEach((e) => console.error(' -', e)); + } + process.exit(1); + } + }); + +// Introspect command (for debugging) +program + .command('introspect') + .description('Introspect a GraphQL endpoint and print table info') + .requiredOption('-e, --endpoint ', 'GraphQL endpoint URL') + .option('-a, --authorization
', 'Authorization header value') + .option('--json', 'Output as JSON', false) + .action(async (options) => { + const { fetchMeta, validateEndpoint } = await import('./introspect/fetch-meta'); + const { transformMetaToCleanTables, getTableNames } = await import('./introspect/transform'); + + // Validate endpoint + const validation = validateEndpoint(options.endpoint); + if (!validation.valid) { + console.error('✗ Invalid endpoint:', validation.error); + process.exit(1); + } + + console.log('Fetching schema from', options.endpoint, '...'); + + const result = await fetchMeta({ + endpoint: options.endpoint, + authorization: options.authorization, + }); + + if (!result.success) { + console.error('✗ Failed to fetch schema:', result.error); + process.exit(1); + } + + const tables = transformMetaToCleanTables(result.data!); + const tableNames = getTableNames(tables); + + if (options.json) { + console.log(JSON.stringify(tables, null, 2)); + } else { + console.log(`\n✓ Found ${tables.length} tables:\n`); + tableNames.forEach((name) => { + const table = tables.find((t) => t.name === name)!; + const fieldCount = table.fields.length; + const relationCount = + table.relations.belongsTo.length + + table.relations.hasOne.length + + table.relations.hasMany.length + + table.relations.manyToMany.length; + console.log(` ${name} (${fieldCount} fields, ${relationCount} relations)`); + }); + } + }); + +program.parse(); diff --git a/graphql/codegen/src/cli/introspect/fetch-meta.ts b/graphql/codegen/src/cli/introspect/fetch-meta.ts new file mode 100644 index 000000000..7e4f8894f --- /dev/null +++ b/graphql/codegen/src/cli/introspect/fetch-meta.ts @@ -0,0 +1,145 @@ +/** + * Fetch _meta query from a PostGraphile endpoint + */ +import { META_QUERY, type MetaQueryResponse } from './meta-query'; + +export interface FetchMetaOptions { + /** GraphQL endpoint URL */ + endpoint: string; + /** Optional authorization header value (e.g., "Bearer token") */ + authorization?: string; + /** Optional additional headers */ + headers?: Record; + /** Request timeout in milliseconds (default: 30000) */ + timeout?: number; +} + +export interface FetchMetaResult { + success: boolean; + data?: MetaQueryResponse; + error?: string; + statusCode?: number; +} + +/** + * Fetch the _meta query from a PostGraphile endpoint + */ +export async function fetchMeta( + options: FetchMetaOptions +): Promise { + const { endpoint, authorization, headers = {}, timeout = 30000 } = options; + + // Build headers + const requestHeaders: Record = { + 'Content-Type': 'application/json', + Accept: 'application/json', + ...headers, + }; + + if (authorization) { + requestHeaders['Authorization'] = authorization; + } + + // Create abort controller for timeout + const controller = new AbortController(); + const timeoutId = setTimeout(() => controller.abort(), timeout); + + try { + const response = await fetch(endpoint, { + method: 'POST', + headers: requestHeaders, + body: JSON.stringify({ + query: META_QUERY, + variables: {}, + }), + signal: controller.signal, + }); + + clearTimeout(timeoutId); + + if (!response.ok) { + return { + success: false, + error: `HTTP ${response.status}: ${response.statusText}`, + statusCode: response.status, + }; + } + + const json = (await response.json()) as { + data?: MetaQueryResponse; + errors?: Array<{ message: string }>; + }; + + // Check for GraphQL errors + if (json.errors && json.errors.length > 0) { + const errorMessages = json.errors.map((e) => e.message).join('; '); + return { + success: false, + error: `GraphQL errors: ${errorMessages}`, + statusCode: response.status, + }; + } + + // Check if _meta is present + if (!json.data?._meta) { + return { + success: false, + error: + 'No _meta field in response. Make sure the endpoint has the PostGraphile meta plugin installed.', + statusCode: response.status, + }; + } + + return { + success: true, + data: json.data, + statusCode: response.status, + }; + } catch (err) { + clearTimeout(timeoutId); + + if (err instanceof Error) { + if (err.name === 'AbortError') { + return { + success: false, + error: `Request timeout after ${timeout}ms`, + }; + } + return { + success: false, + error: err.message, + }; + } + + return { + success: false, + error: 'Unknown error occurred', + }; + } +} + +/** + * Validate that an endpoint URL is valid + */ +export function validateEndpoint(endpoint: string): { + valid: boolean; + error?: string; +} { + try { + const url = new URL(endpoint); + + if (!['http:', 'https:'].includes(url.protocol)) { + return { + valid: false, + error: 'Endpoint must use http or https protocol', + }; + } + + return { valid: true }; + } catch { + return { + valid: false, + error: 'Invalid URL format', + }; + } +} diff --git a/graphql/codegen/src/cli/introspect/fetch-schema.ts b/graphql/codegen/src/cli/introspect/fetch-schema.ts new file mode 100644 index 000000000..3002ac944 --- /dev/null +++ b/graphql/codegen/src/cli/introspect/fetch-schema.ts @@ -0,0 +1,119 @@ +/** + * Fetch GraphQL schema introspection from an endpoint + */ +import { SCHEMA_INTROSPECTION_QUERY } from './schema-query'; +import type { IntrospectionQueryResponse } from '../../types/introspection'; + +export interface FetchSchemaOptions { + /** GraphQL endpoint URL */ + endpoint: string; + /** Optional authorization header value (e.g., "Bearer token") */ + authorization?: string; + /** Optional additional headers */ + headers?: Record; + /** Request timeout in milliseconds (default: 30000) */ + timeout?: number; +} + +export interface FetchSchemaResult { + success: boolean; + data?: IntrospectionQueryResponse; + error?: string; + statusCode?: number; +} + +/** + * Fetch the full schema introspection from a GraphQL endpoint + */ +export async function fetchSchema( + options: FetchSchemaOptions +): Promise { + const { endpoint, authorization, headers = {}, timeout = 30000 } = options; + + // Build headers + const requestHeaders: Record = { + 'Content-Type': 'application/json', + Accept: 'application/json', + ...headers, + }; + + if (authorization) { + requestHeaders['Authorization'] = authorization; + } + + // Create abort controller for timeout + const controller = new AbortController(); + const timeoutId = setTimeout(() => controller.abort(), timeout); + + try { + const response = await fetch(endpoint, { + method: 'POST', + headers: requestHeaders, + body: JSON.stringify({ + query: SCHEMA_INTROSPECTION_QUERY, + variables: {}, + }), + signal: controller.signal, + }); + + clearTimeout(timeoutId); + + if (!response.ok) { + return { + success: false, + error: `HTTP ${response.status}: ${response.statusText}`, + statusCode: response.status, + }; + } + + const json = (await response.json()) as { + data?: IntrospectionQueryResponse; + errors?: Array<{ message: string }>; + }; + + // Check for GraphQL errors + if (json.errors && json.errors.length > 0) { + const errorMessages = json.errors.map((e) => e.message).join('; '); + return { + success: false, + error: `GraphQL errors: ${errorMessages}`, + statusCode: response.status, + }; + } + + // Check if __schema is present + if (!json.data?.__schema) { + return { + success: false, + error: 'No __schema field in response. Introspection may be disabled on this endpoint.', + statusCode: response.status, + }; + } + + return { + success: true, + data: json.data, + statusCode: response.status, + }; + } catch (err) { + clearTimeout(timeoutId); + + if (err instanceof Error) { + if (err.name === 'AbortError') { + return { + success: false, + error: `Request timeout after ${timeout}ms`, + }; + } + return { + success: false, + error: err.message, + }; + } + + return { + success: false, + error: 'Unknown error occurred', + }; + } +} diff --git a/graphql/codegen/src/cli/introspect/index.ts b/graphql/codegen/src/cli/introspect/index.ts new file mode 100644 index 000000000..c5c24b1fc --- /dev/null +++ b/graphql/codegen/src/cli/introspect/index.ts @@ -0,0 +1,29 @@ +/** + * Introspection module exports + */ + +export { META_QUERY } from './meta-query'; +export type { + MetaQueryResponse, + MetaTable, + MetaField, + MetaFieldType, + MetaConstraint, + MetaForeignKeyConstraint, + MetaTableQuery, + MetaTableInflection, + MetaBelongsToRelation, + MetaHasRelation, + MetaManyToManyRelation, + MetaTableRelations, +} from './meta-query'; + +export { fetchMeta, validateEndpoint } from './fetch-meta'; +export type { FetchMetaOptions, FetchMetaResult } from './fetch-meta'; + +export { + transformMetaToCleanTables, + getTableNames, + findTable, + filterTables, +} from './transform'; diff --git a/graphql/codegen/src/cli/introspect/meta-query.ts b/graphql/codegen/src/cli/introspect/meta-query.ts new file mode 100644 index 000000000..24c44eea8 --- /dev/null +++ b/graphql/codegen/src/cli/introspect/meta-query.ts @@ -0,0 +1,297 @@ +/** + * The _meta GraphQL query for introspecting PostGraphile schema + * This query fetches all table metadata including fields, constraints, and relations + */ + +export const META_QUERY = ` +query Meta { + _meta { + tables { + name + query { + all + create + delete + one + update + } + fields { + name + type { + gqlType + isArray + modifier + pgAlias + pgType + subtype + typmod + } + } + inflection { + allRows + allRowsSimple + conditionType + connection + createField + createInputType + createPayloadType + deleteByPrimaryKey + deletePayloadType + edge + edgeField + enumType + filterType + inputType + orderByType + patchField + patchType + tableFieldName + tableType + typeName + updateByPrimaryKey + updatePayloadType + } + primaryKeyConstraints { + name + fields { + name + type { + gqlType + isArray + modifier + pgAlias + pgType + subtype + typmod + } + } + } + uniqueConstraints { + name + fields { + name + type { + gqlType + isArray + modifier + pgAlias + pgType + subtype + typmod + } + } + } + foreignKeyConstraints { + name + fields { + name + type { + gqlType + isArray + modifier + pgAlias + pgType + subtype + typmod + } + } + refFields { + name + type { + gqlType + isArray + modifier + pgAlias + pgType + subtype + typmod + } + } + refTable { + name + } + } + relations { + belongsTo { + fieldName + isUnique + keys { + name + type { + gqlType + isArray + modifier + pgAlias + pgType + subtype + typmod + } + } + references { + name + } + type + } + hasOne { + fieldName + isUnique + keys { + name + type { + gqlType + isArray + modifier + pgAlias + pgType + subtype + typmod + } + } + referencedBy { + name + } + type + } + hasMany { + fieldName + isUnique + keys { + name + type { + gqlType + isArray + modifier + pgAlias + pgType + subtype + typmod + } + } + referencedBy { + name + } + type + } + manyToMany { + fieldName + junctionTable { + name + } + rightTable { + name + } + type + } + } + } + } +} +`; + +/** + * Types for the _meta query response + */ +export interface MetaFieldType { + gqlType: string; + isArray: boolean; + modifier: string | number | null; + pgAlias: string | null; + pgType: string | null; + subtype: string | null; + typmod: number | null; +} + +export interface MetaField { + name: string; + type: MetaFieldType; +} + +export interface MetaConstraint { + name: string; + fields: MetaField[]; +} + +export interface MetaForeignKeyConstraint extends MetaConstraint { + refFields: MetaField[]; + refTable: { name: string }; +} + +export interface MetaTableQuery { + all: string; + create: string; + delete: string | null; + one: string; + update: string | null; +} + +export interface MetaTableInflection { + allRows: string; + allRowsSimple: string; + conditionType: string; + connection: string; + createField: string; + createInputType: string; + createPayloadType: string; + deleteByPrimaryKey: string | null; + deletePayloadType: string; + edge: string; + edgeField: string; + enumType: string; + filterType: string | null; + inputType: string; + orderByType: string; + patchField: string; + patchType: string | null; + tableFieldName: string; + tableType: string; + typeName: string; + updateByPrimaryKey: string | null; + updatePayloadType: string | null; +} + +export interface MetaBelongsToRelation { + fieldName: string | null; + isUnique: boolean; + keys: MetaField[]; + references: { name: string }; + type: string | null; +} + +export interface MetaHasRelation { + fieldName: string | null; + isUnique: boolean; + keys: MetaField[]; + referencedBy: { name: string }; + type: string | null; +} + +export interface MetaManyToManyRelation { + fieldName: string | null; + junctionTable: { name: string }; + rightTable: { name: string }; + type: string | null; +} + +export interface MetaTableRelations { + belongsTo: MetaBelongsToRelation[]; + hasOne: MetaHasRelation[]; + hasMany: MetaHasRelation[]; + manyToMany: MetaManyToManyRelation[]; +} + +export interface MetaTable { + name: string; + query: MetaTableQuery; + fields: MetaField[]; + inflection: MetaTableInflection; + primaryKeyConstraints: MetaConstraint[]; + uniqueConstraints: MetaConstraint[]; + foreignKeyConstraints: MetaForeignKeyConstraint[]; + relations: MetaTableRelations; +} + +export interface MetaQueryResponse { + _meta: { + tables: MetaTable[]; + }; +} diff --git a/graphql/codegen/src/cli/introspect/schema-query.ts b/graphql/codegen/src/cli/introspect/schema-query.ts new file mode 100644 index 000000000..6cdf5dbfa --- /dev/null +++ b/graphql/codegen/src/cli/introspect/schema-query.ts @@ -0,0 +1,126 @@ +/** + * GraphQL Schema Introspection Query + * + * Full introspection query that captures all queries, mutations, and types + * from a GraphQL endpoint via the standard __schema query. + */ + +import type { IntrospectionQueryResponse } from '../../types/introspection'; + +/** + * Full schema introspection query + * + * Captures: + * - All Query fields with args and return types + * - All Mutation fields with args and return types + * - All types (OBJECT, INPUT_OBJECT, ENUM, SCALAR) for resolution + * + * Uses a recursive TypeRef fragment to handle deeply nested type wrappers + * (e.g., [String!]! = NON_NULL(LIST(NON_NULL(SCALAR)))) + */ +export const SCHEMA_INTROSPECTION_QUERY = ` +query IntrospectSchema { + __schema { + queryType { + name + } + mutationType { + name + } + subscriptionType { + name + } + types { + kind + name + description + fields(includeDeprecated: true) { + name + description + args { + name + description + type { + ...TypeRef + } + defaultValue + } + type { + ...TypeRef + } + isDeprecated + deprecationReason + } + inputFields { + name + description + type { + ...TypeRef + } + defaultValue + } + interfaces { + name + } + enumValues(includeDeprecated: true) { + name + description + isDeprecated + deprecationReason + } + possibleTypes { + name + } + } + directives { + name + description + locations + args { + name + description + type { + ...TypeRef + } + defaultValue + } + } + } +} + +fragment TypeRef on __Type { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + } + } + } + } + } + } + } +} +`; + +// Re-export the response type for convenience +export type { IntrospectionQueryResponse }; diff --git a/graphql/codegen/src/cli/introspect/transform-schema.test.ts b/graphql/codegen/src/cli/introspect/transform-schema.test.ts new file mode 100644 index 000000000..3a23545ac --- /dev/null +++ b/graphql/codegen/src/cli/introspect/transform-schema.test.ts @@ -0,0 +1,79 @@ +// Jest globals - no import needed + +import { + getTableOperationNames, + getCustomOperations, + isTableOperation, +} from './transform-schema'; +import type { CleanOperation, CleanTypeRef } from '../../types/schema'; + +describe('transform-schema table operation filtering', () => { + const dummyReturnType: CleanTypeRef = { kind: 'SCALAR', name: 'String' }; + + it('detects table operations and update/delete patterns', () => { + const tableOps = getTableOperationNames([ + { + name: 'User', + query: { + all: 'users', + one: 'user', + create: 'createUser', + update: 'updateUser', + delete: 'deleteUser', + }, + inflection: { tableType: 'User' }, + }, + ]); + + const updateByEmail: CleanOperation = { + name: 'updateUserByEmail', + kind: 'mutation', + args: [], + returnType: dummyReturnType, + }; + + const login: CleanOperation = { + name: 'login', + kind: 'mutation', + args: [], + returnType: dummyReturnType, + }; + + expect(isTableOperation(updateByEmail, tableOps)).toBe(true); + expect(isTableOperation(login, tableOps)).toBe(false); + }); + + it('filters out table operations from custom list', () => { + const tableOps = getTableOperationNames([ + { + name: 'User', + query: { + all: 'users', + one: 'user', + create: 'createUser', + update: 'updateUser', + delete: 'deleteUser', + }, + inflection: { tableType: 'User' }, + }, + ]); + + const operations: CleanOperation[] = [ + { + name: 'users', + kind: 'query', + args: [], + returnType: dummyReturnType, + }, + { + name: 'login', + kind: 'mutation', + args: [], + returnType: dummyReturnType, + }, + ]; + + const customOps = getCustomOperations(operations, tableOps); + expect(customOps.map((op) => op.name)).toEqual(['login']); + }); +}); diff --git a/graphql/codegen/src/cli/introspect/transform-schema.ts b/graphql/codegen/src/cli/introspect/transform-schema.ts new file mode 100644 index 000000000..e0f12a850 --- /dev/null +++ b/graphql/codegen/src/cli/introspect/transform-schema.ts @@ -0,0 +1,380 @@ +/** + * Transform GraphQL introspection data to clean operation types + * + * This module converts raw introspection responses into the CleanOperation + * format used by code generators. + */ +import type { + IntrospectionQueryResponse, + IntrospectionType, + IntrospectionField, + IntrospectionTypeRef, + IntrospectionInputValue, +} from '../../types/introspection'; +import { + unwrapType, + getBaseTypeName, + isNonNull, +} from '../../types/introspection'; +import type { + CleanOperation, + CleanArgument, + CleanTypeRef, + CleanObjectField, + TypeRegistry, + ResolvedType, +} from '../../types/schema'; + +// ============================================================================ +// Type Registry Builder +// ============================================================================ + +/** + * Build a type registry from introspection types + * Maps type names to their full resolved definitions + * + * This is a two-pass process to handle circular references: + * 1. First pass: Create all type entries with basic info + * 2. Second pass: Resolve fields with references to other types + */ +export function buildTypeRegistry( + types: IntrospectionType[] +): TypeRegistry { + const registry: TypeRegistry = new Map(); + + // First pass: Create all type entries + for (const type of types) { + // Skip built-in types that start with __ + if (type.name.startsWith('__')) continue; + + const resolvedType: ResolvedType = { + kind: type.kind as ResolvedType['kind'], + name: type.name, + description: type.description ?? undefined, + }; + + // Resolve enum values for ENUM types (no circular refs possible) + if (type.kind === 'ENUM' && type.enumValues) { + resolvedType.enumValues = type.enumValues.map((ev) => ev.name); + } + + registry.set(type.name, resolvedType); + } + + // Second pass: Resolve fields (now that all types exist in registry) + for (const type of types) { + if (type.name.startsWith('__')) continue; + + const resolvedType = registry.get(type.name); + if (!resolvedType) continue; + + // Resolve fields for OBJECT types + if (type.kind === 'OBJECT' && type.fields) { + resolvedType.fields = type.fields.map((field) => + transformFieldToCleanObjectFieldShallow(field) + ); + } + + // Resolve input fields for INPUT_OBJECT types + if (type.kind === 'INPUT_OBJECT' && type.inputFields) { + resolvedType.inputFields = type.inputFields.map((field) => + transformInputValueToCleanArgumentShallow(field) + ); + } + } + + return registry; +} + +/** + * Transform field to CleanObjectField without resolving nested types + * (shallow transformation to avoid circular refs) + */ +function transformFieldToCleanObjectFieldShallow( + field: IntrospectionField +): CleanObjectField { + return { + name: field.name, + type: transformTypeRefShallow(field.type), + description: field.description ?? undefined, + }; +} + +/** + * Transform input value to CleanArgument without resolving nested types + */ +function transformInputValueToCleanArgumentShallow( + inputValue: IntrospectionInputValue +): CleanArgument { + return { + name: inputValue.name, + type: transformTypeRefShallow(inputValue.type), + defaultValue: inputValue.defaultValue ?? undefined, + description: inputValue.description ?? undefined, + }; +} + +/** + * Transform TypeRef without resolving nested types + * Only handles wrappers (LIST, NON_NULL) and stores the type name + */ +function transformTypeRefShallow(typeRef: IntrospectionTypeRef): CleanTypeRef { + const cleanRef: CleanTypeRef = { + kind: typeRef.kind as CleanTypeRef['kind'], + name: typeRef.name, + }; + + if (typeRef.ofType) { + cleanRef.ofType = transformTypeRefShallow(typeRef.ofType); + } + + return cleanRef; +} + +// ============================================================================ +// Schema Transformation +// ============================================================================ + +export interface TransformSchemaResult { + queries: CleanOperation[]; + mutations: CleanOperation[]; + typeRegistry: TypeRegistry; +} + +/** + * Transform introspection response to clean operations + */ +export function transformSchemaToOperations( + response: IntrospectionQueryResponse +): TransformSchemaResult { + const { __schema: schema } = response; + const { types, queryType, mutationType } = schema; + + // Build type registry first + const typeRegistry = buildTypeRegistry(types); + + // Find Query and Mutation types + const queryTypeDef = types.find((t) => t.name === queryType.name); + const mutationTypeDef = mutationType + ? types.find((t) => t.name === mutationType.name) + : null; + + // Transform queries + const queries: CleanOperation[] = queryTypeDef?.fields + ? queryTypeDef.fields.map((field) => + transformFieldToCleanOperation(field, 'query', types) + ) + : []; + + // Transform mutations + const mutations: CleanOperation[] = mutationTypeDef?.fields + ? mutationTypeDef.fields.map((field) => + transformFieldToCleanOperation(field, 'mutation', types) + ) + : []; + + return { queries, mutations, typeRegistry }; +} + +// ============================================================================ +// Field to Operation Transformation +// ============================================================================ + +/** + * Transform an introspection field to a CleanOperation + */ +function transformFieldToCleanOperation( + field: IntrospectionField, + kind: 'query' | 'mutation', + types: IntrospectionType[] +): CleanOperation { + return { + name: field.name, + kind, + args: field.args.map((arg) => transformInputValueToCleanArgument(arg, types)), + returnType: transformTypeRefToCleanTypeRef(field.type, types), + description: field.description ?? undefined, + isDeprecated: field.isDeprecated, + deprecationReason: field.deprecationReason ?? undefined, + }; +} + +/** + * Transform an input value to CleanArgument + */ +function transformInputValueToCleanArgument( + inputValue: IntrospectionInputValue, + types: IntrospectionType[] +): CleanArgument { + return { + name: inputValue.name, + type: transformTypeRefToCleanTypeRef(inputValue.type, types), + defaultValue: inputValue.defaultValue ?? undefined, + description: inputValue.description ?? undefined, + }; +} + +// ============================================================================ +// Type Reference Transformation +// ============================================================================ + +/** + * Transform an introspection TypeRef to CleanTypeRef + * Recursively handles wrapper types (LIST, NON_NULL) + * + * NOTE: We intentionally do NOT resolve nested fields here to avoid + * infinite recursion from circular type references. Fields are resolved + * lazily via the TypeRegistry when needed for code generation. + */ +function transformTypeRefToCleanTypeRef( + typeRef: IntrospectionTypeRef, + types: IntrospectionType[] +): CleanTypeRef { + const cleanRef: CleanTypeRef = { + kind: typeRef.kind as CleanTypeRef['kind'], + name: typeRef.name, + }; + + // Recursively transform ofType for wrappers (LIST, NON_NULL) + if (typeRef.ofType) { + cleanRef.ofType = transformTypeRefToCleanTypeRef(typeRef.ofType, types); + } + + // For named types, only resolve enum values (they don't have circular refs) + // Fields are NOT resolved here - they're resolved via TypeRegistry during codegen + if (typeRef.name && !typeRef.ofType) { + const typeDef = types.find((t) => t.name === typeRef.name); + if (typeDef) { + // Add enum values for ENUM types (safe, no recursion) + if (typeDef.kind === 'ENUM' && typeDef.enumValues) { + cleanRef.enumValues = typeDef.enumValues.map((ev) => ev.name); + } + // NOTE: OBJECT and INPUT_OBJECT fields are resolved via TypeRegistry + // to avoid circular reference issues + } + } + + return cleanRef; +} + +// ============================================================================ +// Operation Filtering +// ============================================================================ + +/** + * Filter operations by include/exclude patterns + * Uses glob-like patterns (supports * wildcard) + */ +export function filterOperations( + operations: CleanOperation[], + include?: string[], + exclude?: string[] +): CleanOperation[] { + let result = operations; + + if (include && include.length > 0) { + result = result.filter((op) => matchesPatterns(op.name, include)); + } + + if (exclude && exclude.length > 0) { + result = result.filter((op) => !matchesPatterns(op.name, exclude)); + } + + return result; +} + +/** + * Check if a name matches any of the patterns + * Supports simple glob patterns with * wildcard + */ +function matchesPatterns(name: string, patterns: string[]): boolean { + return patterns.some((pattern) => { + if (pattern === '*') return true; + if (pattern.includes('*')) { + const regex = new RegExp( + '^' + pattern.replace(/\*/g, '.*').replace(/\?/g, '.') + '$' + ); + return regex.test(name); + } + return name === pattern; + }); +} + +// ============================================================================ +// Utility Functions +// ============================================================================ + +/** + * Get the set of table-related operation names from tables + * Used to identify which operations are already covered by table generators + * + * This includes: + * - Basic CRUD: all, one, create, update, delete + * - PostGraphile alternate mutations: updateXByY, deleteXByY (for unique constraints) + */ +export function getTableOperationNames( + tables: Array<{ + name: string; + query?: { all: string; one: string; create: string; update: string | null; delete: string | null }; + inflection?: { tableType: string }; + }> +): { queries: Set; mutations: Set; tableTypePatterns: RegExp[] } { + const queries = new Set(); + const mutations = new Set(); + const tableTypePatterns: RegExp[] = []; + + for (const table of tables) { + if (table.query) { + queries.add(table.query.all); + queries.add(table.query.one); + mutations.add(table.query.create); + if (table.query.update) mutations.add(table.query.update); + if (table.query.delete) mutations.add(table.query.delete); + } + + // Create patterns to match alternate CRUD mutations (updateXByY, deleteXByY) + if (table.inflection?.tableType) { + const typeName = table.inflection.tableType; + // Match: update{TypeName}By*, delete{TypeName}By* + tableTypePatterns.push(new RegExp(`^update${typeName}By`, 'i')); + tableTypePatterns.push(new RegExp(`^delete${typeName}By`, 'i')); + } + } + + return { queries, mutations, tableTypePatterns }; +} + +/** + * Check if an operation is a table operation (already handled by table generators) + */ +export function isTableOperation( + operation: CleanOperation, + tableOperationNames: { queries: Set; mutations: Set; tableTypePatterns: RegExp[] } +): boolean { + if (operation.kind === 'query') { + return tableOperationNames.queries.has(operation.name); + } + + // Check exact match first + if (tableOperationNames.mutations.has(operation.name)) { + return true; + } + + // Check pattern match for alternate CRUD mutations (updateXByY, deleteXByY) + return tableOperationNames.tableTypePatterns.some((pattern) => + pattern.test(operation.name) + ); +} + +/** + * Get only custom operations (not covered by table generators) + */ +export function getCustomOperations( + operations: CleanOperation[], + tableOperationNames: { queries: Set; mutations: Set; tableTypePatterns: RegExp[] } +): CleanOperation[] { + return operations.filter((op) => !isTableOperation(op, tableOperationNames)); +} + +// Re-export utility functions from introspection types +export { unwrapType, getBaseTypeName, isNonNull }; diff --git a/graphql/codegen/src/cli/introspect/transform.ts b/graphql/codegen/src/cli/introspect/transform.ts new file mode 100644 index 000000000..026d372c8 --- /dev/null +++ b/graphql/codegen/src/cli/introspect/transform.ts @@ -0,0 +1,277 @@ +/** + * Transform _meta query response to CleanTable[] format + */ +import type { + CleanTable, + CleanField, + CleanFieldType, + CleanRelations, + CleanBelongsToRelation, + CleanHasOneRelation, + CleanHasManyRelation, + CleanManyToManyRelation, + TableInflection, + TableQueryNames, + TableConstraints, + ConstraintInfo, + ForeignKeyConstraint, +} from '../../types/schema'; + +import type { + MetaQueryResponse, + MetaTable, + MetaField, + MetaFieldType, + MetaConstraint, + MetaForeignKeyConstraint, + MetaBelongsToRelation, + MetaHasRelation, + MetaManyToManyRelation, +} from './meta-query'; + +/** + * Transform _meta response to CleanTable array + */ +export function transformMetaToCleanTables( + metaResponse: MetaQueryResponse +): CleanTable[] { + const { tables } = metaResponse._meta; + + return tables.map((table) => transformTable(table)); +} + +/** + * Transform a single MetaTable to CleanTable + */ +function transformTable(table: MetaTable): CleanTable { + return { + name: table.name, + fields: transformFields(table.fields), + relations: transformRelations(table.relations), + inflection: transformInflection(table.inflection), + query: transformQuery(table.query), + constraints: transformConstraints(table), + }; +} + +/** + * Transform MetaField[] to CleanField[] + */ +function transformFields(fields: MetaField[]): CleanField[] { + return fields.map((field) => ({ + name: field.name, + type: transformFieldType(field.type), + })); +} + +/** + * Transform MetaFieldType to CleanFieldType + */ +function transformFieldType(type: MetaFieldType): CleanFieldType { + return { + gqlType: type.gqlType, + isArray: type.isArray, + modifier: type.modifier, + pgAlias: type.pgAlias, + pgType: type.pgType, + subtype: type.subtype, + typmod: type.typmod, + }; +} + +/** + * Transform table relations + */ +function transformRelations(relations: MetaTable['relations']): CleanRelations { + return { + belongsTo: relations.belongsTo.map(transformBelongsTo), + hasOne: relations.hasOne.map(transformHasOne), + hasMany: relations.hasMany.map(transformHasMany), + manyToMany: relations.manyToMany.map(transformManyToMany), + }; +} + +/** + * Transform belongsTo relation + */ +function transformBelongsTo(rel: MetaBelongsToRelation): CleanBelongsToRelation { + return { + fieldName: rel.fieldName, + isUnique: rel.isUnique, + referencesTable: rel.references.name, + type: rel.type, + keys: transformFields(rel.keys), + }; +} + +/** + * Transform hasOne relation + */ +function transformHasOne(rel: MetaHasRelation): CleanHasOneRelation { + return { + fieldName: rel.fieldName, + isUnique: rel.isUnique, + referencedByTable: rel.referencedBy.name, + type: rel.type, + keys: transformFields(rel.keys), + }; +} + +/** + * Transform hasMany relation + */ +function transformHasMany(rel: MetaHasRelation): CleanHasManyRelation { + return { + fieldName: rel.fieldName, + isUnique: rel.isUnique, + referencedByTable: rel.referencedBy.name, + type: rel.type, + keys: transformFields(rel.keys), + }; +} + +/** + * Transform manyToMany relation + */ +function transformManyToMany(rel: MetaManyToManyRelation): CleanManyToManyRelation { + return { + fieldName: rel.fieldName, + rightTable: rel.rightTable.name, + junctionTable: rel.junctionTable.name, + type: rel.type, + }; +} + +/** + * Transform inflection data + */ +function transformInflection( + inflection: MetaTable['inflection'] +): TableInflection { + return { + allRows: inflection.allRows, + allRowsSimple: inflection.allRowsSimple, + conditionType: inflection.conditionType, + connection: inflection.connection, + createField: inflection.createField, + createInputType: inflection.createInputType, + createPayloadType: inflection.createPayloadType, + deleteByPrimaryKey: inflection.deleteByPrimaryKey, + deletePayloadType: inflection.deletePayloadType, + edge: inflection.edge, + edgeField: inflection.edgeField, + enumType: inflection.enumType, + filterType: inflection.filterType, + inputType: inflection.inputType, + orderByType: inflection.orderByType, + patchField: inflection.patchField, + patchType: inflection.patchType, + tableFieldName: inflection.tableFieldName, + tableType: inflection.tableType, + typeName: inflection.typeName, + updateByPrimaryKey: inflection.updateByPrimaryKey, + updatePayloadType: inflection.updatePayloadType, + }; +} + +/** + * Transform query names + */ +function transformQuery(query: MetaTable['query']): TableQueryNames { + return { + all: query.all, + one: query.one, + create: query.create, + update: query.update, + delete: query.delete, + }; +} + +/** + * Transform constraints + */ +function transformConstraints(table: MetaTable): TableConstraints { + return { + primaryKey: table.primaryKeyConstraints.map(transformConstraint), + foreignKey: table.foreignKeyConstraints.map(transformForeignKeyConstraint), + unique: table.uniqueConstraints.map(transformConstraint), + }; +} + +/** + * Transform a basic constraint + */ +function transformConstraint(constraint: MetaConstraint): ConstraintInfo { + return { + name: constraint.name, + fields: transformFields(constraint.fields), + }; +} + +/** + * Transform a foreign key constraint + */ +function transformForeignKeyConstraint( + constraint: MetaForeignKeyConstraint +): ForeignKeyConstraint { + return { + name: constraint.name, + fields: transformFields(constraint.fields), + refTable: constraint.refTable.name, + refFields: transformFields(constraint.refFields), + }; +} + +/** + * Get table names from CleanTable array + */ +export function getTableNames(tables: CleanTable[]): string[] { + return tables.map((t) => t.name); +} + +/** + * Find a table by name + */ +export function findTable( + tables: CleanTable[], + name: string +): CleanTable | undefined { + return tables.find((t) => t.name === name); +} + +/** + * Filter tables by name pattern (glob-like) + */ +export function filterTables( + tables: CleanTable[], + include?: string[], + exclude?: string[] +): CleanTable[] { + let result = tables; + + if (include && include.length > 0) { + result = result.filter((t) => matchesPatterns(t.name, include)); + } + + if (exclude && exclude.length > 0) { + result = result.filter((t) => !matchesPatterns(t.name, exclude)); + } + + return result; +} + +/** + * Check if a name matches any of the patterns + * Supports simple glob patterns with * wildcard + */ +function matchesPatterns(name: string, patterns: string[]): boolean { + return patterns.some((pattern) => { + if (pattern.includes('*')) { + const regex = new RegExp( + '^' + pattern.replace(/\*/g, '.*').replace(/\?/g, '.') + '$' + ); + return regex.test(name); + } + return name === pattern; + }); +} diff --git a/graphql/codegen/src/cli/watch/cache.ts b/graphql/codegen/src/cli/watch/cache.ts new file mode 100644 index 000000000..a3f1eb278 --- /dev/null +++ b/graphql/codegen/src/cli/watch/cache.ts @@ -0,0 +1,89 @@ +/** + * In-memory schema cache for watch mode + * + * Only stores the hash in memory - no file I/O during normal operation. + * Touch file feature is optional and only writes when explicitly configured. + */ + +import * as fs from 'node:fs'; +import * as path from 'node:path'; +import type { MetaQueryResponse } from '../introspect/meta-query'; +import type { IntrospectionQueryResponse } from '../../types/introspection'; +import { hashObject, combineHashes } from './hash'; + +/** + * Lightweight in-memory schema cache + * Only stores the combined hash string to detect changes + */ +export class SchemaCache { + /** Current schema hash (in-memory only) */ + private currentHash: string | null = null; + + /** + * Check if schema has changed by comparing hashes + * This is the hot path - must be efficient + */ + async hasChanged( + meta: MetaQueryResponse, + schema: IntrospectionQueryResponse + ): Promise<{ changed: boolean; newHash: string }> { + const newHash = await this.computeHash(meta, schema); + const changed = this.currentHash === null || this.currentHash !== newHash; + return { changed, newHash }; + } + + /** + * Update the cached hash (call after successful regeneration) + */ + updateHash(hash: string): void { + this.currentHash = hash; + } + + /** + * Get the current cached hash + */ + getHash(): string | null { + return this.currentHash; + } + + /** + * Clear the cached hash + */ + clear(): void { + this.currentHash = null; + } + + /** + * Compute hash from meta and schema responses + */ + private async computeHash( + meta: MetaQueryResponse, + schema: IntrospectionQueryResponse + ): Promise { + // Hash each response separately then combine + // This is more efficient than stringifying both together + const metaHash = await hashObject(meta); + const schemaHash = await hashObject(schema); + return combineHashes(metaHash, schemaHash); + } +} + +/** + * Touch a file to signal schema change (for external tools like tsc/webpack) + * This is the only file I/O in watch mode, and it's optional. + */ +export function touchFile(filePath: string): void { + // Ensure parent directory exists + const dir = path.dirname(filePath); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }); + } + + // Touch the file (create if doesn't exist, update mtime if it does) + const time = new Date(); + try { + fs.utimesSync(filePath, time, time); + } catch { + fs.closeSync(fs.openSync(filePath, 'w')); + } +} diff --git a/graphql/codegen/src/cli/watch/debounce.ts b/graphql/codegen/src/cli/watch/debounce.ts new file mode 100644 index 000000000..93d06a21f --- /dev/null +++ b/graphql/codegen/src/cli/watch/debounce.ts @@ -0,0 +1,111 @@ +/** + * Debounce utility for regeneration + */ + +/** + * Creates a debounced function that delays invoking func until after wait milliseconds + * have elapsed since the last time the debounced function was invoked. + */ +export function debounce unknown>( + func: T, + wait: number +): { + (...args: Parameters): void; + cancel: () => void; + flush: () => void; +} { + let timeoutId: ReturnType | null = null; + let lastArgs: Parameters | null = null; + + const debounced = (...args: Parameters): void => { + lastArgs = args; + + if (timeoutId) { + clearTimeout(timeoutId); + } + + timeoutId = setTimeout(() => { + timeoutId = null; + if (lastArgs) { + func(...lastArgs); + lastArgs = null; + } + }, wait); + }; + + debounced.cancel = (): void => { + if (timeoutId) { + clearTimeout(timeoutId); + timeoutId = null; + lastArgs = null; + } + }; + + debounced.flush = (): void => { + if (timeoutId && lastArgs) { + clearTimeout(timeoutId); + timeoutId = null; + func(...lastArgs); + lastArgs = null; + } + }; + + return debounced; +} + +/** + * Creates an async debounced function + */ +export function debounceAsync Promise>( + func: T, + wait: number +): { + (...args: Parameters): Promise; + cancel: () => void; +} { + let timeoutId: ReturnType | null = null; + let pendingPromise: Promise | null = null; + let pendingResolve: (() => void) | null = null; + + const debounced = (...args: Parameters): Promise => { + if (timeoutId) { + clearTimeout(timeoutId); + } + + // If there's already a pending promise, reuse it + if (!pendingPromise) { + pendingPromise = new Promise((resolve) => { + pendingResolve = resolve; + }); + } + + timeoutId = setTimeout(async () => { + timeoutId = null; + try { + await func(...args); + } finally { + if (pendingResolve) { + pendingResolve(); + pendingResolve = null; + pendingPromise = null; + } + } + }, wait); + + return pendingPromise; + }; + + debounced.cancel = (): void => { + if (timeoutId) { + clearTimeout(timeoutId); + timeoutId = null; + } + if (pendingResolve) { + pendingResolve(); + pendingResolve = null; + pendingPromise = null; + } + }; + + return debounced; +} diff --git a/graphql/codegen/src/cli/watch/hash.ts b/graphql/codegen/src/cli/watch/hash.ts new file mode 100644 index 000000000..75d3443b9 --- /dev/null +++ b/graphql/codegen/src/cli/watch/hash.ts @@ -0,0 +1,51 @@ +/** + * Schema hashing utilities using Node.js crypto.subtle (Node 22+) + */ + +import { webcrypto } from 'node:crypto'; + +/** + * Compute SHA-256 hash of a string using Web Crypto API + * Uses crypto.subtle available in Node.js 22+ + */ +export async function sha256(data: string): Promise { + const encoder = new TextEncoder(); + const dataBuffer = encoder.encode(data); + const hashBuffer = await webcrypto.subtle.digest('SHA-256', dataBuffer); + const hashArray = Array.from(new Uint8Array(hashBuffer)); + return hashArray.map((b) => b.toString(16).padStart(2, '0')).join(''); +} + +/** + * Compute hash of an object by JSON-stringifying it + * Objects are sorted by keys for consistent hashing + */ +export async function hashObject(obj: unknown): Promise { + const json = JSON.stringify(obj, sortReplacer); + return sha256(json); +} + +/** + * JSON.stringify replacer that sorts object keys for deterministic output + */ +function sortReplacer(_key: string, value: unknown): unknown { + if (value && typeof value === 'object' && !Array.isArray(value)) { + return Object.keys(value as Record) + .sort() + .reduce( + (sorted, key) => { + sorted[key] = (value as Record)[key]; + return sorted; + }, + {} as Record + ); + } + return value; +} + +/** + * Combine multiple hashes into a single hash + */ +export async function combineHashes(...hashes: string[]): Promise { + return sha256(hashes.join(':')); +} diff --git a/graphql/codegen/src/cli/watch/index.ts b/graphql/codegen/src/cli/watch/index.ts new file mode 100644 index 000000000..6e220682f --- /dev/null +++ b/graphql/codegen/src/cli/watch/index.ts @@ -0,0 +1,18 @@ +/** + * Watch mode module exports + */ + +export { SchemaPoller, computeSchemaHash } from './poller'; +export { SchemaCache, touchFile } from './cache'; +export { sha256, hashObject, combineHashes } from './hash'; +export { debounce, debounceAsync } from './debounce'; +export { WatchOrchestrator, startWatch } from './orchestrator'; +export type { + PollResult, + WatchOptions, + PollEventType, + PollEventHandler, + PollEvent, + GeneratorType, +} from './types'; +export type { WatchOrchestratorOptions, WatchStatus } from './orchestrator'; diff --git a/graphql/codegen/src/cli/watch/orchestrator.ts b/graphql/codegen/src/cli/watch/orchestrator.ts new file mode 100644 index 000000000..52615fd60 --- /dev/null +++ b/graphql/codegen/src/cli/watch/orchestrator.ts @@ -0,0 +1,286 @@ +/** + * Watch mode orchestrator + * + * Coordinates schema polling, change detection, and code regeneration + */ + +import type { ResolvedConfig } from '../../types/config'; +import type { GeneratorType, WatchOptions, PollEvent } from './types'; +import { SchemaPoller } from './poller'; +import { debounce } from './debounce'; +import { generateCommand, type GenerateResult } from '../commands/generate'; +import { generateOrmCommand, type GenerateOrmResult } from '../commands/generate-orm'; + +export interface WatchOrchestratorOptions { + config: ResolvedConfig; + generatorType: GeneratorType; + verbose: boolean; + authorization?: string; + /** Override output directory (for ORM) */ + outputDir?: string; + /** Skip custom operations flag */ + skipCustomOperations?: boolean; +} + +export interface WatchStatus { + isRunning: boolean; + pollCount: number; + regenerateCount: number; + lastPollTime: number | null; + lastRegenTime: number | null; + lastError: string | null; + currentHash: string | null; +} + +/** + * Main watch orchestrator class + */ +export class WatchOrchestrator { + private options: WatchOrchestratorOptions; + private watchOptions: WatchOptions; + private poller: SchemaPoller; + private status: WatchStatus; + private debouncedRegenerate: ReturnType; + private isShuttingDown = false; + + constructor(options: WatchOrchestratorOptions) { + this.options = options; + this.watchOptions = this.buildWatchOptions(); + this.poller = new SchemaPoller(this.watchOptions); + this.status = { + isRunning: false, + pollCount: 0, + regenerateCount: 0, + lastPollTime: null, + lastRegenTime: null, + lastError: null, + currentHash: null, + }; + + // Create debounced regenerate function + this.debouncedRegenerate = debounce( + () => this.regenerate(), + options.config.watch.debounce + ); + + // Set up event handlers + this.setupEventHandlers(); + } + + private buildWatchOptions(): WatchOptions { + const { config, verbose, authorization } = this.options; + return { + endpoint: config.endpoint, + authorization, + headers: config.headers, + pollInterval: config.watch.pollInterval, + debounce: config.watch.debounce, + touchFile: config.watch.touchFile, + clearScreen: config.watch.clearScreen, + verbose, + }; + } + + private setupEventHandlers(): void { + this.poller.on('poll-start', () => { + this.status.pollCount++; + if (this.watchOptions.verbose) { + this.log('Polling endpoint...'); + } + }); + + this.poller.on('poll-success', (event: PollEvent) => { + this.status.lastPollTime = event.timestamp; + this.status.lastError = null; + if (this.watchOptions.verbose) { + this.log(`Poll complete (${event.duration}ms)`); + } + }); + + this.poller.on('poll-error', (event: PollEvent) => { + this.status.lastError = event.error ?? 'Unknown error'; + this.logError(`Poll failed: ${event.error}`); + }); + + this.poller.on('schema-changed', (event: PollEvent) => { + this.status.currentHash = event.hash ?? null; + this.log(`Schema changed! (${event.duration}ms)`); + this.debouncedRegenerate(); + }); + + this.poller.on('schema-unchanged', () => { + if (this.watchOptions.verbose) { + this.log('Schema unchanged'); + } + }); + } + + /** + * Start watch mode + */ + async start(): Promise { + if (this.status.isRunning) { + return; + } + + this.status.isRunning = true; + this.setupSignalHandlers(); + + // Clear screen on start if configured + if (this.watchOptions.clearScreen) { + this.clearScreen(); + } + + this.logHeader(); + + // Do initial generation (always generate on start, regardless of cache) + this.log('Running initial generation...'); + await this.regenerate(); + + // Seed the in-memory cache with current schema hash (silent, no events) + // This prevents the first poll from triggering another regeneration + await this.poller.seedCache(); + + // Start polling loop + this.poller.start(); + this.log(`Watching for schema changes (poll interval: ${this.watchOptions.pollInterval}ms)`); + } + + /** + * Stop watch mode + */ + async stop(): Promise { + if (!this.status.isRunning) { + return; + } + + this.isShuttingDown = true; + this.debouncedRegenerate.cancel(); + this.poller.stop(); + this.status.isRunning = false; + this.log('Watch mode stopped'); + } + + /** + * Get current watch status + */ + getStatus(): WatchStatus { + return { ...this.status }; + } + + private async regenerate(): Promise { + if (this.isShuttingDown) { + return; + } + + const startTime = Date.now(); + + if (this.watchOptions.clearScreen) { + this.clearScreen(); + this.logHeader(); + } + + this.log('Regenerating...'); + + try { + let result: GenerateResult | GenerateOrmResult; + + if (this.options.generatorType === 'generate') { + result = await generateCommand({ + endpoint: this.options.config.endpoint, + output: this.options.outputDir ?? this.options.config.output, + authorization: this.options.authorization, + verbose: this.watchOptions.verbose, + skipCustomOperations: this.options.skipCustomOperations, + }); + } else { + result = await generateOrmCommand({ + endpoint: this.options.config.endpoint, + output: this.options.outputDir ?? this.options.config.orm?.output, + authorization: this.options.authorization, + verbose: this.watchOptions.verbose, + skipCustomOperations: this.options.skipCustomOperations, + }); + } + + const duration = Date.now() - startTime; + + if (result.success) { + this.status.regenerateCount++; + this.status.lastRegenTime = Date.now(); + this.logSuccess(`Generated in ${duration}ms`); + + if (result.tables && result.tables.length > 0) { + this.log(` Tables: ${result.tables.length}`); + } + if (result.filesWritten && result.filesWritten.length > 0) { + this.log(` Files: ${result.filesWritten.length}`); + } + } else { + this.logError(`Generation failed: ${result.message}`); + if (result.errors) { + result.errors.forEach((e) => this.logError(` ${e}`)); + } + } + } catch (err) { + const message = err instanceof Error ? err.message : 'Unknown error'; + this.logError(`Generation error: ${message}`); + } + + this.log(`\nWatching for changes...`); + } + + private setupSignalHandlers(): void { + const shutdown = async (signal: string) => { + this.log(`\nReceived ${signal}, shutting down...`); + await this.stop(); + process.exit(0); + }; + + process.on('SIGINT', () => shutdown('SIGINT')); + process.on('SIGTERM', () => shutdown('SIGTERM')); + } + + private clearScreen(): void { + // ANSI escape codes for clearing screen + process.stdout.write('\x1B[2J\x1B[0f'); + } + + private logHeader(): void { + const generatorName = this.options.generatorType === 'generate' + ? 'React Query hooks' + : 'ORM client'; + console.log(`\n${'─'.repeat(50)}`); + console.log(`graphql-codegen watch mode (${generatorName})`); + console.log(`Endpoint: ${this.options.config.endpoint}`); + console.log(`${'─'.repeat(50)}\n`); + } + + private log(message: string): void { + const timestamp = new Date().toLocaleTimeString(); + console.log(`[${timestamp}] ${message}`); + } + + private logSuccess(message: string): void { + const timestamp = new Date().toLocaleTimeString(); + console.log(`[${timestamp}] ✓ ${message}`); + } + + private logError(message: string): void { + const timestamp = new Date().toLocaleTimeString(); + console.error(`[${timestamp}] ✗ ${message}`); + } +} + +/** + * Start watch mode for a generator + */ +export async function startWatch(options: WatchOrchestratorOptions): Promise { + const orchestrator = new WatchOrchestrator(options); + await orchestrator.start(); + + // Keep the process alive + await new Promise(() => { + // This promise never resolves - the process will exit via signal handlers + }); +} diff --git a/graphql/codegen/src/cli/watch/poller.ts b/graphql/codegen/src/cli/watch/poller.ts new file mode 100644 index 000000000..bcc8d158c --- /dev/null +++ b/graphql/codegen/src/cli/watch/poller.ts @@ -0,0 +1,232 @@ +/** + * Schema polling logic with EventEmitter pattern + * + * Uses in-memory hash comparison for efficiency. + * No file I/O during normal polling - only touchFile is optional file write. + */ + +import { EventEmitter } from 'node:events'; +import type { MetaQueryResponse } from '../introspect/meta-query'; +import type { IntrospectionQueryResponse } from '../../types/introspection'; +import { fetchMeta } from '../introspect/fetch-meta'; +import { fetchSchema } from '../introspect/fetch-schema'; +import { SchemaCache, touchFile } from './cache'; +import type { PollResult, PollEvent, PollEventType, WatchOptions } from './types'; +import { hashObject, combineHashes } from './hash'; + +/** + * Schema poller that periodically introspects a GraphQL endpoint + * and emits events when the schema changes. + * + * Uses in-memory caching for hash comparison - no file I/O overhead. + */ +export class SchemaPoller extends EventEmitter { + private options: WatchOptions; + private cache: SchemaCache; + private pollTimer: ReturnType | null = null; + private isPolling = false; + private consecutiveErrors = 0; + private readonly MAX_CONSECUTIVE_ERRORS = 5; + + constructor(options: WatchOptions) { + super(); + this.options = options; + this.cache = new SchemaCache(); + } + + /** + * Start the polling loop + */ + start(): void { + if (this.pollTimer) { + return; // Already running + } + + // Do an immediate poll + this.poll(); + + // Set up interval + this.pollTimer = setInterval(() => { + this.poll(); + }, this.options.pollInterval); + } + + /** + * Stop the polling loop + */ + stop(): void { + if (this.pollTimer) { + clearInterval(this.pollTimer); + this.pollTimer = null; + } + } + + /** + * Perform a single poll operation + */ + async poll(): Promise { + // Prevent concurrent polls + if (this.isPolling) { + return { success: false, changed: false, error: 'Poll already in progress' }; + } + + this.isPolling = true; + const startTime = Date.now(); + this.emit('poll-start', this.createEvent('poll-start')); + + try { + // Fetch both _meta and __schema + const [metaResult, schemaResult] = await Promise.all([ + fetchMeta({ + endpoint: this.options.endpoint, + authorization: this.options.authorization, + headers: this.options.headers, + timeout: 30000, + }), + fetchSchema({ + endpoint: this.options.endpoint, + authorization: this.options.authorization, + headers: this.options.headers, + timeout: 30000, + }), + ]); + + const duration = Date.now() - startTime; + + // Check for errors + if (!metaResult.success) { + return this.handleError(`_meta fetch failed: ${metaResult.error}`, duration); + } + if (!schemaResult.success) { + return this.handleError(`__schema fetch failed: ${schemaResult.error}`, duration); + } + + const meta = metaResult.data!; + const schema = schemaResult.data!; + + // Check if schema changed + const { changed, newHash } = await this.cache.hasChanged(meta, schema); + + // Reset error counter on success + this.consecutiveErrors = 0; + + if (changed) { + // Update in-memory hash + this.cache.updateHash(newHash); + + // Touch trigger file if configured (only file I/O in watch mode) + if (this.options.touchFile) { + touchFile(this.options.touchFile); + } + + this.emit('schema-changed', this.createEvent('schema-changed', { hash: newHash, duration })); + return { success: true, changed: true, hash: newHash, meta, schema }; + } + + this.emit('schema-unchanged', this.createEvent('schema-unchanged', { duration })); + this.emit('poll-success', this.createEvent('poll-success', { duration })); + return { success: true, changed: false, hash: newHash, meta, schema }; + + } catch (err) { + const duration = Date.now() - startTime; + const error = err instanceof Error ? err.message : 'Unknown error'; + return this.handleError(error, duration); + } finally { + this.isPolling = false; + } + } + + /** + * Perform a single poll without starting the loop (for initial generation) + */ + async pollOnce(): Promise { + return this.poll(); + } + + /** + * Seed the cache with current schema hash without emitting events. + * Call this after initial generation to prevent first poll from triggering regeneration. + */ + async seedCache(): Promise { + try { + const [metaResult, schemaResult] = await Promise.all([ + fetchMeta({ + endpoint: this.options.endpoint, + authorization: this.options.authorization, + headers: this.options.headers, + timeout: 30000, + }), + fetchSchema({ + endpoint: this.options.endpoint, + authorization: this.options.authorization, + headers: this.options.headers, + timeout: 30000, + }), + ]); + + if (metaResult.success && schemaResult.success) { + const { newHash } = await this.cache.hasChanged(metaResult.data!, schemaResult.data!); + this.cache.updateHash(newHash); + } + } catch { + // Silently fail - cache will be seeded on first successful poll + } + } + + /** + * Get the current cached schema hash + */ + getCurrentHash(): string | null { + return this.cache.getHash(); + } + + /** + * Get the cache instance for direct access + */ + getCache(): SchemaCache { + return this.cache; + } + + /** + * Check if the poller is currently running + */ + isRunning(): boolean { + return this.pollTimer !== null; + } + + private handleError(error: string, duration: number): PollResult { + this.consecutiveErrors++; + this.emit('poll-error', this.createEvent('poll-error', { error, duration })); + + // Slow down polling after multiple consecutive errors + if (this.consecutiveErrors >= this.MAX_CONSECUTIVE_ERRORS && this.pollTimer) { + this.stop(); + const newInterval = this.options.pollInterval * 2; + this.pollTimer = setInterval(() => { + this.poll(); + }, newInterval); + } + + return { success: false, changed: false, error }; + } + + private createEvent(type: PollEventType, extra?: Partial): PollEvent { + return { + type, + timestamp: Date.now(), + ...extra, + }; + } +} + +/** + * Utility to compute schema hash without full poll + */ +export async function computeSchemaHash( + meta: MetaQueryResponse, + schema: IntrospectionQueryResponse +): Promise { + const metaHash = await hashObject(meta); + const schemaHash = await hashObject(schema); + return combineHashes(metaHash, schemaHash); +} diff --git a/graphql/codegen/src/cli/watch/types.ts b/graphql/codegen/src/cli/watch/types.ts new file mode 100644 index 000000000..52fc5e634 --- /dev/null +++ b/graphql/codegen/src/cli/watch/types.ts @@ -0,0 +1,79 @@ +/** + * Watch mode types + */ + +import type { MetaQueryResponse } from '../introspect/meta-query'; +import type { IntrospectionQueryResponse } from '../../types/introspection'; + +/** + * Result of a schema poll operation + */ +export interface PollResult { + success: boolean; + /** Whether the schema changed since last poll */ + changed: boolean; + /** Error message if poll failed */ + error?: string; + /** The new hash if successful */ + hash?: string; + /** Meta response if successful */ + meta?: MetaQueryResponse; + /** Schema response if successful */ + schema?: IntrospectionQueryResponse; +} + +/** + * Watch mode options passed to the watch orchestrator + */ +export interface WatchOptions { + /** GraphQL endpoint URL */ + endpoint: string; + /** Authorization header value */ + authorization?: string; + /** Additional headers */ + headers?: Record; + /** Polling interval in ms */ + pollInterval: number; + /** Debounce delay in ms */ + debounce: number; + /** File to touch on schema change (optional) */ + touchFile: string | null; + /** Clear terminal on regeneration */ + clearScreen: boolean; + /** Verbose output */ + verbose: boolean; +} + +/** + * Events emitted by the SchemaPoller + */ +export type PollEventType = + | 'poll-start' + | 'poll-success' + | 'poll-error' + | 'schema-changed' + | 'schema-unchanged'; + +/** + * Event handler signature for poll events + */ +export type PollEventHandler = (event: PollEvent) => void; + +/** + * Poll event payload + */ +export interface PollEvent { + type: PollEventType; + timestamp: number; + /** Error message if type is 'poll-error' */ + error?: string; + /** New hash if schema changed */ + hash?: string; + /** Duration of the poll in ms */ + duration?: number; +} + +/** + * Generator type for watch mode + */ +export type GeneratorType = 'generate' | 'generate-orm'; diff --git a/graphql/codegen/src/client/error.ts b/graphql/codegen/src/client/error.ts new file mode 100644 index 000000000..d879712de --- /dev/null +++ b/graphql/codegen/src/client/error.ts @@ -0,0 +1,326 @@ +/** + * Error handling for GraphQL operations + * Provides consistent error types and parsing for PostGraphile responses + */ + +// ============================================================================ +// Error Types +// ============================================================================ + +export const DataErrorType = { + // Network/Connection errors + NETWORK_ERROR: 'NETWORK_ERROR', + TIMEOUT_ERROR: 'TIMEOUT_ERROR', + + // Validation errors + VALIDATION_FAILED: 'VALIDATION_FAILED', + REQUIRED_FIELD_MISSING: 'REQUIRED_FIELD_MISSING', + INVALID_MUTATION_DATA: 'INVALID_MUTATION_DATA', + + // Query errors + QUERY_GENERATION_FAILED: 'QUERY_GENERATION_FAILED', + QUERY_EXECUTION_FAILED: 'QUERY_EXECUTION_FAILED', + + // Permission errors + UNAUTHORIZED: 'UNAUTHORIZED', + FORBIDDEN: 'FORBIDDEN', + + // Schema errors + TABLE_NOT_FOUND: 'TABLE_NOT_FOUND', + + // Request errors + BAD_REQUEST: 'BAD_REQUEST', + NOT_FOUND: 'NOT_FOUND', + + // GraphQL-specific errors + GRAPHQL_ERROR: 'GRAPHQL_ERROR', + + // PostgreSQL constraint errors (surfaced via PostGraphile) + UNIQUE_VIOLATION: 'UNIQUE_VIOLATION', + FOREIGN_KEY_VIOLATION: 'FOREIGN_KEY_VIOLATION', + NOT_NULL_VIOLATION: 'NOT_NULL_VIOLATION', + CHECK_VIOLATION: 'CHECK_VIOLATION', + EXCLUSION_VIOLATION: 'EXCLUSION_VIOLATION', + + // Generic errors + UNKNOWN_ERROR: 'UNKNOWN_ERROR', +} as const; + +export type DataErrorType = (typeof DataErrorType)[keyof typeof DataErrorType]; + +// ============================================================================ +// DataError Class +// ============================================================================ + +export interface DataErrorOptions { + tableName?: string; + fieldName?: string; + constraint?: string; + originalError?: Error; + code?: string; + context?: Record; +} + +/** + * Standard error class for data layer operations + */ +export class DataError extends Error { + public readonly type: DataErrorType; + public readonly code?: string; + public readonly originalError?: Error; + public readonly context?: Record; + public readonly tableName?: string; + public readonly fieldName?: string; + public readonly constraint?: string; + + constructor(type: DataErrorType, message: string, options: DataErrorOptions = {}) { + super(message); + this.name = 'DataError'; + this.type = type; + this.code = options.code; + this.originalError = options.originalError; + this.context = options.context; + this.tableName = options.tableName; + this.fieldName = options.fieldName; + this.constraint = options.constraint; + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, DataError); + } + } + + getUserMessage(): string { + switch (this.type) { + case DataErrorType.NETWORK_ERROR: + return 'Network error. Please check your connection and try again.'; + case DataErrorType.TIMEOUT_ERROR: + return 'Request timed out. Please try again.'; + case DataErrorType.UNAUTHORIZED: + return 'You are not authorized. Please log in and try again.'; + case DataErrorType.FORBIDDEN: + return 'You do not have permission to access this resource.'; + case DataErrorType.VALIDATION_FAILED: + return 'Validation failed. Please check your input and try again.'; + case DataErrorType.REQUIRED_FIELD_MISSING: + return this.fieldName + ? `The field "${this.fieldName}" is required.` + : 'A required field is missing.'; + case DataErrorType.UNIQUE_VIOLATION: + return this.fieldName + ? `A record with this ${this.fieldName} already exists.` + : 'A record with this value already exists.'; + case DataErrorType.FOREIGN_KEY_VIOLATION: + return 'This record references a record that does not exist.'; + case DataErrorType.NOT_NULL_VIOLATION: + return this.fieldName + ? `The field "${this.fieldName}" cannot be empty.` + : 'A required field cannot be empty.'; + case DataErrorType.CHECK_VIOLATION: + return this.fieldName + ? `The value for "${this.fieldName}" is not valid.` + : 'The value does not meet the required constraints.'; + default: + return this.message || 'An unexpected error occurred.'; + } + } + + isRetryable(): boolean { + return ( + this.type === DataErrorType.NETWORK_ERROR || + this.type === DataErrorType.TIMEOUT_ERROR + ); + } +} + +// ============================================================================ +// PostgreSQL Error Codes +// ============================================================================ + +export const PG_ERROR_CODES = { + UNIQUE_VIOLATION: '23505', + FOREIGN_KEY_VIOLATION: '23503', + NOT_NULL_VIOLATION: '23502', + CHECK_VIOLATION: '23514', + EXCLUSION_VIOLATION: '23P01', + NUMERIC_VALUE_OUT_OF_RANGE: '22003', + STRING_DATA_RIGHT_TRUNCATION: '22001', + INVALID_TEXT_REPRESENTATION: '22P02', + DATETIME_FIELD_OVERFLOW: '22008', + UNDEFINED_TABLE: '42P01', + UNDEFINED_COLUMN: '42703', + INSUFFICIENT_PRIVILEGE: '42501', +} as const; + +// ============================================================================ +// Error Factory +// ============================================================================ + +export const createError = { + network: (originalError?: Error) => + new DataError(DataErrorType.NETWORK_ERROR, 'Network error occurred', { originalError }), + + timeout: (originalError?: Error) => + new DataError(DataErrorType.TIMEOUT_ERROR, 'Request timed out', { originalError }), + + unauthorized: (message = 'Authentication required') => + new DataError(DataErrorType.UNAUTHORIZED, message), + + forbidden: (message = 'Access forbidden') => + new DataError(DataErrorType.FORBIDDEN, message), + + badRequest: (message: string, code?: string) => + new DataError(DataErrorType.BAD_REQUEST, message, { code }), + + notFound: (message = 'Resource not found') => + new DataError(DataErrorType.NOT_FOUND, message), + + graphql: (message: string, code?: string) => + new DataError(DataErrorType.GRAPHQL_ERROR, message, { code }), + + uniqueViolation: (message: string, fieldName?: string, constraint?: string) => + new DataError(DataErrorType.UNIQUE_VIOLATION, message, { fieldName, constraint, code: '23505' }), + + foreignKeyViolation: (message: string, fieldName?: string, constraint?: string) => + new DataError(DataErrorType.FOREIGN_KEY_VIOLATION, message, { fieldName, constraint, code: '23503' }), + + notNullViolation: (message: string, fieldName?: string, constraint?: string) => + new DataError(DataErrorType.NOT_NULL_VIOLATION, message, { fieldName, constraint, code: '23502' }), + + unknown: (originalError: Error) => + new DataError(DataErrorType.UNKNOWN_ERROR, originalError.message, { originalError }), +}; + +// ============================================================================ +// Error Parsing +// ============================================================================ + +export interface GraphQLError { + message: string; + extensions?: { code?: string } & Record; + locations?: Array<{ line: number; column: number }>; + path?: Array; +} + +function parseGraphQLErrorCode(code: string | undefined): DataErrorType { + if (!code) return DataErrorType.UNKNOWN_ERROR; + const normalized = code.toUpperCase(); + + // GraphQL standard codes + if (normalized === 'UNAUTHENTICATED') return DataErrorType.UNAUTHORIZED; + if (normalized === 'FORBIDDEN') return DataErrorType.FORBIDDEN; + if (normalized === 'GRAPHQL_VALIDATION_FAILED') return DataErrorType.QUERY_GENERATION_FAILED; + + // PostgreSQL SQLSTATE codes + if (code === PG_ERROR_CODES.UNIQUE_VIOLATION) return DataErrorType.UNIQUE_VIOLATION; + if (code === PG_ERROR_CODES.FOREIGN_KEY_VIOLATION) return DataErrorType.FOREIGN_KEY_VIOLATION; + if (code === PG_ERROR_CODES.NOT_NULL_VIOLATION) return DataErrorType.NOT_NULL_VIOLATION; + if (code === PG_ERROR_CODES.CHECK_VIOLATION) return DataErrorType.CHECK_VIOLATION; + if (code === PG_ERROR_CODES.EXCLUSION_VIOLATION) return DataErrorType.EXCLUSION_VIOLATION; + + return DataErrorType.UNKNOWN_ERROR; +} + +function classifyByMessage(message: string): DataErrorType { + const lower = message.toLowerCase(); + + if (lower.includes('timeout') || lower.includes('timed out')) { + return DataErrorType.TIMEOUT_ERROR; + } + if (lower.includes('network') || lower.includes('fetch') || lower.includes('failed to fetch')) { + return DataErrorType.NETWORK_ERROR; + } + if (lower.includes('unauthorized') || lower.includes('authentication required')) { + return DataErrorType.UNAUTHORIZED; + } + if (lower.includes('forbidden') || lower.includes('permission')) { + return DataErrorType.FORBIDDEN; + } + if (lower.includes('duplicate key') || lower.includes('already exists')) { + return DataErrorType.UNIQUE_VIOLATION; + } + if (lower.includes('foreign key constraint')) { + return DataErrorType.FOREIGN_KEY_VIOLATION; + } + if (lower.includes('not-null constraint') || lower.includes('null value in column')) { + return DataErrorType.NOT_NULL_VIOLATION; + } + + return DataErrorType.UNKNOWN_ERROR; +} + +function extractFieldFromError(message: string, constraint?: string, column?: string): string | undefined { + if (column) return column; + + const columnMatch = message.match(/column\s+"?([a-z_][a-z0-9_]*)"?/i); + if (columnMatch) return columnMatch[1]; + + if (constraint) { + const constraintMatch = constraint.match(/_([a-z_][a-z0-9_]*)_(?:key|fkey|check|pkey)$/i); + if (constraintMatch) return constraintMatch[1]; + } + + const keyMatch = message.match(/Key\s+\(([a-z_][a-z0-9_]*)\)/i); + if (keyMatch) return keyMatch[1]; + + return undefined; +} + +/** + * Parse any error into a DataError + */ +export function parseGraphQLError(error: unknown): DataError { + if (error instanceof DataError) { + return error; + } + + // GraphQL error object + if ( + error && + typeof error === 'object' && + 'message' in error && + typeof (error as { message: unknown }).message === 'string' + ) { + const gqlError = error as GraphQLError; + const extCode = gqlError.extensions?.code; + const mappedType = parseGraphQLErrorCode(extCode); + + const column = gqlError.extensions?.column as string | undefined; + const constraint = gqlError.extensions?.constraint as string | undefined; + const fieldName = extractFieldFromError(gqlError.message, constraint, column); + + if (mappedType !== DataErrorType.UNKNOWN_ERROR) { + return new DataError(mappedType, gqlError.message, { + code: extCode, + fieldName, + constraint, + context: gqlError.extensions, + }); + } + + // Fallback: classify by message + const fallbackType = classifyByMessage(gqlError.message); + return new DataError(fallbackType, gqlError.message, { + code: extCode, + fieldName, + constraint, + context: gqlError.extensions, + }); + } + + // Standard Error + if (error instanceof Error) { + const type = classifyByMessage(error.message); + return new DataError(type, error.message, { originalError: error }); + } + + // Unknown + const message = typeof error === 'string' ? error : 'Unknown error occurred'; + return new DataError(DataErrorType.UNKNOWN_ERROR, message); +} + +/** + * Check if value is a DataError + */ +export function isDataError(error: unknown): error is DataError { + return error instanceof DataError; +} diff --git a/graphql/codegen/src/client/execute.ts b/graphql/codegen/src/client/execute.ts new file mode 100644 index 000000000..6f59e7cec --- /dev/null +++ b/graphql/codegen/src/client/execute.ts @@ -0,0 +1,203 @@ +/** + * GraphQL execution utilities + */ + +import type { DocumentNode } from 'graphql'; +import { print } from 'graphql'; + +import { TypedDocumentString } from './typed-document'; +import { createError, parseGraphQLError, type DataError } from './error'; + +// ============================================================================ +// Types +// ============================================================================ + +type ExecutableDocument = + | TypedDocumentString + | DocumentNode + | string; + +type ResultOf = TDocument extends TypedDocumentString + ? TResult + : unknown; + +type VariablesOf = TDocument extends TypedDocumentString + ? TVariables + : Record; + +export interface ExecuteOptions { + /** Custom headers to include */ + headers?: Record; + /** Request timeout in milliseconds */ + timeout?: number; + /** Signal for request cancellation */ + signal?: AbortSignal; +} + +export interface GraphQLResponse { + data?: T; + errors?: Array<{ + message: string; + extensions?: { code?: string } & Record; + locations?: Array<{ line: number; column: number }>; + path?: Array; + }>; +} + +// ============================================================================ +// Helpers +// ============================================================================ + +function documentToString(document: ExecutableDocument): string { + if (typeof document === 'string') return document; + if (document instanceof TypedDocumentString) return document.toString(); + // DocumentNode + if (document && typeof document === 'object' && 'kind' in document) { + return print(document); + } + throw createError.badRequest('Invalid GraphQL document'); +} + +// ============================================================================ +// Execute Function +// ============================================================================ + +/** + * Execute a GraphQL operation against an endpoint + */ +export async function execute( + endpoint: string, + document: TDocument, + variables?: VariablesOf, + options: ExecuteOptions = {}, +): Promise> { + const { headers = {}, timeout = 30000, signal } = options; + + // Create timeout controller + const controller = new AbortController(); + const timeoutId = setTimeout(() => controller.abort(), timeout); + + // Combine signals if provided + const combinedSignal = signal + ? AbortSignal.any([signal, controller.signal]) + : controller.signal; + + try { + const response = await fetch(endpoint, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/graphql-response+json, application/json', + ...headers, + }, + body: JSON.stringify({ + query: documentToString(document), + ...(variables !== undefined && { variables }), + }), + signal: combinedSignal, + }); + + clearTimeout(timeoutId); + + if (!response.ok) { + throw await handleHttpError(response); + } + + const result: GraphQLResponse> = await response.json(); + + if (result.errors?.length) { + throw parseGraphQLError(result.errors[0]); + } + + return result.data as ResultOf; + } catch (error) { + clearTimeout(timeoutId); + + if (error instanceof Error && error.name === 'AbortError') { + throw createError.timeout(); + } + + if (error instanceof Error && error.message.includes('fetch')) { + throw createError.network(error); + } + + throw parseGraphQLError(error); + } +} + +async function handleHttpError(response: Response): Promise { + const { status, statusText } = response; + + if (status === 401) { + return createError.unauthorized('Authentication required'); + } + + if (status === 403) { + return createError.forbidden('Access forbidden'); + } + + if (status === 404) { + return createError.notFound('GraphQL endpoint not found'); + } + + // Try to extract error from response body + try { + const body = await response.json(); + if (body.errors?.length) { + return parseGraphQLError(body.errors[0]); + } + if (body.message) { + return createError.badRequest(body.message); + } + } catch { + // Couldn't parse response + } + + return createError.badRequest(`Request failed: ${status} ${statusText}`); +} + +// ============================================================================ +// GraphQL Client Factory +// ============================================================================ + +export interface GraphQLClientOptions { + /** GraphQL endpoint URL */ + endpoint: string; + /** Default headers to include with every request */ + headers?: Record; + /** Default timeout in milliseconds */ + timeout?: number; +} + +/** + * Create a GraphQL client instance + */ +export function createGraphQLClient(options: GraphQLClientOptions) { + const { endpoint, headers: defaultHeaders = {}, timeout: defaultTimeout = 30000 } = options; + + return { + /** + * Execute a GraphQL operation + */ + async execute( + document: TDocument, + variables?: VariablesOf, + options: ExecuteOptions = {}, + ): Promise> { + return execute(endpoint, document, variables, { + headers: { ...defaultHeaders, ...options.headers }, + timeout: options.timeout ?? defaultTimeout, + signal: options.signal, + }); + }, + + /** + * Get the endpoint URL + */ + getEndpoint(): string { + return endpoint; + }, + }; +} + +export type GraphQLClient = ReturnType; diff --git a/graphql/codegen/src/client/index.ts b/graphql/codegen/src/client/index.ts new file mode 100644 index 000000000..53b0bb352 --- /dev/null +++ b/graphql/codegen/src/client/index.ts @@ -0,0 +1,25 @@ +/** + * Client exports + */ + +export { TypedDocumentString, type DocumentTypeDecoration } from './typed-document'; + +export { + DataError, + DataErrorType, + createError, + parseGraphQLError, + isDataError, + PG_ERROR_CODES, + type DataErrorOptions, + type GraphQLError, +} from './error'; + +export { + execute, + createGraphQLClient, + type ExecuteOptions, + type GraphQLClientOptions, + type GraphQLClient, + type GraphQLResponse, +} from './execute'; diff --git a/graphql/codegen/src/client/typed-document.ts b/graphql/codegen/src/client/typed-document.ts new file mode 100644 index 000000000..ca3f895a4 --- /dev/null +++ b/graphql/codegen/src/client/typed-document.ts @@ -0,0 +1,60 @@ +/** + * TypedDocumentString - Type-safe wrapper for GraphQL documents + * Compatible with GraphQL codegen client preset + */ + +/** + * Document type decoration interface (from @graphql-typed-document-node/core) + */ +export interface DocumentTypeDecoration { + /** + * This type is used to ensure that the variables you pass in to the query are assignable to Variables + * and that the Result is assignable to whatever you pass your result to. + */ + __apiType?: (variables: TVariables) => TResult; +} + +/** + * Enhanced TypedDocumentString with type inference capabilities + * Compatible with GraphQL codegen client preset + */ +export class TypedDocumentString + extends String + implements DocumentTypeDecoration +{ + /** Same shape as the codegen implementation for structural typing */ + __apiType?: (variables: TVariables) => TResult; + __meta__?: Record; + + private value: string; + + constructor(value: string, meta?: Record) { + super(value); + this.value = value; + this.__meta__ = { + hash: this.generateHash(value), + ...meta, + }; + } + + private generateHash(value: string): string { + let hash = 0; + for (let i = 0; i < value.length; i++) { + const char = value.charCodeAt(i); + hash = (hash << 5) - hash + char; + hash = hash & hash; // Convert to 32-bit integer + } + return Math.abs(hash).toString(36); + } + + override toString(): string { + return this.value; + } + + /** + * Get the hash for caching purposes + */ + getHash(): string { + return this.__meta__?.hash as string; + } +} diff --git a/graphql/codegen/src/codegen.ts b/graphql/codegen/src/codegen.ts deleted file mode 100644 index 1e8867ecb..000000000 --- a/graphql/codegen/src/codegen.ts +++ /dev/null @@ -1,269 +0,0 @@ -import { promises as fs } from 'fs' -import { join, dirname, isAbsolute, resolve } from 'path' -import { buildSchema, buildClientSchema, graphql, getIntrospectionQuery, print } from 'graphql' -const inflection: any = require('inflection') -import { generate as generateGql, GqlMap } from './gql' -import { parseGraphQuery } from 'introspectron' -import { defaultGraphQLCodegenOptions, GraphQLCodegenOptions, mergeGraphQLCodegenOptions } from './options' -import { codegen as runCoreCodegen } from '@graphql-codegen/core' -import * as typescriptPlugin from '@graphql-codegen/typescript' -import * as typescriptOperationsPlugin from '@graphql-codegen/typescript-operations' -import * as typescriptGraphqlRequestPlugin from '@graphql-codegen/typescript-graphql-request' -import * as typescriptReactQueryPlugin from '@graphql-codegen/typescript-react-query' -import { GraphQLClient } from 'graphql-request' -import { parse } from '@babel/parser' -import generate from '@babel/generator' -import * as t from '@babel/types' - -function addDocumentNodeImport(code: string): string { - const ast = parse(code, { - sourceType: 'module', - plugins: ['typescript'] - }) - - const importDecl = t.importDeclaration( - [t.importSpecifier(t.identifier('DocumentNode'), t.identifier('DocumentNode'))], - t.stringLiteral('graphql') - ) - importDecl.importKind = 'type' - - ast.program.body.unshift(importDecl) - - const output = generate(ast, {}, code) - return output.code -} - -function getFilename(key: string, convention: GraphQLCodegenOptions['documents']['convention']) { - if (convention === 'underscore') return inflection.underscore(key) - if (convention === 'dashed') return inflection.underscore(key).replace(/_/g, '-') - if (convention === 'camelUpper') return inflection.camelize(key, false) - return key -} - -async function ensureDir(p: string) { - await fs.mkdir(p, { recursive: true }) -} - -async function readFileUTF8(p: string) { - return fs.readFile(p, 'utf8') -} - -async function writeFileUTF8(p: string, content: string) { - await ensureDir(dirname(p)) - await fs.writeFile(p, content, 'utf8') -} - -async function getIntrospectionFromSDL(schemaPath: string) { - const sdl = await readFileUTF8(schemaPath) - const schema = buildSchema(sdl) - const q = getIntrospectionQuery() - const res = await graphql({ schema, source: q }) - return res.data as any -} - -async function getIntrospectionFromEndpoint(endpoint: string, headers?: Record) { - const client = new GraphQLClient(endpoint, { headers }) - const q = getIntrospectionQuery() - const res = await client.request(q) - return res as any -} - -function generateKeyedObjFromGqlMap(gqlMap: GqlMap, selection?: GraphQLCodegenOptions['selection'], typeNameOverrides?: Record, typeIndex?: any): Record { - const gen = generateGql(gqlMap, selection as any, typeNameOverrides, typeIndex) - return Object.entries(gen).reduce>((acc, [key, val]) => { - if (val?.ast) acc[key] = print(val.ast) - return acc - }, {}) -} - -function applyQueryFilters(map: GqlMap, docs: GraphQLCodegenOptions['documents']): GqlMap { - const allow = (docs.allowQueries || []).filter(Boolean) - const exclude = (docs.excludeQueries || []).filter(Boolean) - const patterns = (docs.excludePatterns || []).filter(Boolean) - - let keys = Object.keys(map) - if (allow.length > 0) keys = keys.filter((k) => allow.includes(k)) - if (exclude.length > 0) keys = keys.filter((k) => !exclude.includes(k)) - if (patterns.length > 0) { - const regs = patterns.map((p) => { - try { - return new RegExp(p) - } catch { - return null - } - }).filter((r): r is RegExp => !!r) - keys = keys.filter((k) => !regs.some((r) => r.test(k))) - } - - return keys.reduce((acc, k) => { - acc[k] = map[k] - return acc - }, {}) -} - -async function writeOperationsDocuments(docs: Record, dir: string, format: 'gql' | 'ts', convention: GraphQLCodegenOptions['documents']['convention']) { - await ensureDir(dir) - const index: string[] = [] - for (const key of Object.keys(docs)) { - const base = getFilename(key, convention) - const filename = base + (format === 'ts' ? '.ts' : '.gql') - if (format === 'ts') { - const code = `import gql from 'graphql-tag'\nexport const ${key} = gql\`\n${docs[key]}\n\`` - await writeFileUTF8(join(dir, filename), code) - index.push(`export * from './${base}'`) - } else { - await writeFileUTF8(join(dir, filename), docs[key]) - } - } - if (format === 'ts') await writeFileUTF8(join(dir, 'index.ts'), index.sort().join('\n')) -} - -export async function runCodegen(opts: GraphQLCodegenOptions, cwd: string) { - const options: GraphQLCodegenOptions = { - input: { ...(defaultGraphQLCodegenOptions.input), ...(opts.input || {}) }, - output: { ...(defaultGraphQLCodegenOptions.output), ...(opts.output || {}) }, - documents: { ...(defaultGraphQLCodegenOptions.documents), ...(opts.documents || {}) }, - features: { ...(defaultGraphQLCodegenOptions.features), ...(opts.features || {}) }, - selection: { ...(defaultGraphQLCodegenOptions.selection), ...(opts.selection || {}) }, - scalars: { ...(defaultGraphQLCodegenOptions.scalars || {}), ...(opts.scalars || {}) }, - typeNameOverrides: { ...(defaultGraphQLCodegenOptions.typeNameOverrides || {}), ...(opts.typeNameOverrides || {}) } - } - - const root = join(cwd, options.output.root) - const typesFile = join(root, options.output.typesFile) - const operationsDir = join(root, options.output.operationsDir) - const sdkFile = join(root, options.output.sdkFile) - const reactQueryFile = join(root, options.output.reactQueryFile || 'react-query.ts') - const hasSchemaPath = !!options.input.schema && options.input.schema.trim() !== '' - const hasEndpoint = !!options.input.endpoint && options.input.endpoint.trim() !== '' - const schemaPath = hasSchemaPath ? (isAbsolute(options.input.schema) ? options.input.schema : resolve(cwd, options.input.schema)) : '' - - const introspection = hasEndpoint - ? await getIntrospectionFromEndpoint(options.input.endpoint as string, options.input.headers || {}) - : await getIntrospectionFromSDL(schemaPath) - const { queries, mutations } = parseGraphQuery(introspection) - const gqlMap: GqlMap = applyQueryFilters({ ...queries, ...mutations }, options.documents) - let docs: Record = {} - - const schema = hasEndpoint - ? buildClientSchema(introspection as any) - : buildSchema(await readFileUTF8(schemaPath)) - - const typeIndex = buildTypeIndex(introspection) - if (options.features.emitOperations || options.features.emitSdk || options.features.emitReactQuery) { - docs = generateKeyedObjFromGqlMap(gqlMap, options.selection, options.typeNameOverrides, typeIndex) - } - - if (options.features.emitOperations) { - await writeOperationsDocuments(docs, operationsDir, options.documents.format, options.documents.convention) - } - - if (options.features.emitTypes) { - const typesContent = await runCoreCodegen({ - filename: typesFile, - schema: schema as any, - documents: [], - config: { scalars: options.scalars || {} }, - plugins: [{ typescript: {} }], - pluginMap: { typescript: typescriptPlugin as any } - }) - await writeFileUTF8(typesFile, typesContent) - } - - if (options.features.emitSdk) { - const documents: { location: string; document: any }[] = [] - for (const [name, content] of Object.entries(docs)) { - try { - const doc = require('graphql').parse(content) - documents.push({ location: name, document: doc }) - } catch (e) {} - } - const sdkContent = await runCoreCodegen({ - filename: sdkFile, - schema: schema as any, - documents, - config: { scalars: options.scalars || {}, dedupeOperationSuffix: true }, - plugins: [ - { typescript: {} }, - { 'typescript-operations': {} }, - { 'typescript-graphql-request': { dedupeOperationSuffix: true } } - ], - pluginMap: { - typescript: typescriptPlugin as any, - 'typescript-operations': typescriptOperationsPlugin as any, - 'typescript-graphql-request': typescriptGraphqlRequestPlugin as any - } - }) - // Fix TS2742: Add missing DocumentNode import using Babel AST - const sdkContentWithImport = addDocumentNodeImport(sdkContent) - await writeFileUTF8(sdkFile, sdkContentWithImport) - } - - if (options.features.emitReactQuery) { - const documents: { location: string; document: any }[] = [] - for (const [name, content] of Object.entries(docs)) { - try { - const doc = require('graphql').parse(content) - documents.push({ location: name, document: doc }) - } catch (e) {} - } - const rqConfig = { - fetcher: options.reactQuery?.fetcher || 'graphql-request', - legacyMode: options.reactQuery?.legacyMode || false, - exposeDocument: options.reactQuery?.exposeDocument || false, - addInfiniteQuery: options.reactQuery?.addInfiniteQuery || false, - reactQueryVersion: options.reactQuery?.reactQueryVersion || 5, - scalars: options.scalars || {} - } as any - const rqContent = await runCoreCodegen({ - filename: reactQueryFile, - schema: schema as any, - documents, - config: { ...rqConfig, dedupeOperationSuffix: true }, - plugins: [ - { typescript: {} }, - { 'typescript-operations': {} }, - { 'typescript-react-query': rqConfig } - ], - pluginMap: { - typescript: typescriptPlugin as any, - 'typescript-operations': typescriptOperationsPlugin as any, - 'typescript-react-query': typescriptReactQueryPlugin as any - } - }) - await writeFileUTF8(reactQueryFile, rqContent) - } - - return { root, typesFile, operationsDir, sdkFile } -} - -export async function runCodegenFromJSONConfig(configPath: string, cwd: string) { - const path = isAbsolute(configPath) ? configPath : resolve(cwd, configPath) - const content = await readFileUTF8(path) - let overrides: any = {} - try { - overrides = JSON.parse(content) - } catch (e) { - throw new Error('Invalid JSON config: ' + e) - } - const merged = mergeGraphQLCodegenOptions(defaultGraphQLCodegenOptions, overrides as any) - return runCodegen(merged as GraphQLCodegenOptions, cwd) -} - -function buildTypeIndex(introspection: any) { - const byName: Record = {} - const types = (introspection && introspection.__schema && introspection.__schema.types) || [] - for (const t of types) { - if (t && typeof t.name === 'string' && t.name.length > 0) byName[t.name] = t - } - return { - byName, - getInputFieldType(typeName: string, fieldName: string) { - const typ = byName[typeName] - if (!typ || typ.kind !== 'INPUT_OBJECT') return null - const fields = typ.inputFields || [] - const f = fields.find((x: any) => x && x.name === fieldName) - return f ? f.type : null - } - } -} diff --git a/graphql/codegen/src/core/ast.ts b/graphql/codegen/src/core/ast.ts new file mode 100644 index 000000000..d51de9281 --- /dev/null +++ b/graphql/codegen/src/core/ast.ts @@ -0,0 +1,745 @@ +import * as t from 'gql-ast'; +import type { + ArgumentNode, + DocumentNode, + FieldNode, + TypeNode, + ValueNode, + VariableDefinitionNode, +} from 'graphql'; +import * as inflection from 'inflection'; + + +import { getCustomAst } from './custom-ast'; +import type { + ASTFunctionParams, + QueryFieldSelection, + MutationASTParams, + NestedProperties, + ObjectArrayItem, + QueryProperty, +} from './types'; + +const NON_MUTABLE_PROPS = ['createdAt', 'createdBy', 'updatedAt', 'updatedBy']; + +const objectToArray = ( + obj: Record +): ObjectArrayItem[] => + Object.keys(obj).map((k) => ({ + key: k, + name: obj[k].name || k, + type: obj[k].type, + isNotNull: obj[k].isNotNull, + isArray: obj[k].isArray, + isArrayNotNull: obj[k].isArrayNotNull, + properties: obj[k].properties, + })); + +interface CreateGqlMutationParams { + operationName: string; + mutationName: string; + selectArgs: ArgumentNode[]; + selections: FieldNode[]; + variableDefinitions: VariableDefinitionNode[]; + modelName: string; + useModel?: boolean; +} + +const createGqlMutation = ({ + operationName, + mutationName, + selectArgs, + selections, + variableDefinitions, + modelName, + useModel = true, +}: CreateGqlMutationParams): DocumentNode => { + const opSel: FieldNode[] = !modelName + ? [ + t.field({ + name: operationName, + args: selectArgs, + selectionSet: t.selectionSet({ selections }), + }), + ] + : [ + t.field({ + name: operationName, + args: selectArgs, + selectionSet: t.selectionSet({ + selections: useModel + ? [ + t.field({ + name: modelName, + selectionSet: t.selectionSet({ selections }), + }), + ] + : selections, + }), + }), + ]; + + return t.document({ + definitions: [ + t.operationDefinition({ + operation: 'mutation', + name: mutationName, + variableDefinitions, + selectionSet: t.selectionSet({ selections: opSel }), + }), + ], + }); +}; + +export const getAll = ({ + queryName, + operationName, + selection, +}: ASTFunctionParams): DocumentNode => { + const selections = getSelections(selection); + + const opSel: FieldNode[] = [ + t.field({ + name: operationName, + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: 'totalCount', + }), + t.field({ + name: 'nodes', + selectionSet: t.selectionSet({ selections }), + }), + ], + }), + }), + ]; + + const ast = t.document({ + definitions: [ + t.operationDefinition({ + operation: 'query', + name: queryName, + selectionSet: t.selectionSet({ selections: opSel }), + }), + ], + }); + + return ast; +}; + +export const getCount = ({ + queryName, + operationName, + query, +}: Omit): DocumentNode => { + const Singular = query.model; + const Filter = `${Singular}Filter`; + const Condition = `${Singular}Condition`; + + const variableDefinitions: VariableDefinitionNode[] = [ + t.variableDefinition({ + variable: t.variable({ name: 'condition' }), + type: t.namedType({ type: Condition }), + }), + t.variableDefinition({ + variable: t.variable({ name: 'filter' }), + type: t.namedType({ type: Filter }), + }), + ]; + + const args: ArgumentNode[] = [ + t.argument({ name: 'condition', value: t.variable({ name: 'condition' }) }), + t.argument({ name: 'filter', value: t.variable({ name: 'filter' }) }), + ]; + + // PostGraphile supports totalCount through connections + const opSel: FieldNode[] = [ + t.field({ + name: operationName, + args, + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: 'totalCount', + }), + ], + }), + }), + ]; + + const ast = t.document({ + definitions: [ + t.operationDefinition({ + operation: 'query', + name: queryName, + variableDefinitions, + selectionSet: t.selectionSet({ selections: opSel }), + }), + ], + }); + + return ast; +}; + +export const getMany = ({ + builder, + queryName, + operationName, + query, + selection, +}: ASTFunctionParams): DocumentNode => { + const Singular = query.model; + const Plural = + operationName.charAt(0).toUpperCase() + operationName.slice(1); + const Condition = `${Singular}Condition`; + const Filter = `${Singular}Filter`; + const OrderBy = `${Plural}OrderBy`; + const selections = getSelections(selection); + + const variableDefinitions: VariableDefinitionNode[] = [ + t.variableDefinition({ + variable: t.variable({ name: 'first' }), + type: t.namedType({ type: 'Int' }), + }), + t.variableDefinition({ + variable: t.variable({ name: 'last' }), + type: t.namedType({ type: 'Int' }), + }), + t.variableDefinition({ + variable: t.variable({ name: 'after' }), + type: t.namedType({ type: 'Cursor' }), + }), + t.variableDefinition({ + variable: t.variable({ name: 'before' }), + type: t.namedType({ type: 'Cursor' }), + }), + t.variableDefinition({ + variable: t.variable({ name: 'offset' }), + type: t.namedType({ type: 'Int' }), + }), + t.variableDefinition({ + variable: t.variable({ name: 'condition' }), + type: t.namedType({ type: Condition }), + }), + t.variableDefinition({ + variable: t.variable({ name: 'filter' }), + type: t.namedType({ type: Filter }), + }), + t.variableDefinition({ + variable: t.variable({ name: 'orderBy' }), + type: t.listType({ + type: t.nonNullType({ type: t.namedType({ type: OrderBy }) }), + }), + }), + ]; + + const args: ArgumentNode[] = [ + t.argument({ name: 'first', value: t.variable({ name: 'first' }) }), + t.argument({ name: 'last', value: t.variable({ name: 'last' }) }), + t.argument({ name: 'offset', value: t.variable({ name: 'offset' }) }), + t.argument({ name: 'after', value: t.variable({ name: 'after' }) }), + t.argument({ name: 'before', value: t.variable({ name: 'before' }) }), + t.argument({ + name: 'condition', + value: t.variable({ name: 'condition' }), + }), + t.argument({ name: 'filter', value: t.variable({ name: 'filter' }) }), + t.argument({ name: 'orderBy', value: t.variable({ name: 'orderBy' }) }), + ]; + + const pageInfoFields: FieldNode[] = [ + t.field({ name: 'hasNextPage' }), + t.field({ name: 'hasPreviousPage' }), + t.field({ name: 'endCursor' }), + t.field({ name: 'startCursor' }), + ]; + + const dataField: FieldNode = builder?._edges + ? t.field({ + name: 'edges', + selectionSet: t.selectionSet({ + selections: [ + t.field({ name: 'cursor' }), + t.field({ + name: 'node', + selectionSet: t.selectionSet({ selections }), + }), + ], + }), + }) + : t.field({ + name: 'nodes', + selectionSet: t.selectionSet({ selections }), + }); + + const connectionFields: FieldNode[] = [ + t.field({ name: 'totalCount' }), + t.field({ + name: 'pageInfo', + selectionSet: t.selectionSet({ selections: pageInfoFields }), + }), + dataField, + ]; + + const ast = t.document({ + definitions: [ + t.operationDefinition({ + operation: 'query', + name: queryName, + variableDefinitions, + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: operationName, + args, + selectionSet: t.selectionSet({ selections: connectionFields }), + }), + ], + }), + }), + ], + }); + + return ast; +}; + +export const getOne = ({ + queryName, + operationName, + query, + selection, +}: ASTFunctionParams): DocumentNode => { + const variableDefinitions: VariableDefinitionNode[] = Object.keys( + query.properties + ) + .map((key) => ({ key, ...query.properties[key] })) + .filter((field) => field.isNotNull) + .map((field) => { + const { + key: fieldName, + type: fieldType, + isNotNull, + isArray, + isArrayNotNull, + } = field; + let type: TypeNode = t.namedType({ type: fieldType }); + if (isNotNull) type = t.nonNullType({ type }); + if (isArray) { + type = t.listType({ type }); + if (isArrayNotNull) type = t.nonNullType({ type }); + } + return t.variableDefinition({ + variable: t.variable({ name: fieldName }), + type, + }); + }); + + const props = objectToArray(query.properties); + + const selectArgs: ArgumentNode[] = props + .filter((field) => field.isNotNull) + .map((field) => { + return t.argument({ + name: field.name, + value: t.variable({ name: field.name }), + }); + }); + + const selections = getSelections(selection); + + const opSel: FieldNode[] = [ + t.field({ + name: operationName, + args: selectArgs, + selectionSet: t.selectionSet({ selections }), + }), + ]; + + const ast = t.document({ + definitions: [ + t.operationDefinition({ + operation: 'query', + name: queryName, + variableDefinitions, + selectionSet: t.selectionSet({ selections: opSel }), + }), + ], + }); + return ast; +}; + +export const createOne = ({ + mutationName, + operationName, + mutation, + selection, +}: MutationASTParams): DocumentNode => { + if (!mutation.properties?.input?.properties) { + throw new Error(`No input field for mutation: ${mutationName}`); + } + + const modelName = inflection.camelize( + [inflection.singularize(mutation.model)].join('_'), + true + ); + + const inputProperties = mutation.properties.input + .properties as NestedProperties; + const modelProperties = inputProperties[modelName] as QueryProperty; + + if (!modelProperties.properties) { + throw new Error(`No properties found for model: ${modelName}`); + } + + const allAttrs = objectToArray( + modelProperties.properties as Record + ); + const attrs = allAttrs.filter( + (field) => !NON_MUTABLE_PROPS.includes(field.name) + ); + + const variableDefinitions = getCreateVariablesAst(attrs); + + const selectArgs: ArgumentNode[] = [ + t.argument({ + name: 'input', + value: t.objectValue({ + fields: [ + t.objectField({ + name: modelName, + value: t.objectValue({ + fields: attrs.map((field) => + t.objectField({ + name: field.name, + value: t.variable({ name: field.name }), + }) + ), + }), + }), + ], + }), + }), + ]; + + const selections = selection + ? getSelections(selection) + : allAttrs.map((field) => t.field({ name: field.name })); + + const ast = createGqlMutation({ + operationName, + mutationName, + selectArgs, + selections, + variableDefinitions, + modelName, + }); + + return ast; +}; + +export const patchOne = ({ + mutationName, + operationName, + mutation, + selection, +}: MutationASTParams): DocumentNode => { + if (!mutation.properties?.input?.properties) { + throw new Error(`No input field for mutation: ${mutationName}`); + } + + const modelName = inflection.camelize( + [inflection.singularize(mutation.model)].join('_'), + true + ); + + const inputProperties = mutation.properties.input + .properties as NestedProperties; + const patchProperties = inputProperties['patch'] as QueryProperty; + + const allAttrs = patchProperties?.properties + ? objectToArray(patchProperties.properties as Record) + : []; + + const patchAttrs = allAttrs.filter( + (prop) => !NON_MUTABLE_PROPS.includes(prop.name) + ); + const patchByAttrs = objectToArray( + inputProperties as Record + ).filter((n) => n.name !== 'patch'); + const patchers = patchByAttrs.map((p) => p.name); + + const variableDefinitions = getUpdateVariablesAst(patchAttrs, patchers); + + const selectArgs: ArgumentNode[] = [ + t.argument({ + name: 'input', + value: t.objectValue({ + fields: [ + ...patchByAttrs.map((field) => + t.objectField({ + name: field.name, + value: t.variable({ name: field.name }), + }) + ), + t.objectField({ + name: 'patch', + value: t.objectValue({ + fields: patchAttrs + .filter((field) => !patchers.includes(field.name)) + .map((field) => + t.objectField({ + name: field.name, + value: t.variable({ name: field.name }), + }) + ), + }), + }), + ], + }), + }), + ]; + + const selections = selection + ? getSelections(selection) + : allAttrs.map((field) => t.field({ name: field.name })); + + const ast = createGqlMutation({ + operationName, + mutationName, + selectArgs, + selections, + variableDefinitions, + modelName, + }); + + return ast; +}; + +export const deleteOne = ({ + mutationName, + operationName, + mutation, +}: Omit): DocumentNode => { + if (!mutation.properties?.input?.properties) { + throw new Error(`No input field for mutation: ${mutationName}`); + } + + const modelName = inflection.camelize( + [inflection.singularize(mutation.model)].join('_'), + true + ); + + const inputProperties = mutation.properties.input + .properties as NestedProperties; + const deleteAttrs = objectToArray( + inputProperties as Record + ); + + const variableDefinitions: VariableDefinitionNode[] = deleteAttrs.map( + (field) => { + const { name: fieldName, type: fieldType, isNotNull, isArray } = field; + let type: TypeNode = t.namedType({ type: fieldType }); + if (isNotNull) type = t.nonNullType({ type }); + if (isArray) { + type = t.listType({ type }); + // no need to check isArrayNotNull since we need this field for deletion + type = t.nonNullType({ type }); + } + return t.variableDefinition({ + variable: t.variable({ name: fieldName }), + type, + }); + } + ); + + const selectArgs: ArgumentNode[] = [ + t.argument({ + name: 'input', + value: t.objectValue({ + fields: deleteAttrs.map((f) => + t.objectField({ + name: f.name, + value: t.variable({ name: f.name }), + }) + ), + }), + }), + ]; + + // so we can support column select grants plugin + const selections: FieldNode[] = [t.field({ name: 'clientMutationId' })]; + const ast = createGqlMutation({ + operationName, + mutationName, + selectArgs, + selections, + useModel: false, + variableDefinitions, + modelName, + }); + + return ast; +}; + +export function getSelections(selection: QueryFieldSelection[] = []): FieldNode[] { + const selectionAst = (field: string | QueryFieldSelection): FieldNode => { + if (typeof field === 'string') { + return t.field({ name: field }); + } + // Check if fieldDefn has MetaField shape (has type.pgType) + const fieldDefn = field.fieldDefn; + if ( + fieldDefn && + 'type' in fieldDefn && + fieldDefn.type && + typeof fieldDefn.type === 'object' && + 'pgType' in fieldDefn.type + ) { + const customAst = getCustomAst( + fieldDefn as { name: string; type: { gqlType: string; pgType: string; isArray: boolean } } + ); + if (customAst) return customAst; + } + return t.field({ name: field.name }); + }; + + return selection + .map((selectionDefn): FieldNode | null => { + if (selectionDefn.isObject) { + const { name, selection, variables = {}, isBelongTo } = selectionDefn; + + const args: ArgumentNode[] = Object.entries(variables).reduce( + (acc: ArgumentNode[], variable) => { + const [argName, argValue] = variable; + const argAst = t.argument({ + name: argName, + value: getComplexValueAst(argValue), + }); + return argAst ? [...acc, argAst] : acc; + }, + [] + ); + + const subSelections = + selection?.map((field) => selectionAst(field)) || []; + + const selectionSet = isBelongTo + ? t.selectionSet({ selections: subSelections }) + : t.selectionSet({ + selections: [ + t.field({ name: 'totalCount' }), + t.field({ + name: 'nodes', + selectionSet: t.selectionSet({ selections: subSelections }), + }), + ], + }); + + return t.field({ + name, + args, + selectionSet, + }); + } else { + return selectionAst(selectionDefn); + } + }) + .filter((node): node is FieldNode => node !== null); +} + +function getComplexValueAst(value: unknown): ValueNode { + // Handle null + if (value === null) { + return t.nullValue(); + } + + // Handle primitives + if (typeof value === 'boolean') { + return t.booleanValue({ value }); + } + + if (typeof value === 'number') { + return t.intValue({ value: value.toString() }); + } + + if (typeof value === 'string') { + return t.stringValue({ value }); + } + + // Handle arrays + if (Array.isArray(value)) { + return t.listValue({ + values: value.map((item) => getComplexValueAst(item)), + }); + } + + // Handle objects + if (typeof value === 'object' && value !== null) { + const obj = value as Record; + return t.objectValue({ + fields: Object.entries(obj).map(([key, val]) => + t.objectField({ + name: key, + value: getComplexValueAst(val), + }) + ), + }); + } + + throw new Error(`Unsupported value type: ${typeof value}`); +} + +function getCreateVariablesAst( + attrs: ObjectArrayItem[] +): VariableDefinitionNode[] { + return attrs.map((field) => { + const { + name: fieldName, + type: fieldType, + isNotNull, + isArray, + isArrayNotNull, + } = field; + let type: TypeNode = t.namedType({ type: fieldType }); + if (isNotNull) type = t.nonNullType({ type }); + if (isArray) { + type = t.listType({ type }); + if (isArrayNotNull) type = t.nonNullType({ type }); + } + return t.variableDefinition({ + variable: t.variable({ name: fieldName }), + type, + }); + }); +} + +function getUpdateVariablesAst( + attrs: ObjectArrayItem[], + patchers: string[] +): VariableDefinitionNode[] { + const patchVariables: VariableDefinitionNode[] = attrs + .filter((field) => !patchers.includes(field.name)) + .map((field) => { + const { name: fieldName, type: fieldType, isArray, isArrayNotNull } = + field; + let type: TypeNode = t.namedType({ type: fieldType }); + if (isArray) { + type = t.listType({ type }); + if (isArrayNotNull) type = t.nonNullType({ type }); + } + return t.variableDefinition({ + variable: t.variable({ name: fieldName }), + type, + }); + }); + + const patcherVariables: VariableDefinitionNode[] = patchers.map((patcher) => { + return t.variableDefinition({ + variable: t.variable({ name: patcher }), + type: t.nonNullType({ type: t.namedType({ type: 'String' }) }), + }); + }); + + return [...patchVariables, ...patcherVariables]; +} diff --git a/graphql/codegen/src/core/custom-ast.ts b/graphql/codegen/src/core/custom-ast.ts new file mode 100644 index 000000000..5d9a1428e --- /dev/null +++ b/graphql/codegen/src/core/custom-ast.ts @@ -0,0 +1,187 @@ +import * as t from 'gql-ast'; +import type { FieldNode, InlineFragmentNode } from 'graphql'; + +import type { CleanField } from '../types/schema'; +import type { MetaField } from './types'; + +/** + * Get custom AST for MetaField type - handles PostgreSQL types that need subfield selections + */ +export function getCustomAst(fieldDefn?: MetaField): FieldNode | null { + if (!fieldDefn) { + return null; + } + + const { pgType } = fieldDefn.type; + if (pgType === 'geometry') { + return geometryAst(fieldDefn.name); + } + + if (pgType === 'interval') { + return intervalAst(fieldDefn.name); + } + + return t.field({ + name: fieldDefn.name, + }); +} + +/** + * Generate custom AST for CleanField type - handles GraphQL types that need subfield selections + */ +export function getCustomAstForCleanField(field: CleanField): FieldNode { + const { name, type } = field; + const { gqlType, pgType } = type; + + // Handle by GraphQL type first (this is what the error messages reference) + if (gqlType === 'GeometryPoint') { + return geometryPointAst(name); + } + + if (gqlType === 'Interval') { + return intervalAst(name); + } + + if (gqlType === 'GeometryGeometryCollection') { + return geometryCollectionAst(name); + } + + // Handle by pgType as fallback + if (pgType === 'geometry') { + return geometryAst(name); + } + + if (pgType === 'interval') { + return intervalAst(name); + } + + // Return simple field for scalar types + return t.field({ + name, + }); +} + +/** + * Check if a CleanField requires subfield selection based on its GraphQL type + */ +export function requiresSubfieldSelection(field: CleanField): boolean { + const { gqlType } = field.type; + + // Complex GraphQL types that require subfield selection + const complexTypes = [ + 'GeometryPoint', + 'Interval', + 'GeometryGeometryCollection', + 'GeoJSON', + ]; + + return complexTypes.includes(gqlType); +} + +/** + * Generate AST for GeometryPoint type + */ +export function geometryPointAst(name: string): FieldNode { + return t.field({ + name, + selectionSet: t.selectionSet({ + selections: toFieldArray(['x', 'y']), + }), + }); +} + +/** + * Generate AST for GeometryGeometryCollection type + */ +export function geometryCollectionAst(name: string): FieldNode { + // Manually create inline fragment since gql-ast doesn't support it + const inlineFragment: InlineFragmentNode = { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'GeometryPoint', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { + kind: 'Name', + value: 'x', + }, + }, + { + kind: 'Field', + name: { + kind: 'Name', + value: 'y', + }, + }, + ], + }, + }; + + return t.field({ + name, + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: 'geometries', + selectionSet: t.selectionSet({ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + selections: [inlineFragment as any], // gql-ast limitation with inline fragments + }), + }), + ], + }), + }); +} + +/** + * Generate AST for generic geometry type (returns geojson) + */ +export function geometryAst(name: string): FieldNode { + return t.field({ + name, + selectionSet: t.selectionSet({ + selections: toFieldArray(['geojson']), + }), + }); +} + +/** + * Generate AST for interval type + */ +export function intervalAst(name: string): FieldNode { + return t.field({ + name, + selectionSet: t.selectionSet({ + selections: toFieldArray([ + 'days', + 'hours', + 'minutes', + 'months', + 'seconds', + 'years', + ]), + }), + }); +} + +function toFieldArray(strArr: string[]): FieldNode[] { + return strArr.map((fieldName) => t.field({ name: fieldName })); +} + +/** + * Check if an object has interval type shape + */ +export function isIntervalType(obj: unknown): boolean { + if (!obj || typeof obj !== 'object') return false; + return ['days', 'hours', 'minutes', 'months', 'seconds', 'years'].every( + (key) => Object.prototype.hasOwnProperty.call(obj, key) + ); +} diff --git a/graphql/codegen/src/core/index.ts b/graphql/codegen/src/core/index.ts new file mode 100644 index 000000000..5e6e782c0 --- /dev/null +++ b/graphql/codegen/src/core/index.ts @@ -0,0 +1,16 @@ +/** + * Core query building exports + */ + +// Types +export * from './types'; + +// AST generation +export * from './ast'; +export * from './custom-ast'; + +// Query builder +export { QueryBuilder, MetaObject } from './query-builder'; + +// Meta object utilities +export { validateMetaObject, convertFromMetaSchema } from './meta-object'; diff --git a/graphql/codegen/src/core/meta-object/convert.ts b/graphql/codegen/src/core/meta-object/convert.ts new file mode 100644 index 000000000..02bff2fe4 --- /dev/null +++ b/graphql/codegen/src/core/meta-object/convert.ts @@ -0,0 +1,156 @@ +import type { MetaFieldType } from '../types'; + +// Input schema types (from _meta query response) +interface MetaSchemaField { + name: string; + type: MetaFieldType; +} + +interface MetaSchemaConstraint { + fields: MetaSchemaField[]; +} + +interface MetaSchemaForeignConstraint { + fields: MetaSchemaField[]; + refFields: MetaSchemaField[]; + refTable: { name: string }; +} + +interface MetaSchemaBelongsTo { + keys: MetaSchemaField[]; + fieldName: string; +} + +interface MetaSchemaRelations { + belongsTo: MetaSchemaBelongsTo[]; +} + +interface MetaSchemaTable { + name: string; + fields: MetaSchemaField[]; + primaryKeyConstraints: MetaSchemaConstraint[]; + uniqueConstraints: MetaSchemaConstraint[]; + foreignKeyConstraints: MetaSchemaForeignConstraint[]; + relations: MetaSchemaRelations; +} + +interface MetaSchemaInput { + _meta: { + tables: MetaSchemaTable[]; + }; +} + +// Output types (internal MetaObject format) +interface ConvertedField { + name: string; + type: MetaFieldType; + alias?: string; +} + +interface ConvertedConstraint { + name: string; + type: MetaFieldType; + alias?: string; +} + +interface ConvertedForeignConstraint { + refTable: string; + fromKey: ConvertedField; + toKey: ConvertedField; +} + +interface ConvertedTable { + name: string; + fields: ConvertedField[]; + primaryConstraints: ConvertedConstraint[]; + uniqueConstraints: ConvertedConstraint[]; + foreignConstraints: ConvertedForeignConstraint[]; +} + +interface ConvertedMetaObject { + tables: ConvertedTable[]; +} + +/** + * Convert from raw _meta schema response to internal MetaObject format + */ +export function convertFromMetaSchema( + metaSchema: MetaSchemaInput +): ConvertedMetaObject { + const { + _meta: { tables }, + } = metaSchema; + + const result: ConvertedMetaObject = { + tables: [], + }; + + for (const table of tables) { + result.tables.push({ + name: table.name, + fields: table.fields.map((f) => pickField(f)), + primaryConstraints: pickArrayConstraint(table.primaryKeyConstraints), + uniqueConstraints: pickArrayConstraint(table.uniqueConstraints), + foreignConstraints: pickForeignConstraint( + table.foreignKeyConstraints, + table.relations + ), + }); + } + + return result; +} + +function pickArrayConstraint( + constraints: MetaSchemaConstraint[] +): ConvertedConstraint[] { + if (constraints.length === 0) return []; + const c = constraints[0]; + return c.fields.map((field) => pickConstraintField(field)); +} + +function pickForeignConstraint( + constraints: MetaSchemaForeignConstraint[], + relations: MetaSchemaRelations +): ConvertedForeignConstraint[] { + if (constraints.length === 0) return []; + + const { belongsTo } = relations; + + return constraints.map((c) => { + const { fields, refFields, refTable } = c; + + const fromKey = pickField(fields[0]); + const toKey = pickField(refFields[0]); + + const matchingBelongsTo = belongsTo.find((belongsToItem) => { + const field = pickField(belongsToItem.keys[0]); + return field.name === fromKey.name; + }); + + // Ex: 'ownerId' will have an alias of 'owner', which has further selection of 'User' type + if (matchingBelongsTo) { + fromKey.alias = matchingBelongsTo.fieldName; + } + + return { + refTable: refTable.name, + fromKey, + toKey, + }; + }); +} + +function pickField(field: MetaSchemaField): ConvertedField { + return { + name: field.name, + type: field.type, + }; +} + +function pickConstraintField(field: MetaSchemaField): ConvertedConstraint { + return { + name: field.name, + type: field.type, + }; +} diff --git a/graphql/codegen/src/core/meta-object/format.json b/graphql/codegen/src/core/meta-object/format.json new file mode 100644 index 000000000..82654f252 --- /dev/null +++ b/graphql/codegen/src/core/meta-object/format.json @@ -0,0 +1,93 @@ +{ + "$id": "root", + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "definitions": { + "field": { + "type": "object", + "required": ["name", "type"], + "additionalProperties": true, + "properties": { + "name": { + "type": "string", + "default": "id", + "examples": ["id"] + }, + "type": { + "type": "object", + "required": ["pgType", "gqlType"], + "additionalProperties": true, + "properties": { + "gqlType": { + "type": ["string", "null"] + }, + "pgType": { + "type": ["string", "null"] + }, + "subtype": { + "type": ["string", "null"] + } + } + } + } + } + }, + "properties": { + "tables": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "default": "User", + "examples": ["User"] + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/definitions/field" + } + }, + "primaryConstraints": { + "type": "array", + "items": { + "$ref": "#/definitions/field" + } + }, + "uniqueConstraints": { + "type": "array", + "items": { + "$ref": "#/definitions/field" + } + }, + "foreignConstraints": { + "type": "array", + "items": { + "type": "object", + "properties": { + "refTable": { + "type": "string", + "default": "User", + "examples": ["User"] + }, + "fromKey": { + "$ref": "#/definitions/field" + }, + "toKey": { + "$ref": "#/definitions/field" + } + }, + "required": ["refTable", "fromKey", "toKey"], + "additionalProperties": false + } + } + }, + "required": ["name", "fields"], + "additionalProperties": false + } + } + }, + "required": ["tables"], + "additionalProperties": false +} diff --git a/graphql/codegen/src/core/meta-object/index.ts b/graphql/codegen/src/core/meta-object/index.ts new file mode 100644 index 000000000..19be3a891 --- /dev/null +++ b/graphql/codegen/src/core/meta-object/index.ts @@ -0,0 +1,2 @@ +export * from './convert'; +export * from './validate'; diff --git a/graphql/codegen/src/core/meta-object/validate.ts b/graphql/codegen/src/core/meta-object/validate.ts new file mode 100644 index 000000000..1481e6b5d --- /dev/null +++ b/graphql/codegen/src/core/meta-object/validate.ts @@ -0,0 +1,41 @@ +import Ajv, { type ValidateFunction } from 'ajv'; + +import format from './format.json'; + +export interface ValidationResult { + errors: unknown[] | null | undefined; + message: string; +} + +let cachedAjv: Ajv | null = null; +let cachedValidator: ValidateFunction | null = null; + +function getValidator() { + if (!cachedAjv) { + cachedAjv = new Ajv({ allErrors: true }); + cachedValidator = cachedAjv.compile(format); + } + + return { + ajv: cachedAjv, + validator: cachedValidator!, + }; +} + +/** + * Validate a MetaObject against the JSON schema + * @returns true if valid, or an object with errors and message if invalid + */ +export function validateMetaObject( + obj: unknown +): true | ValidationResult { + const { ajv, validator } = getValidator(); + const valid = validator(obj); + + if (valid) return true; + + return { + errors: validator.errors, + message: ajv.errorsText(validator.errors, { separator: '\n' }), + }; +} diff --git a/graphql/codegen/src/core/query-builder.ts b/graphql/codegen/src/core/query-builder.ts new file mode 100644 index 000000000..38c8c888d --- /dev/null +++ b/graphql/codegen/src/core/query-builder.ts @@ -0,0 +1,585 @@ +import { DocumentNode, print as gqlPrint } from 'graphql'; +import * as inflection from 'inflection'; + +import { + createOne, + deleteOne, + getAll, + getCount, + getMany, + getOne, + patchOne, +} from './ast'; +import { validateMetaObject } from './meta-object'; +import type { + QueryFieldSelection, + IntrospectionSchema, + MetaObject, + MetaTable, + MutationDefinition, + QueryBuilderOptions, + QueryBuilderResult, + QueryDefinition, + QuerySelectionOptions, +} from './types'; + +export * as MetaObject from './meta-object'; + +const isObject = (val: unknown): val is object => + val !== null && typeof val === 'object'; + +export class QueryBuilder { + public _introspection: IntrospectionSchema; + public _meta: MetaObject; + private _models!: Record< + string, + Record + >; + private _model!: string; + private _key!: string | null; + private _queryName!: string; + private _ast!: DocumentNode | null; + public _edges!: boolean; + private _op!: string; + private _mutation!: string; + private _select!: QueryFieldSelection[]; + + constructor({ + meta = {} as MetaObject, + introspection, + }: QueryBuilderOptions) { + this._introspection = introspection; + this._meta = meta; + this.clear(); + this.initModelMap(); + this.pickScalarFields = pickScalarFields.bind(this); + this.pickAllFields = pickAllFields.bind(this); + + const result = validateMetaObject(this._meta); + if (typeof result === 'object' && result.errors) { + throw new Error( + `QueryBuilder: meta object is invalid:\n${result.message}` + ); + } + } + + /* + * Save all gql queries and mutations by model name for quicker lookup + */ + initModelMap(): void { + this._models = {} as Record>; + + for (const [key, defn] of Object.entries(this._introspection)) { + if (!this._models[defn.model]) { + this._models[defn.model] = {}; + } + this._models[defn.model][key] = defn; + } + } + + clear(): void { + this._model = ''; + this._key = null; + this._queryName = ''; + this._ast = null; + this._edges = false; + this._op = ''; + this._mutation = ''; + this._select = []; + } + + query(model: string): QueryBuilder { + this.clear(); + this._model = model; + return this; + } + + _findQuery(): string { + // based on the op, finds the relevant GQL query + const queries = this._models[this._model]; + if (!queries) { + throw new Error('No queries found for ' + this._model); + } + + const matchQuery = Object.entries(queries).find( + ([_, defn]) => defn.qtype === this._op + ); + + if (!matchQuery) { + throw new Error('No query found for ' + this._model + ':' + this._op); + } + + const queryKey = matchQuery[0]; + return queryKey; + } + + _findMutation(): string { + // For mutation, there can be many defns that match the operation being requested + // .ie: deleteAction, deleteActionBySlug, deleteActionByName + const matchingDefns = Object.keys(this._introspection).reduce( + (arr, mutationKey) => { + const defn = this._introspection[mutationKey]; + if ( + defn.model === this._model && + defn.qtype === this._op && + defn.qtype === 'mutation' && + (defn as MutationDefinition).mutationType === this._mutation + ) { + arr = [...arr, { defn, mutationKey }]; + } + return arr; + }, + [] as Array<{ + defn: QueryDefinition | MutationDefinition; + mutationKey: string; + }> + ); + + if (matchingDefns.length === 0) { + throw new Error( + 'no mutation found for ' + this._model + ':' + this._mutation + ); + } + + // We only need deleteAction from all of [deleteAction, deleteActionBySlug, deleteActionByName] + const getInputName = (mutationType: string): string => { + switch (mutationType) { + case 'delete': { + return `Delete${inflection.camelize(this._model)}Input`; + } + case 'create': { + return `Create${inflection.camelize(this._model)}Input`; + } + case 'patch': { + return `Update${inflection.camelize(this._model)}Input`; + } + default: + throw new Error('Unhandled mutation type' + mutationType); + } + }; + + const matchDefn = matchingDefns.find( + ({ defn }) => defn.properties.input.type === getInputName(this._mutation) + ); + + if (!matchDefn) { + throw new Error( + 'no mutation found for ' + this._model + ':' + this._mutation + ); + } + + return matchDefn.mutationKey; + } + + select(selection?: QuerySelectionOptions | null): QueryBuilder { + const defn = this._introspection[this._key!]; + + // If selection not given, pick only scalar fields + if (selection == null) { + this._select = this.pickScalarFields(null, defn); + return this; + } + + this._select = this.pickAllFields(selection, defn); + return this; + } + + edges(useEdges: boolean): QueryBuilder { + this._edges = useEdges; + return this; + } + + getMany({ select }: { select?: QuerySelectionOptions } = {}): QueryBuilder { + this._op = 'getMany'; + this._key = this._findQuery(); + + this.queryName( + inflection.camelize( + ['get', inflection.underscore(this._key), 'query'].join('_'), + true + ) + ); + + const defn = this._introspection[this._key]; + + this.select(select); + this._ast = getMany({ + builder: this, + queryName: this._queryName, + operationName: this._key, + query: defn, + selection: this._select, + }); + + return this; + } + + all({ select }: { select?: QuerySelectionOptions } = {}): QueryBuilder { + this._op = 'getMany'; + this._key = this._findQuery(); + + this.queryName( + inflection.camelize( + ['get', inflection.underscore(this._key), 'query', 'all'].join('_'), + true + ) + ); + + const defn = this._introspection[this._key]; + + this.select(select); + this._ast = getAll({ + queryName: this._queryName, + operationName: this._key, + query: defn, + selection: this._select, + }); + + return this; + } + + count(): QueryBuilder { + this._op = 'getMany'; + this._key = this._findQuery(); + + this.queryName( + inflection.camelize( + ['get', inflection.underscore(this._key), 'count', 'query'].join('_'), + true + ) + ); + + const defn = this._introspection[this._key]; + + this._ast = getCount({ + queryName: this._queryName, + operationName: this._key, + query: defn, + }); + + return this; + } + + getOne({ select }: { select?: QuerySelectionOptions } = {}): QueryBuilder { + this._op = 'getOne'; + this._key = this._findQuery(); + + this.queryName( + inflection.camelize( + ['get', inflection.underscore(this._key), 'query'].join('_'), + true + ) + ); + + const defn = this._introspection[this._key]; + this.select(select); + this._ast = getOne({ + builder: this, + queryName: this._queryName, + operationName: this._key, + query: defn, + selection: this._select, + }); + + return this; + } + + create({ select }: { select?: QuerySelectionOptions } = {}): QueryBuilder { + this._op = 'mutation'; + this._mutation = 'create'; + this._key = this._findMutation(); + + this.queryName( + inflection.camelize( + [inflection.underscore(this._key), 'mutation'].join('_'), + true + ) + ); + + const defn = this._introspection[this._key] as MutationDefinition; + this.select(select); + this._ast = createOne({ + operationName: this._key, + mutationName: this._queryName, + mutation: defn, + selection: this._select, + }); + + return this; + } + + delete({ select }: { select?: QuerySelectionOptions } = {}): QueryBuilder { + this._op = 'mutation'; + this._mutation = 'delete'; + this._key = this._findMutation(); + + this.queryName( + inflection.camelize( + [inflection.underscore(this._key), 'mutation'].join('_'), + true + ) + ); + + const defn = this._introspection[this._key] as MutationDefinition; + + this.select(select); + this._ast = deleteOne({ + operationName: this._key, + mutationName: this._queryName, + mutation: defn, + }); + + return this; + } + + update({ select }: { select?: QuerySelectionOptions } = {}): QueryBuilder { + this._op = 'mutation'; + this._mutation = 'patch'; + this._key = this._findMutation(); + + this.queryName( + inflection.camelize( + [inflection.underscore(this._key), 'mutation'].join('_'), + true + ) + ); + + const defn = this._introspection[this._key] as MutationDefinition; + + this.select(select); + this._ast = patchOne({ + operationName: this._key, + mutationName: this._queryName, + mutation: defn, + selection: this._select, + }); + + return this; + } + + queryName(name: string): QueryBuilder { + this._queryName = name; + return this; + } + + print(): QueryBuilderResult { + if (!this._ast) { + throw new Error('No AST generated. Please call a query method first.'); + } + const _hash = gqlPrint(this._ast); + return { + _hash, + _queryName: this._queryName, + _ast: this._ast, + }; + } + + // Bind methods that will be called with different this context + pickScalarFields: ( + selection: QuerySelectionOptions | null, + defn: QueryDefinition + ) => QueryFieldSelection[]; + pickAllFields: ( + selection: QuerySelectionOptions, + defn: QueryDefinition + ) => QueryFieldSelection[]; +} + +/** + * Pick scalar fields of a query definition + * @param {Object} defn Query definition + * @param {Object} meta Meta object containing info about table relations + * @returns {Array} + */ +function pickScalarFields( + this: QueryBuilder, + selection: QuerySelectionOptions | null, + defn: QueryDefinition +): QueryFieldSelection[] { + const model = defn.model; + const modelMeta = this._meta.tables.find((t) => t.name === model); + + if (!modelMeta) { + throw new Error(`Model meta not found for ${model}`); + } + + const isInTableSchema = (fieldName: string): boolean => + !!modelMeta.fields.find((field) => field.name === fieldName); + + const pickFrom = (modelSelection: string[]): QueryFieldSelection[] => + modelSelection + .filter((fieldName) => { + // If not specified or not a valid selection list, allow all + if (selection == null || !Array.isArray(selection)) return true; + return Object.keys(selection).includes(fieldName); + }) + .filter( + (fieldName) => + !isRelationalField(fieldName, modelMeta) && + isInTableSchema(fieldName) + ) + .map((fieldName) => ({ + name: fieldName, + isObject: false, + fieldDefn: modelMeta.fields.find((f) => f.name === fieldName), + })); + + // This is for inferring the sub-selection of a mutation query + // from a definition model .eg UserSetting, find its related queries in the introspection object, and pick its selection fields + if (defn.qtype === 'mutation') { + const relatedQuery = + this._introspection[`${modelNameToGetMany(defn.model)}`]; + return pickFrom(relatedQuery.selection); + } + + return pickFrom(defn.selection); +} + +/** + * Pick scalar fields and sub-selection fields of a query definition + * @param {Object} selection Selection clause object + * @param {Object} defn Query definition + * @param {Object} meta Meta object containing info about table relations + * @returns {Array} + */ +function pickAllFields( + this: QueryBuilder, + selection: QuerySelectionOptions, + defn: QueryDefinition +): QueryFieldSelection[] { + const model = defn.model; + const modelMeta = this._meta.tables.find((t) => t.name === model); + + if (!modelMeta) { + throw new Error(`Model meta not found for ${model}`); + } + + const selectionEntries = Object.entries(selection); + let fields: QueryFieldSelection[] = []; + + const isWhiteListed = (selectValue: unknown): selectValue is boolean => { + return typeof selectValue === 'boolean' && selectValue; + }; + + for (const entry of selectionEntries) { + const [fieldName, fieldOptions] = entry; + // Case + // { + // goalResults: // fieldName + // { select: { id: true }, variables: { first: 100 } } // fieldOptions + // } + if (isObject(fieldOptions)) { + if (!isFieldInDefinition(fieldName, defn, modelMeta)) { + continue; + } + + const referencedForeignConstraint = modelMeta.foreignConstraints.find( + (constraint) => + constraint.fromKey.name === fieldName || + constraint.fromKey.alias === fieldName + ); + + const selectOptions = fieldOptions as { + select: Record; + variables?: Record; + }; + + const subFields = Object.keys(selectOptions.select).filter((subField) => { + return ( + !isRelationalField(subField, modelMeta) && + isWhiteListed(selectOptions.select[subField]) + ); + }); + + const isBelongTo = !!referencedForeignConstraint; + + const fieldSelection: QueryFieldSelection = { + name: fieldName, + isObject: true, + isBelongTo, + selection: subFields.map((name) => ({ name, isObject: false })), + variables: selectOptions.variables as QueryFieldSelection['variables'], + }; + + // Need to further expand selection of object fields, + // but only non-graphql-builtin, non-relation fields + // .ie action { id location } + // location is non-scalar and non-relational, thus need to further expand into { x y ... } + if (isBelongTo) { + const getManyName = modelNameToGetMany( + referencedForeignConstraint.refTable + ); + const refDefn = this._introspection[getManyName]; + fieldSelection.selection = pickScalarFields.call( + this, + { [fieldName]: true }, + refDefn + ); + } + + fields = [...fields, fieldSelection]; + } else { + // Case + // { + // userId: true // [fieldName, fieldOptions] + // } + if (isWhiteListed(fieldOptions)) { + fields = [ + ...fields, + { + name: fieldName, + isObject: false, + fieldDefn: modelMeta.fields.find((f) => f.name === fieldName), + }, + ]; + } + } + } + + return fields; +} + +function isFieldInDefinition( + fieldName: string, + defn: QueryDefinition, + modelMeta: MetaTable +): boolean { + const isReferenced = !!modelMeta.foreignConstraints.find( + (constraint) => + constraint.fromKey.name === fieldName || + constraint.fromKey.alias === fieldName + ); + + return ( + isReferenced || + defn.selection.some((selectionItem) => { + if (typeof selectionItem === 'string') { + return fieldName === selectionItem; + } + if (isObject(selectionItem)) { + return (selectionItem as { name: string }).name === fieldName; + } + return false; + }) + ); +} + +// TODO: see if there is a possibility of supertyping table (a key is both a foreign and primary key) +// A relational field is a foreign key but not a primary key +function isRelationalField(fieldName: string, modelMeta: MetaTable): boolean { + return ( + !modelMeta.primaryConstraints.find((field) => field.name === fieldName) && + !!modelMeta.foreignConstraints.find( + (constraint) => constraint.fromKey.name === fieldName + ) + ); +} + +// Get getMany op name from model +// ie. UserSetting => userSettings +function modelNameToGetMany(model: string): string { + return inflection.camelize( + inflection.pluralize(inflection.underscore(model)), + true + ); +} diff --git a/graphql/codegen/src/core/types.ts b/graphql/codegen/src/core/types.ts new file mode 100644 index 000000000..fc9b252e3 --- /dev/null +++ b/graphql/codegen/src/core/types.ts @@ -0,0 +1,202 @@ +import type { DocumentNode, FieldNode, SelectionSetNode, VariableDefinitionNode } from 'graphql'; + +import type { CleanField } from '../types/schema'; + +// GraphQL AST types (re-export what we need from gql-ast) +export type ASTNode = DocumentNode | FieldNode | SelectionSetNode | VariableDefinitionNode; + +// Nested property structure for complex mutation inputs +export interface NestedProperties { + [key: string]: QueryProperty | NestedProperties; +} + +// Base interfaces for query definitions +export interface QueryProperty { + name: string; + type: string; + isNotNull: boolean; + isArray: boolean; + isArrayNotNull: boolean; + properties?: NestedProperties; // For nested properties in mutations +} + +export interface QueryDefinition { + model: string; + qtype: 'getMany' | 'getOne' | 'mutation'; + mutationType?: 'create' | 'patch' | 'delete'; + selection: string[]; + properties: Record; +} + +export interface MutationDefinition extends QueryDefinition { + qtype: 'mutation'; + mutationType: 'create' | 'patch' | 'delete'; +} + +export interface IntrospectionSchema { + [key: string]: QueryDefinition | MutationDefinition; +} + +// Meta object interfaces with specific types +export interface MetaFieldType { + gqlType: string; + isArray: boolean; + modifier?: string | number | null; + pgAlias?: string | null; + pgType?: string | null; + subtype?: string | null; + typmod?: number | null; +} + +export interface MetaField { + name: string; + type: MetaFieldType; +} + +export interface MetaConstraint { + name: string; + type: MetaFieldType; + alias?: string; +} + +export interface MetaForeignConstraint { + fromKey: MetaConstraint; + refTable: string; + toKey: MetaConstraint; +} + +export interface MetaTable { + name: string; + fields: MetaField[]; + primaryConstraints: MetaConstraint[]; + uniqueConstraints: MetaConstraint[]; + foreignConstraints: MetaForeignConstraint[]; +} + +export interface MetaObject { + tables: MetaTable[]; +} + +// GraphQL Variables - strictly typed +export type GraphQLVariableValue = string | number | boolean | null; + +export interface GraphQLVariables { + [key: string]: + | GraphQLVariableValue + | GraphQLVariableValue[] + | GraphQLVariables + | GraphQLVariables[]; +} + +// Internal selection interfaces used by query builder +export interface QueryFieldSelection { + name: string; + isObject: boolean; + fieldDefn?: MetaField | CleanField; + selection?: QueryFieldSelection[]; + variables?: GraphQLVariables; + isBelongTo?: boolean; +} + +export interface QuerySelectionOptions { + [fieldName: string]: + | boolean + | { + select: Record; + variables?: GraphQLVariables; + }; +} + +// QueryBuilder class interface +export interface QueryBuilderInstance { + _introspection: IntrospectionSchema; + _meta: MetaObject; + _edges?: boolean; +} + +// AST function interfaces +export interface ASTFunctionParams { + queryName: string; + operationName: string; + query: QueryDefinition; + selection: QueryFieldSelection[]; + builder?: QueryBuilderInstance; +} + +export interface MutationASTParams { + mutationName: string; + operationName: string; + mutation: MutationDefinition; + selection?: QueryFieldSelection[]; +} + +// QueryBuilder interface +export interface QueryBuilderOptions { + meta: MetaObject; + introspection: IntrospectionSchema; +} + +export interface QueryBuilderResult { + _hash: string; + _queryName: string; + _ast: DocumentNode; +} + +// Public QueryBuilder interface +export interface IQueryBuilder { + query(model: string): IQueryBuilder; + getMany(options?: { select?: QuerySelectionOptions }): IQueryBuilder; + getOne(options?: { select?: QuerySelectionOptions }): IQueryBuilder; + all(options?: { select?: QuerySelectionOptions }): IQueryBuilder; + count(): IQueryBuilder; + create(options?: { select?: QuerySelectionOptions }): IQueryBuilder; + update(options?: { select?: QuerySelectionOptions }): IQueryBuilder; + delete(options?: { select?: QuerySelectionOptions }): IQueryBuilder; + edges(useEdges: boolean): IQueryBuilder; + print(): QueryBuilderResult; +} + +// Helper type for object array conversion +export interface ObjectArrayItem extends QueryProperty { + name: string; + key?: string; // For when we map with key instead of name +} + +// Type guards for runtime validation +export function isGraphQLVariableValue( + value: unknown +): value is GraphQLVariableValue { + return ( + value === null || + typeof value === 'string' || + typeof value === 'number' || + typeof value === 'boolean' + ); +} + +export function isGraphQLVariables(obj: unknown): obj is GraphQLVariables { + if (!obj || typeof obj !== 'object') return false; + + for (const [key, value] of Object.entries(obj)) { + if (typeof key !== 'string') return false; + + if (Array.isArray(value)) { + if ( + !value.every( + (item) => isGraphQLVariableValue(item) || isGraphQLVariables(item) + ) + ) { + return false; + } + } else if (!isGraphQLVariableValue(value) && !isGraphQLVariables(value)) { + return false; + } + } + + return true; +} + +// Utility type for ensuring strict typing +export type StrictRecord = Record & { + [P in PropertyKey]: P extends K ? V : never; +}; diff --git a/graphql/codegen/src/generators/field-selector.ts b/graphql/codegen/src/generators/field-selector.ts new file mode 100644 index 000000000..8e42e5c9d --- /dev/null +++ b/graphql/codegen/src/generators/field-selector.ts @@ -0,0 +1,470 @@ +/** + * Simplified field selection system + * Converts user-friendly selection options to internal SelectionOptions format + */ +import type { QuerySelectionOptions } from '../core/types'; +import type { CleanTable } from '../types/schema'; +import type { + FieldSelection, + FieldSelectionPreset, + SimpleFieldSelection, +} from '../types/selection'; + +/** + * Convert simplified field selection to QueryBuilder SelectionOptions + */ +export function convertToSelectionOptions( + table: CleanTable, + allTables: CleanTable[], + selection?: FieldSelection +): QuerySelectionOptions | null { + if (!selection) { + return convertPresetToSelection(table, 'display'); + } + + if (typeof selection === 'string') { + return convertPresetToSelection(table, selection); + } + + return convertCustomSelectionToOptions(table, allTables, selection); +} + +/** + * Convert preset to selection options + */ +function convertPresetToSelection( + table: CleanTable, + preset: FieldSelectionPreset +): QuerySelectionOptions { + const options: QuerySelectionOptions = {}; + + switch (preset) { + case 'minimal': { + // Just id and first display field + const minimalFields = getMinimalFields(table); + minimalFields.forEach((field) => { + options[field] = true; + }); + break; + } + + case 'display': { + // Common display fields + const displayFields = getDisplayFields(table); + displayFields.forEach((field) => { + options[field] = true; + }); + break; + } + + case 'all': { + // All non-relational fields (includes complex fields like JSON, geometry, etc.) + const allFields = getNonRelationalFields(table); + allFields.forEach((field) => { + options[field] = true; + }); + break; + } + + case 'full': + // All fields including basic relations + table.fields.forEach((field) => { + options[field.name] = true; + }); + break; + + default: { + // Default to display + const defaultFields = getDisplayFields(table); + defaultFields.forEach((field) => { + options[field] = true; + }); + } + } + + return options; +} + +/** + * Convert custom selection to options + */ +function convertCustomSelectionToOptions( + table: CleanTable, + allTables: CleanTable[], + selection: SimpleFieldSelection +): QuerySelectionOptions { + const options: QuerySelectionOptions = {}; + + // Start with selected fields or all non-relational fields (including complex types) + let fieldsToInclude: string[]; + + if (selection.select) { + fieldsToInclude = selection.select; + } else { + fieldsToInclude = getNonRelationalFields(table); + } + + // Add basic fields + fieldsToInclude.forEach((field) => { + if (table.fields.some((f) => f.name === field)) { + options[field] = true; + } + }); + + // Handle includeRelations (simple API for relation fields) + if (selection.includeRelations) { + selection.includeRelations.forEach((relationField) => { + if (isRelationalField(relationField, table)) { + // Include with dynamically determined scalar fields from the related table + options[relationField] = { + select: getRelatedTableScalarFields(relationField, table, allTables), + variables: {}, + }; + } + }); + } + + // Handle includes (relations) - more detailed API + if (selection.include) { + Object.entries(selection.include).forEach( + ([relationField, relationSelection]) => { + if (isRelationalField(relationField, table)) { + if (relationSelection === true) { + // Include with dynamically determined scalar fields from the related table + options[relationField] = { + select: getRelatedTableScalarFields( + relationField, + table, + allTables + ), + variables: {}, + }; + } else if (Array.isArray(relationSelection)) { + // Include with specific fields + const selectObj: Record = {}; + relationSelection.forEach((field) => { + selectObj[field] = true; + }); + options[relationField] = { + select: selectObj, + variables: {}, + }; + } + } + } + ); + } + + // Handle excludes + if (selection.exclude) { + selection.exclude.forEach((field) => { + delete options[field]; + }); + } + + return options; +} + +/** + * Get minimal fields - completely schema-driven, no hardcoded assumptions + */ +function getMinimalFields(table: CleanTable): string[] { + // Get all non-relational fields from the actual schema + const nonRelationalFields = getNonRelationalFields(table); + + // Return the first few fields from the schema (typically includes primary key and basic fields) + // This is completely dynamic based on what the schema actually provides + return nonRelationalFields.slice(0, 3); // Limit to first 3 fields for minimal selection +} + +/** + * Get display fields - completely schema-driven, no hardcoded field names + */ +function getDisplayFields(table: CleanTable): string[] { + // Get all non-relational fields from the actual schema + const nonRelationalFields = getNonRelationalFields(table); + + // Return a reasonable subset for display purposes (first half of available fields) + // This is completely dynamic based on what the schema actually provides + const maxDisplayFields = Math.max( + 5, + Math.floor(nonRelationalFields.length / 2) + ); + return nonRelationalFields.slice(0, maxDisplayFields); +} + +/** + * Get all non-relational fields (includes both scalar and complex fields) + * Complex fields like JSON, geometry, images should be included by default + */ +function getNonRelationalFields(table: CleanTable): string[] { + return table.fields + .filter((field) => !isRelationalField(field.name, table)) + .map((field) => field.name); +} + +/** + * Check if a field is relational using table metadata + */ +export function isRelationalField( + fieldName: string, + table: CleanTable +): boolean { + const { belongsTo, hasOne, hasMany, manyToMany } = table.relations; + + return ( + belongsTo.some((rel) => rel.fieldName === fieldName) || + hasOne.some((rel) => rel.fieldName === fieldName) || + hasMany.some((rel) => rel.fieldName === fieldName) || + manyToMany.some((rel) => rel.fieldName === fieldName) + ); +} + +/** + * Get scalar fields for a related table to include in relation queries + * Uses only the _meta query data - no hardcoded field names or assumptions + */ +function getRelatedTableScalarFields( + relationField: string, + table: CleanTable, + allTables: CleanTable[] +): Record { + // Find the related table name + let referencedTableName: string | undefined; + + // Check belongsTo relations + const belongsToRel = table.relations.belongsTo.find( + (rel) => rel.fieldName === relationField + ); + if (belongsToRel) { + referencedTableName = belongsToRel.referencesTable; + } + + // Check hasOne relations + if (!referencedTableName) { + const hasOneRel = table.relations.hasOne.find( + (rel) => rel.fieldName === relationField + ); + if (hasOneRel) { + referencedTableName = hasOneRel.referencedByTable; + } + } + + // Check hasMany relations + if (!referencedTableName) { + const hasManyRel = table.relations.hasMany.find( + (rel) => rel.fieldName === relationField + ); + if (hasManyRel) { + referencedTableName = hasManyRel.referencedByTable; + } + } + + // Check manyToMany relations + if (!referencedTableName) { + const manyToManyRel = table.relations.manyToMany.find( + (rel) => rel.fieldName === relationField + ); + if (manyToManyRel) { + referencedTableName = manyToManyRel.rightTable; + } + } + + if (!referencedTableName) { + // No related table found - return empty selection + return {}; + } + + // Find the related table in allTables + const relatedTable = allTables.find((t) => t.name === referencedTableName); + if (!relatedTable) { + // Related table not found in schema - return empty selection + return {}; + } + + // Get ALL scalar fields from the related table (non-relational fields) + // This is completely dynamic based on the actual schema + const scalarFields = relatedTable.fields + .filter((field) => !isRelationalField(field.name, relatedTable)) + .map((field) => field.name); + + // Perf guardrail: select a small, display-oriented subset. + const MAX_RELATED_FIELDS = 8; + const preferred = [ + 'displayName', + 'fullName', + 'preferredName', + 'nickname', + 'firstName', + 'lastName', + 'username', + 'email', + 'name', + 'title', + 'label', + 'slug', + 'code', + 'createdAt', + 'updatedAt', + ]; + + const included: string[] = []; + const push = (fieldName: string | undefined) => { + if (!fieldName) return; + if (!scalarFields.includes(fieldName)) return; + if (included.includes(fieldName)) return; + if (included.length >= MAX_RELATED_FIELDS) return; + included.push(fieldName); + }; + + // Always try to include stable identifiers first. + push('id'); + push('nodeId'); + + for (const fieldName of preferred) push(fieldName); + for (const fieldName of scalarFields) push(fieldName); + + const selection: Record = {}; + for (const fieldName of included) selection[fieldName] = true; + return selection; +} + +/** + * Get all available relation fields from a table + */ +export function getAvailableRelations( + table: CleanTable +): Array<{ + fieldName: string; + type: 'belongsTo' | 'hasOne' | 'hasMany' | 'manyToMany'; + referencedTable?: string; +}> { + const relations: Array<{ + fieldName: string; + type: 'belongsTo' | 'hasOne' | 'hasMany' | 'manyToMany'; + referencedTable?: string; + }> = []; + + // Add belongsTo relations + table.relations.belongsTo.forEach((rel) => { + if (rel.fieldName) { + relations.push({ + fieldName: rel.fieldName, + type: 'belongsTo', + referencedTable: rel.referencesTable || undefined, + }); + } + }); + + // Add hasOne relations + table.relations.hasOne.forEach((rel) => { + if (rel.fieldName) { + relations.push({ + fieldName: rel.fieldName, + type: 'hasOne', + referencedTable: rel.referencedByTable || undefined, + }); + } + }); + + // Add hasMany relations + table.relations.hasMany.forEach((rel) => { + if (rel.fieldName) { + relations.push({ + fieldName: rel.fieldName, + type: 'hasMany', + referencedTable: rel.referencedByTable || undefined, + }); + } + }); + + // Add manyToMany relations + table.relations.manyToMany.forEach((rel) => { + if (rel.fieldName) { + relations.push({ + fieldName: rel.fieldName, + type: 'manyToMany', + referencedTable: rel.rightTable || undefined, + }); + } + }); + + return relations; +} + +/** + * Validate field selection against table schema + */ +export function validateFieldSelection( + selection: FieldSelection, + table: CleanTable +): { isValid: boolean; errors: string[] } { + const errors: string[] = []; + + if (typeof selection === 'string') { + // Presets are always valid + return { isValid: true, errors: [] }; + } + + const tableFieldNames = table.fields.map((f) => f.name); + + // Validate select fields + if (selection.select) { + selection.select.forEach((field) => { + if (!tableFieldNames.includes(field)) { + errors.push( + `Field '${field}' does not exist in table '${table.name}'` + ); + } + }); + } + + // Validate includeRelations fields + if (selection.includeRelations) { + selection.includeRelations.forEach((field) => { + if (!isRelationalField(field, table)) { + errors.push( + `Field '${field}' is not a relational field in table '${table.name}'` + ); + } + }); + } + + // Validate include fields + if (selection.include) { + Object.keys(selection.include).forEach((field) => { + if (!isRelationalField(field, table)) { + errors.push( + `Field '${field}' is not a relational field in table '${table.name}'` + ); + } + }); + } + + // Validate exclude fields + if (selection.exclude) { + selection.exclude.forEach((field) => { + if (!tableFieldNames.includes(field)) { + errors.push( + `Exclude field '${field}' does not exist in table '${table.name}'` + ); + } + }); + } + + // Validate maxDepth + if (selection.maxDepth !== undefined) { + if ( + typeof selection.maxDepth !== 'number' || + selection.maxDepth < 0 || + selection.maxDepth > 5 + ) { + errors.push('maxDepth must be a number between 0 and 5'); + } + } + + return { + isValid: errors.length === 0, + errors, + }; +} diff --git a/graphql/codegen/src/generators/index.ts b/graphql/codegen/src/generators/index.ts new file mode 100644 index 000000000..1bc3c755e --- /dev/null +++ b/graphql/codegen/src/generators/index.ts @@ -0,0 +1,30 @@ +/** + * Query and mutation generator exports + */ + +// Field selector utilities +export { + convertToSelectionOptions, + isRelationalField, + getAvailableRelations, + validateFieldSelection, +} from './field-selector'; + +// Query generators +export { + buildSelect, + buildFindOne, + buildCount, + toCamelCasePlural, + toOrderByTypeName, + cleanTableToMetaObject, + generateIntrospectionSchema, + createASTQueryBuilder, +} from './select'; + +// Mutation generators +export { + buildPostGraphileCreate, + buildPostGraphileUpdate, + buildPostGraphileDelete, +} from './mutations'; diff --git a/graphql/codegen/src/generators/mutations.ts b/graphql/codegen/src/generators/mutations.ts new file mode 100644 index 000000000..5d6f34d37 --- /dev/null +++ b/graphql/codegen/src/generators/mutations.ts @@ -0,0 +1,256 @@ +/** + * Mutation generators for CREATE, UPDATE, and DELETE operations + * Uses AST-based approach for PostGraphile-compatible mutations + */ +import * as t from 'gql-ast'; +import { print } from 'graphql'; +import type { ArgumentNode, FieldNode, VariableDefinitionNode } from 'graphql'; +import * as inflection from 'inflection'; + +import { TypedDocumentString } from '../client/typed-document'; +import { + getCustomAstForCleanField, + requiresSubfieldSelection, +} from '../core/custom-ast'; +import type { CleanTable } from '../types/schema'; +import type { MutationOptions } from '../types/mutation'; + +import { isRelationalField } from './field-selector'; + +/** + * Generate field selections for PostGraphile mutations using custom AST logic + * This handles both scalar fields and complex types that require subfield selections + */ +function generateFieldSelections(table: CleanTable): FieldNode[] { + return table.fields + .filter((field) => !isRelationalField(field.name, table)) // Exclude relational fields + .map((field) => { + if (requiresSubfieldSelection(field)) { + // Use custom AST generation for complex types + return getCustomAstForCleanField(field); + } else { + // Use simple field selection for scalar types + return t.field({ name: field.name }); + } + }); +} + +/** + * Build PostGraphile-style CREATE mutation + * PostGraphile expects: mutation { createTableName(input: { tableName: TableNameInput! }) { tableName { ... } } } + */ +export function buildPostGraphileCreate( + table: CleanTable, + _allTables: CleanTable[], + _options: MutationOptions = {} +): TypedDocumentString< + Record, + { input: { [key: string]: Record } } +> { + const mutationName = `create${table.name}`; + const singularName = inflection.camelize(table.name, true); + + // Create the variable definition for $input + const variableDefinitions: VariableDefinitionNode[] = [ + t.variableDefinition({ + variable: t.variable({ name: 'input' }), + type: t.nonNullType({ + type: t.namedType({ type: `Create${table.name}Input` }), + }), + }), + ]; + + // Create the mutation arguments + const mutationArgs: ArgumentNode[] = [ + t.argument({ + name: 'input', + value: t.variable({ name: 'input' }), + }), + ]; + + // Get the field selections for the return value using custom AST logic + const fieldSelections: FieldNode[] = generateFieldSelections(table); + + // Build the mutation AST + const ast = t.document({ + definitions: [ + t.operationDefinition({ + operation: 'mutation', + name: `${mutationName}Mutation`, + variableDefinitions, + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: mutationName, + args: mutationArgs, + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: singularName, + selectionSet: t.selectionSet({ + selections: fieldSelections, + }), + }), + ], + }), + }), + ], + }), + }), + ], + }); + + // Print the AST to get the query string + const queryString = print(ast); + + return new TypedDocumentString(queryString, { + __ast: ast, + }) as TypedDocumentString< + Record, + { input: { [key: string]: Record } } + >; +} + +/** + * Build PostGraphile-style UPDATE mutation + * PostGraphile expects: mutation { updateTableName(input: { id: UUID!, patch: TableNamePatch! }) { tableName { ... } } } + */ +export function buildPostGraphileUpdate( + table: CleanTable, + _allTables: CleanTable[], + _options: MutationOptions = {} +): TypedDocumentString< + Record, + { input: { id: string | number; patch: Record } } +> { + const mutationName = `update${table.name}`; + const singularName = inflection.camelize(table.name, true); + + // Create the variable definition for $input + const variableDefinitions: VariableDefinitionNode[] = [ + t.variableDefinition({ + variable: t.variable({ name: 'input' }), + type: t.nonNullType({ + type: t.namedType({ type: `Update${table.name}Input` }), + }), + }), + ]; + + // Create the mutation arguments + const mutationArgs: ArgumentNode[] = [ + t.argument({ + name: 'input', + value: t.variable({ name: 'input' }), + }), + ]; + + // Get the field selections for the return value using custom AST logic + const fieldSelections: FieldNode[] = generateFieldSelections(table); + + // Build the mutation AST + const ast = t.document({ + definitions: [ + t.operationDefinition({ + operation: 'mutation', + name: `${mutationName}Mutation`, + variableDefinitions, + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: mutationName, + args: mutationArgs, + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: singularName, + selectionSet: t.selectionSet({ + selections: fieldSelections, + }), + }), + ], + }), + }), + ], + }), + }), + ], + }); + + // Print the AST to get the query string + const queryString = print(ast); + + return new TypedDocumentString(queryString, { + __ast: ast, + }) as TypedDocumentString< + Record, + { input: { id: string | number; patch: Record } } + >; +} + +/** + * Build PostGraphile-style DELETE mutation + * PostGraphile expects: mutation { deleteTableName(input: { id: UUID! }) { clientMutationId } } + */ +export function buildPostGraphileDelete( + table: CleanTable, + _allTables: CleanTable[], + _options: MutationOptions = {} +): TypedDocumentString< + Record, + { input: { id: string | number } } +> { + const mutationName = `delete${table.name}`; + + // Create the variable definition for $input + const variableDefinitions: VariableDefinitionNode[] = [ + t.variableDefinition({ + variable: t.variable({ name: 'input' }), + type: t.nonNullType({ + type: t.namedType({ type: `Delete${table.name}Input` }), + }), + }), + ]; + + // Create the mutation arguments + const mutationArgs: ArgumentNode[] = [ + t.argument({ + name: 'input', + value: t.variable({ name: 'input' }), + }), + ]; + + // PostGraphile delete mutations typically return clientMutationId + const fieldSelections: FieldNode[] = [t.field({ name: 'clientMutationId' })]; + + // Build the mutation AST + const ast = t.document({ + definitions: [ + t.operationDefinition({ + operation: 'mutation', + name: `${mutationName}Mutation`, + variableDefinitions, + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: mutationName, + args: mutationArgs, + selectionSet: t.selectionSet({ + selections: fieldSelections, + }), + }), + ], + }), + }), + ], + }); + + // Print the AST to get the query string + const queryString = print(ast); + + return new TypedDocumentString(queryString, { + __ast: ast, + }) as TypedDocumentString< + Record, + { input: { id: string | number } } + >; +} diff --git a/graphql/codegen/src/generators/select.ts b/graphql/codegen/src/generators/select.ts new file mode 100644 index 000000000..ad23baa41 --- /dev/null +++ b/graphql/codegen/src/generators/select.ts @@ -0,0 +1,815 @@ +/** + * Query generators for SELECT, FindOne, and Count operations + * Uses AST-based approach for all query generation + */ +import * as t from 'gql-ast'; +import { print } from 'graphql'; +import type { ArgumentNode, FieldNode, VariableDefinitionNode } from 'graphql'; +import * as inflection from 'inflection'; + +import { TypedDocumentString } from '../client/typed-document'; +import { + getCustomAstForCleanField, + requiresSubfieldSelection, +} from '../core/custom-ast'; +import { QueryBuilder } from '../core/query-builder'; +import type { + IntrospectionSchema, + MetaObject, + MutationDefinition, + QueryDefinition, + QuerySelectionOptions, +} from '../core/types'; +import type { CleanTable } from '../types/schema'; +import type { QueryOptions } from '../types/query'; +import type { FieldSelection } from '../types/selection'; + +import { convertToSelectionOptions, isRelationalField } from './field-selector'; + +/** + * Convert PascalCase table name to camelCase plural for GraphQL queries + * Uses the inflection library for proper pluralization + * Example: "ActionGoal" -> "actionGoals", "User" -> "users", "Person" -> "people" + */ +export function toCamelCasePlural(tableName: string): string { + // First convert to camelCase (lowercase first letter) + const camelCase = inflection.camelize(tableName, true); + // Then pluralize properly + return inflection.pluralize(camelCase); +} + +/** + * Generate the PostGraphile OrderBy enum type name for a table + * PostGraphile uses pluralized PascalCase: "Product" -> "ProductsOrderBy" + * Example: "Product" -> "ProductsOrderBy", "Person" -> "PeopleOrderBy" + */ +export function toOrderByTypeName(tableName: string): string { + const plural = toCamelCasePlural(tableName); // "products", "people" + // Capitalize first letter for PascalCase + return `${plural.charAt(0).toUpperCase() + plural.slice(1)}OrderBy`; +} + +/** + * Convert CleanTable to MetaObject format for QueryBuilder + */ +export function cleanTableToMetaObject(tables: CleanTable[]): MetaObject { + return { + tables: tables.map((table) => ({ + name: table.name, + fields: table.fields.map((field) => ({ + name: field.name, + type: { + gqlType: field.type.gqlType, + isArray: field.type.isArray, + modifier: field.type.modifier, + pgAlias: field.type.pgAlias, + pgType: field.type.pgType, + subtype: field.type.subtype, + typmod: field.type.typmod, + }, + })), + primaryConstraints: [], // Would need to be derived from schema + uniqueConstraints: [], // Would need to be derived from schema + foreignConstraints: table.relations.belongsTo.map((rel) => ({ + refTable: rel.referencesTable, + fromKey: { + name: rel.fieldName || '', + type: { + gqlType: 'UUID', // Default, should be derived from actual field + isArray: false, + modifier: null, + pgAlias: null, + pgType: null, + subtype: null, + typmod: null, + }, + alias: rel.fieldName || '', + }, + toKey: { + name: 'id', + type: { + gqlType: 'UUID', + isArray: false, + modifier: null, + pgAlias: null, + pgType: null, + subtype: null, + typmod: null, + }, + }, + })), + })), + }; +} + +/** + * Generate basic IntrospectionSchema from CleanTable array + * This creates a minimal schema for AST generation + */ +export function generateIntrospectionSchema( + tables: CleanTable[] +): IntrospectionSchema { + const schema: IntrospectionSchema = {}; + + for (const table of tables) { + const modelName = table.name; + const pluralName = toCamelCasePlural(modelName); + + // Basic field selection for the model + const selection = table.fields.map((field) => field.name); + + // Add getMany query + schema[pluralName] = { + qtype: 'getMany', + model: modelName, + selection, + properties: convertFieldsToProperties(table.fields), + } as QueryDefinition; + + // Add getOne query (by ID) + const singularName = inflection.camelize(modelName, true); + schema[singularName] = { + qtype: 'getOne', + model: modelName, + selection, + properties: convertFieldsToProperties(table.fields), + } as QueryDefinition; + + // Add create mutation + schema[`create${modelName}`] = { + qtype: 'mutation', + mutationType: 'create', + model: modelName, + selection, + properties: { + input: { + name: 'input', + type: `Create${modelName}Input`, + isNotNull: true, + isArray: false, + isArrayNotNull: false, + properties: { + [inflection.camelize(modelName, true)]: { + name: inflection.camelize(modelName, true), + type: `${modelName}Input`, + isNotNull: true, + isArray: false, + isArrayNotNull: false, + properties: convertFieldsToNestedProperties(table.fields), + }, + }, + }, + }, + } as MutationDefinition; + + // Add update mutation + schema[`update${modelName}`] = { + qtype: 'mutation', + mutationType: 'patch', + model: modelName, + selection, + properties: { + input: { + name: 'input', + type: `Update${modelName}Input`, + isNotNull: true, + isArray: false, + isArrayNotNull: false, + properties: { + patch: { + name: 'patch', + type: `${modelName}Patch`, + isNotNull: true, + isArray: false, + isArrayNotNull: false, + properties: convertFieldsToNestedProperties(table.fields), + }, + }, + }, + }, + } as MutationDefinition; + + // Add delete mutation + schema[`delete${modelName}`] = { + qtype: 'mutation', + mutationType: 'delete', + model: modelName, + selection, + properties: { + input: { + name: 'input', + type: `Delete${modelName}Input`, + isNotNull: true, + isArray: false, + isArrayNotNull: false, + properties: { + id: { + name: 'id', + type: 'UUID', + isNotNull: true, + isArray: false, + isArrayNotNull: false, + }, + }, + }, + }, + } as MutationDefinition; + } + + return schema; +} + +/** + * Convert CleanTable fields to QueryBuilder properties + */ +function convertFieldsToProperties(fields: CleanTable['fields']) { + const properties: Record = {}; + + fields.forEach((field) => { + properties[field.name] = { + name: field.name, + type: field.type.gqlType, + isNotNull: !field.type.gqlType.endsWith('!'), + isArray: field.type.isArray, + isArrayNotNull: false, + }; + }); + + return properties; +} + +/** + * Convert fields to nested properties for mutations + */ +function convertFieldsToNestedProperties(fields: CleanTable['fields']) { + const properties: Record = {}; + + fields.forEach((field) => { + properties[field.name] = { + name: field.name, + type: field.type.gqlType, + isNotNull: false, // Mutations typically allow optional fields + isArray: field.type.isArray, + isArrayNotNull: false, + }; + }); + + return properties; +} + +/** + * Create AST-based query builder for a table + */ +export function createASTQueryBuilder(tables: CleanTable[]): QueryBuilder { + const metaObject = cleanTableToMetaObject(tables); + const introspectionSchema = generateIntrospectionSchema(tables); + + return new QueryBuilder({ + meta: metaObject, + introspection: introspectionSchema, + }); +} + +/** + * Build a SELECT query for a table with optional filtering, sorting, and pagination + * Uses direct AST generation without intermediate conversions + */ +export function buildSelect( + table: CleanTable, + allTables: readonly CleanTable[], + options: QueryOptions = {} +): TypedDocumentString, QueryOptions> { + const tableList = Array.from(allTables); + const selection = convertFieldSelectionToSelectionOptions( + table, + tableList, + options.fieldSelection + ); + + // Generate query directly using AST + const queryString = generateSelectQueryAST( + table, + tableList, + selection, + options + ); + + return new TypedDocumentString(queryString, {}) as TypedDocumentString< + Record, + QueryOptions + >; +} + +/** + * Build a single row query by primary key or unique field + */ +export function buildFindOne( + table: CleanTable, + _pkField: string = 'id' +): TypedDocumentString, Record> { + const queryString = generateFindOneQueryAST(table); + + return new TypedDocumentString(queryString, {}) as TypedDocumentString< + Record, + Record + >; +} + +/** + * Build a count query for a table + */ +export function buildCount( + table: CleanTable +): TypedDocumentString< + { [key: string]: { totalCount: number } }, + { condition?: Record; filter?: Record } +> { + const queryString = generateCountQueryAST(table); + + return new TypedDocumentString(queryString, {}) as TypedDocumentString< + { [key: string]: { totalCount: number } }, + { condition?: Record; filter?: Record } + >; +} + +function convertFieldSelectionToSelectionOptions( + table: CleanTable, + allTables: CleanTable[], + options?: FieldSelection +): QuerySelectionOptions | null { + return convertToSelectionOptions(table, allTables, options); +} + +/** + * Generate SELECT query AST directly from CleanTable + */ +function generateSelectQueryAST( + table: CleanTable, + allTables: CleanTable[], + selection: QuerySelectionOptions | null, + options: QueryOptions +): string { + const pluralName = toCamelCasePlural(table.name); + + // Generate field selections + const fieldSelections = generateFieldSelectionsFromOptions( + table, + allTables, + selection + ); + + // Build the query AST + const variableDefinitions: VariableDefinitionNode[] = []; + const queryArgs: ArgumentNode[] = []; + + // Add pagination variables if needed + const limitValue = options.limit ?? options.first; + if (limitValue !== undefined) { + variableDefinitions.push( + t.variableDefinition({ + variable: t.variable({ name: 'first' }), + type: t.namedType({ type: 'Int' }), + }) + ); + queryArgs.push( + t.argument({ + name: 'first', + value: t.variable({ name: 'first' }), + }) + ); + } + + if (options.offset !== undefined) { + variableDefinitions.push( + t.variableDefinition({ + variable: t.variable({ name: 'offset' }), + type: t.namedType({ type: 'Int' }), + }) + ); + queryArgs.push( + t.argument({ + name: 'offset', + value: t.variable({ name: 'offset' }), + }) + ); + } + + // Add cursor-based pagination variables if needed (for infinite scroll) + if (options.after !== undefined) { + variableDefinitions.push( + t.variableDefinition({ + variable: t.variable({ name: 'after' }), + type: t.namedType({ type: 'Cursor' }), + }) + ); + queryArgs.push( + t.argument({ + name: 'after', + value: t.variable({ name: 'after' }), + }) + ); + } + + if (options.before !== undefined) { + variableDefinitions.push( + t.variableDefinition({ + variable: t.variable({ name: 'before' }), + type: t.namedType({ type: 'Cursor' }), + }) + ); + queryArgs.push( + t.argument({ + name: 'before', + value: t.variable({ name: 'before' }), + }) + ); + } + + // Add filter variables if needed + if (options.where) { + variableDefinitions.push( + t.variableDefinition({ + variable: t.variable({ name: 'filter' }), + type: t.namedType({ type: `${table.name}Filter` }), + }) + ); + queryArgs.push( + t.argument({ + name: 'filter', + value: t.variable({ name: 'filter' }), + }) + ); + } + + // Add orderBy variables if needed + if (options.orderBy && options.orderBy.length > 0) { + variableDefinitions.push( + t.variableDefinition({ + variable: t.variable({ name: 'orderBy' }), + // PostGraphile expects [ProductsOrderBy!] - list of non-null enum values + type: t.listType({ + type: t.nonNullType({ + type: t.namedType({ type: toOrderByTypeName(table.name) }), + }), + }), + }) + ); + queryArgs.push( + t.argument({ + name: 'orderBy', + value: t.variable({ name: 'orderBy' }), + }) + ); + } + + // Build connection selections: totalCount, nodes, and optionally pageInfo + const connectionSelections: FieldNode[] = [ + t.field({ name: 'totalCount' }), + t.field({ + name: 'nodes', + selectionSet: t.selectionSet({ + selections: fieldSelections, + }), + }), + ]; + + // Add pageInfo if requested (for cursor-based pagination / infinite scroll) + if ( + options.includePageInfo || + options.after !== undefined || + options.before !== undefined + ) { + connectionSelections.push( + t.field({ + name: 'pageInfo', + selectionSet: t.selectionSet({ + selections: [ + t.field({ name: 'hasNextPage' }), + t.field({ name: 'hasPreviousPage' }), + t.field({ name: 'startCursor' }), + t.field({ name: 'endCursor' }), + ], + }), + }) + ); + } + + const ast = t.document({ + definitions: [ + t.operationDefinition({ + operation: 'query', + name: `${pluralName}Query`, + variableDefinitions, + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: pluralName, + args: queryArgs, + selectionSet: t.selectionSet({ + selections: connectionSelections, + }), + }), + ], + }), + }), + ], + }); + + return print(ast); +} + +/** + * Generate field selections from SelectionOptions + */ +function generateFieldSelectionsFromOptions( + table: CleanTable, + allTables: CleanTable[], + selection: QuerySelectionOptions | null +): FieldNode[] { + const DEFAULT_NESTED_RELATION_FIRST = 20; + + if (!selection) { + // Default to all non-relational fields (includes complex fields like JSON, geometry, etc.) + return table.fields + .filter((field) => !isRelationalField(field.name, table)) + .map((field) => { + if (requiresSubfieldSelection(field)) { + // For complex fields that require subfield selection, use custom AST generation + return getCustomAstForCleanField(field); + } else { + // For simple fields, use basic field selection + return t.field({ name: field.name }); + } + }); + } + + const fieldSelections: FieldNode[] = []; + + Object.entries(selection).forEach(([fieldName, fieldOptions]) => { + if (fieldOptions === true) { + // Check if this field requires subfield selection + const field = table.fields.find((f) => f.name === fieldName); + if (field && requiresSubfieldSelection(field)) { + // Use custom AST generation for complex fields + fieldSelections.push(getCustomAstForCleanField(field)); + } else { + // Simple field selection for scalar fields + fieldSelections.push(t.field({ name: fieldName })); + } + } else if (typeof fieldOptions === 'object' && fieldOptions.select) { + // Nested field selection (for relation fields) + const nestedSelections: FieldNode[] = []; + + // Find the related table to check for complex fields + const relatedTable = findRelatedTable(fieldName, table, allTables); + + Object.entries(fieldOptions.select).forEach(([nestedField, include]) => { + if (include) { + // Check if this nested field requires subfield selection + const nestedFieldDef = relatedTable?.fields.find( + (f) => f.name === nestedField + ); + if (nestedFieldDef && requiresSubfieldSelection(nestedFieldDef)) { + // Use custom AST generation for complex nested fields + nestedSelections.push(getCustomAstForCleanField(nestedFieldDef)); + } else { + // Simple field selection for scalar nested fields + nestedSelections.push(t.field({ name: nestedField })); + } + } + }); + + // Check if this is a hasMany relation that uses Connection pattern + const relationInfo = getRelationInfo(fieldName, table); + if ( + relationInfo && + (relationInfo.type === 'hasMany' || relationInfo.type === 'manyToMany') + ) { + // For hasMany/manyToMany relations, wrap selections in nodes { ... } + fieldSelections.push( + t.field({ + name: fieldName, + args: [ + t.argument({ + name: 'first', + value: t.intValue({ + value: DEFAULT_NESTED_RELATION_FIRST.toString(), + }), + }), + ], + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: 'nodes', + selectionSet: t.selectionSet({ + selections: nestedSelections, + }), + }), + ], + }), + }) + ); + } else { + // For belongsTo/hasOne relations, use direct selection + fieldSelections.push( + t.field({ + name: fieldName, + selectionSet: t.selectionSet({ + selections: nestedSelections, + }), + }) + ); + } + } + }); + + return fieldSelections; +} + +/** + * Get relation information for a field + */ +function getRelationInfo( + fieldName: string, + table: CleanTable +): { type: string; relation: unknown } | null { + const { belongsTo, hasOne, hasMany, manyToMany } = table.relations; + + // Check belongsTo relations + const belongsToRel = belongsTo.find((rel) => rel.fieldName === fieldName); + if (belongsToRel) { + return { type: 'belongsTo', relation: belongsToRel }; + } + + // Check hasOne relations + const hasOneRel = hasOne.find((rel) => rel.fieldName === fieldName); + if (hasOneRel) { + return { type: 'hasOne', relation: hasOneRel }; + } + + // Check hasMany relations + const hasManyRel = hasMany.find((rel) => rel.fieldName === fieldName); + if (hasManyRel) { + return { type: 'hasMany', relation: hasManyRel }; + } + + // Check manyToMany relations + const manyToManyRel = manyToMany.find((rel) => rel.fieldName === fieldName); + if (manyToManyRel) { + return { type: 'manyToMany', relation: manyToManyRel }; + } + + return null; +} + +/** + * Find the related table for a given relation field + */ +function findRelatedTable( + relationField: string, + table: CleanTable, + allTables: CleanTable[] +): CleanTable | null { + // Find the related table name + let referencedTableName: string | undefined; + + // Check belongsTo relations + const belongsToRel = table.relations.belongsTo.find( + (rel) => rel.fieldName === relationField + ); + if (belongsToRel) { + referencedTableName = belongsToRel.referencesTable; + } + + // Check hasOne relations + if (!referencedTableName) { + const hasOneRel = table.relations.hasOne.find( + (rel) => rel.fieldName === relationField + ); + if (hasOneRel) { + referencedTableName = hasOneRel.referencedByTable; + } + } + + // Check hasMany relations + if (!referencedTableName) { + const hasManyRel = table.relations.hasMany.find( + (rel) => rel.fieldName === relationField + ); + if (hasManyRel) { + referencedTableName = hasManyRel.referencedByTable; + } + } + + // Check manyToMany relations + if (!referencedTableName) { + const manyToManyRel = table.relations.manyToMany.find( + (rel) => rel.fieldName === relationField + ); + if (manyToManyRel) { + referencedTableName = manyToManyRel.rightTable; + } + } + + if (!referencedTableName) { + return null; + } + + // Find the related table in allTables + return allTables.find((tbl) => tbl.name === referencedTableName) || null; +} + +/** + * Generate FindOne query AST directly from CleanTable + */ +function generateFindOneQueryAST(table: CleanTable): string { + const singularName = inflection.camelize(table.name, true); + + // Generate field selections (include all non-relational fields, including complex types) + const fieldSelections = table.fields + .filter((field) => !isRelationalField(field.name, table)) + .map((field) => { + if (requiresSubfieldSelection(field)) { + // For complex fields that require subfield selection, use custom AST generation + return getCustomAstForCleanField(field); + } else { + // For simple fields, use basic field selection + return t.field({ name: field.name }); + } + }); + + const ast = t.document({ + definitions: [ + t.operationDefinition({ + operation: 'query', + name: `${singularName}Query`, + variableDefinitions: [ + t.variableDefinition({ + variable: t.variable({ name: 'id' }), + type: t.nonNullType({ + type: t.namedType({ type: 'UUID' }), + }), + }), + ], + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: singularName, + args: [ + t.argument({ + name: 'id', + value: t.variable({ name: 'id' }), + }), + ], + selectionSet: t.selectionSet({ + selections: fieldSelections, + }), + }), + ], + }), + }), + ], + }); + + return print(ast); +} + +/** + * Generate Count query AST directly from CleanTable + */ +function generateCountQueryAST(table: CleanTable): string { + const pluralName = toCamelCasePlural(table.name); + + const ast = t.document({ + definitions: [ + t.operationDefinition({ + operation: 'query', + name: `${pluralName}CountQuery`, + variableDefinitions: [ + t.variableDefinition({ + variable: t.variable({ name: 'filter' }), + type: t.namedType({ type: `${table.name}Filter` }), + }), + ], + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: pluralName, + args: [ + t.argument({ + name: 'filter', + value: t.variable({ name: 'filter' }), + }), + ], + selectionSet: t.selectionSet({ + selections: [t.field({ name: 'totalCount' })], + }), + }), + ], + }), + }), + ], + }); + + return print(ast); +} diff --git a/graphql/codegen/src/gql.ts b/graphql/codegen/src/gql.ts deleted file mode 100644 index 726dc53c9..000000000 --- a/graphql/codegen/src/gql.ts +++ /dev/null @@ -1,1344 +0,0 @@ -// TODO: use inflection for all the things -// const { singularize } = require('inflection'); -import * as t from 'gql-ast'; -import { - ArgumentNode, - DocumentNode, - FieldNode, - TypeNode, - VariableDefinitionNode, -} from 'graphql'; -import inflection from 'inflection' - -const NON_MUTABLE_PROPS = [ - 'id', - 'createdAt', - 'createdBy', - 'updatedAt', - 'updatedBy', -]; - -const objectToArray = (obj: Record): { name: string;[key: string]: any }[] => - Object.keys(obj).map((k) => ({ name: k, ...obj[k] })); - -type TypeIndex = { byName: Record; getInputFieldType: (typeName: string, fieldName: string) => any }; - -function refToTypeNode(ref: any, overrides?: Record): TypeNode | null { - if (!ref) return null as any; - if (ref.kind === 'NON_NULL') { - const inner = refToTypeNode(ref.ofType, overrides) as any; - return t.nonNullType({ type: inner }); - } - if (ref.kind === 'LIST') { - const inner = refToTypeNode(ref.ofType, overrides) as any; - return t.listType({ type: inner }); - } - const name = (overrides && overrides[ref.name]) || ref.name; - return t.namedType({ type: name }); -} - -function resolveTypeName(name: string, type: any, overrides?: Record): string { - if (typeof type === 'string') { - const base = type; - const mapped = overrides && overrides[base]; - return mapped || base; - } - if (type && typeof type === 'object') { - if (typeof (type as any).name === 'string' && (type as any).name.length > 0) return (type as any).name; - let t: any = type; - while (t && typeof t === 'object' && t.ofType) t = t.ofType; - if (t && typeof t.name === 'string' && t.name.length > 0) { - const base = t.name as string; - const mapped = overrides && overrides[base]; - return mapped || base; - } - } - return 'JSON'; -} - -function refToNamedTypeName(ref: any): string | null { - let r = ref; - while (r && (r.kind === 'NON_NULL' || r.kind === 'LIST')) r = r.ofType; - return r && r.name ? r.name : null; -} - -function extractNamedTypeName(node: any): string | null { - let n = node; - while (n && !n.name && n.type) n = n.type; - return n && n.name ? n.name : null; -} - -function singularModel(name: string): string { - return inflection.singularize(name); -} - -interface CreateGqlMutationArgs { - operationName: string; - mutationName: string; - selectArgs: ArgumentNode[]; - selections: FieldNode[]; - variableDefinitions: VariableDefinitionNode[]; - modelName?: string; - useModel?: boolean; -} - -export const createGqlMutation = ({ - operationName, - mutationName, - selectArgs, - variableDefinitions, - modelName, - selections, - useModel = true, -}: CreateGqlMutationArgs): DocumentNode => { - - const opSel: FieldNode[] = !modelName - ? [ - t.field({ - name: operationName, - args: selectArgs, - selectionSet: t.selectionSet({ selections }), - }), - ] - : [ - t.field({ - name: operationName, - args: selectArgs, - selectionSet: t.selectionSet({ - selections: useModel - ? [ - t.field({ - name: modelName, - selectionSet: t.selectionSet({ selections }), - }), - ] - : selections, - }), - }), - ]; - - return t.document({ - definitions: [ - t.operationDefinition({ - operation: 'mutation', - name: mutationName, - variableDefinitions, - selectionSet: t.selectionSet({ selections: opSel }), - }), - ], - }); -}; - -export interface GetManyArgs { - operationName: string; - query: any; // You can type this more specifically if you know its structure - fields: string[]; -} - -export interface GetManyResult { - name: string; - ast: DocumentNode; -} - -export const getMany = ({ - operationName, - query, - fields, -}: GetManyArgs): GetManyResult => { - const queryName = inflection.camelize( - ['get', inflection.underscore(operationName), 'query', 'all'].join('_'), - true - ); - - const selections: FieldNode[] = getSelections(query, fields); - - const opSel: FieldNode[] = [ - t.field({ - name: operationName, - selectionSet: t.selectionSet({ - selections: [ - t.field({ name: 'totalCount' }), - t.field({ - name: 'pageInfo', - selectionSet: t.selectionSet({ - selections: [ - t.field({ name: 'hasNextPage' }), - t.field({ name: 'hasPreviousPage' }), - t.field({ name: 'endCursor' }), - t.field({ name: 'startCursor' }), - ], - }), - }), - t.field({ - name: 'edges', - selectionSet: t.selectionSet({ - selections: [ - t.field({ name: 'cursor' }), - t.field({ - name: 'node', - selectionSet: t.selectionSet({ selections }), - }), - ], - }), - }), - ], - }), - }), - ]; - - const ast: DocumentNode = t.document({ - definitions: [ - t.operationDefinition({ - operation: 'query', - name: queryName, - selectionSet: t.selectionSet({ selections: opSel }), - }), - ], - }); - - return { name: queryName, ast }; -}; - -export interface GetManyPaginatedEdgesArgs { - operationName: string; - query: GqlField; - fields: string[]; -} - -export interface GetManyPaginatedEdgesResult { - name: string; - ast: DocumentNode; -} - -export const getManyPaginatedEdges = ({ - operationName, - query, - fields, -}: GetManyPaginatedEdgesArgs): GetManyPaginatedEdgesResult => { - const queryName = inflection.camelize( - ['get', inflection.underscore(operationName), 'paginated'].join('_'), - true - ); - - const Plural = operationName.charAt(0).toUpperCase() + operationName.slice(1); - const Singular = query.model; - const Condition = `${Singular}Condition`; - const Filter = `${Singular}Filter`; - const OrderBy = `${Plural}OrderBy`; - - const selections: FieldNode[] = getSelections(query, fields); - - const variableDefinitions: VariableDefinitionNode[] = [ - 'first', - 'last', - 'offset', - 'after', - 'before', - ].map((name) => - t.variableDefinition({ - variable: t.variable({ name }), - type: t.namedType({ type: name === 'after' || name === 'before' ? 'Cursor' : 'Int' }), - }) - ); - - variableDefinitions.push( - t.variableDefinition({ - variable: t.variable({ name: 'condition' }), - type: t.namedType({ type: Condition }), - }), - t.variableDefinition({ - variable: t.variable({ name: 'filter' }), - type: t.namedType({ type: Filter }), - }), - t.variableDefinition({ - variable: t.variable({ name: 'orderBy' }), - type: t.listType({ - type: t.nonNullType({ - type: t.namedType({ type: OrderBy }), - }), - }), - }) - ); - - const args = [ - 'first', - 'last', - 'offset', - 'after', - 'before', - 'condition', - 'filter', - 'orderBy', - ].map((name) => - t.argument({ - name, - value: t.variable({ name }), - }) - ); - - const ast: DocumentNode = t.document({ - definitions: [ - t.operationDefinition({ - operation: 'query', - name: queryName, - variableDefinitions, - selectionSet: t.selectionSet({ - selections: [ - t.field({ - name: operationName, - args, - selectionSet: t.selectionSet({ - selections: [ - t.field({ name: 'totalCount' }), - t.field({ - name: 'pageInfo', - selectionSet: t.selectionSet({ - selections: [ - t.field({ name: 'hasNextPage' }), - t.field({ name: 'hasPreviousPage' }), - t.field({ name: 'endCursor' }), - t.field({ name: 'startCursor' }), - ], - }), - }), - t.field({ - name: 'edges', - selectionSet: t.selectionSet({ - selections: [ - t.field({ name: 'cursor' }), - t.field({ - name: 'node', - selectionSet: t.selectionSet({ selections }), - }), - ], - }), - }), - ], - }), - }), - ], - }), - }), - ], - }); - - return { name: queryName, ast }; -}; - -export interface GetManyPaginatedNodesArgs { - operationName: string; - query: GqlField; - fields: string[]; -} - -export interface GetManyPaginatedNodesResult { - name: string; - ast: DocumentNode; -} - -export const getManyPaginatedNodes = ({ - operationName, - query, - fields, -}: GetManyPaginatedNodesArgs): GetManyPaginatedNodesResult => { - const queryName = inflection.camelize( - ['get', inflection.underscore(operationName), 'query'].join('_'), - true - ); - - const Singular = query.model; - const Plural = operationName.charAt(0).toUpperCase() + operationName.slice(1); - const Condition = `${Singular}Condition`; - const Filter = `${Singular}Filter`; - const OrderBy = `${Plural}OrderBy`; - - const selections: FieldNode[] = getSelections(query, fields); - - const variableDefinitions: VariableDefinitionNode[] = [ - 'first', - 'last', - 'after', - 'before', - 'offset', - ].map((name) => - t.variableDefinition({ - variable: t.variable({ name }), - type: t.namedType({ type: name === 'after' || name === 'before' ? 'Cursor' : 'Int' }), - }) - ); - - variableDefinitions.push( - t.variableDefinition({ - variable: t.variable({ name: 'condition' }), - type: t.namedType({ type: Condition }), - }), - t.variableDefinition({ - variable: t.variable({ name: 'filter' }), - type: t.namedType({ type: Filter }), - }), - t.variableDefinition({ - variable: t.variable({ name: 'orderBy' }), - type: t.listType({ - type: t.nonNullType({ - type: t.namedType({ type: OrderBy }), - }), - }), - }) - ); - - const args: ArgumentNode[] = [ - 'first', - 'last', - 'offset', - 'after', - 'before', - 'condition', - 'filter', - 'orderBy', - ].map((name) => - t.argument({ - name, - value: t.variable({ name }), - }) - ); - - const ast: DocumentNode = t.document({ - definitions: [ - t.operationDefinition({ - operation: 'query', - name: queryName, - variableDefinitions, - selectionSet: t.selectionSet({ - selections: [ - t.field({ - name: operationName, - args, - selectionSet: t.selectionSet({ - selections: [ - t.field({ name: 'totalCount' }), - t.field({ - name: 'pageInfo', - selectionSet: t.selectionSet({ - selections: [ - t.field({ name: 'hasNextPage' }), - t.field({ name: 'hasPreviousPage' }), - t.field({ name: 'endCursor' }), - t.field({ name: 'startCursor' }), - ], - }), - }), - t.field({ - name: 'nodes', - selectionSet: t.selectionSet({ selections }), - }), - ], - }), - }), - ], - }), - }), - ], - }); - - return { name: queryName, ast }; -}; - -export interface GetOrderByEnumsArgs { - operationName: string; - query: { - model: string; - }; -} - -export interface GetOrderByEnumsResult { - name: string; - ast: DocumentNode; -} - -export const getOrderByEnums = ({ - operationName, - query, -}: GetOrderByEnumsArgs): GetOrderByEnumsResult => { - const queryName = inflection.camelize( - ['get', inflection.underscore(operationName), 'Order', 'By', 'Enums'].join('_'), - true - ); - - const Model = operationName.charAt(0).toUpperCase() + operationName.slice(1); - const OrderBy = `${Model}OrderBy`; - - const ast: DocumentNode = t.document({ - definitions: [ - t.operationDefinition({ - operation: 'query', - name: queryName, - selectionSet: t.selectionSet({ - selections: [ - t.field({ - name: '__type', - args: [ - t.argument({ - name: 'name', - value: t.stringValue({ value: OrderBy }), - }), - ], - selectionSet: t.selectionSet({ - selections: [ - t.field({ - name: 'enumValues', - selectionSet: t.selectionSet({ - selections: [t.field({ name: 'name' })], - }), - }), - ], - }), - }), - ], - }), - }), - ], - }); - - return { name: queryName, ast }; -}; - -export interface GetFragmentArgs { - operationName: string; - query: GqlField; -} - -export interface GetFragmentResult { - name: string; - ast: DocumentNode; -} - -export const getFragment = ({ - operationName, - query, -}: GetFragmentArgs): GetFragmentResult => { - const queryName = inflection.camelize( - [inflection.underscore(query.model), 'Fragment'].join('_'), - true - ); - - const selections: FieldNode[] = getSelections(query); - - const ast: DocumentNode = t.document({ - definitions: [ - t.fragmentDefinition({ - name: queryName, - typeCondition: t.namedType({ - type: query.model, - }), - selectionSet: t.selectionSet({ - selections, - }), - }), - ], - }); - - return { name: queryName, ast }; -}; - -export interface FieldProperty { - name: string; - type: string; - isNotNull?: boolean; - isArray?: boolean; - isArrayNotNull?: boolean; -} - -export interface GetOneArgs { - operationName: string; - query: GqlField; - fields: string[]; -} - -export interface GetOneResult { - name: string; - ast: DocumentNode; -} - -export const getOne = ({ - operationName, - query, - fields, -}: GetOneArgs, typeNameOverrides?: Record): GetOneResult => { - const queryName = inflection.camelize( - ['get', inflection.underscore(operationName), 'query'].join('_'), - true - ); - - const variableDefinitions: VariableDefinitionNode[] = objectToArray(query.properties) - .filter((field) => field.isNotNull) - .map(({ name, type, isNotNull, isArray, isArrayNotNull }) => { - const typeName = resolveTypeName(name, type, typeNameOverrides); - let gqlType = t.namedType({ type: typeName }) as any; - - if (isNotNull) { - gqlType = t.nonNullType({ type: gqlType }); - } - - if (isArray) { - gqlType = t.listType({ type: gqlType }); - if (isArrayNotNull) { - gqlType = t.nonNullType({ type: gqlType }); - } - } - - return t.variableDefinition({ - variable: t.variable({ name }), - type: gqlType, - }); - }); - - const selectArgs: ArgumentNode[] = objectToArray(query.properties) - .filter((field) => field.isNotNull) - .map((field) => - t.argument({ - name: field.name, - value: t.variable({ name: field.name }), - }) - ); - - const selections: FieldNode[] = getSelections(query, fields); - - const opSel: FieldNode[] = [ - t.field({ - name: operationName, - args: selectArgs, - selectionSet: t.selectionSet({ selections }), - }), - ]; - - const ast: DocumentNode = t.document({ - definitions: [ - t.operationDefinition({ - operation: 'query', - name: queryName, - variableDefinitions, - selectionSet: t.selectionSet({ selections: opSel }), - }), - ], - }); - - return { name: queryName, ast }; -}; - -export interface CreateOneArgs { - operationName: string; - mutation: MutationSpec; - selection?: { mutationInputMode?: 'expanded' | 'model' | 'raw' | 'patchCollapsed'; connectionStyle?: 'nodes' | 'edges'; forceModelOutput?: boolean }; -} - -export interface CreateOneResult { - name: string; - ast: DocumentNode; -} - -export const createOne = ({ - operationName, - mutation, - selection, -}: CreateOneArgs, typeNameOverrides?: Record, typeIndex?: TypeIndex): CreateOneResult | undefined => { - const mutationName = inflection.camelize( - [inflection.underscore(operationName), 'mutation'].join('_'), - true - ); - - if (!mutation.properties?.input?.properties) { - console.log('no input field for mutation for ' + mutationName); - return; - } - - const modelName = inflection.camelize( - [singularModel(mutation.model)].join('_'), - true - ); - - const allAttrs = objectToArray( - mutation.properties.input.properties[modelName].properties - ); - - const attrs = allAttrs.filter( - (field) => field.name === 'id' ? Boolean(field.isNotNull) : !NON_MUTABLE_PROPS.includes(field.name) - ); - - const useRaw = selection?.mutationInputMode === 'raw'; - const inputTypeName = resolveTypeName('input', (mutation.properties as any)?.input?.type || (mutation.properties as any)?.input, typeNameOverrides); - let unresolved = 0; - let modelInputName: string | null = null; - if (typeIndex && inputTypeName) { - const modelRef = typeIndex.getInputFieldType(inputTypeName, modelName); - modelInputName = refToNamedTypeName(modelRef); - } - const variableDefinitions: VariableDefinitionNode[] = attrs.map( - ({ name, type, isNotNull, isArray, isArrayNotNull }) => { - let gqlType: TypeNode | null = null as any; - if (typeIndex && modelInputName) { - const fieldTypeRef = typeIndex.getInputFieldType(modelInputName, name); - const tn = refToTypeNode(fieldTypeRef, typeNameOverrides) as any; - if (tn) gqlType = tn; - } - if (!gqlType) { - const typeName = resolveTypeName(name, type, typeNameOverrides); - gqlType = t.namedType({ type: typeName }); - if (isNotNull) { - gqlType = t.nonNullType({ type: gqlType }); - } - if (isArray) { - gqlType = t.listType({ type: gqlType }); - if (isArrayNotNull) { - gqlType = t.nonNullType({ type: gqlType }); - } - } - } - const nn = extractNamedTypeName(gqlType); - if (nn === 'JSON') unresolved++; - return t.variableDefinition({ variable: t.variable({ name }), type: gqlType as any }); - } - ); - - const mustUseRaw = useRaw || unresolved > 0; - const selectArgs: ArgumentNode[] = mustUseRaw - ? [t.argument({ name: 'input', value: t.variable({ name: 'input' }) as any })] - : [ - t.argument({ - name: 'input', - value: t.objectValue({ - fields: [ - t.objectField({ - name: modelName, - value: t.objectValue({ - fields: attrs.map((field) => t.objectField({ name: field.name, value: t.variable({ name: field.name }) })), - }), - }), - ], - }), - }), - ]; - - let idExists = true; - let availableFieldNames: string[] = []; - if (typeIndex) { - const typ = (typeIndex as any).byName?.[mutation.model]; - const fields = (typ && Array.isArray(typ.fields)) ? typ.fields : []; - idExists = fields.some((f: any) => f && f.name === 'id'); - availableFieldNames = fields - .filter((f: any) => { - let r = f.type; - while (r && (r.kind === 'NON_NULL' || r.kind === 'LIST')) r = r.ofType; - const kind = r?.kind; - return kind === 'SCALAR' || kind === 'ENUM'; - }) - .map((f: any) => f.name); - } - - const finalFields = Array.from(new Set([...(idExists ? ['id'] : []), ...availableFieldNames])); - - const nested: FieldNode[] = (finalFields.length > 0) - ? [t.field({ - name: modelName, - selectionSet: t.selectionSet({ selections: finalFields.map((f) => t.field({ name: f })) }), - })] - : []; - - const ast: DocumentNode = createGqlMutation({ - operationName, - mutationName, - selectArgs, - selections: [...nested, t.field({ name: 'clientMutationId' })], - variableDefinitions: mustUseRaw - ? [t.variableDefinition({ variable: t.variable({ name: 'input' }), type: t.nonNullType({ type: t.namedType({ type: inputTypeName }) }) as any })] - : variableDefinitions, - useModel: false, - }); - - return { name: mutationName, ast }; -}; - -interface MutationOutput { - name: string; - type: { - kind: string; // typically "SCALAR", "OBJECT", etc. from GraphQL introspection - }; -} - -export interface MutationSpec { - model: string; - properties: { - input?: { - properties?: Record; - }; - }; - outputs?: MutationOutput[]; // ✅ Add this line - -} - -export interface PatchOneArgs { - operationName: string; - mutation: MutationSpec; - selection?: { mutationInputMode?: 'expanded' | 'model' | 'raw' | 'patchCollapsed'; connectionStyle?: 'nodes' | 'edges'; forceModelOutput?: boolean }; -} - -export interface PatchOneResult { - name: string; - ast: DocumentNode; -} - -export const patchOne = ({ - operationName, - mutation, - selection, -}: PatchOneArgs, typeNameOverrides?: Record, typeIndex?: TypeIndex): PatchOneResult | undefined => { - const mutationName = inflection.camelize( - [inflection.underscore(operationName), 'mutation'].join('_'), - true - ); - - if (!mutation.properties?.input?.properties) { - console.log('no input field for mutation for ' + mutationName); - return; - } - - const modelName = inflection.camelize( - [singularModel(mutation.model)].join('_'), - true - ); - - // @ts-ignore - const allAttrs: FieldProperty[] = objectToArray( - mutation.properties.input.properties['patch']?.properties || {} - ); - - const patchAttrs = allAttrs.filter( - // @ts-ignore - (prop) => !NON_MUTABLE_PROPS.includes(prop.name) - ); - - const patchByAttrs = objectToArray( - mutation.properties.input.properties - ).filter((n) => n.name !== 'patch'); - - const patchers = patchByAttrs.map((p) => p.name); - - const useCollapsedOpt = selection?.mutationInputMode === 'patchCollapsed'; - const ModelPascal = inflection.camelize(singularModel(mutation.model), false); - const patchTypeName = `${ModelPascal}Patch`; - const inputTypeName = resolveTypeName('input', (mutation.properties as any)?.input?.type || (mutation.properties as any)?.input, typeNameOverrides); - let unresolved = 0; - const patchAttrVarDefs: VariableDefinitionNode[] = useCollapsedOpt - ? [ - t.variableDefinition({ - variable: t.variable({ name: 'patch' }), - type: t.nonNullType({ type: t.namedType({ type: patchTypeName }) }) as any, - }), - ] - : patchAttrs - .filter((field) => !patchers.includes((field as any).name)) - .map(({ name, type, isArray }: any) => { - let gqlType: TypeNode | null = null as any; - if (typeIndex) { - const pType = typeIndex.byName[patchTypeName]; - const f = pType && pType.inputFields && pType.inputFields.find((x: any) => x.name === name); - if (f && f.type) gqlType = refToTypeNode(f.type, typeNameOverrides) as any; - } - if (!gqlType) { - const typeName = resolveTypeName(name, type, typeNameOverrides); - gqlType = t.namedType({ type: typeName }); - if (isArray) { - gqlType = t.listType({ type: gqlType }); - } - if ((patchers as any).includes(name)) { - gqlType = t.nonNullType({ type: gqlType }); - } - } - const nn = extractNamedTypeName(gqlType); - if (nn === 'JSON') unresolved++; - return t.variableDefinition({ variable: t.variable({ name }), type: gqlType as any }); - }); - - const patchByVarDefs: VariableDefinitionNode[] = patchByAttrs.map(({ name, type, isNotNull, isArray, isArrayNotNull }) => { - let gqlType: TypeNode | null = null as any; - if (typeIndex && inputTypeName) { - const ref = typeIndex.getInputFieldType(inputTypeName, name); - const tn = refToTypeNode(ref, typeNameOverrides) as any; - if (tn) gqlType = tn; - } - if (!gqlType) { - const typeName = resolveTypeName(name, type, typeNameOverrides); - gqlType = t.namedType({ type: typeName }); - if (isNotNull) { - gqlType = t.nonNullType({ type: gqlType }); - } - if (isArray) { - gqlType = t.listType({ type: gqlType }); - if (isArrayNotNull) { - gqlType = t.nonNullType({ type: gqlType }); - } - } - } - const nn = extractNamedTypeName(gqlType); - if (nn === 'JSON') unresolved++; - return t.variableDefinition({ variable: t.variable({ name }), type: gqlType as any }); - }); - - const mustUseRaw = unresolved > 0; - const selectArgs: ArgumentNode[] = mustUseRaw - ? [t.argument({ name: 'input', value: t.variable({ name: 'input' }) as any })] - : [ - t.argument({ - name: 'input', - value: t.objectValue({ - fields: [ - ...patchByAttrs.map((field) => t.objectField({ name: field.name, value: t.variable({ name: field.name }) })), - t.objectField({ - name: 'patch', - value: useCollapsedOpt ? (t.variable({ name: 'patch' }) as any) : t.objectValue({ - fields: patchAttrs - .filter((field) => !patchers.includes((field as any).name)) - .map((field: any) => t.objectField({ name: field.name, value: t.variable({ name: field.name }) })), - }), - }), - ], - }), - }), - ]; - - let idExistsPatch = true; - if (typeIndex) { - const typ = (typeIndex as any).byName?.[mutation.model]; - const fields = (typ && Array.isArray(typ.fields)) ? typ.fields : []; - idExistsPatch = fields.some((f: any) => f && f.name === 'id'); - } - const shouldDropIdPatch = /Extension$/i.test(modelName) || !idExistsPatch; - const idSelection = shouldDropIdPatch ? [] : ['id']; - - const nestedPatch: FieldNode[] = (idSelection.length > 0) - ? [t.field({ - name: modelName, - selectionSet: t.selectionSet({ selections: idSelection.map((f) => t.field({ name: f })) }), - })] - : []; - - const ast: DocumentNode = createGqlMutation({ - operationName, - mutationName, - selectArgs, - selections: [...nestedPatch, t.field({ name: 'clientMutationId' })], - variableDefinitions: mustUseRaw - ? [t.variableDefinition({ variable: t.variable({ name: 'input' }), type: t.nonNullType({ type: t.namedType({ type: inputTypeName }) }) as any })] - : [...patchByVarDefs, ...patchAttrVarDefs], - useModel: false, - }); - - return { name: mutationName, ast }; -}; - - -export interface DeleteOneArgs { - operationName: string; - mutation: MutationSpec; -} - -export interface DeleteOneResult { - name: string; - ast: DocumentNode; -} - -export const deleteOne = ({ - operationName, - mutation, -}: DeleteOneArgs, typeNameOverrides?: Record, typeIndex?: TypeIndex): DeleteOneResult | undefined => { - const mutationName = inflection.camelize( - [inflection.underscore(operationName), 'mutation'].join('_'), - true - ); - - if (!mutation.properties?.input?.properties) { - console.log('no input field for mutation for ' + mutationName); - return; - } - - const modelName = inflection.camelize( - [singularModel(mutation.model)].join('_'), - true - ); - - // @ts-ignore - const deleteAttrs: FieldProperty[] = objectToArray( - mutation.properties.input.properties - ); - - const inputTypeName = resolveTypeName('input', (mutation.properties as any)?.input?.type || (mutation.properties as any)?.input, typeNameOverrides); - let unresolved = 0; - const variableDefinitions: VariableDefinitionNode[] = deleteAttrs.map( - ({ name, type, isNotNull, isArray }) => { - let gqlType: TypeNode | null = null as any; - if (typeIndex && inputTypeName) { - const ref = typeIndex.getInputFieldType(inputTypeName, name); - const tn = refToTypeNode(ref, typeNameOverrides) as any; - if (tn) gqlType = tn; - } - if (!gqlType) { - const typeName = resolveTypeName(name, type, typeNameOverrides); - gqlType = t.namedType({ type: typeName }); - if (isNotNull) { - gqlType = t.nonNullType({ type: gqlType }); - } - if (isArray) { - gqlType = t.listType({ type: gqlType }); - gqlType = t.nonNullType({ type: gqlType }); - } - } - const nn = extractNamedTypeName(gqlType); - if (nn === 'JSON') unresolved++; - return t.variableDefinition({ variable: t.variable({ name }), type: gqlType as any }); - } - ); - - const mustUseRaw = unresolved > 0; - const selectArgs: ArgumentNode[] = mustUseRaw - ? [t.argument({ name: 'input', value: t.variable({ name: 'input' }) as any })] - : [ - t.argument({ - name: 'input', - value: t.objectValue({ - fields: deleteAttrs.map((f) => t.objectField({ name: f.name, value: t.variable({ name: f.name }) })), - }), - }), - ]; - - const selections: FieldNode[] = [t.field({ name: 'clientMutationId' })]; - - const ast: DocumentNode = createGqlMutation({ - operationName, - mutationName, - selectArgs, - selections, - variableDefinitions: mustUseRaw - ? [t.variableDefinition({ variable: t.variable({ name: 'input' }), type: t.nonNullType({ type: t.namedType({ type: inputTypeName }) }) as any })] - : variableDefinitions, - modelName, - useModel: false, - }); - - return { name: mutationName, ast }; -}; - -export interface CreateMutationArgs { - operationName: string; - mutation: MutationSpec; - selection?: { mutationInputMode?: 'expanded' | 'model' | 'raw' | 'patchCollapsed'; connectionStyle?: 'nodes' | 'edges'; forceModelOutput?: boolean }; -} - -export interface CreateMutationResult { - name: string; - ast: DocumentNode; -} - -export const createMutation = ({ - operationName, - mutation, - selection, -}: CreateMutationArgs, typeNameOverrides?: Record, typeIndex?: TypeIndex): CreateMutationResult | undefined => { - const mutationName = inflection.camelize( - [inflection.underscore(operationName), 'mutation'].join('_'), - true - ); - - if (!mutation.properties?.input?.properties) { - console.log('no input field for mutation for ' + mutationName); - return; - } - - // @ts-ignore - const otherAttrs: FieldProperty[] = objectToArray( - mutation.properties.input.properties - ); - - const useRaw = selection?.mutationInputMode === 'raw'; - const inputTypeName = resolveTypeName('input', (mutation.properties as any)?.input?.type || (mutation.properties as any)?.input, typeNameOverrides); - let unresolved = 0; - const builtVarDefs: VariableDefinitionNode[] = otherAttrs.map(({ name, type, isArray, isArrayNotNull }) => { - let gqlType: TypeNode | null = null as any; - if (typeIndex && inputTypeName) { - const ref = typeIndex.getInputFieldType(inputTypeName, name); - const tn = refToTypeNode(ref, typeNameOverrides) as any; - if (tn) gqlType = tn; - } - if (!gqlType) { - const typeName = resolveTypeName(name, type, typeNameOverrides); - gqlType = t.namedType({ type: typeName }); - gqlType = t.nonNullType({ type: gqlType }); - if (isArray) { - gqlType = t.listType({ type: gqlType }); - if (isArrayNotNull) { - gqlType = t.nonNullType({ type: gqlType }); - } - } - if ((gqlType as any).type && (gqlType as any).type.type && (gqlType as any).type.type.name === 'JSON') { - unresolved++; - } - } - return t.variableDefinition({ variable: t.variable({ name }), type: gqlType as any }); - }); - const mustUseRaw = useRaw || otherAttrs.length === 0 || unresolved > 0; - const variableDefinitions: VariableDefinitionNode[] = mustUseRaw - ? [t.variableDefinition({ variable: t.variable({ name: 'input' }), type: t.nonNullType({ type: t.namedType({ type: inputTypeName }) }) as any })] - : builtVarDefs; - - const selectArgs: ArgumentNode[] = [ - t.argument({ - name: 'input', - value: mustUseRaw - ? (t.variable({ name: 'input' }) as any) - : t.objectValue({ - fields: otherAttrs.map((f) => t.objectField({ name: f.name, value: t.variable({ name: f.name }) })), - }), - }), - ]; - - const scalarOutputs = (mutation.outputs || []) - .filter((field) => field.type.kind === 'SCALAR') - .map((f) => f.name); - - let objectOutputName: string | undefined = (mutation.outputs || []) - .find((field) => field.type.kind === 'OBJECT')?.name; - - if (!objectOutputName) { - const payloadTypeName = (mutation as any)?.output?.name; - if (typeIndex && payloadTypeName) { - const payloadType = (typeIndex as any).byName?.[payloadTypeName]; - const fields = (payloadType && Array.isArray(payloadType.fields)) ? payloadType.fields : []; - const match = fields - .filter((f: any) => f && f.name !== 'clientMutationId') - .filter((f: any) => (refToNamedTypeName(f.type) || f.type?.name) !== 'Query') - .find((f: any) => (refToNamedTypeName(f.type) || f.type?.name) === (mutation as any)?.model); - if (match) objectOutputName = match.name; - } - } - - const selections: FieldNode[] = []; - if (objectOutputName) { - const modelTypeName = (mutation as any)?.model; - const modelType = typeIndex && modelTypeName ? (typeIndex as any).byName?.[modelTypeName] : null; - const fieldNames: string[] = (modelType && Array.isArray(modelType.fields)) - ? modelType.fields - .filter((f: any) => { - let r = f.type; - while (r && (r.kind === 'NON_NULL' || r.kind === 'LIST')) r = r.ofType; - const kind = r?.kind; - return kind === 'SCALAR' || kind === 'ENUM'; - }) - .map((f: any) => f.name) - : []; - selections.push( - t.field({ - name: objectOutputName, - selectionSet: t.selectionSet({ selections: fieldNames.map((n) => t.field({ name: n })) }), - }) - ); - } - if (scalarOutputs.length > 0) { - selections.push(...scalarOutputs.map((o) => t.field({ name: o }))); - } else { - selections.push(t.field({ name: 'clientMutationId' })); - } - - const ast: DocumentNode = createGqlMutation({ - operationName, - mutationName, - selectArgs, - selections, - variableDefinitions, - }); - - return { name: mutationName, ast }; -}; - -type QType = 'mutation' | 'getOne' | 'getMany'; -type MutationType = 'create' | 'patch' | 'delete' | string; - -interface FlatField { - name: string; - selection: string[]; -} - -interface GqlField { - qtype: QType; - mutationType?: MutationType; - model?: string; - properties?: Record>; - outputs?: { - name: string; - type: { - kind: string; - }; - }[]; - selection?: QueryField[] -} - -type QueryField = string | FlatField; - -export interface GqlMap { - [operationName: string]: GqlField; -} - -interface AstMapEntry { - name: string; - ast: DocumentNode; -} - -interface AstMap { - [key: string]: AstMapEntry; -} - -export const generate = (gql: GqlMap, selection?: { defaultMutationModelFields?: string[]; modelFields?: Record; mutationInputMode?: 'expanded' | 'model' | 'raw' | 'patchCollapsed'; connectionStyle?: 'nodes' | 'edges'; forceModelOutput?: boolean }, typeNameOverrides?: Record, typeIndex?: TypeIndex): AstMap => { - return Object.keys(gql).reduce((m, operationName) => { - const defn = gql[operationName]; - let name: string | undefined; - let ast: DocumentNode | undefined; - - if (defn.qtype === 'mutation') { - if (defn.mutationType === 'create') { - ({ name, ast } = createOne({ operationName, mutation: defn as MutationSpec, selection }, typeNameOverrides, typeIndex) ?? {}); - } else if (defn.mutationType === 'patch') { - ({ name, ast } = patchOne({ operationName, mutation: defn as MutationSpec, selection }, typeNameOverrides, typeIndex) ?? {}); - } else if (defn.mutationType === 'delete') { - ({ name, ast } = deleteOne({ operationName, mutation: defn as MutationSpec }, typeNameOverrides, typeIndex) ?? {}); - } else { - ({ name, ast } = createMutation({ operationName, mutation: defn as MutationSpec, selection }, typeNameOverrides, typeIndex) ?? {}); - } - } else if (defn.qtype === 'getMany') { - [ - getMany, - getManyPaginatedEdges, - getOrderByEnums, - getFragment - ].forEach(fn => { - const result = (fn as any)({ operationName, query: defn }); - if (result?.name && result?.ast) { - m[result.name] = result; - } - }); - } else if (defn.qtype === 'getOne') { - // @ts-ignore - ({ name, ast } = getOne({ operationName, query: defn }, typeNameOverrides) ?? {}); - } else { - console.warn('Unknown qtype for key: ' + operationName); - } - - if (name && ast) { - m[name] = { name, ast }; - } - - return m; - }, {}); -}; - -export const generateGranular = ( - gql: GqlMap, - model: string, - fields: string[] -): AstMap => { - return Object.keys(gql).reduce((m, operationName) => { - const defn = gql[operationName]; - const matchModel = defn.model; - - let name: string | undefined; - let ast: DocumentNode | undefined; - - if (defn.qtype === 'getMany') { - const many = getMany({ operationName, query: defn, fields }); - if (many?.name && many?.ast && model === matchModel) { - m[many.name] = many; - } - - const paginatedEdges = getManyPaginatedEdges({ - operationName, - query: defn, - fields, - }); - if (paginatedEdges?.name && paginatedEdges?.ast && model === matchModel) { - m[paginatedEdges.name] = paginatedEdges; - } - - const paginatedNodes = getManyPaginatedNodes({ - operationName, - query: defn, - fields, - }); - if (paginatedNodes?.name && paginatedNodes?.ast && model === matchModel) { - m[paginatedNodes.name] = paginatedNodes; - } - } else if (defn.qtype === 'getOne') { - const one = getOne({ operationName, query: defn, fields }); - if (one?.name && one?.ast && model === matchModel) { - m[one.name] = one; - } - } - - return m; - }, {}); -}; - - -export function getSelections( - query: GqlField, - fields: string[] = [] -): FieldNode[] { - const useAll = fields.length === 0; - - const shouldDropId = typeof query.model === 'string' && /Extension$/i.test(query.model); - - const mapItem = (item: QueryField): FieldNode | null => { - if (typeof item === 'string') { - if (shouldDropId && item === 'id') return null; - if (!useAll && !fields.includes(item)) return null; - return t.field({ name: item }); - } - if ( - typeof item === 'object' && - item !== null && - 'name' in item && - 'selection' in item && - Array.isArray(item.selection) - ) { - if (!useAll && !fields.includes(item.name)) return null; - const isMany = (item as any).qtype === 'getMany'; - if (isMany) { - return t.field({ - name: item.name, - args: [t.argument({ name: 'first', value: t.intValue({ value: '3' as any }) })], - selectionSet: t.selectionSet({ - selections: [ - t.field({ - name: 'edges', - selectionSet: t.selectionSet({ - selections: [ - t.field({ name: 'cursor' }), - t.field({ - name: 'node', - selectionSet: t.selectionSet({ selections: item.selection.map((s) => mapItem(s)).filter(Boolean) as FieldNode[] }), - }), - ], - }), - }), - ], - }), - }); - } - return t.field({ - name: item.name, - selectionSet: t.selectionSet({ selections: item.selection.map((s) => mapItem(s)).filter(Boolean) as FieldNode[] }), - }); - } - return null; - }; - - return query.selection - .filter((s: any) => !(shouldDropId && s === 'id')) - .map((field) => mapItem(field)) - .filter((i): i is FieldNode => Boolean(i)); -} diff --git a/graphql/codegen/src/index.ts b/graphql/codegen/src/index.ts index e1c679be9..64d64dc79 100644 --- a/graphql/codegen/src/index.ts +++ b/graphql/codegen/src/index.ts @@ -1,3 +1,22 @@ -export * from './gql' -export * from './codegen' -export * from './options' +/** + * @constructive-io/graphql-codegen + * + * CLI-based GraphQL SDK generator for PostGraphile endpoints. + * Introspects via _meta query and generates typed queries, mutations, + * and React Query v5 hooks. + */ + +// Core types +export * from './types'; + +// Core query building +export * from './core'; + +// Generators +export * from './generators'; + +// Client utilities +export * from './client'; + +// Config definition helper +export { defineConfig } from './types/config'; diff --git a/graphql/codegen/src/options.ts b/graphql/codegen/src/options.ts deleted file mode 100644 index a687b2fc2..000000000 --- a/graphql/codegen/src/options.ts +++ /dev/null @@ -1,73 +0,0 @@ -export type DocumentFormat = 'gql' | 'ts' -export type FilenameConvention = 'underscore' | 'dashed' | 'camelcase' | 'camelUpper' - -export interface GraphQLCodegenOptions { - input: { - schema: string - endpoint?: string - headers?: Record - } - output: { - root: string - typesFile: string - operationsDir: string - sdkFile: string - reactQueryFile?: string - } - documents: { - format: DocumentFormat - convention: FilenameConvention - allowQueries?: string[] - excludeQueries?: string[] - excludePatterns?: string[] - } - features: { - emitTypes: boolean - emitOperations: boolean - emitSdk: boolean - emitReactQuery?: boolean - } - reactQuery?: { - fetcher?: 'fetch' | 'graphql-request' | 'hardcoded' | string - legacyMode?: boolean - exposeDocument?: boolean - addInfiniteQuery?: boolean - reactQueryVersion?: number - } - selection?: { - mutationInputMode?: 'expanded' | 'model' | 'raw' | 'patchCollapsed' - connectionStyle?: 'nodes' | 'edges' - forceModelOutput?: boolean - } - scalars?: Record - typeNameOverrides?: Record -} - -export const defaultGraphQLCodegenOptions: GraphQLCodegenOptions = { - input: { schema: '', endpoint: '', headers: {} }, - output: { - root: 'graphql/codegen/dist', - typesFile: 'types/generated.ts', - operationsDir: 'operations', - sdkFile: 'sdk.ts', - reactQueryFile: 'react-query.ts' - }, - documents: { format: 'gql', convention: 'dashed', allowQueries: [], excludeQueries: [], excludePatterns: [] }, - features: { emitTypes: true, emitOperations: true, emitSdk: true, emitReactQuery: true }, - reactQuery: { fetcher: 'graphql-request', legacyMode: false, exposeDocument: false, addInfiniteQuery: false, reactQueryVersion: 5 }, - selection: { mutationInputMode: 'patchCollapsed', connectionStyle: 'edges', forceModelOutput: true }, - scalars: {}, - typeNameOverrides: {} -} - -export function mergeGraphQLCodegenOptions(base: GraphQLCodegenOptions, overrides: Partial): GraphQLCodegenOptions { - return { - input: { ...(base.input || {}), ...(overrides.input || {}) }, - output: { ...(base.output || {}), ...(overrides.output || {}) }, - documents: { ...(base.documents || {}), ...(overrides.documents || {}) }, - features: { ...(base.features || {}), ...(overrides.features || {}) }, - selection: { ...(base.selection || {}), ...(overrides.selection || {}) }, - scalars: { ...(base.scalars || {}), ...(overrides.scalars || {}) }, - typeNameOverrides: { ...(base.typeNameOverrides || {}), ...(overrides.typeNameOverrides || {}) } - } as GraphQLCodegenOptions -} diff --git a/graphql/codegen/src/react/index.ts b/graphql/codegen/src/react/index.ts new file mode 100644 index 000000000..2052acabf --- /dev/null +++ b/graphql/codegen/src/react/index.ts @@ -0,0 +1,7 @@ +/** + * React integration exports + * Will be populated in Phase 8 + */ + +// Placeholder exports - will be implemented +export const REACT_VERSION = '0.1.0'; diff --git a/graphql/codegen/src/types/config.ts b/graphql/codegen/src/types/config.ts new file mode 100644 index 000000000..872ac682a --- /dev/null +++ b/graphql/codegen/src/types/config.ts @@ -0,0 +1,302 @@ +/** + * SDK Configuration types + */ + +/** + * Main configuration for graphql-codegen + */ +export interface GraphQLSDKConfig { + /** + * GraphQL endpoint URL (must expose _meta query) + */ + endpoint: string; + + /** + * Headers to include in introspection requests + */ + headers?: Record; + + /** + * Output directory for generated code + * @default './generated/graphql' + */ + output?: string; + + /** + * Table filtering options (for table-based CRUD operations from _meta) + */ + tables?: { + /** Tables to include (glob patterns supported) */ + include?: string[]; + /** Tables to exclude (glob patterns supported) */ + exclude?: string[]; + }; + + /** + * Query operation filtering (for ALL queries from __schema introspection) + * Glob patterns supported (e.g., 'current*', '*ByUsername') + */ + queries?: { + /** Query names to include - defaults to ['*'] */ + include?: string[]; + /** Query names to exclude - defaults to ['_meta', 'query'] */ + exclude?: string[]; + }; + + /** + * Mutation operation filtering (for ALL mutations from __schema introspection) + * Glob patterns supported (e.g., 'create*', 'login', 'register') + */ + mutations?: { + /** Mutation names to include - defaults to ['*'] */ + include?: string[]; + /** Mutation names to exclude */ + exclude?: string[]; + }; + + /** + * Fields to exclude globally from all tables + */ + excludeFields?: string[]; + + /** + * Hook generation options + */ + hooks?: { + /** Generate query hooks */ + queries?: boolean; + /** Generate mutation hooks */ + mutations?: boolean; + /** Prefix for query keys */ + queryKeyPrefix?: string; + }; + + /** + * PostGraphile-specific options + */ + postgraphile?: { + /** PostgreSQL schema to introspect */ + schema?: string; + }; + + /** + * Code generation options + */ + codegen?: { + /** Max depth for nested object field selection (default: 2) */ + maxFieldDepth?: number; + /** Skip 'query' field on mutation payloads (default: true) */ + skipQueryField?: boolean; + }; + + /** + * ORM client generation options + * When set, generates a Prisma-like ORM client in addition to or instead of React Query hooks + */ + orm?: { + /** + * Output directory for generated ORM client + * @default './generated/orm' + */ + output?: string; + /** + * Whether to import shared types from hooks output or generate standalone + * When true, ORM types.ts will re-export from ../graphql/types + * @default true + */ + useSharedTypes?: boolean; + }; + + /** + * Watch mode configuration (dev-only feature) + * When enabled via CLI --watch flag, the CLI will poll the endpoint for schema changes + */ + watch?: WatchConfig; +} + +/** + * Watch mode configuration options + * + * Watch mode uses in-memory caching for efficiency - no file I/O during polling. + */ +export interface WatchConfig { + /** + * Polling interval in milliseconds + * @default 3000 + */ + pollInterval?: number; + + /** + * Debounce delay in milliseconds before regenerating + * Prevents rapid regeneration during schema migrations + * @default 800 + */ + debounce?: number; + + /** + * File to touch on schema change (useful for triggering external tools like tsc/webpack) + * This is the only file I/O in watch mode. + * @example '.trigger' + */ + touchFile?: string; + + /** + * Clear terminal on regeneration + * @default true + */ + clearScreen?: boolean; +} + +/** + * Resolved watch configuration with defaults applied + */ +export interface ResolvedWatchConfig { + pollInterval: number; + debounce: number; + touchFile: string | null; + clearScreen: boolean; +} + +/** + * Resolved configuration with defaults applied + */ +export interface ResolvedConfig extends Required> { + headers: Record; + tables: { + include: string[]; + exclude: string[]; + }; + queries: { + include: string[]; + exclude: string[]; + }; + mutations: { + include: string[]; + exclude: string[]; + }; + hooks: { + queries: boolean; + mutations: boolean; + queryKeyPrefix: string; + }; + postgraphile: { + schema: string; + }; + codegen: { + maxFieldDepth: number; + skipQueryField: boolean; + }; + orm: { + output: string; + useSharedTypes: boolean; + } | null; + watch: ResolvedWatchConfig; +} + +/** + * Default watch configuration values + */ +export const DEFAULT_WATCH_CONFIG: ResolvedWatchConfig = { + pollInterval: 3000, + debounce: 800, + touchFile: null, + clearScreen: true, +}; + +/** + * Default configuration values + */ +export const DEFAULT_CONFIG: Omit = { + headers: {}, + output: './generated/graphql', + tables: { + include: ['*'], + exclude: [], + }, + queries: { + include: ['*'], + exclude: ['_meta', 'query'], // Internal PostGraphile queries + }, + mutations: { + include: ['*'], + exclude: [], + }, + excludeFields: [], + hooks: { + queries: true, + mutations: true, + queryKeyPrefix: 'graphql', + }, + postgraphile: { + schema: 'public', + }, + codegen: { + maxFieldDepth: 2, + skipQueryField: true, + }, + orm: null, // ORM generation disabled by default + watch: DEFAULT_WATCH_CONFIG, +}; + +/** + * Default ORM configuration values + */ +export const DEFAULT_ORM_CONFIG = { + output: './generated/orm', + useSharedTypes: true, +}; + +/** + * Helper function to define configuration with type checking + */ +export function defineConfig(config: GraphQLSDKConfig): GraphQLSDKConfig { + return config; +} + +/** + * Resolve configuration by applying defaults + */ +export function resolveConfig(config: GraphQLSDKConfig): ResolvedConfig { + return { + endpoint: config.endpoint, + headers: config.headers ?? DEFAULT_CONFIG.headers, + output: config.output ?? DEFAULT_CONFIG.output, + tables: { + include: config.tables?.include ?? DEFAULT_CONFIG.tables.include, + exclude: config.tables?.exclude ?? DEFAULT_CONFIG.tables.exclude, + }, + queries: { + include: config.queries?.include ?? DEFAULT_CONFIG.queries.include, + exclude: config.queries?.exclude ?? DEFAULT_CONFIG.queries.exclude, + }, + mutations: { + include: config.mutations?.include ?? DEFAULT_CONFIG.mutations.include, + exclude: config.mutations?.exclude ?? DEFAULT_CONFIG.mutations.exclude, + }, + excludeFields: config.excludeFields ?? DEFAULT_CONFIG.excludeFields, + hooks: { + queries: config.hooks?.queries ?? DEFAULT_CONFIG.hooks.queries, + mutations: config.hooks?.mutations ?? DEFAULT_CONFIG.hooks.mutations, + queryKeyPrefix: config.hooks?.queryKeyPrefix ?? DEFAULT_CONFIG.hooks.queryKeyPrefix, + }, + postgraphile: { + schema: config.postgraphile?.schema ?? DEFAULT_CONFIG.postgraphile.schema, + }, + codegen: { + maxFieldDepth: config.codegen?.maxFieldDepth ?? DEFAULT_CONFIG.codegen.maxFieldDepth, + skipQueryField: config.codegen?.skipQueryField ?? DEFAULT_CONFIG.codegen.skipQueryField, + }, + orm: config.orm + ? { + output: config.orm.output ?? DEFAULT_ORM_CONFIG.output, + useSharedTypes: config.orm.useSharedTypes ?? DEFAULT_ORM_CONFIG.useSharedTypes, + } + : null, + watch: { + pollInterval: config.watch?.pollInterval ?? DEFAULT_WATCH_CONFIG.pollInterval, + debounce: config.watch?.debounce ?? DEFAULT_WATCH_CONFIG.debounce, + touchFile: config.watch?.touchFile ?? DEFAULT_WATCH_CONFIG.touchFile, + clearScreen: config.watch?.clearScreen ?? DEFAULT_WATCH_CONFIG.clearScreen, + }, + }; +} diff --git a/graphql/codegen/src/types/index.ts b/graphql/codegen/src/types/index.ts new file mode 100644 index 000000000..13dc5f8ee --- /dev/null +++ b/graphql/codegen/src/types/index.ts @@ -0,0 +1,57 @@ +/** + * Type exports for @constructive-io/graphql-codegen + */ + +// Schema types +export type { + CleanTable, + CleanField, + CleanFieldType, + CleanRelations, + CleanBelongsToRelation, + CleanHasOneRelation, + CleanHasManyRelation, + CleanManyToManyRelation, + TableInflection, + TableQueryNames, + TableConstraints, + ConstraintInfo, + ForeignKeyConstraint, +} from './schema'; + +// Query types +export type { + PageInfo, + ConnectionResult, + QueryOptions, + OrderByItem, + FilterOperator, + FieldFilter, + RelationalFilter, + Filter, +} from './query'; + +// Mutation types +export type { + MutationOptions, + CreateInput, + UpdateInput, + DeleteInput, + MutationResult, +} from './mutation'; + +// Selection types +export type { + SimpleFieldSelection, + FieldSelectionPreset, + FieldSelection, + SelectionOptions, +} from './selection'; + +// Config types +export type { + GraphQLSDKConfig, + ResolvedConfig, +} from './config'; + +export { defineConfig, resolveConfig, DEFAULT_CONFIG } from './config'; diff --git a/graphql/codegen/src/types/introspection.ts b/graphql/codegen/src/types/introspection.ts new file mode 100644 index 000000000..e68d581e8 --- /dev/null +++ b/graphql/codegen/src/types/introspection.ts @@ -0,0 +1,193 @@ +/** + * GraphQL Introspection Types + * + * Standard types for GraphQL schema introspection via __schema query. + * These mirror the GraphQL introspection spec. + */ + +// ============================================================================ +// Type Reference (recursive) +// ============================================================================ + +/** + * Reference to a GraphQL type - can be nested for wrappers like NON_NULL and LIST + */ +export interface IntrospectionTypeRef { + kind: IntrospectionTypeKind; + name: string | null; + ofType: IntrospectionTypeRef | null; +} + +export type IntrospectionTypeKind = + | 'SCALAR' + | 'OBJECT' + | 'INPUT_OBJECT' + | 'ENUM' + | 'LIST' + | 'NON_NULL' + | 'INTERFACE' + | 'UNION'; + +// ============================================================================ +// Input Values (arguments and input fields) +// ============================================================================ + +/** + * Input value - used for both field arguments and INPUT_OBJECT fields + */ +export interface IntrospectionInputValue { + name: string; + description: string | null; + type: IntrospectionTypeRef; + defaultValue: string | null; +} + +// ============================================================================ +// Fields +// ============================================================================ + +/** + * Field on an OBJECT or INTERFACE type + */ +export interface IntrospectionField { + name: string; + description: string | null; + args: IntrospectionInputValue[]; + type: IntrospectionTypeRef; + isDeprecated: boolean; + deprecationReason: string | null; +} + +// ============================================================================ +// Enum Values +// ============================================================================ + +/** + * Enum value definition + */ +export interface IntrospectionEnumValue { + name: string; + description: string | null; + isDeprecated: boolean; + deprecationReason: string | null; +} + +// ============================================================================ +// Full Type Definition +// ============================================================================ + +/** + * Complete type definition from introspection + */ +export interface IntrospectionType { + kind: IntrospectionTypeKind; + name: string; + description: string | null; + /** Fields for OBJECT and INTERFACE types */ + fields: IntrospectionField[] | null; + /** Input fields for INPUT_OBJECT types */ + inputFields: IntrospectionInputValue[] | null; + /** Possible types for INTERFACE and UNION types */ + possibleTypes: Array<{ name: string }> | null; + /** Enum values for ENUM types */ + enumValues: IntrospectionEnumValue[] | null; + /** Interfaces implemented by OBJECT types */ + interfaces: Array<{ name: string }> | null; +} + +// ============================================================================ +// Schema +// ============================================================================ + +/** + * Root type references in schema + */ +export interface IntrospectionRootType { + name: string; +} + +/** + * Full schema introspection result + */ +export interface IntrospectionSchema { + queryType: IntrospectionRootType; + mutationType: IntrospectionRootType | null; + subscriptionType: IntrospectionRootType | null; + types: IntrospectionType[]; + directives: IntrospectionDirective[]; +} + +/** + * Directive definition + */ +export interface IntrospectionDirective { + name: string; + description: string | null; + locations: string[]; + args: IntrospectionInputValue[]; +} + +// ============================================================================ +// Query Response +// ============================================================================ + +/** + * Response from introspection query + */ +export interface IntrospectionQueryResponse { + __schema: IntrospectionSchema; +} + +// ============================================================================ +// Type Guards +// ============================================================================ + +/** + * Check if type kind is a wrapper (LIST or NON_NULL) + */ +export function isWrapperType(kind: IntrospectionTypeKind): boolean { + return kind === 'LIST' || kind === 'NON_NULL'; +} + +/** + * Check if type kind is a named type (has a name) + */ +export function isNamedType(kind: IntrospectionTypeKind): boolean { + return !isWrapperType(kind); +} + +/** + * Unwrap a type reference to get the base named type + */ +export function unwrapType(typeRef: IntrospectionTypeRef): IntrospectionTypeRef { + let current = typeRef; + while (current.ofType) { + current = current.ofType; + } + return current; +} + +/** + * Get the base type name from a possibly wrapped type + */ +export function getBaseTypeName(typeRef: IntrospectionTypeRef): string | null { + return unwrapType(typeRef).name; +} + +/** + * Check if a type reference is non-null (required) + */ +export function isNonNull(typeRef: IntrospectionTypeRef): boolean { + return typeRef.kind === 'NON_NULL'; +} + +/** + * Check if a type reference is a list + */ +export function isList(typeRef: IntrospectionTypeRef): boolean { + if (typeRef.kind === 'LIST') return true; + if (typeRef.kind === 'NON_NULL' && typeRef.ofType) { + return typeRef.ofType.kind === 'LIST'; + } + return false; +} diff --git a/graphql/codegen/src/types/mutation.ts b/graphql/codegen/src/types/mutation.ts new file mode 100644 index 000000000..9bc23c21d --- /dev/null +++ b/graphql/codegen/src/types/mutation.ts @@ -0,0 +1,51 @@ +/** + * Mutation-related types + */ + +import type { FieldSelection } from './selection'; + +/** + * Options for mutation operations + */ +export interface MutationOptions { + /** Fields to return after mutation */ + returning?: string[]; + /** Field selection for returned data */ + fieldSelection?: FieldSelection; +} + +/** + * Input for create mutations + * Wraps the actual data in PostGraphile's expected format + */ +export interface CreateInput> { + [tableName: string]: T; +} + +/** + * Input for update mutations + */ +export interface UpdateInput> { + /** Primary key value */ + id: string | number; + /** Fields to update */ + patch: T; +} + +/** + * Input for delete mutations + */ +export interface DeleteInput { + /** Primary key value */ + id: string | number; +} + +/** + * Standard mutation result + */ +export interface MutationResult { + /** The affected record */ + data?: T; + /** Client mutation ID (PostGraphile) */ + clientMutationId?: string; +} diff --git a/graphql/codegen/src/types/query.ts b/graphql/codegen/src/types/query.ts new file mode 100644 index 000000000..654735360 --- /dev/null +++ b/graphql/codegen/src/types/query.ts @@ -0,0 +1,160 @@ +/** + * Query-related types for building GraphQL operations + */ + +import type { FieldSelection } from './selection'; + +/** + * Relay-style pagination info + */ +export interface PageInfo { + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor?: string | null; + endCursor?: string | null; +} + +/** + * Relay-style connection result + */ +export interface ConnectionResult { + nodes: T[]; + totalCount: number; + pageInfo: PageInfo; +} + +/** + * Options for building SELECT queries + */ +export interface QueryOptions { + /** Number of records to fetch (alias for first) */ + first?: number; + /** Alias for first */ + limit?: number; + /** Offset for pagination */ + offset?: number; + /** Cursor for forward pagination */ + after?: string; + /** Cursor for backward pagination */ + before?: string; + /** Filter conditions */ + where?: Filter; + /** Sort order */ + orderBy?: OrderByItem[]; + /** Field selection options */ + fieldSelection?: FieldSelection; + /** Include pageInfo in response */ + includePageInfo?: boolean; +} + +/** + * Single order by specification + */ +export interface OrderByItem { + field: string; + direction: 'asc' | 'desc'; +} + +// ============================================================================ +// Filter Types (PostGraphile connection filters) +// ============================================================================ + +/** + * All supported filter operators + */ +export type FilterOperator = + // Null checks + | 'isNull' + // Equality + | 'equalTo' + | 'notEqualTo' + | 'distinctFrom' + | 'notDistinctFrom' + // List membership + | 'in' + | 'notIn' + // Comparison + | 'lessThan' + | 'lessThanOrEqualTo' + | 'greaterThan' + | 'greaterThanOrEqualTo' + // String operators + | 'includes' + | 'notIncludes' + | 'includesInsensitive' + | 'notIncludesInsensitive' + | 'startsWith' + | 'notStartsWith' + | 'startsWithInsensitive' + | 'notStartsWithInsensitive' + | 'endsWith' + | 'notEndsWith' + | 'endsWithInsensitive' + | 'notEndsWithInsensitive' + | 'like' + | 'notLike' + | 'likeInsensitive' + | 'notLikeInsensitive' + | 'equalToInsensitive' + | 'notEqualToInsensitive' + | 'distinctFromInsensitive' + | 'notDistinctFromInsensitive' + | 'inInsensitive' + | 'notInInsensitive' + // Array operators + | 'contains' + | 'containedBy' + | 'overlaps' + // PostGIS operators + | 'intersects' + | 'intersects3D' + | 'containsProperly' + | 'coveredBy' + | 'covers' + | 'crosses' + | 'disjoint' + | 'orderingEquals' + | 'touches' + | 'within' + | 'bboxIntersects2D' + | 'bboxIntersects3D' + | 'bboxOverlapsOrLeftOf' + | 'bboxOverlapsOrRightOf' + | 'bboxOverlapsOrBelow' + | 'bboxOverlapsOrAbove' + | 'bboxLeftOf' + | 'bboxRightOf' + | 'bboxBelow' + | 'bboxAbove' + | 'bboxContains' + | 'bboxEquals'; + +/** + * Filter on a single field + */ +export type FieldFilter = { + [K in FilterOperator]?: unknown; +}; + +/** + * Filter on related records + */ +export interface RelationalFilter { + /** All related records must match */ + every?: Filter; + /** At least one related record must match */ + some?: Filter; + /** No related records match */ + none?: Filter; +} + +/** + * Main filter type - can be nested + */ +export type Filter = { + [field: string]: FieldFilter | RelationalFilter | Filter; +} & { + and?: Filter[]; + or?: Filter[]; + not?: Filter; +}; diff --git a/graphql/codegen/src/types/schema.ts b/graphql/codegen/src/types/schema.ts new file mode 100644 index 000000000..f8a25dbe0 --- /dev/null +++ b/graphql/codegen/src/types/schema.ts @@ -0,0 +1,280 @@ +/** + * Core schema types for representing PostGraphile table metadata + * These are "clean" versions that remove nullable/undefined complexity + */ + +/** + * Represents a database table with its fields and relations + */ +export interface CleanTable { + name: string; + fields: CleanField[]; + relations: CleanRelations; + /** PostGraphile inflection rules for this table */ + inflection?: TableInflection; + /** Query operation names from _meta */ + query?: TableQueryNames; + /** Constraint information */ + constraints?: TableConstraints; +} + +/** + * PostGraphile-generated names for this table + */ +export interface TableInflection { + /** All rows connection query name (e.g., "users") */ + allRows: string; + /** Simple all rows query name */ + allRowsSimple: string; + /** Condition type name (e.g., "UserCondition") */ + conditionType: string; + /** Connection type name (e.g., "UsersConnection") */ + connection: string; + /** Create field name */ + createField: string; + /** Create input type (e.g., "CreateUserInput") */ + createInputType: string; + /** Create payload type */ + createPayloadType: string; + /** Delete by primary key mutation name */ + deleteByPrimaryKey: string | null; + /** Delete payload type */ + deletePayloadType: string; + /** Edge type name */ + edge: string; + /** Edge field name */ + edgeField: string; + /** Enum type name */ + enumType: string; + /** Filter type name (e.g., "UserFilter") */ + filterType: string | null; + /** Input type name (e.g., "UserInput") */ + inputType: string; + /** OrderBy enum type (e.g., "UsersOrderBy") */ + orderByType: string; + /** Patch field name */ + patchField: string; + /** Patch type (e.g., "UserPatch") */ + patchType: string | null; + /** Table field name (singular, e.g., "user") */ + tableFieldName: string; + /** Table type name (e.g., "User") */ + tableType: string; + /** Type name */ + typeName: string; + /** Update by primary key mutation name */ + updateByPrimaryKey: string | null; + /** Update payload type */ + updatePayloadType: string | null; +} + +/** + * Query operation names from _meta.query + */ +export interface TableQueryNames { + /** All rows query name */ + all: string; + /** Single row query name */ + one: string; + /** Create mutation name */ + create: string; + /** Update mutation name */ + update: string | null; + /** Delete mutation name */ + delete: string | null; +} + +/** + * Table constraints + */ +export interface TableConstraints { + primaryKey: ConstraintInfo[]; + foreignKey: ForeignKeyConstraint[]; + unique: ConstraintInfo[]; +} + +export interface ConstraintInfo { + name: string; + fields: CleanField[]; +} + +export interface ForeignKeyConstraint extends ConstraintInfo { + refTable: string; + refFields: CleanField[]; +} + +/** + * Represents a field/column in a table + */ +export interface CleanField { + name: string; + type: CleanFieldType; +} + +/** + * Field type information from PostGraphile introspection + */ +export interface CleanFieldType { + /** GraphQL type name (e.g., "String", "UUID", "Int") */ + gqlType: string; + /** Whether this is an array type */ + isArray: boolean; + /** Type modifier (for precision, length, etc.) */ + modifier?: string | number | null; + /** PostgreSQL type alias (domain name) */ + pgAlias?: string | null; + /** PostgreSQL native type (e.g., "text", "uuid", "integer") */ + pgType?: string | null; + /** Subtype for composite types */ + subtype?: string | null; + /** Type modifier from PostgreSQL */ + typmod?: number | null; +} + +/** + * All relation types for a table + */ +export interface CleanRelations { + belongsTo: CleanBelongsToRelation[]; + hasOne: CleanHasOneRelation[]; + hasMany: CleanHasManyRelation[]; + manyToMany: CleanManyToManyRelation[]; +} + +/** + * BelongsTo relation (foreign key on this table) + */ +export interface CleanBelongsToRelation { + fieldName: string | null; + isUnique: boolean; + referencesTable: string; + type: string | null; + keys: CleanField[]; +} + +/** + * HasOne relation (foreign key on other table, unique) + */ +export interface CleanHasOneRelation { + fieldName: string | null; + isUnique: boolean; + referencedByTable: string; + type: string | null; + keys: CleanField[]; +} + +/** + * HasMany relation (foreign key on other table, not unique) + */ +export interface CleanHasManyRelation { + fieldName: string | null; + isUnique: boolean; + referencedByTable: string; + type: string | null; + keys: CleanField[]; +} + +/** + * ManyToMany relation (through junction table) + */ +export interface CleanManyToManyRelation { + fieldName: string | null; + rightTable: string; + junctionTable: string; + type: string | null; +} + +// ============================================================================ +// Clean Operation Types (from GraphQL introspection) +// ============================================================================ + +/** + * Clean representation of a GraphQL operation (query or mutation) + * Derived from introspection data + */ +export interface CleanOperation { + /** Operation name (e.g., "login", "currentUser", "cars") */ + name: string; + /** Operation kind */ + kind: 'query' | 'mutation'; + /** Arguments/variables for the operation */ + args: CleanArgument[]; + /** Return type */ + returnType: CleanTypeRef; + /** Description from schema */ + description?: string; + /** Whether this is deprecated */ + isDeprecated?: boolean; + /** Deprecation reason */ + deprecationReason?: string; +} + +/** + * Clean representation of an operation argument + */ +export interface CleanArgument { + /** Argument name */ + name: string; + /** Argument type */ + type: CleanTypeRef; + /** Default value (as string) */ + defaultValue?: string; + /** Description from schema */ + description?: string; +} + +/** + * Clean type reference - simplified from introspection TypeRef + */ +export interface CleanTypeRef { + /** Type kind */ + kind: 'SCALAR' | 'OBJECT' | 'INPUT_OBJECT' | 'ENUM' | 'LIST' | 'NON_NULL'; + /** Type name (null for LIST and NON_NULL wrappers) */ + name: string | null; + /** Inner type for LIST and NON_NULL wrappers */ + ofType?: CleanTypeRef; + /** Resolved TypeScript type string */ + tsType?: string; + /** Fields for OBJECT types */ + fields?: CleanObjectField[]; + /** Input fields for INPUT_OBJECT types */ + inputFields?: CleanArgument[]; + /** Values for ENUM types */ + enumValues?: string[]; +} + +/** + * Field on an object type + */ +export interface CleanObjectField { + /** Field name */ + name: string; + /** Field type */ + type: CleanTypeRef; + /** Description */ + description?: string; +} + +// ============================================================================ +// Type Registry +// ============================================================================ + +/** + * Registry of all types in the schema for resolution + */ +export type TypeRegistry = Map; + +/** + * Resolved type with all details populated + */ +export interface ResolvedType { + kind: 'SCALAR' | 'OBJECT' | 'INPUT_OBJECT' | 'ENUM' | 'INTERFACE' | 'UNION'; + name: string; + description?: string; + /** Fields for OBJECT types */ + fields?: CleanObjectField[]; + /** Input fields for INPUT_OBJECT types */ + inputFields?: CleanArgument[]; + /** Values for ENUM types */ + enumValues?: string[]; +} diff --git a/graphql/codegen/src/types/selection.ts b/graphql/codegen/src/types/selection.ts new file mode 100644 index 000000000..2544050f7 --- /dev/null +++ b/graphql/codegen/src/types/selection.ts @@ -0,0 +1,49 @@ +/** + * Field selection types for controlling which fields are included in queries + */ + +/** + * Simple field selection options + */ +export interface SimpleFieldSelection { + /** Specific fields to include */ + select?: string[]; + /** Relations to include with their fields */ + include?: Record; + /** Simple relation inclusion (just names) */ + includeRelations?: string[]; + /** Fields to exclude */ + exclude?: string[]; + /** Maximum depth for nested relations */ + maxDepth?: number; +} + +/** + * Predefined field selection presets + */ +export type FieldSelectionPreset = + /** Just id and primary display field */ + | 'minimal' + /** Common display fields */ + | 'display' + /** All scalar fields */ + | 'all' + /** All fields including relations */ + | 'full'; + +/** + * Main field selection type - preset or custom + */ +export type FieldSelection = FieldSelectionPreset | SimpleFieldSelection; + +/** + * Internal selection options format used by query builder + */ +export interface SelectionOptions { + [fieldName: string]: + | boolean + | { + select: Record; + variables?: Record; + }; +} diff --git a/graphql/codegen/src/utils/index.ts b/graphql/codegen/src/utils/index.ts new file mode 100644 index 000000000..80cf02d19 --- /dev/null +++ b/graphql/codegen/src/utils/index.ts @@ -0,0 +1,5 @@ +/** + * Utility exports + */ + +export const UTILS_VERSION = '0.1.0'; diff --git a/graphql/codegen/test-utils/generate-from-introspection.ts b/graphql/codegen/test-utils/generate-from-introspection.ts deleted file mode 100644 index f10fcdf5a..000000000 --- a/graphql/codegen/test-utils/generate-from-introspection.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { print } from 'graphql'; -import { IntrospectionQueryResult, parseGraphQuery } from 'introspectron'; - -import { generate, GqlMap } from '../src/gql'; - -export function generateKeyedObjFromGqlMap(gqlMap: GqlMap, selection?: { defaultMutationModelFields?: string[]; modelFields?: Record }): Record { - const gen = generate(gqlMap, selection as any); - - return Object.entries(gen).reduce>((acc, [key, val]) => { - if (val?.ast) { - acc[key] = print(val.ast); - } - return acc; - }, {}); -} - -export function generateKeyedObjFromIntrospection(introspection: IntrospectionQueryResult, selection?: { defaultMutationModelFields?: string[]; modelFields?: Record }): Record { - const { queries, mutations } = parseGraphQuery(introspection); - const gqlMap: GqlMap = { ...queries, ...mutations }; - return generateKeyedObjFromGqlMap(gqlMap, selection); -} diff --git a/graphql/codegen/tsconfig.esm.json b/graphql/codegen/tsconfig.esm.json deleted file mode 100644 index 800d7506d..000000000 --- a/graphql/codegen/tsconfig.esm.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "dist/esm", - "module": "es2022", - "rootDir": "src/", - "declaration": false - } -} diff --git a/graphql/codegen/tsconfig.json b/graphql/codegen/tsconfig.json index f8634d5b2..a31e60c7d 100644 --- a/graphql/codegen/tsconfig.json +++ b/graphql/codegen/tsconfig.json @@ -1,10 +1,31 @@ { - "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "dist", - "rootDir": "src/", - "typeRoots": ["../../types", "../../node_modules/@types", "./node_modules/@types"] + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "bundler", + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "outDir": "./dist", + "rootDir": "./src", + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + }, + "resolveJsonModule": true, + "allowSyntheticDefaultImports": true, + "noEmit": true, + "jsx": "react-jsx", + "isolatedModules": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true }, - "include": ["src/**/*.ts"], - "exclude": ["dist", "node_modules", "**/*.spec.*", "**/*.test.*"] + "include": ["src/**/*"], + "exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.test.tsx"] } diff --git a/graphql/codegen/tsup.config.ts b/graphql/codegen/tsup.config.ts new file mode 100644 index 000000000..e999f5d7a --- /dev/null +++ b/graphql/codegen/tsup.config.ts @@ -0,0 +1,38 @@ +import { defineConfig } from 'tsup'; + +export default defineConfig([ + // Main entry point (core + types + generators + client) + { + entry: ['src/index.ts'], + format: ['esm', 'cjs'], + dts: true, + sourcemap: true, + clean: true, + external: ['react', '@tanstack/react-query'], + treeshake: true, + splitting: false, + }, + // React entry point (hooks, context) + { + entry: ['src/react/index.ts'], + format: ['esm', 'cjs'], + dts: true, + sourcemap: true, + outDir: 'dist/react', + external: ['react', '@tanstack/react-query'], + treeshake: true, + splitting: false, + }, + // CLI entry point (separate build, no React deps) + { + entry: { 'bin/graphql-codegen': 'src/cli/index.ts' }, + format: ['cjs'], + dts: false, + sourcemap: true, + outDir: 'dist', + external: ['react', '@tanstack/react-query'], + banner: { + js: '#!/usr/bin/env node', + }, + }, +]); diff --git a/graphql/query/__fixtures__/api/introspection.json b/graphql/query/__fixtures__/api/introspection.json index 5335b5cb5..74c3bd5f4 100644 --- a/graphql/query/__fixtures__/api/introspection.json +++ b/graphql/query/__fixtures__/api/introspection.json @@ -1,22462 +1,21845 @@ { - "actionGoals": { - "qtype": "getMany", - "model": "ActionGoal", - "selection": [ - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "goalId", - "owner", - "action", - "goal" - ] - }, - "actionItemTypes": { - "qtype": "getMany", - "model": "ActionItemType", - "selection": [ - "id", - "name", - "description", - "image", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - { - "name": "actionItemsByItemTypeId", - "qtype": "getMany", - "model": "ActionItem", - "selection": [ - "id", - "name", - "description", - "type", - "itemOrder", - "timeRequired", - "isRequired", - "notificationText", - "embedCode", - "url", - "media", - "location", - "locationRadius", - "rewardWeight", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "itemTypeId", - "ownerId", - "actionId", - "itemType", - "owner", - "action" - ] - } - ] - }, - "actionItems": { - "qtype": "getMany", - "model": "ActionItem", - "selection": [ - "id", - "name", - "description", - "type", - "itemOrder", - "timeRequired", - "isRequired", - "notificationText", - "embedCode", - "url", - "media", - "location", - "locationRadius", - "rewardWeight", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "itemTypeId", - "ownerId", - "actionId", - "itemType", - "owner", - "action", - { - "name": "userActionItems", - "qtype": "getMany", - "model": "UserActionItem", - "selection": [ - "id", - "userId", - "text", - "media", - "location", - "bbox", - "data", - "complete", - "verified", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "user", - "owner", - "action", - "userAction", - "actionItem" - ] - }, - { - "name": "userActionItemVerifications", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - } - ] - }, - "actionVariations": { - "qtype": "getMany", - "model": "ActionVariation", - "selection": [ - "id", - "photo", - "title", - "description", - "income", - "gender", - "dob", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "owner", - "action" - ] - }, - "actions": { - "qtype": "getMany", - "model": "Action", - "selection": [ - "id", - "slug", - "photo", - "shareImage", - "title", - "titleObjectTemplate", - "url", - "description", - "discoveryHeader", - "discoveryDescription", - "notificationText", - "notificationObjectTemplate", - "enableNotifications", - "enableNotificationsText", - "search", - "location", - "locationRadius", - "timeRequired", - "startDate", - "endDate", - "approved", - "published", - "isPrivate", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "alreadyCompletedActionText", - "selfVerifiable", - "isRecurring", - "recurringInterval", - "oncePerObject", - "minimumGroupMembers", - "limitedToLocation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "ownerId", - "objectTypeId", - "rewardId", - "verifyRewardId", - "group", - "owner", - "objectType", - "reward", - "verifyReward", - { - "name": "actionGoals", - "qtype": "getMany", - "model": "ActionGoal", - "selection": [ - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "goalId", - "owner", - "action", - "goal" - ] - }, - { - "name": "actionVariations", - "qtype": "getMany", - "model": "ActionVariation", - "selection": [ - "id", - "photo", - "title", - "description", - "income", - "gender", - "dob", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "owner", - "action" - ] - }, - { - "name": "actionItems", - "qtype": "getMany", - "model": "ActionItem", - "selection": [ - "id", - "name", - "description", - "type", - "itemOrder", - "timeRequired", - "isRequired", - "notificationText", - "embedCode", - "url", - "media", - "location", - "locationRadius", - "rewardWeight", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "itemTypeId", - "ownerId", - "actionId", - "itemType", - "owner", - "action" - ] - }, - { - "name": "requiredActions", - "qtype": "getMany", - "model": "RequiredAction", - "selection": [ - "id", - "actionOrder", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "requiredId", - "action", - "owner", - "required" - ] - }, - { - "name": "requiredActionsByRequiredId", - "qtype": "getMany", - "model": "RequiredAction", - "selection": [ - "id", - "actionOrder", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "requiredId", - "action", - "owner", - "required" - ] - }, - { - "name": "userActions", - "qtype": "getMany", - "model": "UserAction", - "selection": [ - "id", - "userId", - "actionStarted", - "complete", - "verified", - "verifiedDate", - "userRating", - "rejected", - "location", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "objectId", - "user", - "owner", - "action", - "object" - ] - }, - { - "name": "userActionVerifications", - "qtype": "getMany", - "model": "UserActionVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "user", - "owner", - "action", - "userAction" - ] - }, - { - "name": "userActionItems", - "qtype": "getMany", - "model": "UserActionItem", - "selection": [ - "id", - "userId", - "text", - "media", - "location", - "bbox", - "data", - "complete", - "verified", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "user", - "owner", - "action", - "userAction", - "actionItem" - ] - }, - { - "name": "userActionItemVerifications", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - }, - { - "name": "trackActions", - "qtype": "getMany", - "model": "TrackAction", - "selection": [ - "id", - "trackOrder", - "isRequired", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "trackId", - "action", - "owner", - "track" - ] - }, - { - "name": "userPassActions", - "qtype": "getMany", - "model": "UserPassAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userSavedActions", - "qtype": "getMany", - "model": "UserSavedAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userViewedActions", - "qtype": "getMany", - "model": "UserViewedAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userActionReactions", - "qtype": "getMany", - "model": "UserActionReaction", - "selection": [ - "id", - "reacterId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userActionId", - "userId", - "actionId", - "reacter", - "userAction", - "user", - "action" - ] - }, - "searchRank", - { - "name": "goals", - "qtype": "getMany", - "model": "Goal", - "selection": [ - "id", - "name", - "slug", - "shortName", - "icon", - "subHead", - "tags", - "search", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "searchRank" - ] - } - ] - }, - "connectedAccounts": { - "qtype": "getMany", - "model": "ConnectedAccount", - "selection": [ - "id", - "ownerId", - "service", - "identifier", - "details", - "isVerified", - "owner" - ] - }, - "cryptoAddresses": { - "qtype": "getMany", - "model": "CryptoAddress", - "selection": [ - "id", - "ownerId", - "address", - "isVerified", - "isPrimary", - "owner" - ] - }, - "emails": { - "qtype": "getMany", - "model": "Email", - "selection": [ - "id", - "ownerId", - "email", - "isVerified", - "isPrimary", - "owner" - ] - }, - "goalExplanations": { - "qtype": "getMany", - "model": "GoalExplanation", - "selection": [ - "id", - "audio", - "audioDuration", - "explanationTitle", - "explanation", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "goalId", - "goal" - ] - }, - "goals": { - "qtype": "getMany", - "model": "Goal", - "selection": [ - "id", - "name", - "slug", - "shortName", - "icon", - "subHead", - "tags", - "search", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - { - "name": "goalExplanations", - "qtype": "getMany", - "model": "GoalExplanation", - "selection": [ - "id", - "audio", - "audioDuration", - "explanationTitle", - "explanation", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "goalId", - "goal" - ] - }, - { - "name": "actionGoals", - "qtype": "getMany", - "model": "ActionGoal", - "selection": [ - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "goalId", - "owner", - "action", - "goal" - ] - }, - "searchRank", - { - "name": "actions", - "qtype": "getMany", - "model": "Action", - "selection": [ - "id", - "slug", - "photo", - "shareImage", - "title", - "titleObjectTemplate", - "url", - "description", - "discoveryHeader", - "discoveryDescription", - "notificationText", - "notificationObjectTemplate", - "enableNotifications", - "enableNotificationsText", - "search", - "location", - "locationRadius", - "timeRequired", - "startDate", - "endDate", - "approved", - "published", - "isPrivate", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "alreadyCompletedActionText", - "selfVerifiable", - "isRecurring", - "recurringInterval", - "oncePerObject", - "minimumGroupMembers", - "limitedToLocation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "ownerId", - "objectTypeId", - "rewardId", - "verifyRewardId", - "group", - "owner", - "objectType", - "reward", - "verifyReward", - "searchRank" - ] - } - ] - }, - "groupPostComments": { - "qtype": "getMany", - "model": "GroupPostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "postId", - "posterId", - "commenter", - "parent", - "group", - "post", - "poster", - { - "name": "groupPostCommentsByParentId", - "qtype": "getMany", - "model": "GroupPostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "postId", - "posterId", - "commenter", - "parent", - "group", - "post", - "poster" - ] - } - ] - }, - "groupPostReactions": { - "qtype": "getMany", - "model": "GroupPostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "posterId", - "postId", - "reacter", - "group", - "poster", - "post" - ] - }, - "groupPosts": { - "qtype": "getMany", - "model": "GroupPost", - "selection": [ - "id", - "posterId", - "type", - "flagged", - "image", - "url", - "location", - "data", - "taggedUserIds", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "poster", - "group", - { - "name": "groupPostReactionsByPostId", - "qtype": "getMany", - "model": "GroupPostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "posterId", - "postId", - "reacter", - "group", - "poster", - "post" - ] - }, - { - "name": "groupPostCommentsByPostId", - "qtype": "getMany", - "model": "GroupPostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "postId", - "posterId", - "commenter", - "parent", - "group", - "post", - "poster" - ] - } - ] - }, - "groups": { - "qtype": "getMany", - "model": "Group", - "selection": [ - "id", - "name", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner", - { - "name": "actions", - "qtype": "getMany", - "model": "Action", - "selection": [ - "id", - "slug", - "photo", - "shareImage", - "title", - "titleObjectTemplate", - "url", - "description", - "discoveryHeader", - "discoveryDescription", - "notificationText", - "notificationObjectTemplate", - "enableNotifications", - "enableNotificationsText", - "search", - "location", - "locationRadius", - "timeRequired", - "startDate", - "endDate", - "approved", - "published", - "isPrivate", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "alreadyCompletedActionText", - "selfVerifiable", - "isRecurring", - "recurringInterval", - "oncePerObject", - "minimumGroupMembers", - "limitedToLocation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "ownerId", - "objectTypeId", - "rewardId", - "verifyRewardId", - "group", - "owner", - "objectType", - "reward", - "verifyReward", - "searchRank" - ] - }, - { - "name": "groupPosts", - "qtype": "getMany", - "model": "GroupPost", - "selection": [ - "id", - "posterId", - "type", - "flagged", - "image", - "url", - "location", - "data", - "taggedUserIds", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "poster", - "group" - ] - }, - { - "name": "groupPostReactions", - "qtype": "getMany", - "model": "GroupPostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "posterId", - "postId", - "reacter", - "group", - "poster", - "post" - ] - }, - { - "name": "groupPostComments", - "qtype": "getMany", - "model": "GroupPostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "postId", - "posterId", - "commenter", - "parent", - "group", - "post", - "poster" - ] - }, - { - "name": "rewardLimitsByActionGroupIdAndRewardId", - "qtype": "getMany", - "model": "RewardLimit", - "selection": [ - "id", - "rewardAmount", - "rewardUnit", - "totalRewardLimit", - "weeklyLimit", - "dailyLimit", - "totalLimit", - "userTotalLimit", - "userWeeklyLimit", - "userDailyLimit", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - }, - { - "name": "rewardLimitsByActionGroupIdAndVerifyRewardId", - "qtype": "getMany", - "model": "RewardLimit", - "selection": [ - "id", - "rewardAmount", - "rewardUnit", - "totalRewardLimit", - "weeklyLimit", - "dailyLimit", - "totalLimit", - "userTotalLimit", - "userWeeklyLimit", - "userDailyLimit", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - } - ] - }, - "locationTypes": { - "qtype": "getMany", - "model": "LocationType", - "selection": [ - "id", - "name", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - { - "name": "locationsByLocationType", - "qtype": "getMany", - "model": "Location", - "selection": [ - "id", - "name", - "location", - "bbox", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "locationType", - "owner", - "locationTypeByLocationType" - ] - } - ] - }, - "locations": { - "qtype": "getMany", - "model": "Location", - "selection": [ - "id", - "name", - "location", - "bbox", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "locationType", - "owner", - "locationTypeByLocationType" - ] - }, - "messageGroups": { - "qtype": "getMany", - "model": "MessageGroup", - "selection": [ - "id", - "name", - "memberIds", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - { - "name": "messagesByGroupId", - "qtype": "getMany", - "model": "Message", - "selection": [ - "id", - "senderId", - "type", - "content", - "upload", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "sender", - "group" - ] - } - ] - }, - "messages": { - "qtype": "getMany", - "model": "Message", - "selection": [ - "id", - "senderId", - "type", - "content", - "upload", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "sender", - "group" - ] - }, - "newsArticles": { - "qtype": "getMany", - "model": "NewsArticle", - "selection": [ - "id", - "name", - "description", - "link", - "publishedAt", - "photo", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt" - ] - }, - "notificationPreferences": { - "qtype": "getMany", - "model": "NotificationPreference", - "selection": [ - "id", - "userId", - "emails", - "sms", - "notifications", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - "notifications": { - "qtype": "getMany", - "model": "Notification", - "selection": [ - "id", - "actorId", - "recipientId", - "notificationType", - "notificationText", - "entityType", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actor", - "recipient" - ] - }, - "objectAttributes": { - "qtype": "getMany", - "model": "ObjectAttribute", - "selection": [ - "id", - "description", - "location", - "text", - "numeric", - "image", - "data", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "valueId", - "objectId", - "objectTypeAttributeId", - "owner", - "value", - "object", - "objectTypeAttribute" - ] - }, - "objectTypeAttributes": { - "qtype": "getMany", - "model": "ObjectTypeAttribute", - "selection": [ - "id", - "name", - "label", - "type", - "unit", - "description", - "min", - "max", - "pattern", - "isRequired", - "attrOrder", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "objectTypeId", - "objectType", - { - "name": "objectTypeValuesByAttrId", - "qtype": "getMany", - "model": "ObjectTypeValue", - "selection": [ - "id", - "name", - "description", - "photo", - "icon", - "type", - "location", - "text", - "numeric", - "image", - "data", - "valueOrder", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "attrId", - "attr" - ] - }, - { - "name": "objectAttributes", - "qtype": "getMany", - "model": "ObjectAttribute", - "selection": [ - "id", - "description", - "location", - "text", - "numeric", - "image", - "data", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "valueId", - "objectId", - "objectTypeAttributeId", - "owner", - "value", - "object", - "objectTypeAttribute" - ] - } - ] - }, - "objectTypeValues": { - "qtype": "getMany", - "model": "ObjectTypeValue", - "selection": [ - "id", - "name", - "description", - "photo", - "icon", - "type", - "location", - "text", - "numeric", - "image", - "data", - "valueOrder", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "attrId", - "attr", - { - "name": "objectAttributesByValueId", - "qtype": "getMany", - "model": "ObjectAttribute", - "selection": [ - "id", - "description", - "location", - "text", - "numeric", - "image", - "data", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "valueId", - "objectId", - "objectTypeAttributeId", - "owner", - "value", - "object", - "objectTypeAttribute" - ] - } - ] - }, - "objectTypes": { - "qtype": "getMany", - "model": "ObjectType", - "selection": [ - "id", - "name", - "description", - "photo", - "icon", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - { - "name": "actions", - "qtype": "getMany", - "model": "Action", - "selection": [ - "id", - "slug", - "photo", - "shareImage", - "title", - "titleObjectTemplate", - "url", - "description", - "discoveryHeader", - "discoveryDescription", - "notificationText", - "notificationObjectTemplate", - "enableNotifications", - "enableNotificationsText", - "search", - "location", - "locationRadius", - "timeRequired", - "startDate", - "endDate", - "approved", - "published", - "isPrivate", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "alreadyCompletedActionText", - "selfVerifiable", - "isRecurring", - "recurringInterval", - "oncePerObject", - "minimumGroupMembers", - "limitedToLocation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "ownerId", - "objectTypeId", - "rewardId", - "verifyRewardId", - "group", - "owner", - "objectType", - "reward", - "verifyReward", - "searchRank" - ] - }, - { - "name": "tracks", - "qtype": "getMany", - "model": "Track", - "selection": [ - "id", - "name", - "description", - "photo", - "icon", - "isPublished", - "isApproved", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "objectTypeId", - "owner", - "objectType" - ] - }, - { - "name": "objectsByTypeId", - "qtype": "getMany", - "model": "Object", - "selection": [ - "id", - "name", - "description", - "photo", - "media", - "location", - "bbox", - "data", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "typeId", - "owner", - "type" - ] - }, - { - "name": "objectTypeAttributes", - "qtype": "getMany", - "model": "ObjectTypeAttribute", - "selection": [ - "id", - "name", - "label", - "type", - "unit", - "description", - "min", - "max", - "pattern", - "isRequired", - "attrOrder", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "objectTypeId", - "objectType" - ] - } - ] - }, - "objects": { - "qtype": "getMany", - "model": "Object", - "selection": [ - "id", - "name", - "description", - "photo", - "media", - "location", - "bbox", - "data", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "typeId", - "owner", - "type", - { - "name": "userActions", - "qtype": "getMany", - "model": "UserAction", - "selection": [ - "id", - "userId", - "actionStarted", - "complete", - "verified", - "verifiedDate", - "userRating", - "rejected", - "location", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "objectId", - "user", - "owner", - "action", - "object" - ] - }, - { - "name": "objectAttributes", - "qtype": "getMany", - "model": "ObjectAttribute", - "selection": [ - "id", - "description", - "location", - "text", - "numeric", - "image", - "data", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "valueId", - "objectId", - "objectTypeAttributeId", - "owner", - "value", - "object", - "objectTypeAttribute" - ] - } - ] - }, - "organizationProfiles": { - "qtype": "getMany", - "model": "OrganizationProfile", - "selection": [ - "id", - "name", - "headerImage", - "profilePicture", - "description", - "website", - "reputation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "organizationId", - "organization" - ] - }, - "phoneNumbers": { - "qtype": "getMany", - "model": "PhoneNumber", - "selection": [ - "id", - "ownerId", - "cc", - "number", - "isVerified", - "isPrimary", - "owner" - ] - }, - "postComments": { - "qtype": "getMany", - "model": "PostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "commenter", - "parent", - "post", - "poster", - { - "name": "postCommentsByParentId", - "qtype": "getMany", - "model": "PostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "commenter", - "parent", - "post", - "poster" - ] - } - ] - }, - "postReactions": { - "qtype": "getMany", - "model": "PostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "reacter", - "post", - "poster" - ] - }, - "posts": { - "qtype": "getMany", - "model": "Post", - "selection": [ - "id", - "posterId", - "type", - "flagged", - "image", - "url", - "location", - "data", - "taggedUserIds", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "poster", - { - "name": "postReactions", - "qtype": "getMany", - "model": "PostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "reacter", - "post", - "poster" - ] - }, - { - "name": "postComments", - "qtype": "getMany", - "model": "PostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "commenter", - "parent", - "post", - "poster" - ] - } - ] - }, - "requiredActions": { - "qtype": "getMany", - "model": "RequiredAction", - "selection": [ - "id", - "actionOrder", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "requiredId", - "action", - "owner", - "required" - ] - }, - "rewardLimits": { - "qtype": "getMany", - "model": "RewardLimit", - "selection": [ - "id", - "rewardAmount", - "rewardUnit", - "totalRewardLimit", - "weeklyLimit", - "dailyLimit", - "totalLimit", - "userTotalLimit", - "userWeeklyLimit", - "userDailyLimit", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner", - { - "name": "actionsByRewardId", - "qtype": "getMany", - "model": "Action", - "selection": [ - "id", - "slug", - "photo", - "shareImage", - "title", - "titleObjectTemplate", - "url", - "description", - "discoveryHeader", - "discoveryDescription", - "notificationText", - "notificationObjectTemplate", - "enableNotifications", - "enableNotificationsText", - "search", - "location", - "locationRadius", - "timeRequired", - "startDate", - "endDate", - "approved", - "published", - "isPrivate", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "alreadyCompletedActionText", - "selfVerifiable", - "isRecurring", - "recurringInterval", - "oncePerObject", - "minimumGroupMembers", - "limitedToLocation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "ownerId", - "objectTypeId", - "rewardId", - "verifyRewardId", - "group", - "owner", - "objectType", - "reward", - "verifyReward", - "searchRank" - ] - }, - { - "name": "actionsByVerifyRewardId", - "qtype": "getMany", - "model": "Action", - "selection": [ - "id", - "slug", - "photo", - "shareImage", - "title", - "titleObjectTemplate", - "url", - "description", - "discoveryHeader", - "discoveryDescription", - "notificationText", - "notificationObjectTemplate", - "enableNotifications", - "enableNotificationsText", - "search", - "location", - "locationRadius", - "timeRequired", - "startDate", - "endDate", - "approved", - "published", - "isPrivate", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "alreadyCompletedActionText", - "selfVerifiable", - "isRecurring", - "recurringInterval", - "oncePerObject", - "minimumGroupMembers", - "limitedToLocation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "ownerId", - "objectTypeId", - "rewardId", - "verifyRewardId", - "group", - "owner", - "objectType", - "reward", - "verifyReward", - "searchRank" - ] - }, - { - "name": "groupsByActionRewardIdAndGroupId", - "qtype": "getMany", - "model": "Group", - "selection": [ - "id", - "name", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - }, - { - "name": "rewardLimitsByActionRewardIdAndVerifyRewardId", - "qtype": "getMany", - "model": "RewardLimit", - "selection": [ - "id", - "rewardAmount", - "rewardUnit", - "totalRewardLimit", - "weeklyLimit", - "dailyLimit", - "totalLimit", - "userTotalLimit", - "userWeeklyLimit", - "userDailyLimit", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - }, - { - "name": "groupsByActionVerifyRewardIdAndGroupId", - "qtype": "getMany", - "model": "Group", - "selection": [ - "id", - "name", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - }, - { - "name": "rewardLimitsByActionVerifyRewardIdAndRewardId", - "qtype": "getMany", - "model": "RewardLimit", - "selection": [ - "id", - "rewardAmount", - "rewardUnit", - "totalRewardLimit", - "weeklyLimit", - "dailyLimit", - "totalLimit", - "userTotalLimit", - "userWeeklyLimit", - "userDailyLimit", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - } - ] - }, - "roleTypes": { - "qtype": "getMany", - "model": "RoleType", - "selection": [ - "id", - "name", - { - "name": "usersByType", - "qtype": "getMany", - "model": "User", - "selection": [ - "id", - "username", - "displayName", - "profilePicture", - "searchTsv", - "type", - "roleTypeByType", - "userProfile", - "userSetting", - "userCharacteristic", - "organizationProfileByOrganizationId", - "searchTsvRank" - ] - } - ] - }, - "trackActions": { - "qtype": "getMany", - "model": "TrackAction", - "selection": [ - "id", - "trackOrder", - "isRequired", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "trackId", - "action", - "owner", - "track" - ] - }, - "tracks": { - "qtype": "getMany", - "model": "Track", - "selection": [ - "id", - "name", - "description", - "photo", - "icon", - "isPublished", - "isApproved", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "objectTypeId", - "owner", - "objectType", - { - "name": "trackActions", - "qtype": "getMany", - "model": "TrackAction", - "selection": [ - "id", - "trackOrder", - "isRequired", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "trackId", - "action", - "owner", - "track" - ] - } - ] - }, - "userActionItemVerifications": { - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - }, - "userActionItems": { - "qtype": "getMany", - "model": "UserActionItem", - "selection": [ - "id", - "userId", - "text", - "media", - "location", - "bbox", - "data", - "complete", - "verified", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "user", - "owner", - "action", - "userAction", - "actionItem", - { - "name": "userActionItemVerifications", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - } - ] - }, - "userActionReactions": { - "qtype": "getMany", - "model": "UserActionReaction", - "selection": [ - "id", - "reacterId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userActionId", - "userId", - "actionId", - "reacter", - "userAction", - "user", - "action" - ] - }, - "userActionVerifications": { - "qtype": "getMany", - "model": "UserActionVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "user", - "owner", - "action", - "userAction" - ] - }, - "userActions": { - "qtype": "getMany", - "model": "UserAction", - "selection": [ - "id", - "userId", - "actionStarted", - "complete", - "verified", - "verifiedDate", - "userRating", - "rejected", - "location", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "objectId", - "user", - "owner", - "action", - "object", - { - "name": "userActionVerifications", - "qtype": "getMany", - "model": "UserActionVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "user", - "owner", - "action", - "userAction" - ] - }, - { - "name": "userActionItems", - "qtype": "getMany", - "model": "UserActionItem", - "selection": [ - "id", - "userId", - "text", - "media", - "location", - "bbox", - "data", - "complete", - "verified", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "user", - "owner", - "action", - "userAction", - "actionItem" - ] - }, - { - "name": "userActionItemVerifications", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - }, - { - "name": "userActionReactions", - "qtype": "getMany", - "model": "UserActionReaction", - "selection": [ - "id", - "reacterId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userActionId", - "userId", - "actionId", - "reacter", - "userAction", - "user", - "action" - ] - } - ] - }, - "userAnswers": { - "qtype": "getMany", - "model": "UserAnswer", - "selection": [ - "id", - "userId", - "location", - "text", - "numeric", - "image", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "questionId", - "ownerId", - "user", - "question", - "owner" - ] - }, - "userCharacteristics": { - "qtype": "getMany", - "model": "UserCharacteristic", - "selection": [ - "id", - "userId", - "income", - "gender", - "race", - "age", - "dob", - "education", - "homeOwnership", - "treeHuggerLevel", - "diyLevel", - "gardenerLevel", - "freeTime", - "researchToDoer", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - "userConnections": { - "qtype": "getMany", - "model": "UserConnection", - "selection": [ - "id", - "accepted", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "requesterId", - "responderId", - "requester", - "responder" - ] - }, - "userContacts": { - "qtype": "getMany", - "model": "UserContact", - "selection": [ - "id", - "userId", - "vcf", - "fullName", - "emails", - "device", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - "userDevices": { - "qtype": "getMany", - "model": "UserDevice", - "selection": [ - "id", - "type", - "deviceId", - "pushToken", - "pushTokenRequested", - "data", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - "userLocations": { - "qtype": "getMany", - "model": "UserLocation", - "selection": [ - "id", - "userId", - "name", - "kind", - "description", - "location", - "bbox", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - "userMessages": { - "qtype": "getMany", - "model": "UserMessage", - "selection": [ - "id", - "senderId", - "type", - "content", - "upload", - "received", - "receiverRead", - "senderReaction", - "receiverReaction", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "receiverId", - "sender", - "receiver" - ] - }, - "userPassActions": { - "qtype": "getMany", - "model": "UserPassAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - "userProfiles": { - "qtype": "getMany", - "model": "UserProfile", - "selection": [ - "id", - "userId", - "profilePicture", - "bio", - "reputation", - "displayName", - "tags", - "desired", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - "userQuestions": { - "qtype": "getMany", - "model": "UserQuestion", - "selection": [ - "id", - "questionType", - "questionPrompt", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner", - { - "name": "userAnswersByQuestionId", - "qtype": "getMany", - "model": "UserAnswer", - "selection": [ - "id", - "userId", - "location", - "text", - "numeric", - "image", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "questionId", - "ownerId", - "user", - "question", - "owner" - ] - } - ] - }, - "userSavedActions": { - "qtype": "getMany", - "model": "UserSavedAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - "userSettings": { - "qtype": "getMany", - "model": "UserSetting", - "selection": [ - "id", - "userId", - "firstName", - "lastName", - "searchRadius", - "zip", - "location", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - "userViewedActions": { - "qtype": "getMany", - "model": "UserViewedAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - "users": { - "qtype": "getMany", - "model": "User", - "selection": [ - "id", - "username", - "displayName", - "profilePicture", - "searchTsv", - "type", - "roleTypeByType", - { - "name": "groupsByOwnerId", - "qtype": "getMany", - "model": "Group", - "selection": [ - "id", - "name", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - }, - { - "name": "connectedAccountsByOwnerId", - "qtype": "getMany", - "model": "ConnectedAccount", - "selection": [ - "id", - "ownerId", - "service", - "identifier", - "details", - "isVerified", - "owner" - ] - }, - { - "name": "emailsByOwnerId", - "qtype": "getMany", - "model": "Email", - "selection": [ - "id", - "ownerId", - "email", - "isVerified", - "isPrimary", - "owner" - ] - }, - { - "name": "phoneNumbersByOwnerId", - "qtype": "getMany", - "model": "PhoneNumber", - "selection": [ - "id", - "ownerId", - "cc", - "number", - "isVerified", - "isPrimary", - "owner" - ] - }, - { - "name": "cryptoAddressesByOwnerId", - "qtype": "getMany", - "model": "CryptoAddress", - "selection": [ - "id", - "ownerId", - "address", - "isVerified", - "isPrimary", - "owner" - ] - }, - { - "name": "authAccountsByOwnerId", - "qtype": "getMany", - "model": "AuthAccount", - "selection": [ - "id", - "ownerId", - "service", - "identifier", - "details", - "isVerified", - "owner" - ] - }, - "userProfile", - "userSetting", - "userCharacteristic", - { - "name": "userContacts", - "qtype": "getMany", - "model": "UserContact", - "selection": [ - "id", - "userId", - "vcf", - "fullName", - "emails", - "device", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - { - "name": "userConnectionsByRequesterId", - "qtype": "getMany", - "model": "UserConnection", - "selection": [ - "id", - "accepted", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "requesterId", - "responderId", - "requester", - "responder" - ] - }, - { - "name": "userConnectionsByResponderId", - "qtype": "getMany", - "model": "UserConnection", - "selection": [ - "id", - "accepted", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "requesterId", - "responderId", - "requester", - "responder" - ] - }, - { - "name": "locationsByOwnerId", - "qtype": "getMany", - "model": "Location", - "selection": [ - "id", - "name", - "location", - "bbox", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "locationType", - "owner", - "locationTypeByLocationType" - ] - }, - { - "name": "userLocations", - "qtype": "getMany", - "model": "UserLocation", - "selection": [ - "id", - "userId", - "name", - "kind", - "description", - "location", - "bbox", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - { - "name": "actionsByOwnerId", - "qtype": "getMany", - "model": "Action", - "selection": [ - "id", - "slug", - "photo", - "shareImage", - "title", - "titleObjectTemplate", - "url", - "description", - "discoveryHeader", - "discoveryDescription", - "notificationText", - "notificationObjectTemplate", - "enableNotifications", - "enableNotificationsText", - "search", - "location", - "locationRadius", - "timeRequired", - "startDate", - "endDate", - "approved", - "published", - "isPrivate", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "alreadyCompletedActionText", - "selfVerifiable", - "isRecurring", - "recurringInterval", - "oncePerObject", - "minimumGroupMembers", - "limitedToLocation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "ownerId", - "objectTypeId", - "rewardId", - "verifyRewardId", - "group", - "owner", - "objectType", - "reward", - "verifyReward", - "searchRank" - ] - }, - { - "name": "actionGoalsByOwnerId", - "qtype": "getMany", - "model": "ActionGoal", - "selection": [ - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "goalId", - "owner", - "action", - "goal" - ] - }, - { - "name": "actionVariationsByOwnerId", - "qtype": "getMany", - "model": "ActionVariation", - "selection": [ - "id", - "photo", - "title", - "description", - "income", - "gender", - "dob", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "owner", - "action" - ] - }, - { - "name": "actionItemsByOwnerId", - "qtype": "getMany", - "model": "ActionItem", - "selection": [ - "id", - "name", - "description", - "type", - "itemOrder", - "timeRequired", - "isRequired", - "notificationText", - "embedCode", - "url", - "media", - "location", - "locationRadius", - "rewardWeight", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "itemTypeId", - "ownerId", - "actionId", - "itemType", - "owner", - "action" - ] - }, - { - "name": "requiredActionsByOwnerId", - "qtype": "getMany", - "model": "RequiredAction", - "selection": [ - "id", - "actionOrder", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "requiredId", - "action", - "owner", - "required" - ] - }, - { - "name": "userActions", - "qtype": "getMany", - "model": "UserAction", - "selection": [ - "id", - "userId", - "actionStarted", - "complete", - "verified", - "verifiedDate", - "userRating", - "rejected", - "location", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "objectId", - "user", - "owner", - "action", - "object" - ] - }, - { - "name": "userActionsByOwnerId", - "qtype": "getMany", - "model": "UserAction", - "selection": [ - "id", - "userId", - "actionStarted", - "complete", - "verified", - "verifiedDate", - "userRating", - "rejected", - "location", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "objectId", - "user", - "owner", - "action", - "object" - ] - }, - { - "name": "userActionVerifications", - "qtype": "getMany", - "model": "UserActionVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "user", - "owner", - "action", - "userAction" - ] - }, - { - "name": "userActionVerificationsByOwnerId", - "qtype": "getMany", - "model": "UserActionVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "user", - "owner", - "action", - "userAction" - ] - }, - { - "name": "userActionItems", - "qtype": "getMany", - "model": "UserActionItem", - "selection": [ - "id", - "userId", - "text", - "media", - "location", - "bbox", - "data", - "complete", - "verified", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "user", - "owner", - "action", - "userAction", - "actionItem" - ] - }, - { - "name": "userActionItemsByOwnerId", - "qtype": "getMany", - "model": "UserActionItem", - "selection": [ - "id", - "userId", - "text", - "media", - "location", - "bbox", - "data", - "complete", - "verified", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "user", - "owner", - "action", - "userAction", - "actionItem" - ] - }, - { - "name": "userActionItemVerificationsByVerifierId", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - }, - { - "name": "userActionItemVerifications", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - }, - { - "name": "userActionItemVerificationsByOwnerId", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - }, - { - "name": "tracksByOwnerId", - "qtype": "getMany", - "model": "Track", - "selection": [ - "id", - "name", - "description", - "photo", - "icon", - "isPublished", - "isApproved", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "objectTypeId", - "owner", - "objectType" - ] - }, - { - "name": "trackActionsByOwnerId", - "qtype": "getMany", - "model": "TrackAction", - "selection": [ - "id", - "trackOrder", - "isRequired", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "trackId", - "action", - "owner", - "track" - ] - }, - { - "name": "objectsByOwnerId", - "qtype": "getMany", - "model": "Object", - "selection": [ - "id", - "name", - "description", - "photo", - "media", - "location", - "bbox", - "data", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "typeId", - "owner", - "type" - ] - }, - { - "name": "objectAttributesByOwnerId", - "qtype": "getMany", - "model": "ObjectAttribute", - "selection": [ - "id", - "description", - "location", - "text", - "numeric", - "image", - "data", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "valueId", - "objectId", - "objectTypeAttributeId", - "owner", - "value", - "object", - "objectTypeAttribute" - ] - }, - "organizationProfileByOrganizationId", - { - "name": "userPassActions", - "qtype": "getMany", - "model": "UserPassAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userSavedActions", - "qtype": "getMany", - "model": "UserSavedAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userViewedActions", - "qtype": "getMany", - "model": "UserViewedAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userActionReactionsByReacterId", - "qtype": "getMany", - "model": "UserActionReaction", - "selection": [ - "id", - "reacterId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userActionId", - "userId", - "actionId", - "reacter", - "userAction", - "user", - "action" - ] - }, - { - "name": "userActionReactions", - "qtype": "getMany", - "model": "UserActionReaction", - "selection": [ - "id", - "reacterId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userActionId", - "userId", - "actionId", - "reacter", - "userAction", - "user", - "action" - ] - }, - { - "name": "userMessagesBySenderId", - "qtype": "getMany", - "model": "UserMessage", - "selection": [ - "id", - "senderId", - "type", - "content", - "upload", - "received", - "receiverRead", - "senderReaction", - "receiverReaction", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "receiverId", - "sender", - "receiver" - ] - }, - { - "name": "userMessagesByReceiverId", - "qtype": "getMany", - "model": "UserMessage", - "selection": [ - "id", - "senderId", - "type", - "content", - "upload", - "received", - "receiverRead", - "senderReaction", - "receiverReaction", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "receiverId", - "sender", - "receiver" - ] - }, - { - "name": "messagesBySenderId", - "qtype": "getMany", - "model": "Message", - "selection": [ - "id", - "senderId", - "type", - "content", - "upload", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "sender", - "group" - ] - }, - { - "name": "postsByPosterId", - "qtype": "getMany", - "model": "Post", - "selection": [ - "id", - "posterId", - "type", - "flagged", - "image", - "url", - "location", - "data", - "taggedUserIds", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "poster" - ] - }, - { - "name": "postReactionsByReacterId", - "qtype": "getMany", - "model": "PostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "reacter", - "post", - "poster" - ] - }, - { - "name": "postReactionsByPosterId", - "qtype": "getMany", - "model": "PostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "reacter", - "post", - "poster" - ] - }, - { - "name": "postCommentsByCommenterId", - "qtype": "getMany", - "model": "PostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "commenter", - "parent", - "post", - "poster" - ] - }, - { - "name": "postCommentsByPosterId", - "qtype": "getMany", - "model": "PostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "commenter", - "parent", - "post", - "poster" - ] - }, - { - "name": "groupPostsByPosterId", - "qtype": "getMany", - "model": "GroupPost", - "selection": [ - "id", - "posterId", - "type", - "flagged", - "image", - "url", - "location", - "data", - "taggedUserIds", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "poster", - "group" - ] - }, - { - "name": "groupPostReactionsByReacterId", - "qtype": "getMany", - "model": "GroupPostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "posterId", - "postId", - "reacter", - "group", - "poster", - "post" - ] - }, - { - "name": "groupPostReactionsByPosterId", - "qtype": "getMany", - "model": "GroupPostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "posterId", - "postId", - "reacter", - "group", - "poster", - "post" - ] - }, - { - "name": "groupPostCommentsByCommenterId", - "qtype": "getMany", - "model": "GroupPostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "postId", - "posterId", - "commenter", - "parent", - "group", - "post", - "poster" - ] - }, - { - "name": "groupPostCommentsByPosterId", - "qtype": "getMany", - "model": "GroupPostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "postId", - "posterId", - "commenter", - "parent", - "group", - "post", - "poster" - ] - }, - { - "name": "userDevices", - "qtype": "getMany", - "model": "UserDevice", - "selection": [ - "id", - "type", - "deviceId", - "pushToken", - "pushTokenRequested", - "data", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - { - "name": "notificationsByActorId", - "qtype": "getMany", - "model": "Notification", - "selection": [ - "id", - "actorId", - "recipientId", - "notificationType", - "notificationText", - "entityType", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actor", - "recipient" - ] - }, - { - "name": "notificationsByRecipientId", - "qtype": "getMany", - "model": "Notification", - "selection": [ - "id", - "actorId", - "recipientId", - "notificationType", - "notificationText", - "entityType", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actor", - "recipient" - ] - }, - { - "name": "notificationPreferences", - "qtype": "getMany", - "model": "NotificationPreference", - "selection": [ - "id", - "userId", - "emails", - "sms", - "notifications", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - { - "name": "userQuestionsByOwnerId", - "qtype": "getMany", - "model": "UserQuestion", - "selection": [ - "id", - "questionType", - "questionPrompt", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - }, - { - "name": "userAnswers", - "qtype": "getMany", - "model": "UserAnswer", - "selection": [ - "id", - "userId", - "location", - "text", - "numeric", - "image", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "questionId", - "ownerId", - "user", - "question", - "owner" - ] - }, - { - "name": "userAnswersByOwnerId", - "qtype": "getMany", - "model": "UserAnswer", - "selection": [ - "id", - "userId", - "location", - "text", - "numeric", - "image", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "questionId", - "ownerId", - "user", - "question", - "owner" - ] - }, - { - "name": "rewardLimitsByOwnerId", - "qtype": "getMany", - "model": "RewardLimit", - "selection": [ - "id", - "rewardAmount", - "rewardUnit", - "totalRewardLimit", - "weeklyLimit", - "dailyLimit", - "totalLimit", - "userTotalLimit", - "userWeeklyLimit", - "userDailyLimit", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - }, - "searchTsvRank" - ] - }, - "zipCodes": { - "qtype": "getMany", - "model": "ZipCode", - "selection": [ - "id", - "zip", - "location", - "bbox", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt" - ] - }, - "authAccounts": { - "qtype": "getMany", - "model": "AuthAccount", - "selection": [ - "id", - "ownerId", - "service", - "identifier", - "details", - "isVerified", - "owner" - ] - }, - "actionGoal": { - "model": "ActionGoal", - "qtype": "getOne", - "properties": { - "actionId": { - "isNotNull": true, - "type": "UUID" - }, - "goalId": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "goalId", - "owner", - "action", - "goal" - ] - }, - "actionItemType": { - "model": "ActionItemType", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "Int" - } - }, - "selection": [ - "id", - "name", - "description", - "image", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - { - "name": "actionItemsByItemTypeId", - "qtype": "getMany", - "model": "ActionItem", - "selection": [ - "id", - "name", - "description", - "type", - "itemOrder", - "timeRequired", - "isRequired", - "notificationText", - "embedCode", - "url", - "media", - "location", - "locationRadius", - "rewardWeight", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "itemTypeId", - "ownerId", - "actionId", - "itemType", - "owner", - "action" - ] - } - ] - }, - "actionItem": { - "model": "ActionItem", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "description", - "type", - "itemOrder", - "timeRequired", - "isRequired", - "notificationText", - "embedCode", - "url", - "media", - "location", - "locationRadius", - "rewardWeight", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "itemTypeId", - "ownerId", - "actionId", - "itemType", - "owner", - "action", - { - "name": "userActionItems", - "qtype": "getMany", - "model": "UserActionItem", - "selection": [ - "id", - "userId", - "text", - "media", - "location", - "bbox", - "data", - "complete", - "verified", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "user", - "owner", - "action", - "userAction", - "actionItem" - ] - }, - { - "name": "userActionItemVerifications", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - } - ] - }, - "actionVariation": { - "model": "ActionVariation", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "photo", - "title", - "description", - "income", - "gender", - "dob", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "owner", - "action" - ] - }, - "action": { - "model": "Action", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "slug", - "photo", - "shareImage", - "title", - "titleObjectTemplate", - "url", - "description", - "discoveryHeader", - "discoveryDescription", - "notificationText", - "notificationObjectTemplate", - "enableNotifications", - "enableNotificationsText", - "search", - "location", - "locationRadius", - "timeRequired", - "startDate", - "endDate", - "approved", - "published", - "isPrivate", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "alreadyCompletedActionText", - "selfVerifiable", - "isRecurring", - "recurringInterval", - "oncePerObject", - "minimumGroupMembers", - "limitedToLocation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "ownerId", - "objectTypeId", - "rewardId", - "verifyRewardId", - "group", - "owner", - "objectType", - "reward", - "verifyReward", - { - "name": "actionGoals", - "qtype": "getMany", - "model": "ActionGoal", - "selection": [ - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "goalId", - "owner", - "action", - "goal" - ] - }, - { - "name": "actionVariations", - "qtype": "getMany", - "model": "ActionVariation", - "selection": [ - "id", - "photo", - "title", - "description", - "income", - "gender", - "dob", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "owner", - "action" - ] - }, - { - "name": "actionItems", - "qtype": "getMany", - "model": "ActionItem", - "selection": [ - "id", - "name", - "description", - "type", - "itemOrder", - "timeRequired", - "isRequired", - "notificationText", - "embedCode", - "url", - "media", - "location", - "locationRadius", - "rewardWeight", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "itemTypeId", - "ownerId", - "actionId", - "itemType", - "owner", - "action" - ] - }, - { - "name": "requiredActions", - "qtype": "getMany", - "model": "RequiredAction", - "selection": [ - "id", - "actionOrder", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "requiredId", - "action", - "owner", - "required" - ] - }, - { - "name": "requiredActionsByRequiredId", - "qtype": "getMany", - "model": "RequiredAction", - "selection": [ - "id", - "actionOrder", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "requiredId", - "action", - "owner", - "required" - ] - }, - { - "name": "userActions", - "qtype": "getMany", - "model": "UserAction", - "selection": [ - "id", - "userId", - "actionStarted", - "complete", - "verified", - "verifiedDate", - "userRating", - "rejected", - "location", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "objectId", - "user", - "owner", - "action", - "object" - ] - }, - { - "name": "userActionVerifications", - "qtype": "getMany", - "model": "UserActionVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "user", - "owner", - "action", - "userAction" - ] - }, - { - "name": "userActionItems", - "qtype": "getMany", - "model": "UserActionItem", - "selection": [ - "id", - "userId", - "text", - "media", - "location", - "bbox", - "data", - "complete", - "verified", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "user", - "owner", - "action", - "userAction", - "actionItem" - ] - }, - { - "name": "userActionItemVerifications", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - }, - { - "name": "trackActions", - "qtype": "getMany", - "model": "TrackAction", - "selection": [ - "id", - "trackOrder", - "isRequired", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "trackId", - "action", - "owner", - "track" - ] - }, - { - "name": "userPassActions", - "qtype": "getMany", - "model": "UserPassAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userSavedActions", - "qtype": "getMany", - "model": "UserSavedAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userViewedActions", - "qtype": "getMany", - "model": "UserViewedAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userActionReactions", - "qtype": "getMany", - "model": "UserActionReaction", - "selection": [ - "id", - "reacterId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userActionId", - "userId", - "actionId", - "reacter", - "userAction", - "user", - "action" - ] - }, - "searchRank", - { - "name": "goals", - "qtype": "getMany", - "model": "Goal", - "selection": [ - "id", - "name", - "slug", - "shortName", - "icon", - "subHead", - "tags", - "search", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "searchRank" - ] - } - ] - }, - "actionBySlug": { - "model": "Action", - "qtype": "getOne", - "properties": { - "slug": { - "isNotNull": true, - "type": "String" - } - }, - "selection": [ - "id", - "slug", - "photo", - "shareImage", - "title", - "titleObjectTemplate", - "url", - "description", - "discoveryHeader", - "discoveryDescription", - "notificationText", - "notificationObjectTemplate", - "enableNotifications", - "enableNotificationsText", - "search", - "location", - "locationRadius", - "timeRequired", - "startDate", - "endDate", - "approved", - "published", - "isPrivate", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "alreadyCompletedActionText", - "selfVerifiable", - "isRecurring", - "recurringInterval", - "oncePerObject", - "minimumGroupMembers", - "limitedToLocation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "ownerId", - "objectTypeId", - "rewardId", - "verifyRewardId", - "group", - "owner", - "objectType", - "reward", - "verifyReward", - { - "name": "actionGoals", - "qtype": "getMany", - "model": "ActionGoal", - "selection": [ - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "goalId", - "owner", - "action", - "goal" - ] - }, - { - "name": "actionVariations", - "qtype": "getMany", - "model": "ActionVariation", - "selection": [ - "id", - "photo", - "title", - "description", - "income", - "gender", - "dob", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "owner", - "action" - ] - }, - { - "name": "actionItems", - "qtype": "getMany", - "model": "ActionItem", - "selection": [ - "id", - "name", - "description", - "type", - "itemOrder", - "timeRequired", - "isRequired", - "notificationText", - "embedCode", - "url", - "media", - "location", - "locationRadius", - "rewardWeight", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "itemTypeId", - "ownerId", - "actionId", - "itemType", - "owner", - "action" - ] - }, - { - "name": "requiredActions", - "qtype": "getMany", - "model": "RequiredAction", - "selection": [ - "id", - "actionOrder", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "requiredId", - "action", - "owner", - "required" - ] - }, - { - "name": "requiredActionsByRequiredId", - "qtype": "getMany", - "model": "RequiredAction", - "selection": [ - "id", - "actionOrder", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "requiredId", - "action", - "owner", - "required" - ] - }, - { - "name": "userActions", - "qtype": "getMany", - "model": "UserAction", - "selection": [ - "id", - "userId", - "actionStarted", - "complete", - "verified", - "verifiedDate", - "userRating", - "rejected", - "location", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "objectId", - "user", - "owner", - "action", - "object" - ] - }, - { - "name": "userActionVerifications", - "qtype": "getMany", - "model": "UserActionVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "user", - "owner", - "action", - "userAction" - ] - }, - { - "name": "userActionItems", - "qtype": "getMany", - "model": "UserActionItem", - "selection": [ - "id", - "userId", - "text", - "media", - "location", - "bbox", - "data", - "complete", - "verified", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "user", - "owner", - "action", - "userAction", - "actionItem" - ] - }, - { - "name": "userActionItemVerifications", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - }, - { - "name": "trackActions", - "qtype": "getMany", - "model": "TrackAction", - "selection": [ - "id", - "trackOrder", - "isRequired", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "trackId", - "action", - "owner", - "track" - ] - }, - { - "name": "userPassActions", - "qtype": "getMany", - "model": "UserPassAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userSavedActions", - "qtype": "getMany", - "model": "UserSavedAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userViewedActions", - "qtype": "getMany", - "model": "UserViewedAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userActionReactions", - "qtype": "getMany", - "model": "UserActionReaction", - "selection": [ - "id", - "reacterId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userActionId", - "userId", - "actionId", - "reacter", - "userAction", - "user", - "action" - ] - }, - "searchRank", - { - "name": "goals", - "qtype": "getMany", - "model": "Goal", - "selection": [ - "id", - "name", - "slug", - "shortName", - "icon", - "subHead", - "tags", - "search", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "searchRank" - ] - } - ] - }, - "connectedAccount": { - "model": "ConnectedAccount", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "ownerId", - "service", - "identifier", - "details", - "isVerified", - "owner" - ] - }, - "connectedAccountByServiceAndIdentifier": { - "model": "ConnectedAccount", - "qtype": "getOne", - "properties": { - "service": { - "isNotNull": true, - "type": "String" - }, - "identifier": { - "isNotNull": true, - "type": "String" - } - }, - "selection": [ - "id", - "ownerId", - "service", - "identifier", - "details", - "isVerified", - "owner" - ] - }, - "cryptoAddress": { - "model": "CryptoAddress", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "ownerId", - "address", - "isVerified", - "isPrimary", - "owner" - ] - }, - "cryptoAddressByAddress": { - "model": "CryptoAddress", - "qtype": "getOne", - "properties": { - "address": { - "isNotNull": true, - "type": "String" - } - }, - "selection": [ - "id", - "ownerId", - "address", - "isVerified", - "isPrimary", - "owner" - ] - }, - "email": { - "model": "Email", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "ownerId", - "email", - "isVerified", - "isPrimary", - "owner" - ] - }, - "emailByEmail": { - "model": "Email", - "qtype": "getOne", - "properties": { - "email": { - "isNotNull": true, - "type": "String" - } - }, - "selection": [ - "id", - "ownerId", - "email", - "isVerified", - "isPrimary", - "owner" - ] - }, - "goalExplanation": { - "model": "GoalExplanation", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "audio", - "audioDuration", - "explanationTitle", - "explanation", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "goalId", - "goal" - ] - }, - "goal": { - "model": "Goal", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "slug", - "shortName", - "icon", - "subHead", - "tags", - "search", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - { - "name": "goalExplanations", - "qtype": "getMany", - "model": "GoalExplanation", - "selection": [ - "id", - "audio", - "audioDuration", - "explanationTitle", - "explanation", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "goalId", - "goal" - ] - }, - { - "name": "actionGoals", - "qtype": "getMany", - "model": "ActionGoal", - "selection": [ - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "goalId", - "owner", - "action", - "goal" - ] - }, - "searchRank", - { - "name": "actions", - "qtype": "getMany", - "model": "Action", - "selection": [ - "id", - "slug", - "photo", - "shareImage", - "title", - "titleObjectTemplate", - "url", - "description", - "discoveryHeader", - "discoveryDescription", - "notificationText", - "notificationObjectTemplate", - "enableNotifications", - "enableNotificationsText", - "search", - "location", - "locationRadius", - "timeRequired", - "startDate", - "endDate", - "approved", - "published", - "isPrivate", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "alreadyCompletedActionText", - "selfVerifiable", - "isRecurring", - "recurringInterval", - "oncePerObject", - "minimumGroupMembers", - "limitedToLocation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "ownerId", - "objectTypeId", - "rewardId", - "verifyRewardId", - "group", - "owner", - "objectType", - "reward", - "verifyReward", - "searchRank" - ] - } - ] - }, - "goalByName": { - "model": "Goal", - "qtype": "getOne", - "properties": { - "name": { - "isNotNull": true, - "type": "String" - } - }, - "selection": [ - "id", - "name", - "slug", - "shortName", - "icon", - "subHead", - "tags", - "search", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - { - "name": "goalExplanations", - "qtype": "getMany", - "model": "GoalExplanation", - "selection": [ - "id", - "audio", - "audioDuration", - "explanationTitle", - "explanation", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "goalId", - "goal" - ] - }, - { - "name": "actionGoals", - "qtype": "getMany", - "model": "ActionGoal", - "selection": [ - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "goalId", - "owner", - "action", - "goal" - ] - }, - "searchRank", - { - "name": "actions", - "qtype": "getMany", - "model": "Action", - "selection": [ - "id", - "slug", - "photo", - "shareImage", - "title", - "titleObjectTemplate", - "url", - "description", - "discoveryHeader", - "discoveryDescription", - "notificationText", - "notificationObjectTemplate", - "enableNotifications", - "enableNotificationsText", - "search", - "location", - "locationRadius", - "timeRequired", - "startDate", - "endDate", - "approved", - "published", - "isPrivate", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "alreadyCompletedActionText", - "selfVerifiable", - "isRecurring", - "recurringInterval", - "oncePerObject", - "minimumGroupMembers", - "limitedToLocation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "ownerId", - "objectTypeId", - "rewardId", - "verifyRewardId", - "group", - "owner", - "objectType", - "reward", - "verifyReward", - "searchRank" - ] - } - ] - }, - "goalBySlug": { - "model": "Goal", - "qtype": "getOne", - "properties": { - "slug": { - "isNotNull": true, - "type": "String" - } - }, - "selection": [ - "id", - "name", - "slug", - "shortName", - "icon", - "subHead", - "tags", - "search", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - { - "name": "goalExplanations", - "qtype": "getMany", - "model": "GoalExplanation", - "selection": [ - "id", - "audio", - "audioDuration", - "explanationTitle", - "explanation", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "goalId", - "goal" - ] - }, - { - "name": "actionGoals", - "qtype": "getMany", - "model": "ActionGoal", - "selection": [ - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "goalId", - "owner", - "action", - "goal" - ] - }, - "searchRank", - { - "name": "actions", - "qtype": "getMany", - "model": "Action", - "selection": [ - "id", - "slug", - "photo", - "shareImage", - "title", - "titleObjectTemplate", - "url", - "description", - "discoveryHeader", - "discoveryDescription", - "notificationText", - "notificationObjectTemplate", - "enableNotifications", - "enableNotificationsText", - "search", - "location", - "locationRadius", - "timeRequired", - "startDate", - "endDate", - "approved", - "published", - "isPrivate", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "alreadyCompletedActionText", - "selfVerifiable", - "isRecurring", - "recurringInterval", - "oncePerObject", - "minimumGroupMembers", - "limitedToLocation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "ownerId", - "objectTypeId", - "rewardId", - "verifyRewardId", - "group", - "owner", - "objectType", - "reward", - "verifyReward", - "searchRank" - ] - } - ] - }, - "groupPostComment": { - "model": "GroupPostComment", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "postId", - "posterId", - "commenter", - "parent", - "group", - "post", - "poster", - { - "name": "groupPostCommentsByParentId", - "qtype": "getMany", - "model": "GroupPostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "postId", - "posterId", - "commenter", - "parent", - "group", - "post", - "poster" - ] - } - ] - }, - "groupPostReaction": { - "model": "GroupPostReaction", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "posterId", - "postId", - "reacter", - "group", - "poster", - "post" - ] - }, - "groupPost": { - "model": "GroupPost", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "posterId", - "type", - "flagged", - "image", - "url", - "location", - "data", - "taggedUserIds", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "poster", - "group", - { - "name": "groupPostReactionsByPostId", - "qtype": "getMany", - "model": "GroupPostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "posterId", - "postId", - "reacter", - "group", - "poster", - "post" - ] - }, - { - "name": "groupPostCommentsByPostId", - "qtype": "getMany", - "model": "GroupPostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "postId", - "posterId", - "commenter", - "parent", - "group", - "post", - "poster" - ] - } - ] - }, - "group": { - "model": "Group", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner", - { - "name": "actions", - "qtype": "getMany", - "model": "Action", - "selection": [ - "id", - "slug", - "photo", - "shareImage", - "title", - "titleObjectTemplate", - "url", - "description", - "discoveryHeader", - "discoveryDescription", - "notificationText", - "notificationObjectTemplate", - "enableNotifications", - "enableNotificationsText", - "search", - "location", - "locationRadius", - "timeRequired", - "startDate", - "endDate", - "approved", - "published", - "isPrivate", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "alreadyCompletedActionText", - "selfVerifiable", - "isRecurring", - "recurringInterval", - "oncePerObject", - "minimumGroupMembers", - "limitedToLocation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "ownerId", - "objectTypeId", - "rewardId", - "verifyRewardId", - "group", - "owner", - "objectType", - "reward", - "verifyReward", - "searchRank" - ] - }, - { - "name": "groupPosts", - "qtype": "getMany", - "model": "GroupPost", - "selection": [ - "id", - "posterId", - "type", - "flagged", - "image", - "url", - "location", - "data", - "taggedUserIds", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "poster", - "group" - ] - }, - { - "name": "groupPostReactions", - "qtype": "getMany", - "model": "GroupPostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "posterId", - "postId", - "reacter", - "group", - "poster", - "post" - ] - }, - { - "name": "groupPostComments", - "qtype": "getMany", - "model": "GroupPostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "postId", - "posterId", - "commenter", - "parent", - "group", - "post", - "poster" - ] - }, - { - "name": "rewardLimitsByActionGroupIdAndRewardId", - "qtype": "getMany", - "model": "RewardLimit", - "selection": [ - "id", - "rewardAmount", - "rewardUnit", - "totalRewardLimit", - "weeklyLimit", - "dailyLimit", - "totalLimit", - "userTotalLimit", - "userWeeklyLimit", - "userDailyLimit", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - }, - { - "name": "rewardLimitsByActionGroupIdAndVerifyRewardId", - "qtype": "getMany", - "model": "RewardLimit", - "selection": [ - "id", - "rewardAmount", - "rewardUnit", - "totalRewardLimit", - "weeklyLimit", - "dailyLimit", - "totalLimit", - "userTotalLimit", - "userWeeklyLimit", - "userDailyLimit", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - } - ] - }, - "locationType": { - "model": "LocationType", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - { - "name": "locationsByLocationType", - "qtype": "getMany", - "model": "Location", - "selection": [ - "id", - "name", - "location", - "bbox", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "locationType", - "owner", - "locationTypeByLocationType" - ] - } - ] - }, - "location": { - "model": "Location", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "location", - "bbox", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "locationType", - "owner", - "locationTypeByLocationType" - ] - }, - "messageGroup": { - "model": "MessageGroup", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "memberIds", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - { - "name": "messagesByGroupId", - "qtype": "getMany", - "model": "Message", - "selection": [ - "id", - "senderId", - "type", - "content", - "upload", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "sender", - "group" - ] - } - ] - }, - "message": { - "model": "Message", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "senderId", - "type", - "content", - "upload", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "sender", - "group" - ] - }, - "newsArticle": { - "model": "NewsArticle", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "description", - "link", - "publishedAt", - "photo", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt" - ] - }, - "notificationPreference": { - "model": "NotificationPreference", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "userId", - "emails", - "sms", - "notifications", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - "notification": { - "model": "Notification", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "actorId", - "recipientId", - "notificationType", - "notificationText", - "entityType", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actor", - "recipient" - ] - }, - "objectAttribute": { - "model": "ObjectAttribute", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "description", - "location", - "text", - "numeric", - "image", - "data", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "valueId", - "objectId", - "objectTypeAttributeId", - "owner", - "value", - "object", - "objectTypeAttribute" - ] - }, - "objectTypeAttribute": { - "model": "ObjectTypeAttribute", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "label", - "type", - "unit", - "description", - "min", - "max", - "pattern", - "isRequired", - "attrOrder", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "objectTypeId", - "objectType", - { - "name": "objectTypeValuesByAttrId", - "qtype": "getMany", - "model": "ObjectTypeValue", - "selection": [ - "id", - "name", - "description", - "photo", - "icon", - "type", - "location", - "text", - "numeric", - "image", - "data", - "valueOrder", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "attrId", - "attr" - ] - }, - { - "name": "objectAttributes", - "qtype": "getMany", - "model": "ObjectAttribute", - "selection": [ - "id", - "description", - "location", - "text", - "numeric", - "image", - "data", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "valueId", - "objectId", - "objectTypeAttributeId", - "owner", - "value", - "object", - "objectTypeAttribute" - ] - } - ] - }, - "objectTypeValue": { - "model": "ObjectTypeValue", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "description", - "photo", - "icon", - "type", - "location", - "text", - "numeric", - "image", - "data", - "valueOrder", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "attrId", - "attr", - { - "name": "objectAttributesByValueId", - "qtype": "getMany", - "model": "ObjectAttribute", - "selection": [ - "id", - "description", - "location", - "text", - "numeric", - "image", - "data", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "valueId", - "objectId", - "objectTypeAttributeId", - "owner", - "value", - "object", - "objectTypeAttribute" - ] - } - ] - }, - "objectType": { - "model": "ObjectType", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "Int" - } - }, - "selection": [ - "id", - "name", - "description", - "photo", - "icon", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - { - "name": "actions", - "qtype": "getMany", - "model": "Action", - "selection": [ - "id", - "slug", - "photo", - "shareImage", - "title", - "titleObjectTemplate", - "url", - "description", - "discoveryHeader", - "discoveryDescription", - "notificationText", - "notificationObjectTemplate", - "enableNotifications", - "enableNotificationsText", - "search", - "location", - "locationRadius", - "timeRequired", - "startDate", - "endDate", - "approved", - "published", - "isPrivate", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "alreadyCompletedActionText", - "selfVerifiable", - "isRecurring", - "recurringInterval", - "oncePerObject", - "minimumGroupMembers", - "limitedToLocation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "ownerId", - "objectTypeId", - "rewardId", - "verifyRewardId", - "group", - "owner", - "objectType", - "reward", - "verifyReward", - "searchRank" - ] - }, - { - "name": "tracks", - "qtype": "getMany", - "model": "Track", - "selection": [ - "id", - "name", - "description", - "photo", - "icon", - "isPublished", - "isApproved", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "objectTypeId", - "owner", - "objectType" - ] - }, - { - "name": "objectsByTypeId", - "qtype": "getMany", - "model": "Object", - "selection": [ - "id", - "name", - "description", - "photo", - "media", - "location", - "bbox", - "data", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "typeId", - "owner", - "type" - ] - }, - { - "name": "objectTypeAttributes", - "qtype": "getMany", - "model": "ObjectTypeAttribute", - "selection": [ - "id", - "name", - "label", - "type", - "unit", - "description", - "min", - "max", - "pattern", - "isRequired", - "attrOrder", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "objectTypeId", - "objectType" - ] - } - ] - }, - "object": { - "model": "Object", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "description", - "photo", - "media", - "location", - "bbox", - "data", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "typeId", - "owner", - "type", - { - "name": "userActions", - "qtype": "getMany", - "model": "UserAction", - "selection": [ - "id", - "userId", - "actionStarted", - "complete", - "verified", - "verifiedDate", - "userRating", - "rejected", - "location", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "objectId", - "user", - "owner", - "action", - "object" - ] - }, - { - "name": "objectAttributes", - "qtype": "getMany", - "model": "ObjectAttribute", - "selection": [ - "id", - "description", - "location", - "text", - "numeric", - "image", - "data", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "valueId", - "objectId", - "objectTypeAttributeId", - "owner", - "value", - "object", - "objectTypeAttribute" - ] - } - ] - }, - "organizationProfile": { - "model": "OrganizationProfile", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "headerImage", - "profilePicture", - "description", - "website", - "reputation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "organizationId", - "organization" - ] - }, - "phoneNumber": { - "model": "PhoneNumber", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "ownerId", - "cc", - "number", - "isVerified", - "isPrimary", - "owner" - ] - }, - "phoneNumberByNumber": { - "model": "PhoneNumber", - "qtype": "getOne", - "properties": { - "number": { - "isNotNull": true, - "type": "String" - } - }, - "selection": [ - "id", - "ownerId", - "cc", - "number", - "isVerified", - "isPrimary", - "owner" - ] - }, - "postComment": { - "model": "PostComment", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "commenter", - "parent", - "post", - "poster", - { - "name": "postCommentsByParentId", - "qtype": "getMany", - "model": "PostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "commenter", - "parent", - "post", - "poster" - ] - } - ] - }, - "postReaction": { - "model": "PostReaction", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "reacter", - "post", - "poster" - ] - }, - "post": { - "model": "Post", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "posterId", - "type", - "flagged", - "image", - "url", - "location", - "data", - "taggedUserIds", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "poster", - { - "name": "postReactions", - "qtype": "getMany", - "model": "PostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "reacter", - "post", - "poster" - ] - }, - { - "name": "postComments", - "qtype": "getMany", - "model": "PostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "commenter", - "parent", - "post", - "poster" - ] - } - ] - }, - "requiredAction": { - "model": "RequiredAction", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "actionOrder", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "requiredId", - "action", - "owner", - "required" - ] - }, - "rewardLimit": { - "model": "RewardLimit", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "rewardAmount", - "rewardUnit", - "totalRewardLimit", - "weeklyLimit", - "dailyLimit", - "totalLimit", - "userTotalLimit", - "userWeeklyLimit", - "userDailyLimit", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner", - { - "name": "actionsByRewardId", - "qtype": "getMany", - "model": "Action", - "selection": [ - "id", - "slug", - "photo", - "shareImage", - "title", - "titleObjectTemplate", - "url", - "description", - "discoveryHeader", - "discoveryDescription", - "notificationText", - "notificationObjectTemplate", - "enableNotifications", - "enableNotificationsText", - "search", - "location", - "locationRadius", - "timeRequired", - "startDate", - "endDate", - "approved", - "published", - "isPrivate", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "alreadyCompletedActionText", - "selfVerifiable", - "isRecurring", - "recurringInterval", - "oncePerObject", - "minimumGroupMembers", - "limitedToLocation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "ownerId", - "objectTypeId", - "rewardId", - "verifyRewardId", - "group", - "owner", - "objectType", - "reward", - "verifyReward", - "searchRank" - ] - }, - { - "name": "actionsByVerifyRewardId", - "qtype": "getMany", - "model": "Action", - "selection": [ - "id", - "slug", - "photo", - "shareImage", - "title", - "titleObjectTemplate", - "url", - "description", - "discoveryHeader", - "discoveryDescription", - "notificationText", - "notificationObjectTemplate", - "enableNotifications", - "enableNotificationsText", - "search", - "location", - "locationRadius", - "timeRequired", - "startDate", - "endDate", - "approved", - "published", - "isPrivate", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "alreadyCompletedActionText", - "selfVerifiable", - "isRecurring", - "recurringInterval", - "oncePerObject", - "minimumGroupMembers", - "limitedToLocation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "ownerId", - "objectTypeId", - "rewardId", - "verifyRewardId", - "group", - "owner", - "objectType", - "reward", - "verifyReward", - "searchRank" - ] - }, - { - "name": "groupsByActionRewardIdAndGroupId", - "qtype": "getMany", - "model": "Group", - "selection": [ - "id", - "name", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - }, - { - "name": "rewardLimitsByActionRewardIdAndVerifyRewardId", - "qtype": "getMany", - "model": "RewardLimit", - "selection": [ - "id", - "rewardAmount", - "rewardUnit", - "totalRewardLimit", - "weeklyLimit", - "dailyLimit", - "totalLimit", - "userTotalLimit", - "userWeeklyLimit", - "userDailyLimit", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - }, - { - "name": "groupsByActionVerifyRewardIdAndGroupId", - "qtype": "getMany", - "model": "Group", - "selection": [ - "id", - "name", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - }, - { - "name": "rewardLimitsByActionVerifyRewardIdAndRewardId", - "qtype": "getMany", - "model": "RewardLimit", - "selection": [ - "id", - "rewardAmount", - "rewardUnit", - "totalRewardLimit", - "weeklyLimit", - "dailyLimit", - "totalLimit", - "userTotalLimit", - "userWeeklyLimit", - "userDailyLimit", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - } - ] - }, - "roleType": { - "model": "RoleType", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "Int" - } - }, - "selection": [ - "id", - "name", - { - "name": "usersByType", - "qtype": "getMany", - "model": "User", - "selection": [ - "id", - "username", - "displayName", - "profilePicture", - "searchTsv", - "type", - "roleTypeByType", - "userProfile", - "userSetting", - "userCharacteristic", - "organizationProfileByOrganizationId", - "searchTsvRank" - ] - } - ] - }, - "roleTypeByName": { - "model": "RoleType", - "qtype": "getOne", - "properties": { - "name": { - "isNotNull": true, - "type": "String" - } - }, - "selection": [ - "id", - "name", - { - "name": "usersByType", - "qtype": "getMany", - "model": "User", - "selection": [ - "id", - "username", - "displayName", - "profilePicture", - "searchTsv", - "type", - "roleTypeByType", - "userProfile", - "userSetting", - "userCharacteristic", - "organizationProfileByOrganizationId", - "searchTsvRank" - ] - } - ] - }, - "trackAction": { - "model": "TrackAction", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "trackOrder", - "isRequired", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "trackId", - "action", - "owner", - "track" - ] - }, - "track": { - "model": "Track", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "name", - "description", - "photo", - "icon", - "isPublished", - "isApproved", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "objectTypeId", - "owner", - "objectType", - { - "name": "trackActions", - "qtype": "getMany", - "model": "TrackAction", - "selection": [ - "id", - "trackOrder", - "isRequired", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "trackId", - "action", - "owner", - "track" - ] - } - ] - }, - "userActionItemVerification": { - "model": "UserActionItemVerification", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - }, - "userActionItem": { - "model": "UserActionItem", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "userId", - "text", - "media", - "location", - "bbox", - "data", - "complete", - "verified", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "user", - "owner", - "action", - "userAction", - "actionItem", - { - "name": "userActionItemVerifications", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - } - ] - }, - "userActionReaction": { - "model": "UserActionReaction", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "reacterId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userActionId", - "userId", - "actionId", - "reacter", - "userAction", - "user", - "action" - ] - }, - "userActionVerification": { - "model": "UserActionVerification", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "user", - "owner", - "action", - "userAction" - ] - }, - "userAction": { - "model": "UserAction", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "userId", - "actionStarted", - "complete", - "verified", - "verifiedDate", - "userRating", - "rejected", - "location", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "objectId", - "user", - "owner", - "action", - "object", - { - "name": "userActionVerifications", - "qtype": "getMany", - "model": "UserActionVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "user", - "owner", - "action", - "userAction" - ] - }, - { - "name": "userActionItems", - "qtype": "getMany", - "model": "UserActionItem", - "selection": [ - "id", - "userId", - "text", - "media", - "location", - "bbox", - "data", - "complete", - "verified", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "user", - "owner", - "action", - "userAction", - "actionItem" - ] - }, - { - "name": "userActionItemVerifications", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - }, - { - "name": "userActionReactions", - "qtype": "getMany", - "model": "UserActionReaction", - "selection": [ - "id", - "reacterId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userActionId", - "userId", - "actionId", - "reacter", - "userAction", - "user", - "action" - ] - } - ] - }, - "userAnswer": { - "model": "UserAnswer", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "userId", - "location", - "text", - "numeric", - "image", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "questionId", - "ownerId", - "user", - "question", - "owner" - ] - }, - "userCharacteristic": { - "model": "UserCharacteristic", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "userId", - "income", - "gender", - "race", - "age", - "dob", - "education", - "homeOwnership", - "treeHuggerLevel", - "diyLevel", - "gardenerLevel", - "freeTime", - "researchToDoer", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - "userConnection": { - "model": "UserConnection", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "accepted", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "requesterId", - "responderId", - "requester", - "responder" - ] - }, - "userContact": { - "model": "UserContact", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "userId", - "vcf", - "fullName", - "emails", - "device", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - "userDevice": { - "model": "UserDevice", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "type", - "deviceId", - "pushToken", - "pushTokenRequested", - "data", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - "userLocation": { - "model": "UserLocation", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "userId", - "name", - "kind", - "description", - "location", - "bbox", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - "userMessage": { - "model": "UserMessage", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "senderId", - "type", - "content", - "upload", - "received", - "receiverRead", - "senderReaction", - "receiverReaction", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "receiverId", - "sender", - "receiver" - ] - }, - "userPassAction": { - "model": "UserPassAction", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - "userProfile": { - "model": "UserProfile", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "userId", - "profilePicture", - "bio", - "reputation", - "displayName", - "tags", - "desired", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - "userQuestion": { - "model": "UserQuestion", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "questionType", - "questionPrompt", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner", - { - "name": "userAnswersByQuestionId", - "qtype": "getMany", - "model": "UserAnswer", - "selection": [ - "id", - "userId", - "location", - "text", - "numeric", - "image", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "questionId", - "ownerId", - "user", - "question", - "owner" - ] - } - ] - }, - "userSavedAction": { - "model": "UserSavedAction", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - "userSetting": { - "model": "UserSetting", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "userId", - "firstName", - "lastName", - "searchRadius", - "zip", - "location", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - "userViewedAction": { - "model": "UserViewedAction", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - "user": { - "model": "User", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "username", - "displayName", - "profilePicture", - "searchTsv", - "type", - "roleTypeByType", - { - "name": "groupsByOwnerId", - "qtype": "getMany", - "model": "Group", - "selection": [ - "id", - "name", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - }, - { - "name": "connectedAccountsByOwnerId", - "qtype": "getMany", - "model": "ConnectedAccount", - "selection": [ - "id", - "ownerId", - "service", - "identifier", - "details", - "isVerified", - "owner" - ] - }, - { - "name": "emailsByOwnerId", - "qtype": "getMany", - "model": "Email", - "selection": [ - "id", - "ownerId", - "email", - "isVerified", - "isPrimary", - "owner" - ] - }, - { - "name": "phoneNumbersByOwnerId", - "qtype": "getMany", - "model": "PhoneNumber", - "selection": [ - "id", - "ownerId", - "cc", - "number", - "isVerified", - "isPrimary", - "owner" - ] - }, - { - "name": "cryptoAddressesByOwnerId", - "qtype": "getMany", - "model": "CryptoAddress", - "selection": [ - "id", - "ownerId", - "address", - "isVerified", - "isPrimary", - "owner" - ] - }, - { - "name": "authAccountsByOwnerId", - "qtype": "getMany", - "model": "AuthAccount", - "selection": [ - "id", - "ownerId", - "service", - "identifier", - "details", - "isVerified", - "owner" - ] - }, - "userProfile", - "userSetting", - "userCharacteristic", - { - "name": "userContacts", - "qtype": "getMany", - "model": "UserContact", - "selection": [ - "id", - "userId", - "vcf", - "fullName", - "emails", - "device", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - { - "name": "userConnectionsByRequesterId", - "qtype": "getMany", - "model": "UserConnection", - "selection": [ - "id", - "accepted", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "requesterId", - "responderId", - "requester", - "responder" - ] - }, - { - "name": "userConnectionsByResponderId", - "qtype": "getMany", - "model": "UserConnection", - "selection": [ - "id", - "accepted", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "requesterId", - "responderId", - "requester", - "responder" - ] - }, - { - "name": "locationsByOwnerId", - "qtype": "getMany", - "model": "Location", - "selection": [ - "id", - "name", - "location", - "bbox", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "locationType", - "owner", - "locationTypeByLocationType" - ] - }, - { - "name": "userLocations", - "qtype": "getMany", - "model": "UserLocation", - "selection": [ - "id", - "userId", - "name", - "kind", - "description", - "location", - "bbox", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - { - "name": "actionsByOwnerId", - "qtype": "getMany", - "model": "Action", - "selection": [ - "id", - "slug", - "photo", - "shareImage", - "title", - "titleObjectTemplate", - "url", - "description", - "discoveryHeader", - "discoveryDescription", - "notificationText", - "notificationObjectTemplate", - "enableNotifications", - "enableNotificationsText", - "search", - "location", - "locationRadius", - "timeRequired", - "startDate", - "endDate", - "approved", - "published", - "isPrivate", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "alreadyCompletedActionText", - "selfVerifiable", - "isRecurring", - "recurringInterval", - "oncePerObject", - "minimumGroupMembers", - "limitedToLocation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "ownerId", - "objectTypeId", - "rewardId", - "verifyRewardId", - "group", - "owner", - "objectType", - "reward", - "verifyReward", - "searchRank" - ] - }, - { - "name": "actionGoalsByOwnerId", - "qtype": "getMany", - "model": "ActionGoal", - "selection": [ - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "goalId", - "owner", - "action", - "goal" - ] - }, - { - "name": "actionVariationsByOwnerId", - "qtype": "getMany", - "model": "ActionVariation", - "selection": [ - "id", - "photo", - "title", - "description", - "income", - "gender", - "dob", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "owner", - "action" - ] - }, - { - "name": "actionItemsByOwnerId", - "qtype": "getMany", - "model": "ActionItem", - "selection": [ - "id", - "name", - "description", - "type", - "itemOrder", - "timeRequired", - "isRequired", - "notificationText", - "embedCode", - "url", - "media", - "location", - "locationRadius", - "rewardWeight", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "itemTypeId", - "ownerId", - "actionId", - "itemType", - "owner", - "action" - ] - }, - { - "name": "requiredActionsByOwnerId", - "qtype": "getMany", - "model": "RequiredAction", - "selection": [ - "id", - "actionOrder", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "requiredId", - "action", - "owner", - "required" - ] - }, - { - "name": "userActions", - "qtype": "getMany", - "model": "UserAction", - "selection": [ - "id", - "userId", - "actionStarted", - "complete", - "verified", - "verifiedDate", - "userRating", - "rejected", - "location", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "objectId", - "user", - "owner", - "action", - "object" - ] - }, - { - "name": "userActionsByOwnerId", - "qtype": "getMany", - "model": "UserAction", - "selection": [ - "id", - "userId", - "actionStarted", - "complete", - "verified", - "verifiedDate", - "userRating", - "rejected", - "location", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "objectId", - "user", - "owner", - "action", - "object" - ] - }, - { - "name": "userActionVerifications", - "qtype": "getMany", - "model": "UserActionVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "user", - "owner", - "action", - "userAction" - ] - }, - { - "name": "userActionVerificationsByOwnerId", - "qtype": "getMany", - "model": "UserActionVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "user", - "owner", - "action", - "userAction" - ] - }, - { - "name": "userActionItems", - "qtype": "getMany", - "model": "UserActionItem", - "selection": [ - "id", - "userId", - "text", - "media", - "location", - "bbox", - "data", - "complete", - "verified", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "user", - "owner", - "action", - "userAction", - "actionItem" - ] - }, - { - "name": "userActionItemsByOwnerId", - "qtype": "getMany", - "model": "UserActionItem", - "selection": [ - "id", - "userId", - "text", - "media", - "location", - "bbox", - "data", - "complete", - "verified", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "user", - "owner", - "action", - "userAction", - "actionItem" - ] - }, - { - "name": "userActionItemVerificationsByVerifierId", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - }, - { - "name": "userActionItemVerifications", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - }, - { - "name": "userActionItemVerificationsByOwnerId", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - }, - { - "name": "tracksByOwnerId", - "qtype": "getMany", - "model": "Track", - "selection": [ - "id", - "name", - "description", - "photo", - "icon", - "isPublished", - "isApproved", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "objectTypeId", - "owner", - "objectType" - ] - }, - { - "name": "trackActionsByOwnerId", - "qtype": "getMany", - "model": "TrackAction", - "selection": [ - "id", - "trackOrder", - "isRequired", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "trackId", - "action", - "owner", - "track" - ] - }, - { - "name": "objectsByOwnerId", - "qtype": "getMany", - "model": "Object", - "selection": [ - "id", - "name", - "description", - "photo", - "media", - "location", - "bbox", - "data", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "typeId", - "owner", - "type" - ] - }, - { - "name": "objectAttributesByOwnerId", - "qtype": "getMany", - "model": "ObjectAttribute", - "selection": [ - "id", - "description", - "location", - "text", - "numeric", - "image", - "data", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "valueId", - "objectId", - "objectTypeAttributeId", - "owner", - "value", - "object", - "objectTypeAttribute" - ] - }, - "organizationProfileByOrganizationId", - { - "name": "userPassActions", - "qtype": "getMany", - "model": "UserPassAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userSavedActions", - "qtype": "getMany", - "model": "UserSavedAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userViewedActions", - "qtype": "getMany", - "model": "UserViewedAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userActionReactionsByReacterId", - "qtype": "getMany", - "model": "UserActionReaction", - "selection": [ - "id", - "reacterId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userActionId", - "userId", - "actionId", - "reacter", - "userAction", - "user", - "action" - ] - }, - { - "name": "userActionReactions", - "qtype": "getMany", - "model": "UserActionReaction", - "selection": [ - "id", - "reacterId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userActionId", - "userId", - "actionId", - "reacter", - "userAction", - "user", - "action" - ] - }, - { - "name": "userMessagesBySenderId", - "qtype": "getMany", - "model": "UserMessage", - "selection": [ - "id", - "senderId", - "type", - "content", - "upload", - "received", - "receiverRead", - "senderReaction", - "receiverReaction", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "receiverId", - "sender", - "receiver" - ] - }, - { - "name": "userMessagesByReceiverId", - "qtype": "getMany", - "model": "UserMessage", - "selection": [ - "id", - "senderId", - "type", - "content", - "upload", - "received", - "receiverRead", - "senderReaction", - "receiverReaction", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "receiverId", - "sender", - "receiver" - ] - }, - { - "name": "messagesBySenderId", - "qtype": "getMany", - "model": "Message", - "selection": [ - "id", - "senderId", - "type", - "content", - "upload", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "sender", - "group" - ] - }, - { - "name": "postsByPosterId", - "qtype": "getMany", - "model": "Post", - "selection": [ - "id", - "posterId", - "type", - "flagged", - "image", - "url", - "location", - "data", - "taggedUserIds", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "poster" - ] - }, - { - "name": "postReactionsByReacterId", - "qtype": "getMany", - "model": "PostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "reacter", - "post", - "poster" - ] - }, - { - "name": "postReactionsByPosterId", - "qtype": "getMany", - "model": "PostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "reacter", - "post", - "poster" - ] - }, - { - "name": "postCommentsByCommenterId", - "qtype": "getMany", - "model": "PostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "commenter", - "parent", - "post", - "poster" - ] - }, - { - "name": "postCommentsByPosterId", - "qtype": "getMany", - "model": "PostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "commenter", - "parent", - "post", - "poster" - ] - }, - { - "name": "groupPostsByPosterId", - "qtype": "getMany", - "model": "GroupPost", - "selection": [ - "id", - "posterId", - "type", - "flagged", - "image", - "url", - "location", - "data", - "taggedUserIds", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "poster", - "group" - ] - }, - { - "name": "groupPostReactionsByReacterId", - "qtype": "getMany", - "model": "GroupPostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "posterId", - "postId", - "reacter", - "group", - "poster", - "post" - ] - }, - { - "name": "groupPostReactionsByPosterId", - "qtype": "getMany", - "model": "GroupPostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "posterId", - "postId", - "reacter", - "group", - "poster", - "post" - ] - }, - { - "name": "groupPostCommentsByCommenterId", - "qtype": "getMany", - "model": "GroupPostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "postId", - "posterId", - "commenter", - "parent", - "group", - "post", - "poster" - ] - }, - { - "name": "groupPostCommentsByPosterId", - "qtype": "getMany", - "model": "GroupPostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "postId", - "posterId", - "commenter", - "parent", - "group", - "post", - "poster" - ] - }, - { - "name": "userDevices", - "qtype": "getMany", - "model": "UserDevice", - "selection": [ - "id", - "type", - "deviceId", - "pushToken", - "pushTokenRequested", - "data", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - { - "name": "notificationsByActorId", - "qtype": "getMany", - "model": "Notification", - "selection": [ - "id", - "actorId", - "recipientId", - "notificationType", - "notificationText", - "entityType", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actor", - "recipient" - ] - }, - { - "name": "notificationsByRecipientId", - "qtype": "getMany", - "model": "Notification", - "selection": [ - "id", - "actorId", - "recipientId", - "notificationType", - "notificationText", - "entityType", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actor", - "recipient" - ] - }, - { - "name": "notificationPreferences", - "qtype": "getMany", - "model": "NotificationPreference", - "selection": [ - "id", - "userId", - "emails", - "sms", - "notifications", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - { - "name": "userQuestionsByOwnerId", - "qtype": "getMany", - "model": "UserQuestion", - "selection": [ - "id", - "questionType", - "questionPrompt", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - }, - { - "name": "userAnswers", - "qtype": "getMany", - "model": "UserAnswer", - "selection": [ - "id", - "userId", - "location", - "text", - "numeric", - "image", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "questionId", - "ownerId", - "user", - "question", - "owner" - ] - }, - { - "name": "userAnswersByOwnerId", - "qtype": "getMany", - "model": "UserAnswer", - "selection": [ - "id", - "userId", - "location", - "text", - "numeric", - "image", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "questionId", - "ownerId", - "user", - "question", - "owner" - ] - }, - { - "name": "rewardLimitsByOwnerId", - "qtype": "getMany", - "model": "RewardLimit", - "selection": [ - "id", - "rewardAmount", - "rewardUnit", - "totalRewardLimit", - "weeklyLimit", - "dailyLimit", - "totalLimit", - "userTotalLimit", - "userWeeklyLimit", - "userDailyLimit", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - }, - "searchTsvRank" - ] - }, - "userByUsername": { - "model": "User", - "qtype": "getOne", - "properties": { - "username": { - "isNotNull": true, - "type": "String" - } - }, - "selection": [ - "id", - "username", - "displayName", - "profilePicture", - "searchTsv", - "type", - "roleTypeByType", - { - "name": "groupsByOwnerId", - "qtype": "getMany", - "model": "Group", - "selection": [ - "id", - "name", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - }, - { - "name": "connectedAccountsByOwnerId", - "qtype": "getMany", - "model": "ConnectedAccount", - "selection": [ - "id", - "ownerId", - "service", - "identifier", - "details", - "isVerified", - "owner" - ] - }, - { - "name": "emailsByOwnerId", - "qtype": "getMany", - "model": "Email", - "selection": [ - "id", - "ownerId", - "email", - "isVerified", - "isPrimary", - "owner" - ] - }, - { - "name": "phoneNumbersByOwnerId", - "qtype": "getMany", - "model": "PhoneNumber", - "selection": [ - "id", - "ownerId", - "cc", - "number", - "isVerified", - "isPrimary", - "owner" - ] - }, - { - "name": "cryptoAddressesByOwnerId", - "qtype": "getMany", - "model": "CryptoAddress", - "selection": [ - "id", - "ownerId", - "address", - "isVerified", - "isPrimary", - "owner" - ] - }, - { - "name": "authAccountsByOwnerId", - "qtype": "getMany", - "model": "AuthAccount", - "selection": [ - "id", - "ownerId", - "service", - "identifier", - "details", - "isVerified", - "owner" - ] - }, - "userProfile", - "userSetting", - "userCharacteristic", - { - "name": "userContacts", - "qtype": "getMany", - "model": "UserContact", - "selection": [ - "id", - "userId", - "vcf", - "fullName", - "emails", - "device", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - { - "name": "userConnectionsByRequesterId", - "qtype": "getMany", - "model": "UserConnection", - "selection": [ - "id", - "accepted", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "requesterId", - "responderId", - "requester", - "responder" - ] - }, - { - "name": "userConnectionsByResponderId", - "qtype": "getMany", - "model": "UserConnection", - "selection": [ - "id", - "accepted", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "requesterId", - "responderId", - "requester", - "responder" - ] - }, - { - "name": "locationsByOwnerId", - "qtype": "getMany", - "model": "Location", - "selection": [ - "id", - "name", - "location", - "bbox", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "locationType", - "owner", - "locationTypeByLocationType" - ] - }, - { - "name": "userLocations", - "qtype": "getMany", - "model": "UserLocation", - "selection": [ - "id", - "userId", - "name", - "kind", - "description", - "location", - "bbox", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - { - "name": "actionsByOwnerId", - "qtype": "getMany", - "model": "Action", - "selection": [ - "id", - "slug", - "photo", - "shareImage", - "title", - "titleObjectTemplate", - "url", - "description", - "discoveryHeader", - "discoveryDescription", - "notificationText", - "notificationObjectTemplate", - "enableNotifications", - "enableNotificationsText", - "search", - "location", - "locationRadius", - "timeRequired", - "startDate", - "endDate", - "approved", - "published", - "isPrivate", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "alreadyCompletedActionText", - "selfVerifiable", - "isRecurring", - "recurringInterval", - "oncePerObject", - "minimumGroupMembers", - "limitedToLocation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "ownerId", - "objectTypeId", - "rewardId", - "verifyRewardId", - "group", - "owner", - "objectType", - "reward", - "verifyReward", - "searchRank" - ] - }, - { - "name": "actionGoalsByOwnerId", - "qtype": "getMany", - "model": "ActionGoal", - "selection": [ - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "goalId", - "owner", - "action", - "goal" - ] - }, - { - "name": "actionVariationsByOwnerId", - "qtype": "getMany", - "model": "ActionVariation", - "selection": [ - "id", - "photo", - "title", - "description", - "income", - "gender", - "dob", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "owner", - "action" - ] - }, - { - "name": "actionItemsByOwnerId", - "qtype": "getMany", - "model": "ActionItem", - "selection": [ - "id", - "name", - "description", - "type", - "itemOrder", - "timeRequired", - "isRequired", - "notificationText", - "embedCode", - "url", - "media", - "location", - "locationRadius", - "rewardWeight", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "itemTypeId", - "ownerId", - "actionId", - "itemType", - "owner", - "action" - ] - }, - { - "name": "requiredActionsByOwnerId", - "qtype": "getMany", - "model": "RequiredAction", - "selection": [ - "id", - "actionOrder", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "requiredId", - "action", - "owner", - "required" - ] - }, - { - "name": "userActions", - "qtype": "getMany", - "model": "UserAction", - "selection": [ - "id", - "userId", - "actionStarted", - "complete", - "verified", - "verifiedDate", - "userRating", - "rejected", - "location", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "objectId", - "user", - "owner", - "action", - "object" - ] - }, - { - "name": "userActionsByOwnerId", - "qtype": "getMany", - "model": "UserAction", - "selection": [ - "id", - "userId", - "actionStarted", - "complete", - "verified", - "verifiedDate", - "userRating", - "rejected", - "location", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "objectId", - "user", - "owner", - "action", - "object" - ] - }, - { - "name": "userActionVerifications", - "qtype": "getMany", - "model": "UserActionVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "user", - "owner", - "action", - "userAction" - ] - }, - { - "name": "userActionVerificationsByOwnerId", - "qtype": "getMany", - "model": "UserActionVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "user", - "owner", - "action", - "userAction" - ] - }, - { - "name": "userActionItems", - "qtype": "getMany", - "model": "UserActionItem", - "selection": [ - "id", - "userId", - "text", - "media", - "location", - "bbox", - "data", - "complete", - "verified", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "user", - "owner", - "action", - "userAction", - "actionItem" - ] - }, - { - "name": "userActionItemsByOwnerId", - "qtype": "getMany", - "model": "UserActionItem", - "selection": [ - "id", - "userId", - "text", - "media", - "location", - "bbox", - "data", - "complete", - "verified", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "user", - "owner", - "action", - "userAction", - "actionItem" - ] - }, - { - "name": "userActionItemVerificationsByVerifierId", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - }, - { - "name": "userActionItemVerifications", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - }, - { - "name": "userActionItemVerificationsByOwnerId", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - }, - { - "name": "tracksByOwnerId", - "qtype": "getMany", - "model": "Track", - "selection": [ - "id", - "name", - "description", - "photo", - "icon", - "isPublished", - "isApproved", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "objectTypeId", - "owner", - "objectType" - ] - }, - { - "name": "trackActionsByOwnerId", - "qtype": "getMany", - "model": "TrackAction", - "selection": [ - "id", - "trackOrder", - "isRequired", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "trackId", - "action", - "owner", - "track" - ] - }, - { - "name": "objectsByOwnerId", - "qtype": "getMany", - "model": "Object", - "selection": [ - "id", - "name", - "description", - "photo", - "media", - "location", - "bbox", - "data", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "typeId", - "owner", - "type" - ] - }, - { - "name": "objectAttributesByOwnerId", - "qtype": "getMany", - "model": "ObjectAttribute", - "selection": [ - "id", - "description", - "location", - "text", - "numeric", - "image", - "data", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "valueId", - "objectId", - "objectTypeAttributeId", - "owner", - "value", - "object", - "objectTypeAttribute" - ] - }, - "organizationProfileByOrganizationId", - { - "name": "userPassActions", - "qtype": "getMany", - "model": "UserPassAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userSavedActions", - "qtype": "getMany", - "model": "UserSavedAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userViewedActions", - "qtype": "getMany", - "model": "UserViewedAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userActionReactionsByReacterId", - "qtype": "getMany", - "model": "UserActionReaction", - "selection": [ - "id", - "reacterId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userActionId", - "userId", - "actionId", - "reacter", - "userAction", - "user", - "action" - ] - }, - { - "name": "userActionReactions", - "qtype": "getMany", - "model": "UserActionReaction", - "selection": [ - "id", - "reacterId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userActionId", - "userId", - "actionId", - "reacter", - "userAction", - "user", - "action" - ] - }, - { - "name": "userMessagesBySenderId", - "qtype": "getMany", - "model": "UserMessage", - "selection": [ - "id", - "senderId", - "type", - "content", - "upload", - "received", - "receiverRead", - "senderReaction", - "receiverReaction", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "receiverId", - "sender", - "receiver" - ] - }, - { - "name": "userMessagesByReceiverId", - "qtype": "getMany", - "model": "UserMessage", - "selection": [ - "id", - "senderId", - "type", - "content", - "upload", - "received", - "receiverRead", - "senderReaction", - "receiverReaction", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "receiverId", - "sender", - "receiver" - ] - }, - { - "name": "messagesBySenderId", - "qtype": "getMany", - "model": "Message", - "selection": [ - "id", - "senderId", - "type", - "content", - "upload", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "sender", - "group" - ] - }, - { - "name": "postsByPosterId", - "qtype": "getMany", - "model": "Post", - "selection": [ - "id", - "posterId", - "type", - "flagged", - "image", - "url", - "location", - "data", - "taggedUserIds", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "poster" - ] - }, - { - "name": "postReactionsByReacterId", - "qtype": "getMany", - "model": "PostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "reacter", - "post", - "poster" - ] - }, - { - "name": "postReactionsByPosterId", - "qtype": "getMany", - "model": "PostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "reacter", - "post", - "poster" - ] - }, - { - "name": "postCommentsByCommenterId", - "qtype": "getMany", - "model": "PostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "commenter", - "parent", - "post", - "poster" - ] - }, - { - "name": "postCommentsByPosterId", - "qtype": "getMany", - "model": "PostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "commenter", - "parent", - "post", - "poster" - ] - }, - { - "name": "groupPostsByPosterId", - "qtype": "getMany", - "model": "GroupPost", - "selection": [ - "id", - "posterId", - "type", - "flagged", - "image", - "url", - "location", - "data", - "taggedUserIds", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "poster", - "group" - ] - }, - { - "name": "groupPostReactionsByReacterId", - "qtype": "getMany", - "model": "GroupPostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "posterId", - "postId", - "reacter", - "group", - "poster", - "post" - ] - }, - { - "name": "groupPostReactionsByPosterId", - "qtype": "getMany", - "model": "GroupPostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "posterId", - "postId", - "reacter", - "group", - "poster", - "post" - ] - }, - { - "name": "groupPostCommentsByCommenterId", - "qtype": "getMany", - "model": "GroupPostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "postId", - "posterId", - "commenter", - "parent", - "group", - "post", - "poster" - ] - }, - { - "name": "groupPostCommentsByPosterId", - "qtype": "getMany", - "model": "GroupPostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "postId", - "posterId", - "commenter", - "parent", - "group", - "post", - "poster" - ] - }, - { - "name": "userDevices", - "qtype": "getMany", - "model": "UserDevice", - "selection": [ - "id", - "type", - "deviceId", - "pushToken", - "pushTokenRequested", - "data", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - { - "name": "notificationsByActorId", - "qtype": "getMany", - "model": "Notification", - "selection": [ - "id", - "actorId", - "recipientId", - "notificationType", - "notificationText", - "entityType", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actor", - "recipient" - ] - }, - { - "name": "notificationsByRecipientId", - "qtype": "getMany", - "model": "Notification", - "selection": [ - "id", - "actorId", - "recipientId", - "notificationType", - "notificationText", - "entityType", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actor", - "recipient" - ] - }, - { - "name": "notificationPreferences", - "qtype": "getMany", - "model": "NotificationPreference", - "selection": [ - "id", - "userId", - "emails", - "sms", - "notifications", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - { - "name": "userQuestionsByOwnerId", - "qtype": "getMany", - "model": "UserQuestion", - "selection": [ - "id", - "questionType", - "questionPrompt", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - }, - { - "name": "userAnswers", - "qtype": "getMany", - "model": "UserAnswer", - "selection": [ - "id", - "userId", - "location", - "text", - "numeric", - "image", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "questionId", - "ownerId", - "user", - "question", - "owner" - ] - }, - { - "name": "userAnswersByOwnerId", - "qtype": "getMany", - "model": "UserAnswer", - "selection": [ - "id", - "userId", - "location", - "text", - "numeric", - "image", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "questionId", - "ownerId", - "user", - "question", - "owner" - ] - }, - { - "name": "rewardLimitsByOwnerId", - "qtype": "getMany", - "model": "RewardLimit", - "selection": [ - "id", - "rewardAmount", - "rewardUnit", - "totalRewardLimit", - "weeklyLimit", - "dailyLimit", - "totalLimit", - "userTotalLimit", - "userWeeklyLimit", - "userDailyLimit", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - }, - "searchTsvRank" - ] - }, - "zipCode": { - "model": "ZipCode", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "zip", - "location", - "bbox", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt" - ] - }, - "zipCodeByZip": { - "model": "ZipCode", - "qtype": "getOne", - "properties": { - "zip": { - "isNotNull": true, - "type": "Int" - } - }, - "selection": [ - "id", - "zip", - "location", - "bbox", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt" - ] - }, - "authAccount": { - "model": "AuthAccount", - "qtype": "getOne", - "properties": { - "id": { - "isNotNull": true, - "type": "UUID" - } - }, - "selection": [ - "id", - "ownerId", - "service", - "identifier", - "details", - "isVerified", - "owner" - ] - }, - "authAccountByServiceAndIdentifier": { - "model": "AuthAccount", - "qtype": "getOne", - "properties": { - "service": { - "isNotNull": true, - "type": "String" - }, - "identifier": { - "isNotNull": true, - "type": "String" - } - }, - "selection": [ - "id", - "ownerId", - "service", - "identifier", - "details", - "isVerified", - "owner" - ] - }, - "getCurrentUser": { - "model": "User", - "qtype": "getOne", - "properties": {}, - "selection": [ - "id", - "username", - "displayName", - "profilePicture", - "searchTsv", - "type", - "roleTypeByType", - { - "name": "groupsByOwnerId", - "qtype": "getMany", - "model": "Group", - "selection": [ - "id", - "name", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - }, - { - "name": "connectedAccountsByOwnerId", - "qtype": "getMany", - "model": "ConnectedAccount", - "selection": [ - "id", - "ownerId", - "service", - "identifier", - "details", - "isVerified", - "owner" - ] - }, - { - "name": "emailsByOwnerId", - "qtype": "getMany", - "model": "Email", - "selection": [ - "id", - "ownerId", - "email", - "isVerified", - "isPrimary", - "owner" - ] - }, - { - "name": "phoneNumbersByOwnerId", - "qtype": "getMany", - "model": "PhoneNumber", - "selection": [ - "id", - "ownerId", - "cc", - "number", - "isVerified", - "isPrimary", - "owner" - ] - }, - { - "name": "cryptoAddressesByOwnerId", - "qtype": "getMany", - "model": "CryptoAddress", - "selection": [ - "id", - "ownerId", - "address", - "isVerified", - "isPrimary", - "owner" - ] - }, - { - "name": "authAccountsByOwnerId", - "qtype": "getMany", - "model": "AuthAccount", - "selection": [ - "id", - "ownerId", - "service", - "identifier", - "details", - "isVerified", - "owner" - ] - }, - "userProfile", - "userSetting", - "userCharacteristic", - { - "name": "userContacts", - "qtype": "getMany", - "model": "UserContact", - "selection": [ - "id", - "userId", - "vcf", - "fullName", - "emails", - "device", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - { - "name": "userConnectionsByRequesterId", - "qtype": "getMany", - "model": "UserConnection", - "selection": [ - "id", - "accepted", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "requesterId", - "responderId", - "requester", - "responder" - ] - }, - { - "name": "userConnectionsByResponderId", - "qtype": "getMany", - "model": "UserConnection", - "selection": [ - "id", - "accepted", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "requesterId", - "responderId", - "requester", - "responder" - ] - }, - { - "name": "locationsByOwnerId", - "qtype": "getMany", - "model": "Location", - "selection": [ - "id", - "name", - "location", - "bbox", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "locationType", - "owner", - "locationTypeByLocationType" - ] - }, - { - "name": "userLocations", - "qtype": "getMany", - "model": "UserLocation", - "selection": [ - "id", - "userId", - "name", - "kind", - "description", - "location", - "bbox", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - { - "name": "actionsByOwnerId", - "qtype": "getMany", - "model": "Action", - "selection": [ - "id", - "slug", - "photo", - "shareImage", - "title", - "titleObjectTemplate", - "url", - "description", - "discoveryHeader", - "discoveryDescription", - "notificationText", - "notificationObjectTemplate", - "enableNotifications", - "enableNotificationsText", - "search", - "location", - "locationRadius", - "timeRequired", - "startDate", - "endDate", - "approved", - "published", - "isPrivate", - "rewardAmount", - "activityFeedText", - "callToAction", - "completedActionText", - "alreadyCompletedActionText", - "selfVerifiable", - "isRecurring", - "recurringInterval", - "oncePerObject", - "minimumGroupMembers", - "limitedToLocation", - "tags", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "ownerId", - "objectTypeId", - "rewardId", - "verifyRewardId", - "group", - "owner", - "objectType", - "reward", - "verifyReward", - "searchRank" - ] - }, - { - "name": "actionGoalsByOwnerId", - "qtype": "getMany", - "model": "ActionGoal", - "selection": [ - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "goalId", - "owner", - "action", - "goal" - ] - }, - { - "name": "actionVariationsByOwnerId", - "qtype": "getMany", - "model": "ActionVariation", - "selection": [ - "id", - "photo", - "title", - "description", - "income", - "gender", - "dob", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "owner", - "action" - ] - }, - { - "name": "actionItemsByOwnerId", - "qtype": "getMany", - "model": "ActionItem", - "selection": [ - "id", - "name", - "description", - "type", - "itemOrder", - "timeRequired", - "isRequired", - "notificationText", - "embedCode", - "url", - "media", - "location", - "locationRadius", - "rewardWeight", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "itemTypeId", - "ownerId", - "actionId", - "itemType", - "owner", - "action" - ] - }, - { - "name": "requiredActionsByOwnerId", - "qtype": "getMany", - "model": "RequiredAction", - "selection": [ - "id", - "actionOrder", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "requiredId", - "action", - "owner", - "required" - ] - }, - { - "name": "userActions", - "qtype": "getMany", - "model": "UserAction", - "selection": [ - "id", - "userId", - "actionStarted", - "complete", - "verified", - "verifiedDate", - "userRating", - "rejected", - "location", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "objectId", - "user", - "owner", - "action", - "object" - ] - }, - { - "name": "userActionsByOwnerId", - "qtype": "getMany", - "model": "UserAction", - "selection": [ - "id", - "userId", - "actionStarted", - "complete", - "verified", - "verifiedDate", - "userRating", - "rejected", - "location", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "objectId", - "user", - "owner", - "action", - "object" - ] - }, - { - "name": "userActionVerifications", - "qtype": "getMany", - "model": "UserActionVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "user", - "owner", - "action", - "userAction" - ] - }, - { - "name": "userActionVerificationsByOwnerId", - "qtype": "getMany", - "model": "UserActionVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "user", - "owner", - "action", - "userAction" - ] - }, - { - "name": "userActionItems", - "qtype": "getMany", - "model": "UserActionItem", - "selection": [ - "id", - "userId", - "text", - "media", - "location", - "bbox", - "data", - "complete", - "verified", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "user", - "owner", - "action", - "userAction", - "actionItem" - ] - }, - { - "name": "userActionItemsByOwnerId", - "qtype": "getMany", - "model": "UserActionItem", - "selection": [ - "id", - "userId", - "text", - "media", - "location", - "bbox", - "data", - "complete", - "verified", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "user", - "owner", - "action", - "userAction", - "actionItem" - ] - }, - { - "name": "userActionItemVerificationsByVerifierId", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - }, - { - "name": "userActionItemVerifications", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - }, - { - "name": "userActionItemVerificationsByOwnerId", - "qtype": "getMany", - "model": "UserActionItemVerification", - "selection": [ - "id", - "verifierId", - "verified", - "rejected", - "notes", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userId", - "ownerId", - "actionId", - "userActionId", - "actionItemId", - "userActionItemId", - "verifier", - "user", - "owner", - "action", - "userAction", - "actionItem", - "userActionItem" - ] - }, - { - "name": "tracksByOwnerId", - "qtype": "getMany", - "model": "Track", - "selection": [ - "id", - "name", - "description", - "photo", - "icon", - "isPublished", - "isApproved", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "objectTypeId", - "owner", - "objectType" - ] - }, - { - "name": "trackActionsByOwnerId", - "qtype": "getMany", - "model": "TrackAction", - "selection": [ - "id", - "trackOrder", - "isRequired", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "ownerId", - "trackId", - "action", - "owner", - "track" - ] - }, - { - "name": "objectsByOwnerId", - "qtype": "getMany", - "model": "Object", - "selection": [ - "id", - "name", - "description", - "photo", - "media", - "location", - "bbox", - "data", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "typeId", - "owner", - "type" - ] - }, - { - "name": "objectAttributesByOwnerId", - "qtype": "getMany", - "model": "ObjectAttribute", - "selection": [ - "id", - "description", - "location", - "text", - "numeric", - "image", - "data", - "ownerId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "valueId", - "objectId", - "objectTypeAttributeId", - "owner", - "value", - "object", - "objectTypeAttribute" - ] - }, - "organizationProfileByOrganizationId", - { - "name": "userPassActions", - "qtype": "getMany", - "model": "UserPassAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userSavedActions", - "qtype": "getMany", - "model": "UserSavedAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userViewedActions", - "qtype": "getMany", - "model": "UserViewedAction", - "selection": [ - "id", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actionId", - "user", - "action" - ] - }, - { - "name": "userActionReactionsByReacterId", - "qtype": "getMany", - "model": "UserActionReaction", - "selection": [ - "id", - "reacterId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userActionId", - "userId", - "actionId", - "reacter", - "userAction", - "user", - "action" - ] - }, - { - "name": "userActionReactions", - "qtype": "getMany", - "model": "UserActionReaction", - "selection": [ - "id", - "reacterId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "userActionId", - "userId", - "actionId", - "reacter", - "userAction", - "user", - "action" - ] - }, - { - "name": "userMessagesBySenderId", - "qtype": "getMany", - "model": "UserMessage", - "selection": [ - "id", - "senderId", - "type", - "content", - "upload", - "received", - "receiverRead", - "senderReaction", - "receiverReaction", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "receiverId", - "sender", - "receiver" - ] - }, - { - "name": "userMessagesByReceiverId", - "qtype": "getMany", - "model": "UserMessage", - "selection": [ - "id", - "senderId", - "type", - "content", - "upload", - "received", - "receiverRead", - "senderReaction", - "receiverReaction", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "receiverId", - "sender", - "receiver" - ] - }, - { - "name": "messagesBySenderId", - "qtype": "getMany", - "model": "Message", - "selection": [ - "id", - "senderId", - "type", - "content", - "upload", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "sender", - "group" - ] - }, - { - "name": "postsByPosterId", - "qtype": "getMany", - "model": "Post", - "selection": [ - "id", - "posterId", - "type", - "flagged", - "image", - "url", - "location", - "data", - "taggedUserIds", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "poster" - ] - }, - { - "name": "postReactionsByReacterId", - "qtype": "getMany", - "model": "PostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "reacter", - "post", - "poster" - ] - }, - { - "name": "postReactionsByPosterId", - "qtype": "getMany", - "model": "PostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "reacter", - "post", - "poster" - ] - }, - { - "name": "postCommentsByCommenterId", - "qtype": "getMany", - "model": "PostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "commenter", - "parent", - "post", - "poster" - ] - }, - { - "name": "postCommentsByPosterId", - "qtype": "getMany", - "model": "PostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "postId", - "posterId", - "commenter", - "parent", - "post", - "poster" - ] - }, - { - "name": "groupPostsByPosterId", - "qtype": "getMany", - "model": "GroupPost", - "selection": [ - "id", - "posterId", - "type", - "flagged", - "image", - "url", - "location", - "data", - "taggedUserIds", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "poster", - "group" - ] - }, - { - "name": "groupPostReactionsByReacterId", - "qtype": "getMany", - "model": "GroupPostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "posterId", - "postId", - "reacter", - "group", - "poster", - "post" - ] - }, - { - "name": "groupPostReactionsByPosterId", - "qtype": "getMany", - "model": "GroupPostReaction", - "selection": [ - "id", - "reacterId", - "type", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "posterId", - "postId", - "reacter", - "group", - "poster", - "post" - ] - }, - { - "name": "groupPostCommentsByCommenterId", - "qtype": "getMany", - "model": "GroupPostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "postId", - "posterId", - "commenter", - "parent", - "group", - "post", - "poster" - ] - }, - { - "name": "groupPostCommentsByPosterId", - "qtype": "getMany", - "model": "GroupPostComment", - "selection": [ - "id", - "commenterId", - "parentId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "groupId", - "postId", - "posterId", - "commenter", - "parent", - "group", - "post", - "poster" - ] - }, - { - "name": "userDevices", - "qtype": "getMany", - "model": "UserDevice", - "selection": [ - "id", - "type", - "deviceId", - "pushToken", - "pushTokenRequested", - "data", - "userId", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - { - "name": "notificationsByActorId", - "qtype": "getMany", - "model": "Notification", - "selection": [ - "id", - "actorId", - "recipientId", - "notificationType", - "notificationText", - "entityType", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actor", - "recipient" - ] - }, - { - "name": "notificationsByRecipientId", - "qtype": "getMany", - "model": "Notification", - "selection": [ - "id", - "actorId", - "recipientId", - "notificationType", - "notificationText", - "entityType", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "actor", - "recipient" - ] - }, - { - "name": "notificationPreferences", - "qtype": "getMany", - "model": "NotificationPreference", - "selection": [ - "id", - "userId", - "emails", - "sms", - "notifications", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "user" - ] - }, - { - "name": "userQuestionsByOwnerId", - "qtype": "getMany", - "model": "UserQuestion", - "selection": [ - "id", - "questionType", - "questionPrompt", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - }, - { - "name": "userAnswers", - "qtype": "getMany", - "model": "UserAnswer", - "selection": [ - "id", - "userId", - "location", - "text", - "numeric", - "image", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "questionId", - "ownerId", - "user", - "question", - "owner" - ] - }, - { - "name": "userAnswersByOwnerId", - "qtype": "getMany", - "model": "UserAnswer", - "selection": [ - "id", - "userId", - "location", - "text", - "numeric", - "image", - "data", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "questionId", - "ownerId", - "user", - "question", - "owner" - ] - }, - { - "name": "rewardLimitsByOwnerId", - "qtype": "getMany", - "model": "RewardLimit", - "selection": [ - "id", - "rewardAmount", - "rewardUnit", - "totalRewardLimit", - "weeklyLimit", - "dailyLimit", - "totalLimit", - "userTotalLimit", - "userWeeklyLimit", - "userDailyLimit", - "createdBy", - "updatedBy", - "createdAt", - "updatedAt", - "ownerId", - "owner" - ] - }, - "searchTsvRank" - ] - }, - "_meta": { - "model": "Metaschema", - "qtype": "getOne", - "properties": {}, - "selection": [{ - "name": "tables", - "qtype": "getOne", - "model": "MetaschemaTable", - "properties": {}, - "selection": [ - "name", - "query", - "inflection", - "relations", - "fields", - "constraints", - "foreignKeyConstraints", - "primaryKeyConstraints", - "uniqueConstraints", - "checkConstraints", - "exclusionConstraints" - ] - }] - }, - "createActionGoal": { - "qtype": "mutation", - "mutationType": "create", - "model": "ActionGoal", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateActionGoalInput", - "properties": { - "actionGoal": { - "name": "actionGoal", - "isNotNull": true, - "properties": { - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "isNotNull": true, - "type": "UUID" - }, - "goalId": { - "name": "goalId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateActionGoalPayload", - "ofType": null - } - }, - "createActionItemType": { - "qtype": "mutation", - "mutationType": "create", - "model": "ActionItemType", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateActionItemTypeInput", - "properties": { - "actionItemType": { - "name": "actionItemType", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "Int" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "image": { - "name": "image", - "type": "JSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "imageUpload": { - "name": "imageUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateActionItemTypePayload", - "ofType": null - } - }, - "createActionItem": { - "qtype": "mutation", - "mutationType": "create", - "model": "ActionItem", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateActionItemInput", - "properties": { - "actionItem": { - "name": "actionItem", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "type": { - "name": "type", - "type": "String" - }, - "itemOrder": { - "name": "itemOrder", - "type": "Int" - }, - "timeRequired": { - "name": "timeRequired", - "properties": { - "seconds": { - "name": "seconds", - "type": "Float" - }, - "minutes": { - "name": "minutes", - "type": "Int" - }, - "hours": { - "name": "hours", - "type": "Int" - }, - "days": { - "name": "days", - "type": "Int" - }, - "months": { - "name": "months", - "type": "Int" - }, - "years": { - "name": "years", - "type": "Int" - } - } - }, - "isRequired": { - "name": "isRequired", - "type": "Boolean" - }, - "notificationText": { - "name": "notificationText", - "type": "String" - }, - "embedCode": { - "name": "embedCode", - "type": "String" - }, - "url": { - "name": "url", - "type": "String" - }, - "media": { - "name": "media", - "type": "JSON" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "locationRadius": { - "name": "locationRadius", - "type": "BigFloat" - }, - "rewardWeight": { - "name": "rewardWeight", - "type": "BigFloat" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "itemTypeId": { - "name": "itemTypeId", - "type": "Int" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "isNotNull": true, - "type": "UUID" - }, - "mediaUpload": { - "name": "mediaUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateActionItemPayload", - "ofType": null - } - }, - "createActionVariation": { - "qtype": "mutation", - "mutationType": "create", - "model": "ActionVariation", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateActionVariationInput", - "properties": { - "actionVariation": { - "name": "actionVariation", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "photo": { - "name": "photo", - "type": "JSON" - }, - "title": { - "name": "title", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "income": { - "name": "income", - "isArray": true, - "type": "BigFloat" - }, - "gender": { - "name": "gender", - "isArray": true, - "type": "String" - }, - "dob": { - "name": "dob", - "isArray": true, - "type": "Date" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "isNotNull": true, - "type": "UUID" - }, - "photoUpload": { - "name": "photoUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateActionVariationPayload", - "ofType": null - } - }, - "createAction": { - "qtype": "mutation", - "mutationType": "create", - "model": "Action", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateActionInput", - "properties": { - "action": { - "name": "action", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "slug": { - "name": "slug", - "type": "String" - }, - "photo": { - "name": "photo", - "type": "JSON" - }, - "shareImage": { - "name": "shareImage", - "type": "JSON" - }, - "title": { - "name": "title", - "type": "String" - }, - "titleObjectTemplate": { - "name": "titleObjectTemplate", - "type": "String" - }, - "url": { - "name": "url", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "discoveryHeader": { - "name": "discoveryHeader", - "type": "String" - }, - "discoveryDescription": { - "name": "discoveryDescription", - "type": "String" - }, - "notificationText": { - "name": "notificationText", - "type": "String" - }, - "notificationObjectTemplate": { - "name": "notificationObjectTemplate", - "type": "String" - }, - "enableNotifications": { - "name": "enableNotifications", - "type": "Boolean" - }, - "enableNotificationsText": { - "name": "enableNotificationsText", - "type": "String" - }, - "search": { - "name": "search", - "type": "FullText" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "locationRadius": { - "name": "locationRadius", - "type": "BigFloat" - }, - "timeRequired": { - "name": "timeRequired", - "properties": { - "seconds": { - "name": "seconds", - "type": "Float" - }, - "minutes": { - "name": "minutes", - "type": "Int" - }, - "hours": { - "name": "hours", - "type": "Int" - }, - "days": { - "name": "days", - "type": "Int" - }, - "months": { - "name": "months", - "type": "Int" - }, - "years": { - "name": "years", - "type": "Int" - } - } - }, - "startDate": { - "name": "startDate", - "type": "Datetime" - }, - "endDate": { - "name": "endDate", - "type": "Datetime" - }, - "approved": { - "name": "approved", - "type": "Boolean" - }, - "published": { - "name": "published", - "type": "Boolean" - }, - "isPrivate": { - "name": "isPrivate", - "type": "Boolean" - }, - "rewardAmount": { - "name": "rewardAmount", - "type": "BigFloat" - }, - "activityFeedText": { - "name": "activityFeedText", - "type": "String" - }, - "callToAction": { - "name": "callToAction", - "type": "String" - }, - "completedActionText": { - "name": "completedActionText", - "type": "String" - }, - "alreadyCompletedActionText": { - "name": "alreadyCompletedActionText", - "type": "String" - }, - "selfVerifiable": { - "name": "selfVerifiable", - "type": "Boolean" - }, - "isRecurring": { - "name": "isRecurring", - "type": "Boolean" - }, - "recurringInterval": { - "name": "recurringInterval", - "properties": { - "seconds": { - "name": "seconds", - "type": "Float" - }, - "minutes": { - "name": "minutes", - "type": "Int" - }, - "hours": { - "name": "hours", - "type": "Int" - }, - "days": { - "name": "days", - "type": "Int" - }, - "months": { - "name": "months", - "type": "Int" - }, - "years": { - "name": "years", - "type": "Int" - } - } - }, - "oncePerObject": { - "name": "oncePerObject", - "type": "Boolean" - }, - "minimumGroupMembers": { - "name": "minimumGroupMembers", - "type": "Int" - }, - "limitedToLocation": { - "name": "limitedToLocation", - "type": "Boolean" - }, - "tags": { - "name": "tags", - "isArray": true, - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "groupId": { - "name": "groupId", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "isNotNull": true, - "type": "UUID" - }, - "objectTypeId": { - "name": "objectTypeId", - "type": "Int" - }, - "rewardId": { - "name": "rewardId", - "type": "UUID" - }, - "verifyRewardId": { - "name": "verifyRewardId", - "type": "UUID" - }, - "photoUpload": { - "name": "photoUpload", - "type": "Upload" - }, - "shareImageUpload": { - "name": "shareImageUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateActionPayload", - "ofType": null - } - }, - "createConnectedAccount": { - "qtype": "mutation", - "mutationType": "create", - "model": "ConnectedAccount", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateConnectedAccountInput", - "properties": { - "connectedAccount": { - "name": "connectedAccount", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "service": { - "name": "service", - "isNotNull": true, - "type": "String" - }, - "identifier": { - "name": "identifier", - "isNotNull": true, - "type": "String" - }, - "details": { - "name": "details", - "isNotNull": true, - "type": "JSON" - }, - "isVerified": { - "name": "isVerified", - "type": "Boolean" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateConnectedAccountPayload", - "ofType": null - } - }, - "createCryptoAddress": { - "qtype": "mutation", - "mutationType": "create", - "model": "CryptoAddress", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateCryptoAddressInput", - "properties": { - "cryptoAddress": { - "name": "cryptoAddress", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "address": { - "name": "address", - "isNotNull": true, - "type": "String" - }, - "isVerified": { - "name": "isVerified", - "type": "Boolean" - }, - "isPrimary": { - "name": "isPrimary", - "type": "Boolean" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateCryptoAddressPayload", - "ofType": null - } - }, - "createEmail": { - "qtype": "mutation", - "mutationType": "create", - "model": "Email", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateEmailInput", - "properties": { - "email": { - "name": "email", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "email": { - "name": "email", - "isNotNull": true, - "type": "String" - }, - "isVerified": { - "name": "isVerified", - "type": "Boolean" - }, - "isPrimary": { - "name": "isPrimary", - "type": "Boolean" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateEmailPayload", - "ofType": null - } - }, - "createGoalExplanation": { - "qtype": "mutation", - "mutationType": "create", - "model": "GoalExplanation", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateGoalExplanationInput", - "properties": { - "goalExplanation": { - "name": "goalExplanation", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "audio": { - "name": "audio", - "type": "JSON" - }, - "audioDuration": { - "name": "audioDuration", - "properties": { - "seconds": { - "name": "seconds", - "type": "Float" - }, - "minutes": { - "name": "minutes", - "type": "Int" - }, - "hours": { - "name": "hours", - "type": "Int" - }, - "days": { - "name": "days", - "type": "Int" - }, - "months": { - "name": "months", - "type": "Int" - }, - "years": { - "name": "years", - "type": "Int" - } - } - }, - "explanationTitle": { - "name": "explanationTitle", - "type": "String" - }, - "explanation": { - "name": "explanation", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "goalId": { - "name": "goalId", - "isNotNull": true, - "type": "UUID" - }, - "audioUpload": { - "name": "audioUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateGoalExplanationPayload", - "ofType": null - } - }, - "createGoal": { - "qtype": "mutation", - "mutationType": "create", - "model": "Goal", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateGoalInput", - "properties": { - "goal": { - "name": "goal", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "slug": { - "name": "slug", - "type": "String" - }, - "shortName": { - "name": "shortName", - "type": "String" - }, - "icon": { - "name": "icon", - "type": "String" - }, - "subHead": { - "name": "subHead", - "type": "String" - }, - "tags": { - "name": "tags", - "isArray": true, - "type": "String" - }, - "search": { - "name": "search", - "type": "FullText" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateGoalPayload", - "ofType": null - } - }, - "createGroupPostComment": { - "qtype": "mutation", - "mutationType": "create", - "model": "GroupPostComment", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateGroupPostCommentInput", - "properties": { - "groupPostComment": { - "name": "groupPostComment", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "commenterId": { - "name": "commenterId", - "type": "UUID" - }, - "parentId": { - "name": "parentId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "groupId": { - "name": "groupId", - "type": "UUID" - }, - "postId": { - "name": "postId", - "isNotNull": true, - "type": "UUID" - }, - "posterId": { - "name": "posterId", - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateGroupPostCommentPayload", - "ofType": null - } - }, - "createGroupPostReaction": { - "qtype": "mutation", - "mutationType": "create", - "model": "GroupPostReaction", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateGroupPostReactionInput", - "properties": { - "groupPostReaction": { - "name": "groupPostReaction", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "reacterId": { - "name": "reacterId", - "type": "UUID" - }, - "type": { - "name": "type", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "groupId": { - "name": "groupId", - "type": "UUID" - }, - "posterId": { - "name": "posterId", - "type": "UUID" - }, - "postId": { - "name": "postId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateGroupPostReactionPayload", - "ofType": null - } - }, - "createGroupPost": { - "qtype": "mutation", - "mutationType": "create", - "model": "GroupPost", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateGroupPostInput", - "properties": { - "groupPost": { - "name": "groupPost", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "posterId": { - "name": "posterId", - "type": "UUID" - }, - "type": { - "name": "type", - "type": "String" - }, - "flagged": { - "name": "flagged", - "type": "Boolean" - }, - "image": { - "name": "image", - "type": "JSON" - }, - "url": { - "name": "url", - "type": "String" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "data": { - "name": "data", - "type": "JSON" - }, - "taggedUserIds": { - "name": "taggedUserIds", - "isArray": true, - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "groupId": { - "name": "groupId", - "isNotNull": true, - "type": "UUID" - }, - "imageUpload": { - "name": "imageUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateGroupPostPayload", - "ofType": null - } - }, - "createGroup": { - "qtype": "mutation", - "mutationType": "create", - "model": "Group", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateGroupInput", - "properties": { - "group": { - "name": "group", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateGroupPayload", - "ofType": null - } - }, - "createLocationType": { - "qtype": "mutation", - "mutationType": "create", - "model": "LocationType", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateLocationTypeInput", - "properties": { - "locationType": { - "name": "locationType", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateLocationTypePayload", - "ofType": null - } - }, - "createLocation": { - "qtype": "mutation", - "mutationType": "create", - "model": "Location", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateLocationInput", - "properties": { - "location": { - "name": "location", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "bbox": { - "name": "bbox", - "type": "GeoJSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "ownerId": { - "name": "ownerId", - "isNotNull": true, - "type": "UUID" - }, - "locationType": { - "name": "locationType", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateLocationPayload", - "ofType": null - } - }, - "createMessageGroup": { - "qtype": "mutation", - "mutationType": "create", - "model": "MessageGroup", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateMessageGroupInput", - "properties": { - "messageGroup": { - "name": "messageGroup", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "memberIds": { - "name": "memberIds", - "isArray": true, - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateMessageGroupPayload", - "ofType": null - } - }, - "createMessage": { - "qtype": "mutation", - "mutationType": "create", - "model": "Message", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateMessageInput", - "properties": { - "message": { - "name": "message", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "senderId": { - "name": "senderId", - "type": "UUID" - }, - "type": { - "name": "type", - "type": "String" - }, - "content": { - "name": "content", - "type": "JSON" - }, - "upload": { - "name": "upload", - "type": "JSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "groupId": { - "name": "groupId", - "isNotNull": true, - "type": "UUID" - }, - "uploadUpload": { - "name": "uploadUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateMessagePayload", - "ofType": null - } - }, - "createNewsArticle": { - "qtype": "mutation", - "mutationType": "create", - "model": "NewsArticle", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateNewsArticleInput", - "properties": { - "newsArticle": { - "name": "newsArticle", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "link": { - "name": "link", - "type": "String" - }, - "publishedAt": { - "name": "publishedAt", - "type": "Datetime" - }, - "photo": { - "name": "photo", - "type": "JSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "photoUpload": { - "name": "photoUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateNewsArticlePayload", - "ofType": null - } - }, - "createNotificationPreference": { - "qtype": "mutation", - "mutationType": "create", - "model": "NotificationPreference", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateNotificationPreferenceInput", - "properties": { - "notificationPreference": { - "name": "notificationPreference", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "emails": { - "name": "emails", - "type": "Boolean" - }, - "sms": { - "name": "sms", - "type": "Boolean" - }, - "notifications": { - "name": "notifications", - "type": "Boolean" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateNotificationPreferencePayload", - "ofType": null - } - }, - "createNotification": { - "qtype": "mutation", - "mutationType": "create", - "model": "Notification", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateNotificationInput", - "properties": { - "notification": { - "name": "notification", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "actorId": { - "name": "actorId", - "type": "UUID" - }, - "recipientId": { - "name": "recipientId", - "type": "UUID" - }, - "notificationType": { - "name": "notificationType", - "type": "String" - }, - "notificationText": { - "name": "notificationText", - "type": "String" - }, - "entityType": { - "name": "entityType", - "type": "String" - }, - "data": { - "name": "data", - "type": "JSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateNotificationPayload", - "ofType": null - } - }, - "createObjectAttribute": { - "qtype": "mutation", - "mutationType": "create", - "model": "ObjectAttribute", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateObjectAttributeInput", - "properties": { - "objectAttribute": { - "name": "objectAttribute", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "description": { - "name": "description", - "type": "String" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "text": { - "name": "text", - "type": "String" - }, - "numeric": { - "name": "numeric", - "type": "BigFloat" - }, - "image": { - "name": "image", - "type": "JSON" - }, - "data": { - "name": "data", - "type": "JSON" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "valueId": { - "name": "valueId", - "type": "UUID" - }, - "objectId": { - "name": "objectId", - "isNotNull": true, - "type": "UUID" - }, - "objectTypeAttributeId": { - "name": "objectTypeAttributeId", - "isNotNull": true, - "type": "UUID" - }, - "imageUpload": { - "name": "imageUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateObjectAttributePayload", - "ofType": null - } - }, - "createObjectTypeAttribute": { - "qtype": "mutation", - "mutationType": "create", - "model": "ObjectTypeAttribute", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateObjectTypeAttributeInput", - "properties": { - "objectTypeAttribute": { - "name": "objectTypeAttribute", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "label": { - "name": "label", - "type": "String" - }, - "type": { - "name": "type", - "type": "String" - }, - "unit": { - "name": "unit", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "min": { - "name": "min", - "type": "Int" - }, - "max": { - "name": "max", - "type": "Int" - }, - "pattern": { - "name": "pattern", - "type": "String" - }, - "isRequired": { - "name": "isRequired", - "type": "Boolean" - }, - "attrOrder": { - "name": "attrOrder", - "type": "Int" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "objectTypeId": { - "name": "objectTypeId", - "isNotNull": true, - "type": "Int" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateObjectTypeAttributePayload", - "ofType": null - } - }, - "createObjectTypeValue": { - "qtype": "mutation", - "mutationType": "create", - "model": "ObjectTypeValue", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateObjectTypeValueInput", - "properties": { - "objectTypeValue": { - "name": "objectTypeValue", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "photo": { - "name": "photo", - "type": "JSON" - }, - "icon": { - "name": "icon", - "type": "JSON" - }, - "type": { - "name": "type", - "type": "String" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "text": { - "name": "text", - "type": "String" - }, - "numeric": { - "name": "numeric", - "type": "BigFloat" - }, - "image": { - "name": "image", - "type": "JSON" - }, - "data": { - "name": "data", - "type": "JSON" - }, - "valueOrder": { - "name": "valueOrder", - "type": "Int" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "attrId": { - "name": "attrId", - "isNotNull": true, - "type": "UUID" - }, - "photoUpload": { - "name": "photoUpload", - "type": "Upload" - }, - "iconUpload": { - "name": "iconUpload", - "type": "Upload" - }, - "imageUpload": { - "name": "imageUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateObjectTypeValuePayload", - "ofType": null - } - }, - "createObjectType": { - "qtype": "mutation", - "mutationType": "create", - "model": "ObjectType", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateObjectTypeInput", - "properties": { - "objectType": { - "name": "objectType", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "Int" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "photo": { - "name": "photo", - "type": "JSON" - }, - "icon": { - "name": "icon", - "type": "JSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "photoUpload": { - "name": "photoUpload", - "type": "Upload" - }, - "iconUpload": { - "name": "iconUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateObjectTypePayload", - "ofType": null - } - }, - "createObject": { - "qtype": "mutation", - "mutationType": "create", - "model": "Object", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateObjectInput", - "properties": { - "object": { - "name": "object", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "photo": { - "name": "photo", - "type": "JSON" - }, - "media": { - "name": "media", - "type": "JSON" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "bbox": { - "name": "bbox", - "type": "GeoJSON" - }, - "data": { - "name": "data", - "type": "JSON" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "typeId": { - "name": "typeId", - "isNotNull": true, - "type": "Int" - }, - "photoUpload": { - "name": "photoUpload", - "type": "Upload" - }, - "mediaUpload": { - "name": "mediaUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateObjectPayload", - "ofType": null - } - }, - "createOrganizationProfile": { - "qtype": "mutation", - "mutationType": "create", - "model": "OrganizationProfile", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateOrganizationProfileInput", - "properties": { - "organizationProfile": { - "name": "organizationProfile", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "headerImage": { - "name": "headerImage", - "type": "JSON" - }, - "profilePicture": { - "name": "profilePicture", - "type": "JSON" - }, - "description": { - "name": "description", - "type": "String" - }, - "website": { - "name": "website", - "type": "String" - }, - "reputation": { - "name": "reputation", - "type": "BigFloat" - }, - "tags": { - "name": "tags", - "isArray": true, - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "organizationId": { - "name": "organizationId", - "isNotNull": true, - "type": "UUID" - }, - "headerImageUpload": { - "name": "headerImageUpload", - "type": "Upload" - }, - "profilePictureUpload": { - "name": "profilePictureUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateOrganizationProfilePayload", - "ofType": null - } - }, - "createPhoneNumber": { - "qtype": "mutation", - "mutationType": "create", - "model": "PhoneNumber", - "properties": { - "input": { - "isNotNull": true, - "type": "CreatePhoneNumberInput", - "properties": { - "phoneNumber": { - "name": "phoneNumber", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "cc": { - "name": "cc", - "isNotNull": true, - "type": "String" - }, - "number": { - "name": "number", - "isNotNull": true, - "type": "String" - }, - "isVerified": { - "name": "isVerified", - "type": "Boolean" - }, - "isPrimary": { - "name": "isPrimary", - "type": "Boolean" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreatePhoneNumberPayload", - "ofType": null - } - }, - "createPostComment": { - "qtype": "mutation", - "mutationType": "create", - "model": "PostComment", - "properties": { - "input": { - "isNotNull": true, - "type": "CreatePostCommentInput", - "properties": { - "postComment": { - "name": "postComment", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "commenterId": { - "name": "commenterId", - "type": "UUID" - }, - "parentId": { - "name": "parentId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "postId": { - "name": "postId", - "isNotNull": true, - "type": "UUID" - }, - "posterId": { - "name": "posterId", - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreatePostCommentPayload", - "ofType": null - } - }, - "createPostReaction": { - "qtype": "mutation", - "mutationType": "create", - "model": "PostReaction", - "properties": { - "input": { - "isNotNull": true, - "type": "CreatePostReactionInput", - "properties": { - "postReaction": { - "name": "postReaction", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "reacterId": { - "name": "reacterId", - "type": "UUID" - }, - "type": { - "name": "type", - "type": "Int" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "postId": { - "name": "postId", - "isNotNull": true, - "type": "UUID" - }, - "posterId": { - "name": "posterId", - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreatePostReactionPayload", - "ofType": null - } - }, - "createPost": { - "qtype": "mutation", - "mutationType": "create", - "model": "Post", - "properties": { - "input": { - "isNotNull": true, - "type": "CreatePostInput", - "properties": { - "post": { - "name": "post", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "posterId": { - "name": "posterId", - "type": "UUID" - }, - "type": { - "name": "type", - "type": "String" - }, - "flagged": { - "name": "flagged", - "type": "Boolean" - }, - "image": { - "name": "image", - "type": "JSON" - }, - "url": { - "name": "url", - "type": "String" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "data": { - "name": "data", - "type": "JSON" - }, - "taggedUserIds": { - "name": "taggedUserIds", - "isArray": true, - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "imageUpload": { - "name": "imageUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreatePostPayload", - "ofType": null - } - }, - "createRequiredAction": { - "qtype": "mutation", - "mutationType": "create", - "model": "RequiredAction", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateRequiredActionInput", - "properties": { - "requiredAction": { - "name": "requiredAction", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "actionOrder": { - "name": "actionOrder", - "type": "Int" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "actionId": { - "name": "actionId", - "isNotNull": true, - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "requiredId": { - "name": "requiredId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateRequiredActionPayload", - "ofType": null - } - }, - "createRewardLimit": { - "qtype": "mutation", - "mutationType": "create", - "model": "RewardLimit", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateRewardLimitInput", - "properties": { - "rewardLimit": { - "name": "rewardLimit", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "rewardAmount": { - "name": "rewardAmount", - "type": "BigFloat" - }, - "rewardUnit": { - "name": "rewardUnit", - "type": "String" - }, - "totalRewardLimit": { - "name": "totalRewardLimit", - "type": "BigFloat" - }, - "weeklyLimit": { - "name": "weeklyLimit", - "type": "BigFloat" - }, - "dailyLimit": { - "name": "dailyLimit", - "type": "BigFloat" - }, - "totalLimit": { - "name": "totalLimit", - "type": "BigFloat" - }, - "userTotalLimit": { - "name": "userTotalLimit", - "type": "BigFloat" - }, - "userWeeklyLimit": { - "name": "userWeeklyLimit", - "type": "BigFloat" - }, - "userDailyLimit": { - "name": "userDailyLimit", - "type": "BigFloat" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "ownerId": { - "name": "ownerId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateRewardLimitPayload", - "ofType": null - } - }, - "createRoleType": { - "qtype": "mutation", - "mutationType": "create", - "model": "RoleType", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateRoleTypeInput", - "properties": { - "roleType": { - "name": "roleType", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "Int" - }, - "name": { - "name": "name", - "isNotNull": true, - "type": "String" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateRoleTypePayload", - "ofType": null - } - }, - "createTrackAction": { - "qtype": "mutation", - "mutationType": "create", - "model": "TrackAction", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateTrackActionInput", - "properties": { - "trackAction": { - "name": "trackAction", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "trackOrder": { - "name": "trackOrder", - "type": "Int" - }, - "isRequired": { - "name": "isRequired", - "type": "Boolean" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "actionId": { - "name": "actionId", - "isNotNull": true, - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "trackId": { - "name": "trackId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateTrackActionPayload", - "ofType": null - } - }, - "createTrack": { - "qtype": "mutation", - "mutationType": "create", - "model": "Track", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateTrackInput", - "properties": { - "track": { - "name": "track", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "photo": { - "name": "photo", - "type": "JSON" - }, - "icon": { - "name": "icon", - "type": "JSON" - }, - "isPublished": { - "name": "isPublished", - "type": "Boolean" - }, - "isApproved": { - "name": "isApproved", - "type": "Boolean" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "ownerId": { - "name": "ownerId", - "isNotNull": true, - "type": "UUID" - }, - "objectTypeId": { - "name": "objectTypeId", - "type": "Int" - }, - "photoUpload": { - "name": "photoUpload", - "type": "Upload" - }, - "iconUpload": { - "name": "iconUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateTrackPayload", - "ofType": null - } - }, - "createUserActionItemVerification": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserActionItemVerification", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserActionItemVerificationInput", - "properties": { - "userActionItemVerification": { - "name": "userActionItemVerification", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "verifierId": { - "name": "verifierId", - "type": "UUID" - }, - "verified": { - "name": "verified", - "type": "Boolean" - }, - "rejected": { - "name": "rejected", - "type": "Boolean" - }, - "notes": { - "name": "notes", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - }, - "userActionId": { - "name": "userActionId", - "type": "UUID" - }, - "actionItemId": { - "name": "actionItemId", - "type": "UUID" - }, - "userActionItemId": { - "name": "userActionItemId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserActionItemVerificationPayload", - "ofType": null - } - }, - "createUserActionItem": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserActionItem", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserActionItemInput", - "properties": { - "userActionItem": { - "name": "userActionItem", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "text": { - "name": "text", - "type": "String" - }, - "media": { - "name": "media", - "type": "JSON" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "bbox": { - "name": "bbox", - "type": "GeoJSON" - }, - "data": { - "name": "data", - "type": "JSON" - }, - "complete": { - "name": "complete", - "type": "Boolean" - }, - "verified": { - "name": "verified", - "type": "Boolean" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - }, - "userActionId": { - "name": "userActionId", - "isNotNull": true, - "type": "UUID" - }, - "actionItemId": { - "name": "actionItemId", - "isNotNull": true, - "type": "UUID" - }, - "mediaUpload": { - "name": "mediaUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserActionItemPayload", - "ofType": null - } - }, - "createUserActionReaction": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserActionReaction", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserActionReactionInput", - "properties": { - "userActionReaction": { - "name": "userActionReaction", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "reacterId": { - "name": "reacterId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userActionId": { - "name": "userActionId", - "isNotNull": true, - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserActionReactionPayload", - "ofType": null - } - }, - "createUserActionVerification": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserActionVerification", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserActionVerificationInput", - "properties": { - "userActionVerification": { - "name": "userActionVerification", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "verifierId": { - "name": "verifierId", - "type": "UUID" - }, - "verified": { - "name": "verified", - "type": "Boolean" - }, - "rejected": { - "name": "rejected", - "type": "Boolean" - }, - "notes": { - "name": "notes", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - }, - "userActionId": { - "name": "userActionId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserActionVerificationPayload", - "ofType": null - } - }, - "createUserAction": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserAction", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserActionInput", - "properties": { - "userAction": { - "name": "userAction", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "actionStarted": { - "name": "actionStarted", - "type": "Datetime" - }, - "complete": { - "name": "complete", - "type": "Boolean" - }, - "verified": { - "name": "verified", - "type": "Boolean" - }, - "verifiedDate": { - "name": "verifiedDate", - "type": "Datetime" - }, - "userRating": { - "name": "userRating", - "type": "Int" - }, - "rejected": { - "name": "rejected", - "type": "Boolean" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "isNotNull": true, - "type": "UUID" - }, - "objectId": { - "name": "objectId", - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserActionPayload", - "ofType": null - } - }, - "createUserAnswer": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserAnswer", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserAnswerInput", - "properties": { - "userAnswer": { - "name": "userAnswer", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "text": { - "name": "text", - "type": "String" - }, - "numeric": { - "name": "numeric", - "type": "BigFloat" - }, - "image": { - "name": "image", - "type": "JSON" - }, - "data": { - "name": "data", - "type": "JSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "questionId": { - "name": "questionId", - "isNotNull": true, - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "imageUpload": { - "name": "imageUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserAnswerPayload", - "ofType": null - } - }, - "createUserCharacteristic": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserCharacteristic", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserCharacteristicInput", - "properties": { - "userCharacteristic": { - "name": "userCharacteristic", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "income": { - "name": "income", - "type": "BigFloat" - }, - "gender": { - "name": "gender", - "type": "String" - }, - "race": { - "name": "race", - "type": "String" - }, - "age": { - "name": "age", - "type": "Int" - }, - "dob": { - "name": "dob", - "type": "Date" - }, - "education": { - "name": "education", - "type": "String" - }, - "homeOwnership": { - "name": "homeOwnership", - "type": "Int" - }, - "treeHuggerLevel": { - "name": "treeHuggerLevel", - "type": "Int" - }, - "diyLevel": { - "name": "diyLevel", - "type": "Int" - }, - "gardenerLevel": { - "name": "gardenerLevel", - "type": "Int" - }, - "freeTime": { - "name": "freeTime", - "type": "Int" - }, - "researchToDoer": { - "name": "researchToDoer", - "type": "Int" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserCharacteristicPayload", - "ofType": null - } - }, - "createUserConnection": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserConnection", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserConnectionInput", - "properties": { - "userConnection": { - "name": "userConnection", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "accepted": { - "name": "accepted", - "type": "Boolean" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "requesterId": { - "name": "requesterId", - "isNotNull": true, - "type": "UUID" - }, - "responderId": { - "name": "responderId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserConnectionPayload", - "ofType": null - } - }, - "createUserContact": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserContact", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserContactInput", - "properties": { - "userContact": { - "name": "userContact", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "vcf": { - "name": "vcf", - "type": "JSON" - }, - "fullName": { - "name": "fullName", - "type": "String" - }, - "emails": { - "name": "emails", - "isArray": true, - "type": "String" - }, - "device": { - "name": "device", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserContactPayload", - "ofType": null - } - }, - "createUserDevice": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserDevice", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserDeviceInput", - "properties": { - "userDevice": { - "name": "userDevice", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "type": { - "name": "type", - "isNotNull": true, - "type": "Int" - }, - "deviceId": { - "name": "deviceId", - "type": "String" - }, - "pushToken": { - "name": "pushToken", - "type": "String" - }, - "pushTokenRequested": { - "name": "pushTokenRequested", - "type": "Boolean" - }, - "data": { - "name": "data", - "type": "JSON" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserDevicePayload", - "ofType": null - } - }, - "createUserLocation": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserLocation", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserLocationInput", - "properties": { - "userLocation": { - "name": "userLocation", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "kind": { - "name": "kind", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "bbox": { - "name": "bbox", - "type": "GeoJSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserLocationPayload", - "ofType": null - } - }, - "createUserMessage": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserMessage", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserMessageInput", - "properties": { - "userMessage": { - "name": "userMessage", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "senderId": { - "name": "senderId", - "type": "UUID" - }, - "type": { - "name": "type", - "type": "String" - }, - "content": { - "name": "content", - "type": "JSON" - }, - "upload": { - "name": "upload", - "type": "JSON" - }, - "received": { - "name": "received", - "type": "Boolean" - }, - "receiverRead": { - "name": "receiverRead", - "type": "Boolean" - }, - "senderReaction": { - "name": "senderReaction", - "type": "String" - }, - "receiverReaction": { - "name": "receiverReaction", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "receiverId": { - "name": "receiverId", - "isNotNull": true, - "type": "UUID" - }, - "uploadUpload": { - "name": "uploadUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserMessagePayload", - "ofType": null - } - }, - "createUserPassAction": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserPassAction", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserPassActionInput", - "properties": { - "userPassAction": { - "name": "userPassAction", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "actionId": { - "name": "actionId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserPassActionPayload", - "ofType": null - } - }, - "createUserProfile": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserProfile", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserProfileInput", - "properties": { - "userProfile": { - "name": "userProfile", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "profilePicture": { - "name": "profilePicture", - "type": "JSON" - }, - "bio": { - "name": "bio", - "type": "String" - }, - "reputation": { - "name": "reputation", - "type": "BigFloat" - }, - "displayName": { - "name": "displayName", - "type": "String" - }, - "tags": { - "name": "tags", - "isArray": true, - "type": "String" - }, - "desired": { - "name": "desired", - "isArray": true, - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "profilePictureUpload": { - "name": "profilePictureUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserProfilePayload", - "ofType": null - } - }, - "createUserQuestion": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserQuestion", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserQuestionInput", - "properties": { - "userQuestion": { - "name": "userQuestion", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "questionType": { - "name": "questionType", - "type": "String" - }, - "questionPrompt": { - "name": "questionPrompt", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "ownerId": { - "name": "ownerId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserQuestionPayload", - "ofType": null - } - }, - "createUserSavedAction": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserSavedAction", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserSavedActionInput", - "properties": { - "userSavedAction": { - "name": "userSavedAction", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "actionId": { - "name": "actionId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserSavedActionPayload", - "ofType": null - } - }, - "createUserSetting": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserSetting", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserSettingInput", - "properties": { - "userSetting": { - "name": "userSetting", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "firstName": { - "name": "firstName", - "type": "String" - }, - "lastName": { - "name": "lastName", - "type": "String" - }, - "searchRadius": { - "name": "searchRadius", - "type": "BigFloat" - }, - "zip": { - "name": "zip", - "type": "Int" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserSettingPayload", - "ofType": null - } - }, - "createUserViewedAction": { - "qtype": "mutation", - "mutationType": "create", - "model": "UserViewedAction", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserViewedActionInput", - "properties": { - "userViewedAction": { - "name": "userViewedAction", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "actionId": { - "name": "actionId", - "isNotNull": true, - "type": "UUID" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserViewedActionPayload", - "ofType": null - } - }, - "createUser": { - "qtype": "mutation", - "mutationType": "create", - "model": "User", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateUserInput", - "properties": { - "user": { - "name": "user", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "username": { - "name": "username", - "type": "String" - }, - "displayName": { - "name": "displayName", - "type": "String" - }, - "profilePicture": { - "name": "profilePicture", - "type": "JSON" - }, - "searchTsv": { - "name": "searchTsv", - "type": "FullText" - }, - "type": { - "name": "type", - "type": "Int" - }, - "profilePictureUpload": { - "name": "profilePictureUpload", - "type": "Upload" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateUserPayload", - "ofType": null - } - }, - "createZipCode": { - "qtype": "mutation", - "mutationType": "create", - "model": "ZipCode", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateZipCodeInput", - "properties": { - "zipCode": { - "name": "zipCode", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "zip": { - "name": "zip", - "type": "Int" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "bbox": { - "name": "bbox", - "type": "GeoJSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateZipCodePayload", - "ofType": null - } - }, - "createAuthAccount": { - "qtype": "mutation", - "mutationType": "create", - "model": "AuthAccount", - "properties": { - "input": { - "isNotNull": true, - "type": "CreateAuthAccountInput", - "properties": { - "authAccount": { - "name": "authAccount", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "service": { - "name": "service", - "isNotNull": true, - "type": "String" - }, - "identifier": { - "name": "identifier", - "isNotNull": true, - "type": "String" - }, - "details": { - "name": "details", - "isNotNull": true, - "type": "JSON" - }, - "isVerified": { - "name": "isVerified", - "type": "Boolean" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "CreateAuthAccountPayload", - "ofType": null - } - }, - "updateActionGoal": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ActionGoal", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateActionGoalInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - }, - "goalId": { - "name": "goalId", - "type": "UUID" - } - } - }, - "actionId": { - "name": "actionId", - "isNotNull": true, - "type": "UUID" - }, - "goalId": { - "name": "goalId", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateActionGoalPayload", - "ofType": null - } - }, - "updateActionItemType": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ActionItemType", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateActionItemTypeInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "Int" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "image": { - "name": "image", - "type": "JSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "imageUpload": { - "name": "imageUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "Int" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateActionItemTypePayload", - "ofType": null - } - }, - "updateActionItem": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ActionItem", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateActionItemInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "type": { - "name": "type", - "type": "String" - }, - "itemOrder": { - "name": "itemOrder", - "type": "Int" - }, - "timeRequired": { - "name": "timeRequired", - "properties": { - "seconds": { - "name": "seconds", - "type": "Float" - }, - "minutes": { - "name": "minutes", - "type": "Int" - }, - "hours": { - "name": "hours", - "type": "Int" - }, - "days": { - "name": "days", - "type": "Int" - }, - "months": { - "name": "months", - "type": "Int" - }, - "years": { - "name": "years", - "type": "Int" - } - } - }, - "isRequired": { - "name": "isRequired", - "type": "Boolean" - }, - "notificationText": { - "name": "notificationText", - "type": "String" - }, - "embedCode": { - "name": "embedCode", - "type": "String" - }, - "url": { - "name": "url", - "type": "String" - }, - "media": { - "name": "media", - "type": "JSON" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "locationRadius": { - "name": "locationRadius", - "type": "BigFloat" - }, - "rewardWeight": { - "name": "rewardWeight", - "type": "BigFloat" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "itemTypeId": { - "name": "itemTypeId", - "type": "Int" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - }, - "mediaUpload": { - "name": "mediaUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateActionItemPayload", - "ofType": null - } - }, - "updateActionVariation": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ActionVariation", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateActionVariationInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "photo": { - "name": "photo", - "type": "JSON" - }, - "title": { - "name": "title", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "income": { - "name": "income", - "isArray": true, - "type": "BigFloat" - }, - "gender": { - "name": "gender", - "isArray": true, - "type": "String" - }, - "dob": { - "name": "dob", - "isArray": true, - "type": "Date" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - }, - "photoUpload": { - "name": "photoUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateActionVariationPayload", - "ofType": null - } - }, - "updateAction": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Action", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateActionInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "slug": { - "name": "slug", - "type": "String" - }, - "photo": { - "name": "photo", - "type": "JSON" - }, - "shareImage": { - "name": "shareImage", - "type": "JSON" - }, - "title": { - "name": "title", - "type": "String" - }, - "titleObjectTemplate": { - "name": "titleObjectTemplate", - "type": "String" - }, - "url": { - "name": "url", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "discoveryHeader": { - "name": "discoveryHeader", - "type": "String" - }, - "discoveryDescription": { - "name": "discoveryDescription", - "type": "String" - }, - "notificationText": { - "name": "notificationText", - "type": "String" - }, - "notificationObjectTemplate": { - "name": "notificationObjectTemplate", - "type": "String" - }, - "enableNotifications": { - "name": "enableNotifications", - "type": "Boolean" - }, - "enableNotificationsText": { - "name": "enableNotificationsText", - "type": "String" - }, - "search": { - "name": "search", - "type": "FullText" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "locationRadius": { - "name": "locationRadius", - "type": "BigFloat" - }, - "timeRequired": { - "name": "timeRequired", - "properties": { - "seconds": { - "name": "seconds", - "type": "Float" - }, - "minutes": { - "name": "minutes", - "type": "Int" - }, - "hours": { - "name": "hours", - "type": "Int" - }, - "days": { - "name": "days", - "type": "Int" - }, - "months": { - "name": "months", - "type": "Int" - }, - "years": { - "name": "years", - "type": "Int" - } - } - }, - "startDate": { - "name": "startDate", - "type": "Datetime" - }, - "endDate": { - "name": "endDate", - "type": "Datetime" - }, - "approved": { - "name": "approved", - "type": "Boolean" - }, - "published": { - "name": "published", - "type": "Boolean" - }, - "isPrivate": { - "name": "isPrivate", - "type": "Boolean" - }, - "rewardAmount": { - "name": "rewardAmount", - "type": "BigFloat" - }, - "activityFeedText": { - "name": "activityFeedText", - "type": "String" - }, - "callToAction": { - "name": "callToAction", - "type": "String" - }, - "completedActionText": { - "name": "completedActionText", - "type": "String" - }, - "alreadyCompletedActionText": { - "name": "alreadyCompletedActionText", - "type": "String" - }, - "selfVerifiable": { - "name": "selfVerifiable", - "type": "Boolean" - }, - "isRecurring": { - "name": "isRecurring", - "type": "Boolean" - }, - "recurringInterval": { - "name": "recurringInterval", - "properties": { - "seconds": { - "name": "seconds", - "type": "Float" - }, - "minutes": { - "name": "minutes", - "type": "Int" - }, - "hours": { - "name": "hours", - "type": "Int" - }, - "days": { - "name": "days", - "type": "Int" - }, - "months": { - "name": "months", - "type": "Int" - }, - "years": { - "name": "years", - "type": "Int" - } - } - }, - "oncePerObject": { - "name": "oncePerObject", - "type": "Boolean" - }, - "minimumGroupMembers": { - "name": "minimumGroupMembers", - "type": "Int" - }, - "limitedToLocation": { - "name": "limitedToLocation", - "type": "Boolean" - }, - "tags": { - "name": "tags", - "isArray": true, - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "groupId": { - "name": "groupId", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "objectTypeId": { - "name": "objectTypeId", - "type": "Int" - }, - "rewardId": { - "name": "rewardId", - "type": "UUID" - }, - "verifyRewardId": { - "name": "verifyRewardId", - "type": "UUID" - }, - "photoUpload": { - "name": "photoUpload", - "type": "Upload" - }, - "shareImageUpload": { - "name": "shareImageUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateActionPayload", - "ofType": null - } - }, - "updateActionBySlug": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Action", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateActionBySlugInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "slug": { - "name": "slug", - "type": "String" - }, - "photo": { - "name": "photo", - "type": "JSON" - }, - "shareImage": { - "name": "shareImage", - "type": "JSON" - }, - "title": { - "name": "title", - "type": "String" - }, - "titleObjectTemplate": { - "name": "titleObjectTemplate", - "type": "String" - }, - "url": { - "name": "url", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "discoveryHeader": { - "name": "discoveryHeader", - "type": "String" - }, - "discoveryDescription": { - "name": "discoveryDescription", - "type": "String" - }, - "notificationText": { - "name": "notificationText", - "type": "String" - }, - "notificationObjectTemplate": { - "name": "notificationObjectTemplate", - "type": "String" - }, - "enableNotifications": { - "name": "enableNotifications", - "type": "Boolean" - }, - "enableNotificationsText": { - "name": "enableNotificationsText", - "type": "String" - }, - "search": { - "name": "search", - "type": "FullText" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "locationRadius": { - "name": "locationRadius", - "type": "BigFloat" - }, - "timeRequired": { - "name": "timeRequired", - "properties": { - "seconds": { - "name": "seconds", - "type": "Float" - }, - "minutes": { - "name": "minutes", - "type": "Int" - }, - "hours": { - "name": "hours", - "type": "Int" - }, - "days": { - "name": "days", - "type": "Int" - }, - "months": { - "name": "months", - "type": "Int" - }, - "years": { - "name": "years", - "type": "Int" - } - } - }, - "startDate": { - "name": "startDate", - "type": "Datetime" - }, - "endDate": { - "name": "endDate", - "type": "Datetime" - }, - "approved": { - "name": "approved", - "type": "Boolean" - }, - "published": { - "name": "published", - "type": "Boolean" - }, - "isPrivate": { - "name": "isPrivate", - "type": "Boolean" - }, - "rewardAmount": { - "name": "rewardAmount", - "type": "BigFloat" - }, - "activityFeedText": { - "name": "activityFeedText", - "type": "String" - }, - "callToAction": { - "name": "callToAction", - "type": "String" - }, - "completedActionText": { - "name": "completedActionText", - "type": "String" - }, - "alreadyCompletedActionText": { - "name": "alreadyCompletedActionText", - "type": "String" - }, - "selfVerifiable": { - "name": "selfVerifiable", - "type": "Boolean" - }, - "isRecurring": { - "name": "isRecurring", - "type": "Boolean" - }, - "recurringInterval": { - "name": "recurringInterval", - "properties": { - "seconds": { - "name": "seconds", - "type": "Float" - }, - "minutes": { - "name": "minutes", - "type": "Int" - }, - "hours": { - "name": "hours", - "type": "Int" - }, - "days": { - "name": "days", - "type": "Int" - }, - "months": { - "name": "months", - "type": "Int" - }, - "years": { - "name": "years", - "type": "Int" - } - } - }, - "oncePerObject": { - "name": "oncePerObject", - "type": "Boolean" - }, - "minimumGroupMembers": { - "name": "minimumGroupMembers", - "type": "Int" - }, - "limitedToLocation": { - "name": "limitedToLocation", - "type": "Boolean" - }, - "tags": { - "name": "tags", - "isArray": true, - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "groupId": { - "name": "groupId", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "objectTypeId": { - "name": "objectTypeId", - "type": "Int" - }, - "rewardId": { - "name": "rewardId", - "type": "UUID" - }, - "verifyRewardId": { - "name": "verifyRewardId", - "type": "UUID" - }, - "photoUpload": { - "name": "photoUpload", - "type": "Upload" - }, - "shareImageUpload": { - "name": "shareImageUpload", - "type": "Upload" - } - } - }, - "slug": { - "name": "slug", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateActionPayload", - "ofType": null - } - }, - "updateConnectedAccount": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ConnectedAccount", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateConnectedAccountInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "service": { - "name": "service", - "type": "String" - }, - "identifier": { - "name": "identifier", - "type": "String" - }, - "details": { - "name": "details", - "type": "JSON" - }, - "isVerified": { - "name": "isVerified", - "type": "Boolean" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateConnectedAccountPayload", - "ofType": null - } - }, - "updateConnectedAccountByServiceAndIdentifier": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ConnectedAccount", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateConnectedAccountByServiceAndIdentifierInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "service": { - "name": "service", - "type": "String" - }, - "identifier": { - "name": "identifier", - "type": "String" - }, - "details": { - "name": "details", - "type": "JSON" - }, - "isVerified": { - "name": "isVerified", - "type": "Boolean" - } - } - }, - "service": { - "name": "service", - "isNotNull": true, - "type": "String" - }, - "identifier": { - "name": "identifier", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateConnectedAccountPayload", - "ofType": null - } - }, - "updateCryptoAddress": { - "qtype": "mutation", - "mutationType": "patch", - "model": "CryptoAddress", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateCryptoAddressInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "address": { - "name": "address", - "type": "String" - }, - "isVerified": { - "name": "isVerified", - "type": "Boolean" - }, - "isPrimary": { - "name": "isPrimary", - "type": "Boolean" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateCryptoAddressPayload", - "ofType": null - } - }, - "updateCryptoAddressByAddress": { - "qtype": "mutation", - "mutationType": "patch", - "model": "CryptoAddress", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateCryptoAddressByAddressInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "address": { - "name": "address", - "type": "String" - }, - "isVerified": { - "name": "isVerified", - "type": "Boolean" - }, - "isPrimary": { - "name": "isPrimary", - "type": "Boolean" - } - } - }, - "address": { - "name": "address", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateCryptoAddressPayload", - "ofType": null - } - }, - "updateEmail": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Email", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateEmailInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "email": { - "name": "email", - "type": "String" - }, - "isVerified": { - "name": "isVerified", - "type": "Boolean" - }, - "isPrimary": { - "name": "isPrimary", - "type": "Boolean" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateEmailPayload", - "ofType": null - } - }, - "updateEmailByEmail": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Email", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateEmailByEmailInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "email": { - "name": "email", - "type": "String" - }, - "isVerified": { - "name": "isVerified", - "type": "Boolean" - }, - "isPrimary": { - "name": "isPrimary", - "type": "Boolean" - } - } - }, - "email": { - "name": "email", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateEmailPayload", - "ofType": null - } - }, - "updateGoalExplanation": { - "qtype": "mutation", - "mutationType": "patch", - "model": "GoalExplanation", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateGoalExplanationInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "audio": { - "name": "audio", - "type": "JSON" - }, - "audioDuration": { - "name": "audioDuration", - "properties": { - "seconds": { - "name": "seconds", - "type": "Float" - }, - "minutes": { - "name": "minutes", - "type": "Int" - }, - "hours": { - "name": "hours", - "type": "Int" - }, - "days": { - "name": "days", - "type": "Int" - }, - "months": { - "name": "months", - "type": "Int" - }, - "years": { - "name": "years", - "type": "Int" - } - } - }, - "explanationTitle": { - "name": "explanationTitle", - "type": "String" - }, - "explanation": { - "name": "explanation", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "goalId": { - "name": "goalId", - "type": "UUID" - }, - "audioUpload": { - "name": "audioUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateGoalExplanationPayload", - "ofType": null - } - }, - "updateGoal": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Goal", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateGoalInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "slug": { - "name": "slug", - "type": "String" - }, - "shortName": { - "name": "shortName", - "type": "String" - }, - "icon": { - "name": "icon", - "type": "String" - }, - "subHead": { - "name": "subHead", - "type": "String" - }, - "tags": { - "name": "tags", - "isArray": true, - "type": "String" - }, - "search": { - "name": "search", - "type": "FullText" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateGoalPayload", - "ofType": null - } - }, - "updateGoalByName": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Goal", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateGoalByNameInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "slug": { - "name": "slug", - "type": "String" - }, - "shortName": { - "name": "shortName", - "type": "String" - }, - "icon": { - "name": "icon", - "type": "String" - }, - "subHead": { - "name": "subHead", - "type": "String" - }, - "tags": { - "name": "tags", - "isArray": true, - "type": "String" - }, - "search": { - "name": "search", - "type": "FullText" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - }, - "name": { - "name": "name", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateGoalPayload", - "ofType": null - } - }, - "updateGoalBySlug": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Goal", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateGoalBySlugInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "slug": { - "name": "slug", - "type": "String" - }, - "shortName": { - "name": "shortName", - "type": "String" - }, - "icon": { - "name": "icon", - "type": "String" - }, - "subHead": { - "name": "subHead", - "type": "String" - }, - "tags": { - "name": "tags", - "isArray": true, - "type": "String" - }, - "search": { - "name": "search", - "type": "FullText" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - }, - "slug": { - "name": "slug", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateGoalPayload", - "ofType": null - } - }, - "updateGroupPostComment": { - "qtype": "mutation", - "mutationType": "patch", - "model": "GroupPostComment", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateGroupPostCommentInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "commenterId": { - "name": "commenterId", - "type": "UUID" - }, - "parentId": { - "name": "parentId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "groupId": { - "name": "groupId", - "type": "UUID" - }, - "postId": { - "name": "postId", - "type": "UUID" - }, - "posterId": { - "name": "posterId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateGroupPostCommentPayload", - "ofType": null - } - }, - "updateGroupPostReaction": { - "qtype": "mutation", - "mutationType": "patch", - "model": "GroupPostReaction", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateGroupPostReactionInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "reacterId": { - "name": "reacterId", - "type": "UUID" - }, - "type": { - "name": "type", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "groupId": { - "name": "groupId", - "type": "UUID" - }, - "posterId": { - "name": "posterId", - "type": "UUID" - }, - "postId": { - "name": "postId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateGroupPostReactionPayload", - "ofType": null - } - }, - "updateGroupPost": { - "qtype": "mutation", - "mutationType": "patch", - "model": "GroupPost", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateGroupPostInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "posterId": { - "name": "posterId", - "type": "UUID" - }, - "type": { - "name": "type", - "type": "String" - }, - "flagged": { - "name": "flagged", - "type": "Boolean" - }, - "image": { - "name": "image", - "type": "JSON" - }, - "url": { - "name": "url", - "type": "String" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "data": { - "name": "data", - "type": "JSON" - }, - "taggedUserIds": { - "name": "taggedUserIds", - "isArray": true, - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "groupId": { - "name": "groupId", - "type": "UUID" - }, - "imageUpload": { - "name": "imageUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateGroupPostPayload", - "ofType": null - } - }, - "updateGroup": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Group", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateGroupInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateGroupPayload", - "ofType": null - } - }, - "updateLocationType": { - "qtype": "mutation", - "mutationType": "patch", - "model": "LocationType", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateLocationTypeInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateLocationTypePayload", - "ofType": null - } - }, - "updateLocation": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Location", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateLocationInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "bbox": { - "name": "bbox", - "type": "GeoJSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "locationType": { - "name": "locationType", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateLocationPayload", - "ofType": null - } - }, - "updateMessageGroup": { - "qtype": "mutation", - "mutationType": "patch", - "model": "MessageGroup", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateMessageGroupInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "memberIds": { - "name": "memberIds", - "isArray": true, - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateMessageGroupPayload", - "ofType": null - } - }, - "updateMessage": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Message", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateMessageInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "senderId": { - "name": "senderId", - "type": "UUID" - }, - "type": { - "name": "type", - "type": "String" - }, - "content": { - "name": "content", - "type": "JSON" - }, - "upload": { - "name": "upload", - "type": "JSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "groupId": { - "name": "groupId", - "type": "UUID" - }, - "uploadUpload": { - "name": "uploadUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateMessagePayload", - "ofType": null - } - }, - "updateNewsArticle": { - "qtype": "mutation", - "mutationType": "patch", - "model": "NewsArticle", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateNewsArticleInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "link": { - "name": "link", - "type": "String" - }, - "publishedAt": { - "name": "publishedAt", - "type": "Datetime" - }, - "photo": { - "name": "photo", - "type": "JSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "photoUpload": { - "name": "photoUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateNewsArticlePayload", - "ofType": null - } - }, - "updateNotificationPreference": { - "qtype": "mutation", - "mutationType": "patch", - "model": "NotificationPreference", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateNotificationPreferenceInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "emails": { - "name": "emails", - "type": "Boolean" - }, - "sms": { - "name": "sms", - "type": "Boolean" - }, - "notifications": { - "name": "notifications", - "type": "Boolean" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateNotificationPreferencePayload", - "ofType": null - } - }, - "updateNotification": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Notification", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateNotificationInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "actorId": { - "name": "actorId", - "type": "UUID" - }, - "recipientId": { - "name": "recipientId", - "type": "UUID" - }, - "notificationType": { - "name": "notificationType", - "type": "String" - }, - "notificationText": { - "name": "notificationText", - "type": "String" - }, - "entityType": { - "name": "entityType", - "type": "String" - }, - "data": { - "name": "data", - "type": "JSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateNotificationPayload", - "ofType": null - } - }, - "updateObjectAttribute": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ObjectAttribute", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateObjectAttributeInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "description": { - "name": "description", - "type": "String" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "text": { - "name": "text", - "type": "String" - }, - "numeric": { - "name": "numeric", - "type": "BigFloat" - }, - "image": { - "name": "image", - "type": "JSON" - }, - "data": { - "name": "data", - "type": "JSON" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "valueId": { - "name": "valueId", - "type": "UUID" - }, - "objectId": { - "name": "objectId", - "type": "UUID" - }, - "objectTypeAttributeId": { - "name": "objectTypeAttributeId", - "type": "UUID" - }, - "imageUpload": { - "name": "imageUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateObjectAttributePayload", - "ofType": null - } - }, - "updateObjectTypeAttribute": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ObjectTypeAttribute", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateObjectTypeAttributeInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "label": { - "name": "label", - "type": "String" - }, - "type": { - "name": "type", - "type": "String" - }, - "unit": { - "name": "unit", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "min": { - "name": "min", - "type": "Int" - }, - "max": { - "name": "max", - "type": "Int" - }, - "pattern": { - "name": "pattern", - "type": "String" - }, - "isRequired": { - "name": "isRequired", - "type": "Boolean" - }, - "attrOrder": { - "name": "attrOrder", - "type": "Int" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "objectTypeId": { - "name": "objectTypeId", - "type": "Int" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateObjectTypeAttributePayload", - "ofType": null - } - }, - "updateObjectTypeValue": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ObjectTypeValue", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateObjectTypeValueInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "photo": { - "name": "photo", - "type": "JSON" - }, - "icon": { - "name": "icon", - "type": "JSON" - }, - "type": { - "name": "type", - "type": "String" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "text": { - "name": "text", - "type": "String" - }, - "numeric": { - "name": "numeric", - "type": "BigFloat" - }, - "image": { - "name": "image", - "type": "JSON" - }, - "data": { - "name": "data", - "type": "JSON" - }, - "valueOrder": { - "name": "valueOrder", - "type": "Int" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "attrId": { - "name": "attrId", - "type": "UUID" - }, - "photoUpload": { - "name": "photoUpload", - "type": "Upload" - }, - "iconUpload": { - "name": "iconUpload", - "type": "Upload" - }, - "imageUpload": { - "name": "imageUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateObjectTypeValuePayload", - "ofType": null - } - }, - "updateObjectType": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ObjectType", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateObjectTypeInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "Int" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "photo": { - "name": "photo", - "type": "JSON" - }, - "icon": { - "name": "icon", - "type": "JSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "photoUpload": { - "name": "photoUpload", - "type": "Upload" - }, - "iconUpload": { - "name": "iconUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "Int" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateObjectTypePayload", - "ofType": null - } - }, - "updateObject": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Object", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateObjectInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "photo": { - "name": "photo", - "type": "JSON" - }, - "media": { - "name": "media", - "type": "JSON" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "bbox": { - "name": "bbox", - "type": "GeoJSON" - }, - "data": { - "name": "data", - "type": "JSON" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "typeId": { - "name": "typeId", - "type": "Int" - }, - "photoUpload": { - "name": "photoUpload", - "type": "Upload" - }, - "mediaUpload": { - "name": "mediaUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateObjectPayload", - "ofType": null - } - }, - "updateOrganizationProfile": { - "qtype": "mutation", - "mutationType": "patch", - "model": "OrganizationProfile", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateOrganizationProfileInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "headerImage": { - "name": "headerImage", - "type": "JSON" - }, - "profilePicture": { - "name": "profilePicture", - "type": "JSON" - }, - "description": { - "name": "description", - "type": "String" - }, - "website": { - "name": "website", - "type": "String" - }, - "reputation": { - "name": "reputation", - "type": "BigFloat" - }, - "tags": { - "name": "tags", - "isArray": true, - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "organizationId": { - "name": "organizationId", - "type": "UUID" - }, - "headerImageUpload": { - "name": "headerImageUpload", - "type": "Upload" - }, - "profilePictureUpload": { - "name": "profilePictureUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateOrganizationProfilePayload", - "ofType": null - } - }, - "updatePhoneNumber": { - "qtype": "mutation", - "mutationType": "patch", - "model": "PhoneNumber", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdatePhoneNumberInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "cc": { - "name": "cc", - "type": "String" - }, - "number": { - "name": "number", - "type": "String" - }, - "isVerified": { - "name": "isVerified", - "type": "Boolean" - }, - "isPrimary": { - "name": "isPrimary", - "type": "Boolean" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdatePhoneNumberPayload", - "ofType": null - } - }, - "updatePhoneNumberByNumber": { - "qtype": "mutation", - "mutationType": "patch", - "model": "PhoneNumber", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdatePhoneNumberByNumberInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "cc": { - "name": "cc", - "type": "String" - }, - "number": { - "name": "number", - "type": "String" - }, - "isVerified": { - "name": "isVerified", - "type": "Boolean" - }, - "isPrimary": { - "name": "isPrimary", - "type": "Boolean" - } - } - }, - "number": { - "name": "number", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdatePhoneNumberPayload", - "ofType": null - } - }, - "updatePostComment": { - "qtype": "mutation", - "mutationType": "patch", - "model": "PostComment", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdatePostCommentInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "commenterId": { - "name": "commenterId", - "type": "UUID" - }, - "parentId": { - "name": "parentId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "postId": { - "name": "postId", - "type": "UUID" - }, - "posterId": { - "name": "posterId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdatePostCommentPayload", - "ofType": null - } - }, - "updatePostReaction": { - "qtype": "mutation", - "mutationType": "patch", - "model": "PostReaction", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdatePostReactionInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "reacterId": { - "name": "reacterId", - "type": "UUID" - }, - "type": { - "name": "type", - "type": "Int" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "postId": { - "name": "postId", - "type": "UUID" - }, - "posterId": { - "name": "posterId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdatePostReactionPayload", - "ofType": null - } - }, - "updatePost": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Post", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdatePostInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "posterId": { - "name": "posterId", - "type": "UUID" - }, - "type": { - "name": "type", - "type": "String" - }, - "flagged": { - "name": "flagged", - "type": "Boolean" - }, - "image": { - "name": "image", - "type": "JSON" - }, - "url": { - "name": "url", - "type": "String" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "data": { - "name": "data", - "type": "JSON" - }, - "taggedUserIds": { - "name": "taggedUserIds", - "isArray": true, - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "imageUpload": { - "name": "imageUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdatePostPayload", - "ofType": null - } - }, - "updateRequiredAction": { - "qtype": "mutation", - "mutationType": "patch", - "model": "RequiredAction", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateRequiredActionInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "actionOrder": { - "name": "actionOrder", - "type": "Int" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "requiredId": { - "name": "requiredId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateRequiredActionPayload", - "ofType": null - } - }, - "updateRewardLimit": { - "qtype": "mutation", - "mutationType": "patch", - "model": "RewardLimit", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateRewardLimitInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "rewardAmount": { - "name": "rewardAmount", - "type": "BigFloat" - }, - "rewardUnit": { - "name": "rewardUnit", - "type": "String" - }, - "totalRewardLimit": { - "name": "totalRewardLimit", - "type": "BigFloat" - }, - "weeklyLimit": { - "name": "weeklyLimit", - "type": "BigFloat" - }, - "dailyLimit": { - "name": "dailyLimit", - "type": "BigFloat" - }, - "totalLimit": { - "name": "totalLimit", - "type": "BigFloat" - }, - "userTotalLimit": { - "name": "userTotalLimit", - "type": "BigFloat" - }, - "userWeeklyLimit": { - "name": "userWeeklyLimit", - "type": "BigFloat" - }, - "userDailyLimit": { - "name": "userDailyLimit", - "type": "BigFloat" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateRewardLimitPayload", - "ofType": null - } - }, - "updateRoleType": { - "qtype": "mutation", - "mutationType": "patch", - "model": "RoleType", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateRoleTypeInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "Int" - }, - "name": { - "name": "name", - "type": "String" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "Int" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateRoleTypePayload", - "ofType": null - } - }, - "updateRoleTypeByName": { - "qtype": "mutation", - "mutationType": "patch", - "model": "RoleType", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateRoleTypeByNameInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "Int" - }, - "name": { - "name": "name", - "type": "String" - } - } - }, - "name": { - "name": "name", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateRoleTypePayload", - "ofType": null - } - }, - "updateTrackAction": { - "qtype": "mutation", - "mutationType": "patch", - "model": "TrackAction", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateTrackActionInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "trackOrder": { - "name": "trackOrder", - "type": "Int" - }, - "isRequired": { - "name": "isRequired", - "type": "Boolean" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "trackId": { - "name": "trackId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateTrackActionPayload", - "ofType": null - } - }, - "updateTrack": { - "qtype": "mutation", - "mutationType": "patch", - "model": "Track", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateTrackInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "photo": { - "name": "photo", - "type": "JSON" - }, - "icon": { - "name": "icon", - "type": "JSON" - }, - "isPublished": { - "name": "isPublished", - "type": "Boolean" - }, - "isApproved": { - "name": "isApproved", - "type": "Boolean" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "objectTypeId": { - "name": "objectTypeId", - "type": "Int" - }, - "photoUpload": { - "name": "photoUpload", - "type": "Upload" - }, - "iconUpload": { - "name": "iconUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateTrackPayload", - "ofType": null - } - }, - "updateUserActionItemVerification": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserActionItemVerification", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserActionItemVerificationInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "verifierId": { - "name": "verifierId", - "type": "UUID" - }, - "verified": { - "name": "verified", - "type": "Boolean" - }, - "rejected": { - "name": "rejected", - "type": "Boolean" - }, - "notes": { - "name": "notes", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - }, - "userActionId": { - "name": "userActionId", - "type": "UUID" - }, - "actionItemId": { - "name": "actionItemId", - "type": "UUID" - }, - "userActionItemId": { - "name": "userActionItemId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserActionItemVerificationPayload", - "ofType": null - } - }, - "updateUserActionItem": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserActionItem", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserActionItemInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "text": { - "name": "text", - "type": "String" - }, - "media": { - "name": "media", - "type": "JSON" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "bbox": { - "name": "bbox", - "type": "GeoJSON" - }, - "data": { - "name": "data", - "type": "JSON" - }, - "complete": { - "name": "complete", - "type": "Boolean" - }, - "verified": { - "name": "verified", - "type": "Boolean" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - }, - "userActionId": { - "name": "userActionId", - "type": "UUID" - }, - "actionItemId": { - "name": "actionItemId", - "type": "UUID" - }, - "mediaUpload": { - "name": "mediaUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserActionItemPayload", - "ofType": null - } - }, - "updateUserActionReaction": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserActionReaction", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserActionReactionInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "reacterId": { - "name": "reacterId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userActionId": { - "name": "userActionId", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserActionReactionPayload", - "ofType": null - } - }, - "updateUserActionVerification": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserActionVerification", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserActionVerificationInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "verifierId": { - "name": "verifierId", - "type": "UUID" - }, - "verified": { - "name": "verified", - "type": "Boolean" - }, - "rejected": { - "name": "rejected", - "type": "Boolean" - }, - "notes": { - "name": "notes", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - }, - "userActionId": { - "name": "userActionId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserActionVerificationPayload", - "ofType": null - } - }, - "updateUserAction": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserAction", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserActionInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "actionStarted": { - "name": "actionStarted", - "type": "Datetime" - }, - "complete": { - "name": "complete", - "type": "Boolean" - }, - "verified": { - "name": "verified", - "type": "Boolean" - }, - "verifiedDate": { - "name": "verifiedDate", - "type": "Datetime" - }, - "userRating": { - "name": "userRating", - "type": "Int" - }, - "rejected": { - "name": "rejected", - "type": "Boolean" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - }, - "objectId": { - "name": "objectId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserActionPayload", - "ofType": null - } - }, - "updateUserAnswer": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserAnswer", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserAnswerInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "text": { - "name": "text", - "type": "String" - }, - "numeric": { - "name": "numeric", - "type": "BigFloat" - }, - "image": { - "name": "image", - "type": "JSON" - }, - "data": { - "name": "data", - "type": "JSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "questionId": { - "name": "questionId", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "imageUpload": { - "name": "imageUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserAnswerPayload", - "ofType": null - } - }, - "updateUserCharacteristic": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserCharacteristic", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserCharacteristicInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "income": { - "name": "income", - "type": "BigFloat" - }, - "gender": { - "name": "gender", - "type": "String" - }, - "race": { - "name": "race", - "type": "String" - }, - "age": { - "name": "age", - "type": "Int" - }, - "dob": { - "name": "dob", - "type": "Date" - }, - "education": { - "name": "education", - "type": "String" - }, - "homeOwnership": { - "name": "homeOwnership", - "type": "Int" - }, - "treeHuggerLevel": { - "name": "treeHuggerLevel", - "type": "Int" - }, - "diyLevel": { - "name": "diyLevel", - "type": "Int" - }, - "gardenerLevel": { - "name": "gardenerLevel", - "type": "Int" - }, - "freeTime": { - "name": "freeTime", - "type": "Int" - }, - "researchToDoer": { - "name": "researchToDoer", - "type": "Int" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserCharacteristicPayload", - "ofType": null - } - }, - "updateUserConnection": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserConnection", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserConnectionInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "accepted": { - "name": "accepted", - "type": "Boolean" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "requesterId": { - "name": "requesterId", - "type": "UUID" - }, - "responderId": { - "name": "responderId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserConnectionPayload", - "ofType": null - } - }, - "updateUserContact": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserContact", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserContactInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "vcf": { - "name": "vcf", - "type": "JSON" - }, - "fullName": { - "name": "fullName", - "type": "String" - }, - "emails": { - "name": "emails", - "isArray": true, - "type": "String" - }, - "device": { - "name": "device", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserContactPayload", - "ofType": null - } - }, - "updateUserDevice": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserDevice", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserDeviceInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "type": { - "name": "type", - "type": "Int" - }, - "deviceId": { - "name": "deviceId", - "type": "String" - }, - "pushToken": { - "name": "pushToken", - "type": "String" - }, - "pushTokenRequested": { - "name": "pushTokenRequested", - "type": "Boolean" - }, - "data": { - "name": "data", - "type": "JSON" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserDevicePayload", - "ofType": null - } - }, - "updateUserLocation": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserLocation", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserLocationInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "name": { - "name": "name", - "type": "String" - }, - "kind": { - "name": "kind", - "type": "String" - }, - "description": { - "name": "description", - "type": "String" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "bbox": { - "name": "bbox", - "type": "GeoJSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserLocationPayload", - "ofType": null - } - }, - "updateUserMessage": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserMessage", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserMessageInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "senderId": { - "name": "senderId", - "type": "UUID" - }, - "type": { - "name": "type", - "type": "String" - }, - "content": { - "name": "content", - "type": "JSON" - }, - "upload": { - "name": "upload", - "type": "JSON" - }, - "received": { - "name": "received", - "type": "Boolean" - }, - "receiverRead": { - "name": "receiverRead", - "type": "Boolean" - }, - "senderReaction": { - "name": "senderReaction", - "type": "String" - }, - "receiverReaction": { - "name": "receiverReaction", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "receiverId": { - "name": "receiverId", - "type": "UUID" - }, - "uploadUpload": { - "name": "uploadUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserMessagePayload", - "ofType": null - } - }, - "updateUserPassAction": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserPassAction", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserPassActionInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserPassActionPayload", - "ofType": null - } - }, - "updateUserProfile": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserProfile", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserProfileInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "profilePicture": { - "name": "profilePicture", - "type": "JSON" - }, - "bio": { - "name": "bio", - "type": "String" - }, - "reputation": { - "name": "reputation", - "type": "BigFloat" - }, - "displayName": { - "name": "displayName", - "type": "String" - }, - "tags": { - "name": "tags", - "isArray": true, - "type": "String" - }, - "desired": { - "name": "desired", - "isArray": true, - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "profilePictureUpload": { - "name": "profilePictureUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserProfilePayload", - "ofType": null - } - }, - "updateUserQuestion": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserQuestion", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserQuestionInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "questionType": { - "name": "questionType", - "type": "String" - }, - "questionPrompt": { - "name": "questionPrompt", - "type": "String" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserQuestionPayload", - "ofType": null - } - }, - "updateUserSavedAction": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserSavedAction", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserSavedActionInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserSavedActionPayload", - "ofType": null - } - }, - "updateUserSetting": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserSetting", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserSettingInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "firstName": { - "name": "firstName", - "type": "String" - }, - "lastName": { - "name": "lastName", - "type": "String" - }, - "searchRadius": { - "name": "searchRadius", - "type": "BigFloat" - }, - "zip": { - "name": "zip", - "type": "Int" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserSettingPayload", - "ofType": null - } - }, - "updateUserViewedAction": { - "qtype": "mutation", - "mutationType": "patch", - "model": "UserViewedAction", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserViewedActionInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "userId": { - "name": "userId", - "type": "UUID" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - }, - "actionId": { - "name": "actionId", - "type": "UUID" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserViewedActionPayload", - "ofType": null - } - }, - "updateUser": { - "qtype": "mutation", - "mutationType": "patch", - "model": "User", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "username": { - "name": "username", - "type": "String" - }, - "displayName": { - "name": "displayName", - "type": "String" - }, - "profilePicture": { - "name": "profilePicture", - "type": "JSON" - }, - "searchTsv": { - "name": "searchTsv", - "type": "FullText" - }, - "type": { - "name": "type", - "type": "Int" - }, - "profilePictureUpload": { - "name": "profilePictureUpload", - "type": "Upload" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserPayload", - "ofType": null - } - }, - "updateUserByUsername": { - "qtype": "mutation", - "mutationType": "patch", - "model": "User", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateUserByUsernameInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "username": { - "name": "username", - "type": "String" - }, - "displayName": { - "name": "displayName", - "type": "String" - }, - "profilePicture": { - "name": "profilePicture", - "type": "JSON" - }, - "searchTsv": { - "name": "searchTsv", - "type": "FullText" - }, - "type": { - "name": "type", - "type": "Int" - }, - "profilePictureUpload": { - "name": "profilePictureUpload", - "type": "Upload" - } - } - }, - "username": { - "name": "username", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateUserPayload", - "ofType": null - } - }, - "updateZipCode": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ZipCode", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateZipCodeInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "zip": { - "name": "zip", - "type": "Int" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "bbox": { - "name": "bbox", - "type": "GeoJSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateZipCodePayload", - "ofType": null - } - }, - "updateZipCodeByZip": { - "qtype": "mutation", - "mutationType": "patch", - "model": "ZipCode", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateZipCodeByZipInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "zip": { - "name": "zip", - "type": "Int" - }, - "location": { - "name": "location", - "type": "GeoJSON" - }, - "bbox": { - "name": "bbox", - "type": "GeoJSON" - }, - "createdBy": { - "name": "createdBy", - "type": "UUID" - }, - "updatedBy": { - "name": "updatedBy", - "type": "UUID" - }, - "createdAt": { - "name": "createdAt", - "type": "Datetime" - }, - "updatedAt": { - "name": "updatedAt", - "type": "Datetime" - } - } - }, - "zip": { - "name": "zip", - "isNotNull": true, - "type": "Int" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateZipCodePayload", - "ofType": null - } - }, - "updateAuthAccount": { - "qtype": "mutation", - "mutationType": "patch", - "model": "AuthAccount", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateAuthAccountInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "service": { - "name": "service", - "type": "String" - }, - "identifier": { - "name": "identifier", - "type": "String" - }, - "details": { - "name": "details", - "type": "JSON" - }, - "isVerified": { - "name": "isVerified", - "type": "Boolean" - } - } - }, - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateAuthAccountPayload", - "ofType": null - } - }, - "updateAuthAccountByServiceAndIdentifier": { - "qtype": "mutation", - "mutationType": "patch", - "model": "AuthAccount", - "properties": { - "input": { - "isNotNull": true, - "type": "UpdateAuthAccountByServiceAndIdentifierInput", - "properties": { - "patch": { - "name": "patch", - "isNotNull": true, - "properties": { - "id": { - "name": "id", - "type": "UUID" - }, - "ownerId": { - "name": "ownerId", - "type": "UUID" - }, - "service": { - "name": "service", - "type": "String" - }, - "identifier": { - "name": "identifier", - "type": "String" - }, - "details": { - "name": "details", - "type": "JSON" - }, - "isVerified": { - "name": "isVerified", - "type": "Boolean" - } - } - }, - "service": { - "name": "service", - "isNotNull": true, - "type": "String" - }, - "identifier": { - "name": "identifier", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "UpdateAuthAccountPayload", - "ofType": null - } - }, - "deleteActionGoal": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ActionGoal", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteActionGoalInput", - "properties": { - "actionId": { - "name": "actionId", - "isNotNull": true, - "type": "UUID" - }, - "goalId": { - "name": "goalId", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteActionGoalPayload", - "ofType": null - } - }, - "deleteActionItemType": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ActionItemType", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteActionItemTypeInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "Int" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteActionItemTypePayload", - "ofType": null - } - }, - "deleteActionItem": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ActionItem", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteActionItemInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteActionItemPayload", - "ofType": null - } - }, - "deleteActionVariation": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ActionVariation", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteActionVariationInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteActionVariationPayload", - "ofType": null - } - }, - "deleteAction": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Action", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteActionInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteActionPayload", - "ofType": null - } - }, - "deleteActionBySlug": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Action", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteActionBySlugInput", - "properties": { - "slug": { - "name": "slug", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteActionPayload", - "ofType": null - } - }, - "deleteConnectedAccount": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ConnectedAccount", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteConnectedAccountInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteConnectedAccountPayload", - "ofType": null - } - }, - "deleteConnectedAccountByServiceAndIdentifier": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ConnectedAccount", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteConnectedAccountByServiceAndIdentifierInput", - "properties": { - "service": { - "name": "service", - "isNotNull": true, - "type": "String" - }, - "identifier": { - "name": "identifier", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteConnectedAccountPayload", - "ofType": null - } - }, - "deleteCryptoAddress": { - "qtype": "mutation", - "mutationType": "delete", - "model": "CryptoAddress", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteCryptoAddressInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteCryptoAddressPayload", - "ofType": null - } - }, - "deleteCryptoAddressByAddress": { - "qtype": "mutation", - "mutationType": "delete", - "model": "CryptoAddress", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteCryptoAddressByAddressInput", - "properties": { - "address": { - "name": "address", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteCryptoAddressPayload", - "ofType": null - } - }, - "deleteEmail": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Email", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteEmailInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteEmailPayload", - "ofType": null - } - }, - "deleteEmailByEmail": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Email", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteEmailByEmailInput", - "properties": { - "email": { - "name": "email", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteEmailPayload", - "ofType": null - } - }, - "deleteGoalExplanation": { - "qtype": "mutation", - "mutationType": "delete", - "model": "GoalExplanation", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteGoalExplanationInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteGoalExplanationPayload", - "ofType": null - } - }, - "deleteGoal": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Goal", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteGoalInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteGoalPayload", - "ofType": null - } - }, - "deleteGoalByName": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Goal", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteGoalByNameInput", - "properties": { - "name": { - "name": "name", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteGoalPayload", - "ofType": null - } - }, - "deleteGoalBySlug": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Goal", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteGoalBySlugInput", - "properties": { - "slug": { - "name": "slug", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteGoalPayload", - "ofType": null - } - }, - "deleteGroupPostComment": { - "qtype": "mutation", - "mutationType": "delete", - "model": "GroupPostComment", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteGroupPostCommentInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteGroupPostCommentPayload", - "ofType": null - } - }, - "deleteGroupPostReaction": { - "qtype": "mutation", - "mutationType": "delete", - "model": "GroupPostReaction", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteGroupPostReactionInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteGroupPostReactionPayload", - "ofType": null - } - }, - "deleteGroupPost": { - "qtype": "mutation", - "mutationType": "delete", - "model": "GroupPost", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteGroupPostInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteGroupPostPayload", - "ofType": null - } - }, - "deleteGroup": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Group", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteGroupInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteGroupPayload", - "ofType": null - } - }, - "deleteLocationType": { - "qtype": "mutation", - "mutationType": "delete", - "model": "LocationType", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteLocationTypeInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteLocationTypePayload", - "ofType": null - } - }, - "deleteLocation": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Location", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteLocationInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteLocationPayload", - "ofType": null - } - }, - "deleteMessageGroup": { - "qtype": "mutation", - "mutationType": "delete", - "model": "MessageGroup", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteMessageGroupInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteMessageGroupPayload", - "ofType": null - } - }, - "deleteMessage": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Message", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteMessageInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteMessagePayload", - "ofType": null - } - }, - "deleteNewsArticle": { - "qtype": "mutation", - "mutationType": "delete", - "model": "NewsArticle", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteNewsArticleInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteNewsArticlePayload", - "ofType": null - } - }, - "deleteNotificationPreference": { - "qtype": "mutation", - "mutationType": "delete", - "model": "NotificationPreference", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteNotificationPreferenceInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteNotificationPreferencePayload", - "ofType": null - } - }, - "deleteNotification": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Notification", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteNotificationInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteNotificationPayload", - "ofType": null - } - }, - "deleteObjectAttribute": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ObjectAttribute", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteObjectAttributeInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteObjectAttributePayload", - "ofType": null - } - }, - "deleteObjectTypeAttribute": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ObjectTypeAttribute", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteObjectTypeAttributeInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteObjectTypeAttributePayload", - "ofType": null - } - }, - "deleteObjectTypeValue": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ObjectTypeValue", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteObjectTypeValueInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteObjectTypeValuePayload", - "ofType": null - } - }, - "deleteObjectType": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ObjectType", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteObjectTypeInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "Int" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteObjectTypePayload", - "ofType": null - } - }, - "deleteObject": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Object", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteObjectInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteObjectPayload", - "ofType": null - } - }, - "deleteOrganizationProfile": { - "qtype": "mutation", - "mutationType": "delete", - "model": "OrganizationProfile", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteOrganizationProfileInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteOrganizationProfilePayload", - "ofType": null - } - }, - "deletePhoneNumber": { - "qtype": "mutation", - "mutationType": "delete", - "model": "PhoneNumber", - "properties": { - "input": { - "isNotNull": true, - "type": "DeletePhoneNumberInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeletePhoneNumberPayload", - "ofType": null - } - }, - "deletePhoneNumberByNumber": { - "qtype": "mutation", - "mutationType": "delete", - "model": "PhoneNumber", - "properties": { - "input": { - "isNotNull": true, - "type": "DeletePhoneNumberByNumberInput", - "properties": { - "number": { - "name": "number", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeletePhoneNumberPayload", - "ofType": null - } - }, - "deletePostComment": { - "qtype": "mutation", - "mutationType": "delete", - "model": "PostComment", - "properties": { - "input": { - "isNotNull": true, - "type": "DeletePostCommentInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeletePostCommentPayload", - "ofType": null - } - }, - "deletePostReaction": { - "qtype": "mutation", - "mutationType": "delete", - "model": "PostReaction", - "properties": { - "input": { - "isNotNull": true, - "type": "DeletePostReactionInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeletePostReactionPayload", - "ofType": null - } - }, - "deletePost": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Post", - "properties": { - "input": { - "isNotNull": true, - "type": "DeletePostInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeletePostPayload", - "ofType": null - } - }, - "deleteRequiredAction": { - "qtype": "mutation", - "mutationType": "delete", - "model": "RequiredAction", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteRequiredActionInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteRequiredActionPayload", - "ofType": null - } - }, - "deleteRewardLimit": { - "qtype": "mutation", - "mutationType": "delete", - "model": "RewardLimit", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteRewardLimitInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteRewardLimitPayload", - "ofType": null - } - }, - "deleteRoleType": { - "qtype": "mutation", - "mutationType": "delete", - "model": "RoleType", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteRoleTypeInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "Int" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteRoleTypePayload", - "ofType": null - } - }, - "deleteRoleTypeByName": { - "qtype": "mutation", - "mutationType": "delete", - "model": "RoleType", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteRoleTypeByNameInput", - "properties": { - "name": { - "name": "name", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteRoleTypePayload", - "ofType": null - } - }, - "deleteTrackAction": { - "qtype": "mutation", - "mutationType": "delete", - "model": "TrackAction", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteTrackActionInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteTrackActionPayload", - "ofType": null - } - }, - "deleteTrack": { - "qtype": "mutation", - "mutationType": "delete", - "model": "Track", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteTrackInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteTrackPayload", - "ofType": null - } - }, - "deleteUserActionItemVerification": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserActionItemVerification", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserActionItemVerificationInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserActionItemVerificationPayload", - "ofType": null - } - }, - "deleteUserActionItem": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserActionItem", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserActionItemInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserActionItemPayload", - "ofType": null - } - }, - "deleteUserActionReaction": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserActionReaction", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserActionReactionInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserActionReactionPayload", - "ofType": null - } - }, - "deleteUserActionVerification": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserActionVerification", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserActionVerificationInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserActionVerificationPayload", - "ofType": null - } - }, - "deleteUserAction": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserAction", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserActionInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserActionPayload", - "ofType": null - } - }, - "deleteUserAnswer": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserAnswer", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserAnswerInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserAnswerPayload", - "ofType": null - } - }, - "deleteUserCharacteristic": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserCharacteristic", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserCharacteristicInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserCharacteristicPayload", - "ofType": null - } - }, - "deleteUserConnection": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserConnection", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserConnectionInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserConnectionPayload", - "ofType": null - } - }, - "deleteUserContact": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserContact", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserContactInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserContactPayload", - "ofType": null - } - }, - "deleteUserDevice": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserDevice", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserDeviceInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserDevicePayload", - "ofType": null - } - }, - "deleteUserLocation": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserLocation", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserLocationInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserLocationPayload", - "ofType": null - } - }, - "deleteUserMessage": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserMessage", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserMessageInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserMessagePayload", - "ofType": null - } - }, - "deleteUserPassAction": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserPassAction", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserPassActionInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserPassActionPayload", - "ofType": null - } - }, - "deleteUserProfile": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserProfile", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserProfileInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserProfilePayload", - "ofType": null - } - }, - "deleteUserQuestion": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserQuestion", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserQuestionInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserQuestionPayload", - "ofType": null - } - }, - "deleteUserSavedAction": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserSavedAction", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserSavedActionInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserSavedActionPayload", - "ofType": null - } - }, - "deleteUserSetting": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserSetting", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserSettingInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserSettingPayload", - "ofType": null - } - }, - "deleteUserViewedAction": { - "qtype": "mutation", - "mutationType": "delete", - "model": "UserViewedAction", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserViewedActionInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserViewedActionPayload", - "ofType": null - } - }, - "deleteUser": { - "qtype": "mutation", - "mutationType": "delete", - "model": "User", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserPayload", - "ofType": null - } - }, - "deleteUserByUsername": { - "qtype": "mutation", - "mutationType": "delete", - "model": "User", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteUserByUsernameInput", - "properties": { - "username": { - "name": "username", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteUserPayload", - "ofType": null - } - }, - "deleteZipCode": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ZipCode", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteZipCodeInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteZipCodePayload", - "ofType": null - } - }, - "deleteZipCodeByZip": { - "qtype": "mutation", - "mutationType": "delete", - "model": "ZipCode", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteZipCodeByZipInput", - "properties": { - "zip": { - "name": "zip", - "isNotNull": true, - "type": "Int" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteZipCodePayload", - "ofType": null - } - }, - "deleteAuthAccount": { - "qtype": "mutation", - "mutationType": "delete", - "model": "AuthAccount", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteAuthAccountInput", - "properties": { - "id": { - "name": "id", - "isNotNull": true, - "type": "UUID" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteAuthAccountPayload", - "ofType": null - } - }, - "deleteAuthAccountByServiceAndIdentifier": { - "qtype": "mutation", - "mutationType": "delete", - "model": "AuthAccount", - "properties": { - "input": { - "isNotNull": true, - "type": "DeleteAuthAccountByServiceAndIdentifierInput", - "properties": { - "service": { - "name": "service", - "isNotNull": true, - "type": "String" - }, - "identifier": { - "name": "identifier", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "DeleteAuthAccountPayload", - "ofType": null - } - }, - "uuidGenerateV4": { - "qtype": "mutation", - "mutationType": "other", - "properties": { - "input": { - "isNotNull": true, - "type": "UuidGenerateV4Input", - "properties": {} - } - }, - "output": { - "kind": "OBJECT", - "name": "UuidGenerateV4Payload", - "ofType": null - }, - "outputs": [{ - "name": "uuid", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - }] - }, - "confirmDeleteAccount": { - "qtype": "mutation", - "mutationType": "other", - "properties": { - "input": { - "isNotNull": true, - "type": "ConfirmDeleteAccountInput", - "properties": { - "userId": { - "name": "userId", - "type": "UUID" - }, - "token": { - "name": "token", - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "ConfirmDeleteAccountPayload", - "ofType": null - }, - "outputs": [{ - "name": "boolean", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }] - }, - "extendTokenExpires": { - "qtype": "mutation", - "mutationType": "other", - "model": "ApiToken", - "properties": { - "input": { - "isNotNull": true, - "type": "ExtendTokenExpiresInput", - "properties": { - "amount": { - "name": "amount", - "properties": { - "seconds": { - "name": "seconds", - "type": "Float" - }, - "minutes": { - "name": "minutes", - "type": "Int" - }, - "hours": { - "name": "hours", - "type": "Int" - }, - "days": { - "name": "days", - "type": "Int" - }, - "months": { - "name": "months", - "type": "Int" - }, - "years": { - "name": "years", - "type": "Int" - } - } - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "ExtendTokenExpiresPayload", - "ofType": null - } - }, - "forgotPassword": { - "qtype": "mutation", - "mutationType": "other", - "properties": { - "input": { - "isNotNull": true, - "type": "ForgotPasswordInput", - "properties": { - "email": { - "name": "email", - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "ForgotPasswordPayload", - "ofType": null - }, - "outputs": [] - }, - "login": { - "qtype": "mutation", - "mutationType": "other", - "model": "ApiToken", - "properties": { - "input": { - "isNotNull": true, - "type": "LoginInput", - "properties": { - "email": { - "name": "email", - "isNotNull": true, - "type": "String" - }, - "password": { - "name": "password", - "isNotNull": true, - "type": "String" - }, - "rememberMe": { - "name": "rememberMe", - "type": "Boolean" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "LoginPayload", - "ofType": null - } - }, - "loginOneTimeToken": { - "qtype": "mutation", - "mutationType": "other", - "model": "ApiToken", - "properties": { - "input": { - "isNotNull": true, - "type": "LoginOneTimeTokenInput", - "properties": { - "token": { - "name": "token", - "isNotNull": true, - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "LoginOneTimeTokenPayload", - "ofType": null - } - }, - "logout": { - "qtype": "mutation", - "mutationType": "other", - "properties": { - "input": { - "isNotNull": true, - "type": "LogoutInput", - "properties": {} - } - }, - "output": { - "kind": "OBJECT", - "name": "LogoutPayload", - "ofType": null - }, - "outputs": [] - }, - "oneTimeToken": { - "qtype": "mutation", - "mutationType": "other", - "properties": { - "input": { - "isNotNull": true, - "type": "OneTimeTokenInput", - "properties": { - "email": { - "name": "email", - "isNotNull": true, - "type": "String" - }, - "password": { - "name": "password", - "isNotNull": true, - "type": "String" - }, - "origin": { - "name": "origin", - "isNotNull": true, - "type": "String" - }, - "rememberMe": { - "name": "rememberMe", - "type": "Boolean" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "OneTimeTokenPayload", - "ofType": null - }, - "outputs": [{ - "name": "string", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }] - }, - "register": { - "qtype": "mutation", - "mutationType": "other", - "model": "ApiToken", - "properties": { - "input": { - "isNotNull": true, - "type": "RegisterInput", - "properties": { - "email": { - "name": "email", - "type": "String" - }, - "password": { - "name": "password", - "type": "String" - }, - "rememberMe": { - "name": "rememberMe", - "type": "Boolean" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "RegisterPayload", - "ofType": null - } - }, - "resetPassword": { - "qtype": "mutation", - "mutationType": "other", - "properties": { - "input": { - "isNotNull": true, - "type": "ResetPasswordInput", - "properties": { - "roleId": { - "name": "roleId", - "type": "UUID" - }, - "resetToken": { - "name": "resetToken", - "type": "String" - }, - "newPassword": { - "name": "newPassword", - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "ResetPasswordPayload", - "ofType": null - }, - "outputs": [{ - "name": "boolean", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }] - }, - "sendAccountDeletionEmail": { - "qtype": "mutation", - "mutationType": "other", - "properties": { - "input": { - "isNotNull": true, - "type": "SendAccountDeletionEmailInput", - "properties": {} - } - }, - "output": { - "kind": "OBJECT", - "name": "SendAccountDeletionEmailPayload", - "ofType": null - }, - "outputs": [{ - "name": "boolean", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }] - }, - "sendVerificationEmail": { - "qtype": "mutation", - "mutationType": "other", - "properties": { - "input": { - "isNotNull": true, - "type": "SendVerificationEmailInput", - "properties": { - "email": { - "name": "email", - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "SendVerificationEmailPayload", - "ofType": null - }, - "outputs": [{ - "name": "boolean", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }] - }, - "setPassword": { - "qtype": "mutation", - "mutationType": "other", - "properties": { - "input": { - "isNotNull": true, - "type": "SetPasswordInput", - "properties": { - "currentPassword": { - "name": "currentPassword", - "type": "String" - }, - "newPassword": { - "name": "newPassword", - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "SetPasswordPayload", - "ofType": null - }, - "outputs": [{ - "name": "boolean", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }] - }, - "verifyEmail": { - "qtype": "mutation", - "mutationType": "other", - "properties": { - "input": { - "isNotNull": true, - "type": "VerifyEmailInput", - "properties": { - "emailId": { - "name": "emailId", - "type": "UUID" - }, - "token": { - "name": "token", - "type": "String" - } - } - } - }, - "output": { - "kind": "OBJECT", - "name": "VerifyEmailPayload", - "ofType": null - }, - "outputs": [{ - "name": "boolean", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }] - } + "actionGoals": { + "qtype": "getMany", + "model": "ActionGoal", + "selection": [ + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "goalId", + "owner", + "action", + "goal" + ] + }, + "actionItemTypes": { + "qtype": "getMany", + "model": "ActionItemType", + "selection": [ + "id", + "name", + "description", + "image", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + { + "name": "actionItemsByItemTypeId", + "qtype": "getMany", + "model": "ActionItem", + "selection": [ + "id", + "name", + "description", + "type", + "itemOrder", + "timeRequired", + "isRequired", + "notificationText", + "embedCode", + "url", + "media", + "location", + "locationRadius", + "rewardWeight", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "itemTypeId", + "ownerId", + "actionId", + "itemType", + "owner", + "action" + ] + } + ] + }, + "actionItems": { + "qtype": "getMany", + "model": "ActionItem", + "selection": [ + "id", + "name", + "description", + "type", + "itemOrder", + "timeRequired", + "isRequired", + "notificationText", + "embedCode", + "url", + "media", + "location", + "locationRadius", + "rewardWeight", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "itemTypeId", + "ownerId", + "actionId", + "itemType", + "owner", + "action", + { + "name": "userActionItems", + "qtype": "getMany", + "model": "UserActionItem", + "selection": [ + "id", + "userId", + "text", + "media", + "location", + "bbox", + "data", + "complete", + "verified", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "user", + "owner", + "action", + "userAction", + "actionItem" + ] + }, + { + "name": "userActionItemVerifications", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + } + ] + }, + "actionVariations": { + "qtype": "getMany", + "model": "ActionVariation", + "selection": [ + "id", + "photo", + "title", + "description", + "income", + "gender", + "dob", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "owner", + "action" + ] + }, + "actions": { + "qtype": "getMany", + "model": "Action", + "selection": [ + "id", + "slug", + "photo", + "shareImage", + "title", + "titleObjectTemplate", + "url", + "description", + "discoveryHeader", + "discoveryDescription", + "notificationText", + "notificationObjectTemplate", + "enableNotifications", + "enableNotificationsText", + "search", + "location", + "locationRadius", + "timeRequired", + "startDate", + "endDate", + "approved", + "published", + "isPrivate", + "rewardAmount", + "activityFeedText", + "callToAction", + "completedActionText", + "alreadyCompletedActionText", + "selfVerifiable", + "isRecurring", + "recurringInterval", + "oncePerObject", + "minimumGroupMembers", + "limitedToLocation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "ownerId", + "objectTypeId", + "rewardId", + "verifyRewardId", + "group", + "owner", + "objectType", + "reward", + "verifyReward", + { + "name": "actionGoals", + "qtype": "getMany", + "model": "ActionGoal", + "selection": [ + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "goalId", + "owner", + "action", + "goal" + ] + }, + { + "name": "actionVariations", + "qtype": "getMany", + "model": "ActionVariation", + "selection": [ + "id", + "photo", + "title", + "description", + "income", + "gender", + "dob", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "owner", + "action" + ] + }, + { + "name": "actionItems", + "qtype": "getMany", + "model": "ActionItem", + "selection": [ + "id", + "name", + "description", + "type", + "itemOrder", + "timeRequired", + "isRequired", + "notificationText", + "embedCode", + "url", + "media", + "location", + "locationRadius", + "rewardWeight", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "itemTypeId", + "ownerId", + "actionId", + "itemType", + "owner", + "action" + ] + }, + { + "name": "requiredActions", + "qtype": "getMany", + "model": "RequiredAction", + "selection": [ + "id", + "actionOrder", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "requiredId", + "action", + "owner", + "required" + ] + }, + { + "name": "requiredActionsByRequiredId", + "qtype": "getMany", + "model": "RequiredAction", + "selection": [ + "id", + "actionOrder", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "requiredId", + "action", + "owner", + "required" + ] + }, + { + "name": "userActions", + "qtype": "getMany", + "model": "UserAction", + "selection": [ + "id", + "userId", + "actionStarted", + "complete", + "verified", + "verifiedDate", + "userRating", + "rejected", + "location", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "objectId", + "user", + "owner", + "action", + "object" + ] + }, + { + "name": "userActionVerifications", + "qtype": "getMany", + "model": "UserActionVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "user", + "owner", + "action", + "userAction" + ] + }, + { + "name": "userActionItems", + "qtype": "getMany", + "model": "UserActionItem", + "selection": [ + "id", + "userId", + "text", + "media", + "location", + "bbox", + "data", + "complete", + "verified", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "user", + "owner", + "action", + "userAction", + "actionItem" + ] + }, + { + "name": "userActionItemVerifications", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + }, + { + "name": "trackActions", + "qtype": "getMany", + "model": "TrackAction", + "selection": [ + "id", + "trackOrder", + "isRequired", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "trackId", + "action", + "owner", + "track" + ] + }, + { + "name": "userPassActions", + "qtype": "getMany", + "model": "UserPassAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userSavedActions", + "qtype": "getMany", + "model": "UserSavedAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userViewedActions", + "qtype": "getMany", + "model": "UserViewedAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userActionReactions", + "qtype": "getMany", + "model": "UserActionReaction", + "selection": [ + "id", + "reacterId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userActionId", + "userId", + "actionId", + "reacter", + "userAction", + "user", + "action" + ] + }, + "searchRank", + { + "name": "goals", + "qtype": "getMany", + "model": "Goal", + "selection": [ + "id", + "name", + "slug", + "shortName", + "icon", + "subHead", + "tags", + "search", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "searchRank" + ] + } + ] + }, + "connectedAccounts": { + "qtype": "getMany", + "model": "ConnectedAccount", + "selection": ["id", "ownerId", "service", "identifier", "details", "isVerified", "owner"] + }, + "cryptoAddresses": { + "qtype": "getMany", + "model": "CryptoAddress", + "selection": ["id", "ownerId", "address", "isVerified", "isPrimary", "owner"] + }, + "emails": { + "qtype": "getMany", + "model": "Email", + "selection": ["id", "ownerId", "email", "isVerified", "isPrimary", "owner"] + }, + "goalExplanations": { + "qtype": "getMany", + "model": "GoalExplanation", + "selection": [ + "id", + "audio", + "audioDuration", + "explanationTitle", + "explanation", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "goalId", + "goal" + ] + }, + "goals": { + "qtype": "getMany", + "model": "Goal", + "selection": [ + "id", + "name", + "slug", + "shortName", + "icon", + "subHead", + "tags", + "search", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + { + "name": "goalExplanations", + "qtype": "getMany", + "model": "GoalExplanation", + "selection": [ + "id", + "audio", + "audioDuration", + "explanationTitle", + "explanation", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "goalId", + "goal" + ] + }, + { + "name": "actionGoals", + "qtype": "getMany", + "model": "ActionGoal", + "selection": [ + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "goalId", + "owner", + "action", + "goal" + ] + }, + "searchRank", + { + "name": "actions", + "qtype": "getMany", + "model": "Action", + "selection": [ + "id", + "slug", + "photo", + "shareImage", + "title", + "titleObjectTemplate", + "url", + "description", + "discoveryHeader", + "discoveryDescription", + "notificationText", + "notificationObjectTemplate", + "enableNotifications", + "enableNotificationsText", + "search", + "location", + "locationRadius", + "timeRequired", + "startDate", + "endDate", + "approved", + "published", + "isPrivate", + "rewardAmount", + "activityFeedText", + "callToAction", + "completedActionText", + "alreadyCompletedActionText", + "selfVerifiable", + "isRecurring", + "recurringInterval", + "oncePerObject", + "minimumGroupMembers", + "limitedToLocation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "ownerId", + "objectTypeId", + "rewardId", + "verifyRewardId", + "group", + "owner", + "objectType", + "reward", + "verifyReward", + "searchRank" + ] + } + ] + }, + "groupPostComments": { + "qtype": "getMany", + "model": "GroupPostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "postId", + "posterId", + "commenter", + "parent", + "group", + "post", + "poster", + { + "name": "groupPostCommentsByParentId", + "qtype": "getMany", + "model": "GroupPostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "postId", + "posterId", + "commenter", + "parent", + "group", + "post", + "poster" + ] + } + ] + }, + "groupPostReactions": { + "qtype": "getMany", + "model": "GroupPostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "posterId", + "postId", + "reacter", + "group", + "poster", + "post" + ] + }, + "groupPosts": { + "qtype": "getMany", + "model": "GroupPost", + "selection": [ + "id", + "posterId", + "type", + "flagged", + "image", + "url", + "location", + "data", + "taggedUserIds", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "poster", + "group", + { + "name": "groupPostReactionsByPostId", + "qtype": "getMany", + "model": "GroupPostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "posterId", + "postId", + "reacter", + "group", + "poster", + "post" + ] + }, + { + "name": "groupPostCommentsByPostId", + "qtype": "getMany", + "model": "GroupPostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "postId", + "posterId", + "commenter", + "parent", + "group", + "post", + "poster" + ] + } + ] + }, + "groups": { + "qtype": "getMany", + "model": "Group", + "selection": [ + "id", + "name", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner", + { + "name": "actions", + "qtype": "getMany", + "model": "Action", + "selection": [ + "id", + "slug", + "photo", + "shareImage", + "title", + "titleObjectTemplate", + "url", + "description", + "discoveryHeader", + "discoveryDescription", + "notificationText", + "notificationObjectTemplate", + "enableNotifications", + "enableNotificationsText", + "search", + "location", + "locationRadius", + "timeRequired", + "startDate", + "endDate", + "approved", + "published", + "isPrivate", + "rewardAmount", + "activityFeedText", + "callToAction", + "completedActionText", + "alreadyCompletedActionText", + "selfVerifiable", + "isRecurring", + "recurringInterval", + "oncePerObject", + "minimumGroupMembers", + "limitedToLocation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "ownerId", + "objectTypeId", + "rewardId", + "verifyRewardId", + "group", + "owner", + "objectType", + "reward", + "verifyReward", + "searchRank" + ] + }, + { + "name": "groupPosts", + "qtype": "getMany", + "model": "GroupPost", + "selection": [ + "id", + "posterId", + "type", + "flagged", + "image", + "url", + "location", + "data", + "taggedUserIds", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "poster", + "group" + ] + }, + { + "name": "groupPostReactions", + "qtype": "getMany", + "model": "GroupPostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "posterId", + "postId", + "reacter", + "group", + "poster", + "post" + ] + }, + { + "name": "groupPostComments", + "qtype": "getMany", + "model": "GroupPostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "postId", + "posterId", + "commenter", + "parent", + "group", + "post", + "poster" + ] + }, + { + "name": "rewardLimitsByActionGroupIdAndRewardId", + "qtype": "getMany", + "model": "RewardLimit", + "selection": [ + "id", + "rewardAmount", + "rewardUnit", + "totalRewardLimit", + "weeklyLimit", + "dailyLimit", + "totalLimit", + "userTotalLimit", + "userWeeklyLimit", + "userDailyLimit", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner" + ] + }, + { + "name": "rewardLimitsByActionGroupIdAndVerifyRewardId", + "qtype": "getMany", + "model": "RewardLimit", + "selection": [ + "id", + "rewardAmount", + "rewardUnit", + "totalRewardLimit", + "weeklyLimit", + "dailyLimit", + "totalLimit", + "userTotalLimit", + "userWeeklyLimit", + "userDailyLimit", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner" + ] + } + ] + }, + "locationTypes": { + "qtype": "getMany", + "model": "LocationType", + "selection": [ + "id", + "name", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + { + "name": "locationsByLocationType", + "qtype": "getMany", + "model": "Location", + "selection": [ + "id", + "name", + "location", + "bbox", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "locationType", + "owner", + "locationTypeByLocationType" + ] + } + ] + }, + "locations": { + "qtype": "getMany", + "model": "Location", + "selection": [ + "id", + "name", + "location", + "bbox", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "locationType", + "owner", + "locationTypeByLocationType" + ] + }, + "messageGroups": { + "qtype": "getMany", + "model": "MessageGroup", + "selection": [ + "id", + "name", + "memberIds", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + { + "name": "messagesByGroupId", + "qtype": "getMany", + "model": "Message", + "selection": [ + "id", + "senderId", + "type", + "content", + "upload", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "sender", + "group" + ] + } + ] + }, + "messages": { + "qtype": "getMany", + "model": "Message", + "selection": [ + "id", + "senderId", + "type", + "content", + "upload", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "sender", + "group" + ] + }, + "newsArticles": { + "qtype": "getMany", + "model": "NewsArticle", + "selection": [ + "id", + "name", + "description", + "link", + "publishedAt", + "photo", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt" + ] + }, + "notificationPreferences": { + "qtype": "getMany", + "model": "NotificationPreference", + "selection": [ + "id", + "userId", + "emails", + "sms", + "notifications", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + "notifications": { + "qtype": "getMany", + "model": "Notification", + "selection": [ + "id", + "actorId", + "recipientId", + "notificationType", + "notificationText", + "entityType", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actor", + "recipient" + ] + }, + "objectAttributes": { + "qtype": "getMany", + "model": "ObjectAttribute", + "selection": [ + "id", + "description", + "location", + "text", + "numeric", + "image", + "data", + "ownerId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "valueId", + "objectId", + "objectTypeAttributeId", + "owner", + "value", + "object", + "objectTypeAttribute" + ] + }, + "objectTypeAttributes": { + "qtype": "getMany", + "model": "ObjectTypeAttribute", + "selection": [ + "id", + "name", + "label", + "type", + "unit", + "description", + "min", + "max", + "pattern", + "isRequired", + "attrOrder", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "objectTypeId", + "objectType", + { + "name": "objectTypeValuesByAttrId", + "qtype": "getMany", + "model": "ObjectTypeValue", + "selection": [ + "id", + "name", + "description", + "photo", + "icon", + "type", + "location", + "text", + "numeric", + "image", + "data", + "valueOrder", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "attrId", + "attr" + ] + }, + { + "name": "objectAttributes", + "qtype": "getMany", + "model": "ObjectAttribute", + "selection": [ + "id", + "description", + "location", + "text", + "numeric", + "image", + "data", + "ownerId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "valueId", + "objectId", + "objectTypeAttributeId", + "owner", + "value", + "object", + "objectTypeAttribute" + ] + } + ] + }, + "objectTypeValues": { + "qtype": "getMany", + "model": "ObjectTypeValue", + "selection": [ + "id", + "name", + "description", + "photo", + "icon", + "type", + "location", + "text", + "numeric", + "image", + "data", + "valueOrder", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "attrId", + "attr", + { + "name": "objectAttributesByValueId", + "qtype": "getMany", + "model": "ObjectAttribute", + "selection": [ + "id", + "description", + "location", + "text", + "numeric", + "image", + "data", + "ownerId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "valueId", + "objectId", + "objectTypeAttributeId", + "owner", + "value", + "object", + "objectTypeAttribute" + ] + } + ] + }, + "objectTypes": { + "qtype": "getMany", + "model": "ObjectType", + "selection": [ + "id", + "name", + "description", + "photo", + "icon", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + { + "name": "actions", + "qtype": "getMany", + "model": "Action", + "selection": [ + "id", + "slug", + "photo", + "shareImage", + "title", + "titleObjectTemplate", + "url", + "description", + "discoveryHeader", + "discoveryDescription", + "notificationText", + "notificationObjectTemplate", + "enableNotifications", + "enableNotificationsText", + "search", + "location", + "locationRadius", + "timeRequired", + "startDate", + "endDate", + "approved", + "published", + "isPrivate", + "rewardAmount", + "activityFeedText", + "callToAction", + "completedActionText", + "alreadyCompletedActionText", + "selfVerifiable", + "isRecurring", + "recurringInterval", + "oncePerObject", + "minimumGroupMembers", + "limitedToLocation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "ownerId", + "objectTypeId", + "rewardId", + "verifyRewardId", + "group", + "owner", + "objectType", + "reward", + "verifyReward", + "searchRank" + ] + }, + { + "name": "tracks", + "qtype": "getMany", + "model": "Track", + "selection": [ + "id", + "name", + "description", + "photo", + "icon", + "isPublished", + "isApproved", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "objectTypeId", + "owner", + "objectType" + ] + }, + { + "name": "objectsByTypeId", + "qtype": "getMany", + "model": "Object", + "selection": [ + "id", + "name", + "description", + "photo", + "media", + "location", + "bbox", + "data", + "ownerId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "typeId", + "owner", + "type" + ] + }, + { + "name": "objectTypeAttributes", + "qtype": "getMany", + "model": "ObjectTypeAttribute", + "selection": [ + "id", + "name", + "label", + "type", + "unit", + "description", + "min", + "max", + "pattern", + "isRequired", + "attrOrder", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "objectTypeId", + "objectType" + ] + } + ] + }, + "objects": { + "qtype": "getMany", + "model": "Object", + "selection": [ + "id", + "name", + "description", + "photo", + "media", + "location", + "bbox", + "data", + "ownerId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "typeId", + "owner", + "type", + { + "name": "userActions", + "qtype": "getMany", + "model": "UserAction", + "selection": [ + "id", + "userId", + "actionStarted", + "complete", + "verified", + "verifiedDate", + "userRating", + "rejected", + "location", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "objectId", + "user", + "owner", + "action", + "object" + ] + }, + { + "name": "objectAttributes", + "qtype": "getMany", + "model": "ObjectAttribute", + "selection": [ + "id", + "description", + "location", + "text", + "numeric", + "image", + "data", + "ownerId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "valueId", + "objectId", + "objectTypeAttributeId", + "owner", + "value", + "object", + "objectTypeAttribute" + ] + } + ] + }, + "organizationProfiles": { + "qtype": "getMany", + "model": "OrganizationProfile", + "selection": [ + "id", + "name", + "headerImage", + "profilePicture", + "description", + "website", + "reputation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "organizationId", + "organization" + ] + }, + "phoneNumbers": { + "qtype": "getMany", + "model": "PhoneNumber", + "selection": ["id", "ownerId", "cc", "number", "isVerified", "isPrimary", "owner"] + }, + "postComments": { + "qtype": "getMany", + "model": "PostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "commenter", + "parent", + "post", + "poster", + { + "name": "postCommentsByParentId", + "qtype": "getMany", + "model": "PostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "commenter", + "parent", + "post", + "poster" + ] + } + ] + }, + "postReactions": { + "qtype": "getMany", + "model": "PostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "reacter", + "post", + "poster" + ] + }, + "posts": { + "qtype": "getMany", + "model": "Post", + "selection": [ + "id", + "posterId", + "type", + "flagged", + "image", + "url", + "location", + "data", + "taggedUserIds", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "poster", + { + "name": "postReactions", + "qtype": "getMany", + "model": "PostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "reacter", + "post", + "poster" + ] + }, + { + "name": "postComments", + "qtype": "getMany", + "model": "PostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "commenter", + "parent", + "post", + "poster" + ] + } + ] + }, + "requiredActions": { + "qtype": "getMany", + "model": "RequiredAction", + "selection": [ + "id", + "actionOrder", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "requiredId", + "action", + "owner", + "required" + ] + }, + "rewardLimits": { + "qtype": "getMany", + "model": "RewardLimit", + "selection": [ + "id", + "rewardAmount", + "rewardUnit", + "totalRewardLimit", + "weeklyLimit", + "dailyLimit", + "totalLimit", + "userTotalLimit", + "userWeeklyLimit", + "userDailyLimit", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner", + { + "name": "actionsByRewardId", + "qtype": "getMany", + "model": "Action", + "selection": [ + "id", + "slug", + "photo", + "shareImage", + "title", + "titleObjectTemplate", + "url", + "description", + "discoveryHeader", + "discoveryDescription", + "notificationText", + "notificationObjectTemplate", + "enableNotifications", + "enableNotificationsText", + "search", + "location", + "locationRadius", + "timeRequired", + "startDate", + "endDate", + "approved", + "published", + "isPrivate", + "rewardAmount", + "activityFeedText", + "callToAction", + "completedActionText", + "alreadyCompletedActionText", + "selfVerifiable", + "isRecurring", + "recurringInterval", + "oncePerObject", + "minimumGroupMembers", + "limitedToLocation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "ownerId", + "objectTypeId", + "rewardId", + "verifyRewardId", + "group", + "owner", + "objectType", + "reward", + "verifyReward", + "searchRank" + ] + }, + { + "name": "actionsByVerifyRewardId", + "qtype": "getMany", + "model": "Action", + "selection": [ + "id", + "slug", + "photo", + "shareImage", + "title", + "titleObjectTemplate", + "url", + "description", + "discoveryHeader", + "discoveryDescription", + "notificationText", + "notificationObjectTemplate", + "enableNotifications", + "enableNotificationsText", + "search", + "location", + "locationRadius", + "timeRequired", + "startDate", + "endDate", + "approved", + "published", + "isPrivate", + "rewardAmount", + "activityFeedText", + "callToAction", + "completedActionText", + "alreadyCompletedActionText", + "selfVerifiable", + "isRecurring", + "recurringInterval", + "oncePerObject", + "minimumGroupMembers", + "limitedToLocation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "ownerId", + "objectTypeId", + "rewardId", + "verifyRewardId", + "group", + "owner", + "objectType", + "reward", + "verifyReward", + "searchRank" + ] + }, + { + "name": "groupsByActionRewardIdAndGroupId", + "qtype": "getMany", + "model": "Group", + "selection": ["id", "name", "createdBy", "updatedBy", "createdAt", "updatedAt", "ownerId", "owner"] + }, + { + "name": "rewardLimitsByActionRewardIdAndVerifyRewardId", + "qtype": "getMany", + "model": "RewardLimit", + "selection": [ + "id", + "rewardAmount", + "rewardUnit", + "totalRewardLimit", + "weeklyLimit", + "dailyLimit", + "totalLimit", + "userTotalLimit", + "userWeeklyLimit", + "userDailyLimit", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner" + ] + }, + { + "name": "groupsByActionVerifyRewardIdAndGroupId", + "qtype": "getMany", + "model": "Group", + "selection": ["id", "name", "createdBy", "updatedBy", "createdAt", "updatedAt", "ownerId", "owner"] + }, + { + "name": "rewardLimitsByActionVerifyRewardIdAndRewardId", + "qtype": "getMany", + "model": "RewardLimit", + "selection": [ + "id", + "rewardAmount", + "rewardUnit", + "totalRewardLimit", + "weeklyLimit", + "dailyLimit", + "totalLimit", + "userTotalLimit", + "userWeeklyLimit", + "userDailyLimit", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner" + ] + } + ] + }, + "roleTypes": { + "qtype": "getMany", + "model": "RoleType", + "selection": [ + "id", + "name", + { + "name": "usersByType", + "qtype": "getMany", + "model": "User", + "selection": [ + "id", + "username", + "displayName", + "profilePicture", + "searchTsv", + "type", + "roleTypeByType", + "userProfile", + "userSetting", + "userCharacteristic", + "organizationProfileByOrganizationId", + "searchTsvRank" + ] + } + ] + }, + "trackActions": { + "qtype": "getMany", + "model": "TrackAction", + "selection": [ + "id", + "trackOrder", + "isRequired", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "trackId", + "action", + "owner", + "track" + ] + }, + "tracks": { + "qtype": "getMany", + "model": "Track", + "selection": [ + "id", + "name", + "description", + "photo", + "icon", + "isPublished", + "isApproved", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "objectTypeId", + "owner", + "objectType", + { + "name": "trackActions", + "qtype": "getMany", + "model": "TrackAction", + "selection": [ + "id", + "trackOrder", + "isRequired", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "trackId", + "action", + "owner", + "track" + ] + } + ] + }, + "userActionItemVerifications": { + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + }, + "userActionItems": { + "qtype": "getMany", + "model": "UserActionItem", + "selection": [ + "id", + "userId", + "text", + "media", + "location", + "bbox", + "data", + "complete", + "verified", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "user", + "owner", + "action", + "userAction", + "actionItem", + { + "name": "userActionItemVerifications", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + } + ] + }, + "userActionReactions": { + "qtype": "getMany", + "model": "UserActionReaction", + "selection": [ + "id", + "reacterId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userActionId", + "userId", + "actionId", + "reacter", + "userAction", + "user", + "action" + ] + }, + "userActionVerifications": { + "qtype": "getMany", + "model": "UserActionVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "user", + "owner", + "action", + "userAction" + ] + }, + "userActions": { + "qtype": "getMany", + "model": "UserAction", + "selection": [ + "id", + "userId", + "actionStarted", + "complete", + "verified", + "verifiedDate", + "userRating", + "rejected", + "location", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "objectId", + "user", + "owner", + "action", + "object", + { + "name": "userActionVerifications", + "qtype": "getMany", + "model": "UserActionVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "user", + "owner", + "action", + "userAction" + ] + }, + { + "name": "userActionItems", + "qtype": "getMany", + "model": "UserActionItem", + "selection": [ + "id", + "userId", + "text", + "media", + "location", + "bbox", + "data", + "complete", + "verified", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "user", + "owner", + "action", + "userAction", + "actionItem" + ] + }, + { + "name": "userActionItemVerifications", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + }, + { + "name": "userActionReactions", + "qtype": "getMany", + "model": "UserActionReaction", + "selection": [ + "id", + "reacterId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userActionId", + "userId", + "actionId", + "reacter", + "userAction", + "user", + "action" + ] + } + ] + }, + "userAnswers": { + "qtype": "getMany", + "model": "UserAnswer", + "selection": [ + "id", + "userId", + "location", + "text", + "numeric", + "image", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "questionId", + "ownerId", + "user", + "question", + "owner" + ] + }, + "userCharacteristics": { + "qtype": "getMany", + "model": "UserCharacteristic", + "selection": [ + "id", + "userId", + "income", + "gender", + "race", + "age", + "dob", + "education", + "homeOwnership", + "treeHuggerLevel", + "diyLevel", + "gardenerLevel", + "freeTime", + "researchToDoer", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + "userConnections": { + "qtype": "getMany", + "model": "UserConnection", + "selection": [ + "id", + "accepted", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "requesterId", + "responderId", + "requester", + "responder" + ] + }, + "userContacts": { + "qtype": "getMany", + "model": "UserContact", + "selection": [ + "id", + "userId", + "vcf", + "fullName", + "emails", + "device", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + "userDevices": { + "qtype": "getMany", + "model": "UserDevice", + "selection": [ + "id", + "type", + "deviceId", + "pushToken", + "pushTokenRequested", + "data", + "userId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + "userLocations": { + "qtype": "getMany", + "model": "UserLocation", + "selection": [ + "id", + "userId", + "name", + "kind", + "description", + "location", + "bbox", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + "userMessages": { + "qtype": "getMany", + "model": "UserMessage", + "selection": [ + "id", + "senderId", + "type", + "content", + "upload", + "received", + "receiverRead", + "senderReaction", + "receiverReaction", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "receiverId", + "sender", + "receiver" + ] + }, + "userPassActions": { + "qtype": "getMany", + "model": "UserPassAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + "userProfiles": { + "qtype": "getMany", + "model": "UserProfile", + "selection": [ + "id", + "userId", + "profilePicture", + "bio", + "reputation", + "displayName", + "tags", + "desired", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + "userQuestions": { + "qtype": "getMany", + "model": "UserQuestion", + "selection": [ + "id", + "questionType", + "questionPrompt", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner", + { + "name": "userAnswersByQuestionId", + "qtype": "getMany", + "model": "UserAnswer", + "selection": [ + "id", + "userId", + "location", + "text", + "numeric", + "image", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "questionId", + "ownerId", + "user", + "question", + "owner" + ] + } + ] + }, + "userSavedActions": { + "qtype": "getMany", + "model": "UserSavedAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + "userSettings": { + "qtype": "getMany", + "model": "UserSetting", + "selection": [ + "id", + "userId", + "firstName", + "lastName", + "searchRadius", + "zip", + "location", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + "userViewedActions": { + "qtype": "getMany", + "model": "UserViewedAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + "users": { + "qtype": "getMany", + "model": "User", + "selection": [ + "id", + "username", + "displayName", + "profilePicture", + "searchTsv", + "type", + "roleTypeByType", + { + "name": "groupsByOwnerId", + "qtype": "getMany", + "model": "Group", + "selection": ["id", "name", "createdBy", "updatedBy", "createdAt", "updatedAt", "ownerId", "owner"] + }, + { + "name": "connectedAccountsByOwnerId", + "qtype": "getMany", + "model": "ConnectedAccount", + "selection": ["id", "ownerId", "service", "identifier", "details", "isVerified", "owner"] + }, + { + "name": "emailsByOwnerId", + "qtype": "getMany", + "model": "Email", + "selection": ["id", "ownerId", "email", "isVerified", "isPrimary", "owner"] + }, + { + "name": "phoneNumbersByOwnerId", + "qtype": "getMany", + "model": "PhoneNumber", + "selection": ["id", "ownerId", "cc", "number", "isVerified", "isPrimary", "owner"] + }, + { + "name": "cryptoAddressesByOwnerId", + "qtype": "getMany", + "model": "CryptoAddress", + "selection": ["id", "ownerId", "address", "isVerified", "isPrimary", "owner"] + }, + { + "name": "authAccountsByOwnerId", + "qtype": "getMany", + "model": "AuthAccount", + "selection": ["id", "ownerId", "service", "identifier", "details", "isVerified", "owner"] + }, + "userProfile", + "userSetting", + "userCharacteristic", + { + "name": "userContacts", + "qtype": "getMany", + "model": "UserContact", + "selection": [ + "id", + "userId", + "vcf", + "fullName", + "emails", + "device", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + { + "name": "userConnectionsByRequesterId", + "qtype": "getMany", + "model": "UserConnection", + "selection": [ + "id", + "accepted", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "requesterId", + "responderId", + "requester", + "responder" + ] + }, + { + "name": "userConnectionsByResponderId", + "qtype": "getMany", + "model": "UserConnection", + "selection": [ + "id", + "accepted", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "requesterId", + "responderId", + "requester", + "responder" + ] + }, + { + "name": "locationsByOwnerId", + "qtype": "getMany", + "model": "Location", + "selection": [ + "id", + "name", + "location", + "bbox", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "locationType", + "owner", + "locationTypeByLocationType" + ] + }, + { + "name": "userLocations", + "qtype": "getMany", + "model": "UserLocation", + "selection": [ + "id", + "userId", + "name", + "kind", + "description", + "location", + "bbox", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + { + "name": "actionsByOwnerId", + "qtype": "getMany", + "model": "Action", + "selection": [ + "id", + "slug", + "photo", + "shareImage", + "title", + "titleObjectTemplate", + "url", + "description", + "discoveryHeader", + "discoveryDescription", + "notificationText", + "notificationObjectTemplate", + "enableNotifications", + "enableNotificationsText", + "search", + "location", + "locationRadius", + "timeRequired", + "startDate", + "endDate", + "approved", + "published", + "isPrivate", + "rewardAmount", + "activityFeedText", + "callToAction", + "completedActionText", + "alreadyCompletedActionText", + "selfVerifiable", + "isRecurring", + "recurringInterval", + "oncePerObject", + "minimumGroupMembers", + "limitedToLocation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "ownerId", + "objectTypeId", + "rewardId", + "verifyRewardId", + "group", + "owner", + "objectType", + "reward", + "verifyReward", + "searchRank" + ] + }, + { + "name": "actionGoalsByOwnerId", + "qtype": "getMany", + "model": "ActionGoal", + "selection": [ + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "goalId", + "owner", + "action", + "goal" + ] + }, + { + "name": "actionVariationsByOwnerId", + "qtype": "getMany", + "model": "ActionVariation", + "selection": [ + "id", + "photo", + "title", + "description", + "income", + "gender", + "dob", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "owner", + "action" + ] + }, + { + "name": "actionItemsByOwnerId", + "qtype": "getMany", + "model": "ActionItem", + "selection": [ + "id", + "name", + "description", + "type", + "itemOrder", + "timeRequired", + "isRequired", + "notificationText", + "embedCode", + "url", + "media", + "location", + "locationRadius", + "rewardWeight", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "itemTypeId", + "ownerId", + "actionId", + "itemType", + "owner", + "action" + ] + }, + { + "name": "requiredActionsByOwnerId", + "qtype": "getMany", + "model": "RequiredAction", + "selection": [ + "id", + "actionOrder", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "requiredId", + "action", + "owner", + "required" + ] + }, + { + "name": "userActions", + "qtype": "getMany", + "model": "UserAction", + "selection": [ + "id", + "userId", + "actionStarted", + "complete", + "verified", + "verifiedDate", + "userRating", + "rejected", + "location", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "objectId", + "user", + "owner", + "action", + "object" + ] + }, + { + "name": "userActionsByOwnerId", + "qtype": "getMany", + "model": "UserAction", + "selection": [ + "id", + "userId", + "actionStarted", + "complete", + "verified", + "verifiedDate", + "userRating", + "rejected", + "location", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "objectId", + "user", + "owner", + "action", + "object" + ] + }, + { + "name": "userActionVerifications", + "qtype": "getMany", + "model": "UserActionVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "user", + "owner", + "action", + "userAction" + ] + }, + { + "name": "userActionVerificationsByOwnerId", + "qtype": "getMany", + "model": "UserActionVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "user", + "owner", + "action", + "userAction" + ] + }, + { + "name": "userActionItems", + "qtype": "getMany", + "model": "UserActionItem", + "selection": [ + "id", + "userId", + "text", + "media", + "location", + "bbox", + "data", + "complete", + "verified", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "user", + "owner", + "action", + "userAction", + "actionItem" + ] + }, + { + "name": "userActionItemsByOwnerId", + "qtype": "getMany", + "model": "UserActionItem", + "selection": [ + "id", + "userId", + "text", + "media", + "location", + "bbox", + "data", + "complete", + "verified", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "user", + "owner", + "action", + "userAction", + "actionItem" + ] + }, + { + "name": "userActionItemVerificationsByVerifierId", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + }, + { + "name": "userActionItemVerifications", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + }, + { + "name": "userActionItemVerificationsByOwnerId", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + }, + { + "name": "tracksByOwnerId", + "qtype": "getMany", + "model": "Track", + "selection": [ + "id", + "name", + "description", + "photo", + "icon", + "isPublished", + "isApproved", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "objectTypeId", + "owner", + "objectType" + ] + }, + { + "name": "trackActionsByOwnerId", + "qtype": "getMany", + "model": "TrackAction", + "selection": [ + "id", + "trackOrder", + "isRequired", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "trackId", + "action", + "owner", + "track" + ] + }, + { + "name": "objectsByOwnerId", + "qtype": "getMany", + "model": "Object", + "selection": [ + "id", + "name", + "description", + "photo", + "media", + "location", + "bbox", + "data", + "ownerId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "typeId", + "owner", + "type" + ] + }, + { + "name": "objectAttributesByOwnerId", + "qtype": "getMany", + "model": "ObjectAttribute", + "selection": [ + "id", + "description", + "location", + "text", + "numeric", + "image", + "data", + "ownerId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "valueId", + "objectId", + "objectTypeAttributeId", + "owner", + "value", + "object", + "objectTypeAttribute" + ] + }, + "organizationProfileByOrganizationId", + { + "name": "userPassActions", + "qtype": "getMany", + "model": "UserPassAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userSavedActions", + "qtype": "getMany", + "model": "UserSavedAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userViewedActions", + "qtype": "getMany", + "model": "UserViewedAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userActionReactionsByReacterId", + "qtype": "getMany", + "model": "UserActionReaction", + "selection": [ + "id", + "reacterId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userActionId", + "userId", + "actionId", + "reacter", + "userAction", + "user", + "action" + ] + }, + { + "name": "userActionReactions", + "qtype": "getMany", + "model": "UserActionReaction", + "selection": [ + "id", + "reacterId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userActionId", + "userId", + "actionId", + "reacter", + "userAction", + "user", + "action" + ] + }, + { + "name": "userMessagesBySenderId", + "qtype": "getMany", + "model": "UserMessage", + "selection": [ + "id", + "senderId", + "type", + "content", + "upload", + "received", + "receiverRead", + "senderReaction", + "receiverReaction", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "receiverId", + "sender", + "receiver" + ] + }, + { + "name": "userMessagesByReceiverId", + "qtype": "getMany", + "model": "UserMessage", + "selection": [ + "id", + "senderId", + "type", + "content", + "upload", + "received", + "receiverRead", + "senderReaction", + "receiverReaction", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "receiverId", + "sender", + "receiver" + ] + }, + { + "name": "messagesBySenderId", + "qtype": "getMany", + "model": "Message", + "selection": [ + "id", + "senderId", + "type", + "content", + "upload", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "sender", + "group" + ] + }, + { + "name": "postsByPosterId", + "qtype": "getMany", + "model": "Post", + "selection": [ + "id", + "posterId", + "type", + "flagged", + "image", + "url", + "location", + "data", + "taggedUserIds", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "poster" + ] + }, + { + "name": "postReactionsByReacterId", + "qtype": "getMany", + "model": "PostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "reacter", + "post", + "poster" + ] + }, + { + "name": "postReactionsByPosterId", + "qtype": "getMany", + "model": "PostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "reacter", + "post", + "poster" + ] + }, + { + "name": "postCommentsByCommenterId", + "qtype": "getMany", + "model": "PostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "commenter", + "parent", + "post", + "poster" + ] + }, + { + "name": "postCommentsByPosterId", + "qtype": "getMany", + "model": "PostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "commenter", + "parent", + "post", + "poster" + ] + }, + { + "name": "groupPostsByPosterId", + "qtype": "getMany", + "model": "GroupPost", + "selection": [ + "id", + "posterId", + "type", + "flagged", + "image", + "url", + "location", + "data", + "taggedUserIds", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "poster", + "group" + ] + }, + { + "name": "groupPostReactionsByReacterId", + "qtype": "getMany", + "model": "GroupPostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "posterId", + "postId", + "reacter", + "group", + "poster", + "post" + ] + }, + { + "name": "groupPostReactionsByPosterId", + "qtype": "getMany", + "model": "GroupPostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "posterId", + "postId", + "reacter", + "group", + "poster", + "post" + ] + }, + { + "name": "groupPostCommentsByCommenterId", + "qtype": "getMany", + "model": "GroupPostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "postId", + "posterId", + "commenter", + "parent", + "group", + "post", + "poster" + ] + }, + { + "name": "groupPostCommentsByPosterId", + "qtype": "getMany", + "model": "GroupPostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "postId", + "posterId", + "commenter", + "parent", + "group", + "post", + "poster" + ] + }, + { + "name": "userDevices", + "qtype": "getMany", + "model": "UserDevice", + "selection": [ + "id", + "type", + "deviceId", + "pushToken", + "pushTokenRequested", + "data", + "userId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + { + "name": "notificationsByActorId", + "qtype": "getMany", + "model": "Notification", + "selection": [ + "id", + "actorId", + "recipientId", + "notificationType", + "notificationText", + "entityType", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actor", + "recipient" + ] + }, + { + "name": "notificationsByRecipientId", + "qtype": "getMany", + "model": "Notification", + "selection": [ + "id", + "actorId", + "recipientId", + "notificationType", + "notificationText", + "entityType", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actor", + "recipient" + ] + }, + { + "name": "notificationPreferences", + "qtype": "getMany", + "model": "NotificationPreference", + "selection": [ + "id", + "userId", + "emails", + "sms", + "notifications", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + { + "name": "userQuestionsByOwnerId", + "qtype": "getMany", + "model": "UserQuestion", + "selection": [ + "id", + "questionType", + "questionPrompt", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner" + ] + }, + { + "name": "userAnswers", + "qtype": "getMany", + "model": "UserAnswer", + "selection": [ + "id", + "userId", + "location", + "text", + "numeric", + "image", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "questionId", + "ownerId", + "user", + "question", + "owner" + ] + }, + { + "name": "userAnswersByOwnerId", + "qtype": "getMany", + "model": "UserAnswer", + "selection": [ + "id", + "userId", + "location", + "text", + "numeric", + "image", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "questionId", + "ownerId", + "user", + "question", + "owner" + ] + }, + { + "name": "rewardLimitsByOwnerId", + "qtype": "getMany", + "model": "RewardLimit", + "selection": [ + "id", + "rewardAmount", + "rewardUnit", + "totalRewardLimit", + "weeklyLimit", + "dailyLimit", + "totalLimit", + "userTotalLimit", + "userWeeklyLimit", + "userDailyLimit", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner" + ] + }, + "searchTsvRank" + ] + }, + "zipCodes": { + "qtype": "getMany", + "model": "ZipCode", + "selection": ["id", "zip", "location", "bbox", "createdBy", "updatedBy", "createdAt", "updatedAt"] + }, + "authAccounts": { + "qtype": "getMany", + "model": "AuthAccount", + "selection": ["id", "ownerId", "service", "identifier", "details", "isVerified", "owner"] + }, + "actionGoal": { + "model": "ActionGoal", + "qtype": "getOne", + "properties": { + "actionId": { + "isNotNull": true, + "type": "UUID" + }, + "goalId": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "goalId", + "owner", + "action", + "goal" + ] + }, + "actionItemType": { + "model": "ActionItemType", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "Int" + } + }, + "selection": [ + "id", + "name", + "description", + "image", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + { + "name": "actionItemsByItemTypeId", + "qtype": "getMany", + "model": "ActionItem", + "selection": [ + "id", + "name", + "description", + "type", + "itemOrder", + "timeRequired", + "isRequired", + "notificationText", + "embedCode", + "url", + "media", + "location", + "locationRadius", + "rewardWeight", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "itemTypeId", + "ownerId", + "actionId", + "itemType", + "owner", + "action" + ] + } + ] + }, + "actionItem": { + "model": "ActionItem", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "name", + "description", + "type", + "itemOrder", + "timeRequired", + "isRequired", + "notificationText", + "embedCode", + "url", + "media", + "location", + "locationRadius", + "rewardWeight", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "itemTypeId", + "ownerId", + "actionId", + "itemType", + "owner", + "action", + { + "name": "userActionItems", + "qtype": "getMany", + "model": "UserActionItem", + "selection": [ + "id", + "userId", + "text", + "media", + "location", + "bbox", + "data", + "complete", + "verified", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "user", + "owner", + "action", + "userAction", + "actionItem" + ] + }, + { + "name": "userActionItemVerifications", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + } + ] + }, + "actionVariation": { + "model": "ActionVariation", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "photo", + "title", + "description", + "income", + "gender", + "dob", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "owner", + "action" + ] + }, + "action": { + "model": "Action", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "slug", + "photo", + "shareImage", + "title", + "titleObjectTemplate", + "url", + "description", + "discoveryHeader", + "discoveryDescription", + "notificationText", + "notificationObjectTemplate", + "enableNotifications", + "enableNotificationsText", + "search", + "location", + "locationRadius", + "timeRequired", + "startDate", + "endDate", + "approved", + "published", + "isPrivate", + "rewardAmount", + "activityFeedText", + "callToAction", + "completedActionText", + "alreadyCompletedActionText", + "selfVerifiable", + "isRecurring", + "recurringInterval", + "oncePerObject", + "minimumGroupMembers", + "limitedToLocation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "ownerId", + "objectTypeId", + "rewardId", + "verifyRewardId", + "group", + "owner", + "objectType", + "reward", + "verifyReward", + { + "name": "actionGoals", + "qtype": "getMany", + "model": "ActionGoal", + "selection": [ + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "goalId", + "owner", + "action", + "goal" + ] + }, + { + "name": "actionVariations", + "qtype": "getMany", + "model": "ActionVariation", + "selection": [ + "id", + "photo", + "title", + "description", + "income", + "gender", + "dob", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "owner", + "action" + ] + }, + { + "name": "actionItems", + "qtype": "getMany", + "model": "ActionItem", + "selection": [ + "id", + "name", + "description", + "type", + "itemOrder", + "timeRequired", + "isRequired", + "notificationText", + "embedCode", + "url", + "media", + "location", + "locationRadius", + "rewardWeight", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "itemTypeId", + "ownerId", + "actionId", + "itemType", + "owner", + "action" + ] + }, + { + "name": "requiredActions", + "qtype": "getMany", + "model": "RequiredAction", + "selection": [ + "id", + "actionOrder", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "requiredId", + "action", + "owner", + "required" + ] + }, + { + "name": "requiredActionsByRequiredId", + "qtype": "getMany", + "model": "RequiredAction", + "selection": [ + "id", + "actionOrder", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "requiredId", + "action", + "owner", + "required" + ] + }, + { + "name": "userActions", + "qtype": "getMany", + "model": "UserAction", + "selection": [ + "id", + "userId", + "actionStarted", + "complete", + "verified", + "verifiedDate", + "userRating", + "rejected", + "location", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "objectId", + "user", + "owner", + "action", + "object" + ] + }, + { + "name": "userActionVerifications", + "qtype": "getMany", + "model": "UserActionVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "user", + "owner", + "action", + "userAction" + ] + }, + { + "name": "userActionItems", + "qtype": "getMany", + "model": "UserActionItem", + "selection": [ + "id", + "userId", + "text", + "media", + "location", + "bbox", + "data", + "complete", + "verified", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "user", + "owner", + "action", + "userAction", + "actionItem" + ] + }, + { + "name": "userActionItemVerifications", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + }, + { + "name": "trackActions", + "qtype": "getMany", + "model": "TrackAction", + "selection": [ + "id", + "trackOrder", + "isRequired", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "trackId", + "action", + "owner", + "track" + ] + }, + { + "name": "userPassActions", + "qtype": "getMany", + "model": "UserPassAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userSavedActions", + "qtype": "getMany", + "model": "UserSavedAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userViewedActions", + "qtype": "getMany", + "model": "UserViewedAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userActionReactions", + "qtype": "getMany", + "model": "UserActionReaction", + "selection": [ + "id", + "reacterId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userActionId", + "userId", + "actionId", + "reacter", + "userAction", + "user", + "action" + ] + }, + "searchRank", + { + "name": "goals", + "qtype": "getMany", + "model": "Goal", + "selection": [ + "id", + "name", + "slug", + "shortName", + "icon", + "subHead", + "tags", + "search", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "searchRank" + ] + } + ] + }, + "actionBySlug": { + "model": "Action", + "qtype": "getOne", + "properties": { + "slug": { + "isNotNull": true, + "type": "String" + } + }, + "selection": [ + "id", + "slug", + "photo", + "shareImage", + "title", + "titleObjectTemplate", + "url", + "description", + "discoveryHeader", + "discoveryDescription", + "notificationText", + "notificationObjectTemplate", + "enableNotifications", + "enableNotificationsText", + "search", + "location", + "locationRadius", + "timeRequired", + "startDate", + "endDate", + "approved", + "published", + "isPrivate", + "rewardAmount", + "activityFeedText", + "callToAction", + "completedActionText", + "alreadyCompletedActionText", + "selfVerifiable", + "isRecurring", + "recurringInterval", + "oncePerObject", + "minimumGroupMembers", + "limitedToLocation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "ownerId", + "objectTypeId", + "rewardId", + "verifyRewardId", + "group", + "owner", + "objectType", + "reward", + "verifyReward", + { + "name": "actionGoals", + "qtype": "getMany", + "model": "ActionGoal", + "selection": [ + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "goalId", + "owner", + "action", + "goal" + ] + }, + { + "name": "actionVariations", + "qtype": "getMany", + "model": "ActionVariation", + "selection": [ + "id", + "photo", + "title", + "description", + "income", + "gender", + "dob", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "owner", + "action" + ] + }, + { + "name": "actionItems", + "qtype": "getMany", + "model": "ActionItem", + "selection": [ + "id", + "name", + "description", + "type", + "itemOrder", + "timeRequired", + "isRequired", + "notificationText", + "embedCode", + "url", + "media", + "location", + "locationRadius", + "rewardWeight", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "itemTypeId", + "ownerId", + "actionId", + "itemType", + "owner", + "action" + ] + }, + { + "name": "requiredActions", + "qtype": "getMany", + "model": "RequiredAction", + "selection": [ + "id", + "actionOrder", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "requiredId", + "action", + "owner", + "required" + ] + }, + { + "name": "requiredActionsByRequiredId", + "qtype": "getMany", + "model": "RequiredAction", + "selection": [ + "id", + "actionOrder", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "requiredId", + "action", + "owner", + "required" + ] + }, + { + "name": "userActions", + "qtype": "getMany", + "model": "UserAction", + "selection": [ + "id", + "userId", + "actionStarted", + "complete", + "verified", + "verifiedDate", + "userRating", + "rejected", + "location", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "objectId", + "user", + "owner", + "action", + "object" + ] + }, + { + "name": "userActionVerifications", + "qtype": "getMany", + "model": "UserActionVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "user", + "owner", + "action", + "userAction" + ] + }, + { + "name": "userActionItems", + "qtype": "getMany", + "model": "UserActionItem", + "selection": [ + "id", + "userId", + "text", + "media", + "location", + "bbox", + "data", + "complete", + "verified", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "user", + "owner", + "action", + "userAction", + "actionItem" + ] + }, + { + "name": "userActionItemVerifications", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + }, + { + "name": "trackActions", + "qtype": "getMany", + "model": "TrackAction", + "selection": [ + "id", + "trackOrder", + "isRequired", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "trackId", + "action", + "owner", + "track" + ] + }, + { + "name": "userPassActions", + "qtype": "getMany", + "model": "UserPassAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userSavedActions", + "qtype": "getMany", + "model": "UserSavedAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userViewedActions", + "qtype": "getMany", + "model": "UserViewedAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userActionReactions", + "qtype": "getMany", + "model": "UserActionReaction", + "selection": [ + "id", + "reacterId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userActionId", + "userId", + "actionId", + "reacter", + "userAction", + "user", + "action" + ] + }, + "searchRank", + { + "name": "goals", + "qtype": "getMany", + "model": "Goal", + "selection": [ + "id", + "name", + "slug", + "shortName", + "icon", + "subHead", + "tags", + "search", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "searchRank" + ] + } + ] + }, + "connectedAccount": { + "model": "ConnectedAccount", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": ["id", "ownerId", "service", "identifier", "details", "isVerified", "owner"] + }, + "connectedAccountByServiceAndIdentifier": { + "model": "ConnectedAccount", + "qtype": "getOne", + "properties": { + "service": { + "isNotNull": true, + "type": "String" + }, + "identifier": { + "isNotNull": true, + "type": "String" + } + }, + "selection": ["id", "ownerId", "service", "identifier", "details", "isVerified", "owner"] + }, + "cryptoAddress": { + "model": "CryptoAddress", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": ["id", "ownerId", "address", "isVerified", "isPrimary", "owner"] + }, + "cryptoAddressByAddress": { + "model": "CryptoAddress", + "qtype": "getOne", + "properties": { + "address": { + "isNotNull": true, + "type": "String" + } + }, + "selection": ["id", "ownerId", "address", "isVerified", "isPrimary", "owner"] + }, + "email": { + "model": "Email", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": ["id", "ownerId", "email", "isVerified", "isPrimary", "owner"] + }, + "emailByEmail": { + "model": "Email", + "qtype": "getOne", + "properties": { + "email": { + "isNotNull": true, + "type": "String" + } + }, + "selection": ["id", "ownerId", "email", "isVerified", "isPrimary", "owner"] + }, + "goalExplanation": { + "model": "GoalExplanation", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "audio", + "audioDuration", + "explanationTitle", + "explanation", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "goalId", + "goal" + ] + }, + "goal": { + "model": "Goal", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "name", + "slug", + "shortName", + "icon", + "subHead", + "tags", + "search", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + { + "name": "goalExplanations", + "qtype": "getMany", + "model": "GoalExplanation", + "selection": [ + "id", + "audio", + "audioDuration", + "explanationTitle", + "explanation", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "goalId", + "goal" + ] + }, + { + "name": "actionGoals", + "qtype": "getMany", + "model": "ActionGoal", + "selection": [ + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "goalId", + "owner", + "action", + "goal" + ] + }, + "searchRank", + { + "name": "actions", + "qtype": "getMany", + "model": "Action", + "selection": [ + "id", + "slug", + "photo", + "shareImage", + "title", + "titleObjectTemplate", + "url", + "description", + "discoveryHeader", + "discoveryDescription", + "notificationText", + "notificationObjectTemplate", + "enableNotifications", + "enableNotificationsText", + "search", + "location", + "locationRadius", + "timeRequired", + "startDate", + "endDate", + "approved", + "published", + "isPrivate", + "rewardAmount", + "activityFeedText", + "callToAction", + "completedActionText", + "alreadyCompletedActionText", + "selfVerifiable", + "isRecurring", + "recurringInterval", + "oncePerObject", + "minimumGroupMembers", + "limitedToLocation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "ownerId", + "objectTypeId", + "rewardId", + "verifyRewardId", + "group", + "owner", + "objectType", + "reward", + "verifyReward", + "searchRank" + ] + } + ] + }, + "goalByName": { + "model": "Goal", + "qtype": "getOne", + "properties": { + "name": { + "isNotNull": true, + "type": "String" + } + }, + "selection": [ + "id", + "name", + "slug", + "shortName", + "icon", + "subHead", + "tags", + "search", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + { + "name": "goalExplanations", + "qtype": "getMany", + "model": "GoalExplanation", + "selection": [ + "id", + "audio", + "audioDuration", + "explanationTitle", + "explanation", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "goalId", + "goal" + ] + }, + { + "name": "actionGoals", + "qtype": "getMany", + "model": "ActionGoal", + "selection": [ + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "goalId", + "owner", + "action", + "goal" + ] + }, + "searchRank", + { + "name": "actions", + "qtype": "getMany", + "model": "Action", + "selection": [ + "id", + "slug", + "photo", + "shareImage", + "title", + "titleObjectTemplate", + "url", + "description", + "discoveryHeader", + "discoveryDescription", + "notificationText", + "notificationObjectTemplate", + "enableNotifications", + "enableNotificationsText", + "search", + "location", + "locationRadius", + "timeRequired", + "startDate", + "endDate", + "approved", + "published", + "isPrivate", + "rewardAmount", + "activityFeedText", + "callToAction", + "completedActionText", + "alreadyCompletedActionText", + "selfVerifiable", + "isRecurring", + "recurringInterval", + "oncePerObject", + "minimumGroupMembers", + "limitedToLocation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "ownerId", + "objectTypeId", + "rewardId", + "verifyRewardId", + "group", + "owner", + "objectType", + "reward", + "verifyReward", + "searchRank" + ] + } + ] + }, + "goalBySlug": { + "model": "Goal", + "qtype": "getOne", + "properties": { + "slug": { + "isNotNull": true, + "type": "String" + } + }, + "selection": [ + "id", + "name", + "slug", + "shortName", + "icon", + "subHead", + "tags", + "search", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + { + "name": "goalExplanations", + "qtype": "getMany", + "model": "GoalExplanation", + "selection": [ + "id", + "audio", + "audioDuration", + "explanationTitle", + "explanation", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "goalId", + "goal" + ] + }, + { + "name": "actionGoals", + "qtype": "getMany", + "model": "ActionGoal", + "selection": [ + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "goalId", + "owner", + "action", + "goal" + ] + }, + "searchRank", + { + "name": "actions", + "qtype": "getMany", + "model": "Action", + "selection": [ + "id", + "slug", + "photo", + "shareImage", + "title", + "titleObjectTemplate", + "url", + "description", + "discoveryHeader", + "discoveryDescription", + "notificationText", + "notificationObjectTemplate", + "enableNotifications", + "enableNotificationsText", + "search", + "location", + "locationRadius", + "timeRequired", + "startDate", + "endDate", + "approved", + "published", + "isPrivate", + "rewardAmount", + "activityFeedText", + "callToAction", + "completedActionText", + "alreadyCompletedActionText", + "selfVerifiable", + "isRecurring", + "recurringInterval", + "oncePerObject", + "minimumGroupMembers", + "limitedToLocation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "ownerId", + "objectTypeId", + "rewardId", + "verifyRewardId", + "group", + "owner", + "objectType", + "reward", + "verifyReward", + "searchRank" + ] + } + ] + }, + "groupPostComment": { + "model": "GroupPostComment", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "postId", + "posterId", + "commenter", + "parent", + "group", + "post", + "poster", + { + "name": "groupPostCommentsByParentId", + "qtype": "getMany", + "model": "GroupPostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "postId", + "posterId", + "commenter", + "parent", + "group", + "post", + "poster" + ] + } + ] + }, + "groupPostReaction": { + "model": "GroupPostReaction", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "posterId", + "postId", + "reacter", + "group", + "poster", + "post" + ] + }, + "groupPost": { + "model": "GroupPost", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "posterId", + "type", + "flagged", + "image", + "url", + "location", + "data", + "taggedUserIds", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "poster", + "group", + { + "name": "groupPostReactionsByPostId", + "qtype": "getMany", + "model": "GroupPostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "posterId", + "postId", + "reacter", + "group", + "poster", + "post" + ] + }, + { + "name": "groupPostCommentsByPostId", + "qtype": "getMany", + "model": "GroupPostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "postId", + "posterId", + "commenter", + "parent", + "group", + "post", + "poster" + ] + } + ] + }, + "group": { + "model": "Group", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "name", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner", + { + "name": "actions", + "qtype": "getMany", + "model": "Action", + "selection": [ + "id", + "slug", + "photo", + "shareImage", + "title", + "titleObjectTemplate", + "url", + "description", + "discoveryHeader", + "discoveryDescription", + "notificationText", + "notificationObjectTemplate", + "enableNotifications", + "enableNotificationsText", + "search", + "location", + "locationRadius", + "timeRequired", + "startDate", + "endDate", + "approved", + "published", + "isPrivate", + "rewardAmount", + "activityFeedText", + "callToAction", + "completedActionText", + "alreadyCompletedActionText", + "selfVerifiable", + "isRecurring", + "recurringInterval", + "oncePerObject", + "minimumGroupMembers", + "limitedToLocation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "ownerId", + "objectTypeId", + "rewardId", + "verifyRewardId", + "group", + "owner", + "objectType", + "reward", + "verifyReward", + "searchRank" + ] + }, + { + "name": "groupPosts", + "qtype": "getMany", + "model": "GroupPost", + "selection": [ + "id", + "posterId", + "type", + "flagged", + "image", + "url", + "location", + "data", + "taggedUserIds", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "poster", + "group" + ] + }, + { + "name": "groupPostReactions", + "qtype": "getMany", + "model": "GroupPostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "posterId", + "postId", + "reacter", + "group", + "poster", + "post" + ] + }, + { + "name": "groupPostComments", + "qtype": "getMany", + "model": "GroupPostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "postId", + "posterId", + "commenter", + "parent", + "group", + "post", + "poster" + ] + }, + { + "name": "rewardLimitsByActionGroupIdAndRewardId", + "qtype": "getMany", + "model": "RewardLimit", + "selection": [ + "id", + "rewardAmount", + "rewardUnit", + "totalRewardLimit", + "weeklyLimit", + "dailyLimit", + "totalLimit", + "userTotalLimit", + "userWeeklyLimit", + "userDailyLimit", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner" + ] + }, + { + "name": "rewardLimitsByActionGroupIdAndVerifyRewardId", + "qtype": "getMany", + "model": "RewardLimit", + "selection": [ + "id", + "rewardAmount", + "rewardUnit", + "totalRewardLimit", + "weeklyLimit", + "dailyLimit", + "totalLimit", + "userTotalLimit", + "userWeeklyLimit", + "userDailyLimit", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner" + ] + } + ] + }, + "locationType": { + "model": "LocationType", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "name", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + { + "name": "locationsByLocationType", + "qtype": "getMany", + "model": "Location", + "selection": [ + "id", + "name", + "location", + "bbox", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "locationType", + "owner", + "locationTypeByLocationType" + ] + } + ] + }, + "location": { + "model": "Location", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "name", + "location", + "bbox", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "locationType", + "owner", + "locationTypeByLocationType" + ] + }, + "messageGroup": { + "model": "MessageGroup", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "name", + "memberIds", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + { + "name": "messagesByGroupId", + "qtype": "getMany", + "model": "Message", + "selection": [ + "id", + "senderId", + "type", + "content", + "upload", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "sender", + "group" + ] + } + ] + }, + "message": { + "model": "Message", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "senderId", + "type", + "content", + "upload", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "sender", + "group" + ] + }, + "newsArticle": { + "model": "NewsArticle", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "name", + "description", + "link", + "publishedAt", + "photo", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt" + ] + }, + "notificationPreference": { + "model": "NotificationPreference", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "userId", + "emails", + "sms", + "notifications", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + "notification": { + "model": "Notification", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "actorId", + "recipientId", + "notificationType", + "notificationText", + "entityType", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actor", + "recipient" + ] + }, + "objectAttribute": { + "model": "ObjectAttribute", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "description", + "location", + "text", + "numeric", + "image", + "data", + "ownerId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "valueId", + "objectId", + "objectTypeAttributeId", + "owner", + "value", + "object", + "objectTypeAttribute" + ] + }, + "objectTypeAttribute": { + "model": "ObjectTypeAttribute", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "name", + "label", + "type", + "unit", + "description", + "min", + "max", + "pattern", + "isRequired", + "attrOrder", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "objectTypeId", + "objectType", + { + "name": "objectTypeValuesByAttrId", + "qtype": "getMany", + "model": "ObjectTypeValue", + "selection": [ + "id", + "name", + "description", + "photo", + "icon", + "type", + "location", + "text", + "numeric", + "image", + "data", + "valueOrder", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "attrId", + "attr" + ] + }, + { + "name": "objectAttributes", + "qtype": "getMany", + "model": "ObjectAttribute", + "selection": [ + "id", + "description", + "location", + "text", + "numeric", + "image", + "data", + "ownerId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "valueId", + "objectId", + "objectTypeAttributeId", + "owner", + "value", + "object", + "objectTypeAttribute" + ] + } + ] + }, + "objectTypeValue": { + "model": "ObjectTypeValue", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "name", + "description", + "photo", + "icon", + "type", + "location", + "text", + "numeric", + "image", + "data", + "valueOrder", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "attrId", + "attr", + { + "name": "objectAttributesByValueId", + "qtype": "getMany", + "model": "ObjectAttribute", + "selection": [ + "id", + "description", + "location", + "text", + "numeric", + "image", + "data", + "ownerId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "valueId", + "objectId", + "objectTypeAttributeId", + "owner", + "value", + "object", + "objectTypeAttribute" + ] + } + ] + }, + "objectType": { + "model": "ObjectType", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "Int" + } + }, + "selection": [ + "id", + "name", + "description", + "photo", + "icon", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + { + "name": "actions", + "qtype": "getMany", + "model": "Action", + "selection": [ + "id", + "slug", + "photo", + "shareImage", + "title", + "titleObjectTemplate", + "url", + "description", + "discoveryHeader", + "discoveryDescription", + "notificationText", + "notificationObjectTemplate", + "enableNotifications", + "enableNotificationsText", + "search", + "location", + "locationRadius", + "timeRequired", + "startDate", + "endDate", + "approved", + "published", + "isPrivate", + "rewardAmount", + "activityFeedText", + "callToAction", + "completedActionText", + "alreadyCompletedActionText", + "selfVerifiable", + "isRecurring", + "recurringInterval", + "oncePerObject", + "minimumGroupMembers", + "limitedToLocation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "ownerId", + "objectTypeId", + "rewardId", + "verifyRewardId", + "group", + "owner", + "objectType", + "reward", + "verifyReward", + "searchRank" + ] + }, + { + "name": "tracks", + "qtype": "getMany", + "model": "Track", + "selection": [ + "id", + "name", + "description", + "photo", + "icon", + "isPublished", + "isApproved", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "objectTypeId", + "owner", + "objectType" + ] + }, + { + "name": "objectsByTypeId", + "qtype": "getMany", + "model": "Object", + "selection": [ + "id", + "name", + "description", + "photo", + "media", + "location", + "bbox", + "data", + "ownerId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "typeId", + "owner", + "type" + ] + }, + { + "name": "objectTypeAttributes", + "qtype": "getMany", + "model": "ObjectTypeAttribute", + "selection": [ + "id", + "name", + "label", + "type", + "unit", + "description", + "min", + "max", + "pattern", + "isRequired", + "attrOrder", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "objectTypeId", + "objectType" + ] + } + ] + }, + "object": { + "model": "Object", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "name", + "description", + "photo", + "media", + "location", + "bbox", + "data", + "ownerId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "typeId", + "owner", + "type", + { + "name": "userActions", + "qtype": "getMany", + "model": "UserAction", + "selection": [ + "id", + "userId", + "actionStarted", + "complete", + "verified", + "verifiedDate", + "userRating", + "rejected", + "location", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "objectId", + "user", + "owner", + "action", + "object" + ] + }, + { + "name": "objectAttributes", + "qtype": "getMany", + "model": "ObjectAttribute", + "selection": [ + "id", + "description", + "location", + "text", + "numeric", + "image", + "data", + "ownerId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "valueId", + "objectId", + "objectTypeAttributeId", + "owner", + "value", + "object", + "objectTypeAttribute" + ] + } + ] + }, + "organizationProfile": { + "model": "OrganizationProfile", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "name", + "headerImage", + "profilePicture", + "description", + "website", + "reputation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "organizationId", + "organization" + ] + }, + "phoneNumber": { + "model": "PhoneNumber", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": ["id", "ownerId", "cc", "number", "isVerified", "isPrimary", "owner"] + }, + "phoneNumberByNumber": { + "model": "PhoneNumber", + "qtype": "getOne", + "properties": { + "number": { + "isNotNull": true, + "type": "String" + } + }, + "selection": ["id", "ownerId", "cc", "number", "isVerified", "isPrimary", "owner"] + }, + "postComment": { + "model": "PostComment", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "commenter", + "parent", + "post", + "poster", + { + "name": "postCommentsByParentId", + "qtype": "getMany", + "model": "PostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "commenter", + "parent", + "post", + "poster" + ] + } + ] + }, + "postReaction": { + "model": "PostReaction", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "reacter", + "post", + "poster" + ] + }, + "post": { + "model": "Post", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "posterId", + "type", + "flagged", + "image", + "url", + "location", + "data", + "taggedUserIds", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "poster", + { + "name": "postReactions", + "qtype": "getMany", + "model": "PostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "reacter", + "post", + "poster" + ] + }, + { + "name": "postComments", + "qtype": "getMany", + "model": "PostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "commenter", + "parent", + "post", + "poster" + ] + } + ] + }, + "requiredAction": { + "model": "RequiredAction", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "actionOrder", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "requiredId", + "action", + "owner", + "required" + ] + }, + "rewardLimit": { + "model": "RewardLimit", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "rewardAmount", + "rewardUnit", + "totalRewardLimit", + "weeklyLimit", + "dailyLimit", + "totalLimit", + "userTotalLimit", + "userWeeklyLimit", + "userDailyLimit", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner", + { + "name": "actionsByRewardId", + "qtype": "getMany", + "model": "Action", + "selection": [ + "id", + "slug", + "photo", + "shareImage", + "title", + "titleObjectTemplate", + "url", + "description", + "discoveryHeader", + "discoveryDescription", + "notificationText", + "notificationObjectTemplate", + "enableNotifications", + "enableNotificationsText", + "search", + "location", + "locationRadius", + "timeRequired", + "startDate", + "endDate", + "approved", + "published", + "isPrivate", + "rewardAmount", + "activityFeedText", + "callToAction", + "completedActionText", + "alreadyCompletedActionText", + "selfVerifiable", + "isRecurring", + "recurringInterval", + "oncePerObject", + "minimumGroupMembers", + "limitedToLocation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "ownerId", + "objectTypeId", + "rewardId", + "verifyRewardId", + "group", + "owner", + "objectType", + "reward", + "verifyReward", + "searchRank" + ] + }, + { + "name": "actionsByVerifyRewardId", + "qtype": "getMany", + "model": "Action", + "selection": [ + "id", + "slug", + "photo", + "shareImage", + "title", + "titleObjectTemplate", + "url", + "description", + "discoveryHeader", + "discoveryDescription", + "notificationText", + "notificationObjectTemplate", + "enableNotifications", + "enableNotificationsText", + "search", + "location", + "locationRadius", + "timeRequired", + "startDate", + "endDate", + "approved", + "published", + "isPrivate", + "rewardAmount", + "activityFeedText", + "callToAction", + "completedActionText", + "alreadyCompletedActionText", + "selfVerifiable", + "isRecurring", + "recurringInterval", + "oncePerObject", + "minimumGroupMembers", + "limitedToLocation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "ownerId", + "objectTypeId", + "rewardId", + "verifyRewardId", + "group", + "owner", + "objectType", + "reward", + "verifyReward", + "searchRank" + ] + }, + { + "name": "groupsByActionRewardIdAndGroupId", + "qtype": "getMany", + "model": "Group", + "selection": ["id", "name", "createdBy", "updatedBy", "createdAt", "updatedAt", "ownerId", "owner"] + }, + { + "name": "rewardLimitsByActionRewardIdAndVerifyRewardId", + "qtype": "getMany", + "model": "RewardLimit", + "selection": [ + "id", + "rewardAmount", + "rewardUnit", + "totalRewardLimit", + "weeklyLimit", + "dailyLimit", + "totalLimit", + "userTotalLimit", + "userWeeklyLimit", + "userDailyLimit", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner" + ] + }, + { + "name": "groupsByActionVerifyRewardIdAndGroupId", + "qtype": "getMany", + "model": "Group", + "selection": ["id", "name", "createdBy", "updatedBy", "createdAt", "updatedAt", "ownerId", "owner"] + }, + { + "name": "rewardLimitsByActionVerifyRewardIdAndRewardId", + "qtype": "getMany", + "model": "RewardLimit", + "selection": [ + "id", + "rewardAmount", + "rewardUnit", + "totalRewardLimit", + "weeklyLimit", + "dailyLimit", + "totalLimit", + "userTotalLimit", + "userWeeklyLimit", + "userDailyLimit", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner" + ] + } + ] + }, + "roleType": { + "model": "RoleType", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "Int" + } + }, + "selection": [ + "id", + "name", + { + "name": "usersByType", + "qtype": "getMany", + "model": "User", + "selection": [ + "id", + "username", + "displayName", + "profilePicture", + "searchTsv", + "type", + "roleTypeByType", + "userProfile", + "userSetting", + "userCharacteristic", + "organizationProfileByOrganizationId", + "searchTsvRank" + ] + } + ] + }, + "roleTypeByName": { + "model": "RoleType", + "qtype": "getOne", + "properties": { + "name": { + "isNotNull": true, + "type": "String" + } + }, + "selection": [ + "id", + "name", + { + "name": "usersByType", + "qtype": "getMany", + "model": "User", + "selection": [ + "id", + "username", + "displayName", + "profilePicture", + "searchTsv", + "type", + "roleTypeByType", + "userProfile", + "userSetting", + "userCharacteristic", + "organizationProfileByOrganizationId", + "searchTsvRank" + ] + } + ] + }, + "trackAction": { + "model": "TrackAction", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "trackOrder", + "isRequired", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "trackId", + "action", + "owner", + "track" + ] + }, + "track": { + "model": "Track", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "name", + "description", + "photo", + "icon", + "isPublished", + "isApproved", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "objectTypeId", + "owner", + "objectType", + { + "name": "trackActions", + "qtype": "getMany", + "model": "TrackAction", + "selection": [ + "id", + "trackOrder", + "isRequired", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "trackId", + "action", + "owner", + "track" + ] + } + ] + }, + "userActionItemVerification": { + "model": "UserActionItemVerification", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + }, + "userActionItem": { + "model": "UserActionItem", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "userId", + "text", + "media", + "location", + "bbox", + "data", + "complete", + "verified", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "user", + "owner", + "action", + "userAction", + "actionItem", + { + "name": "userActionItemVerifications", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + } + ] + }, + "userActionReaction": { + "model": "UserActionReaction", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "reacterId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userActionId", + "userId", + "actionId", + "reacter", + "userAction", + "user", + "action" + ] + }, + "userActionVerification": { + "model": "UserActionVerification", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "user", + "owner", + "action", + "userAction" + ] + }, + "userAction": { + "model": "UserAction", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "userId", + "actionStarted", + "complete", + "verified", + "verifiedDate", + "userRating", + "rejected", + "location", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "objectId", + "user", + "owner", + "action", + "object", + { + "name": "userActionVerifications", + "qtype": "getMany", + "model": "UserActionVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "user", + "owner", + "action", + "userAction" + ] + }, + { + "name": "userActionItems", + "qtype": "getMany", + "model": "UserActionItem", + "selection": [ + "id", + "userId", + "text", + "media", + "location", + "bbox", + "data", + "complete", + "verified", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "user", + "owner", + "action", + "userAction", + "actionItem" + ] + }, + { + "name": "userActionItemVerifications", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + }, + { + "name": "userActionReactions", + "qtype": "getMany", + "model": "UserActionReaction", + "selection": [ + "id", + "reacterId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userActionId", + "userId", + "actionId", + "reacter", + "userAction", + "user", + "action" + ] + } + ] + }, + "userAnswer": { + "model": "UserAnswer", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "userId", + "location", + "text", + "numeric", + "image", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "questionId", + "ownerId", + "user", + "question", + "owner" + ] + }, + "userCharacteristic": { + "model": "UserCharacteristic", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "userId", + "income", + "gender", + "race", + "age", + "dob", + "education", + "homeOwnership", + "treeHuggerLevel", + "diyLevel", + "gardenerLevel", + "freeTime", + "researchToDoer", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + "userConnection": { + "model": "UserConnection", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "accepted", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "requesterId", + "responderId", + "requester", + "responder" + ] + }, + "userContact": { + "model": "UserContact", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "userId", + "vcf", + "fullName", + "emails", + "device", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + "userDevice": { + "model": "UserDevice", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "type", + "deviceId", + "pushToken", + "pushTokenRequested", + "data", + "userId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + "userLocation": { + "model": "UserLocation", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "userId", + "name", + "kind", + "description", + "location", + "bbox", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + "userMessage": { + "model": "UserMessage", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "senderId", + "type", + "content", + "upload", + "received", + "receiverRead", + "senderReaction", + "receiverReaction", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "receiverId", + "sender", + "receiver" + ] + }, + "userPassAction": { + "model": "UserPassAction", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + "userProfile": { + "model": "UserProfile", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "userId", + "profilePicture", + "bio", + "reputation", + "displayName", + "tags", + "desired", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + "userQuestion": { + "model": "UserQuestion", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "questionType", + "questionPrompt", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner", + { + "name": "userAnswersByQuestionId", + "qtype": "getMany", + "model": "UserAnswer", + "selection": [ + "id", + "userId", + "location", + "text", + "numeric", + "image", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "questionId", + "ownerId", + "user", + "question", + "owner" + ] + } + ] + }, + "userSavedAction": { + "model": "UserSavedAction", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + "userSetting": { + "model": "UserSetting", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "userId", + "firstName", + "lastName", + "searchRadius", + "zip", + "location", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + "userViewedAction": { + "model": "UserViewedAction", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + "user": { + "model": "User", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": [ + "id", + "username", + "displayName", + "profilePicture", + "searchTsv", + "type", + "roleTypeByType", + { + "name": "groupsByOwnerId", + "qtype": "getMany", + "model": "Group", + "selection": ["id", "name", "createdBy", "updatedBy", "createdAt", "updatedAt", "ownerId", "owner"] + }, + { + "name": "connectedAccountsByOwnerId", + "qtype": "getMany", + "model": "ConnectedAccount", + "selection": ["id", "ownerId", "service", "identifier", "details", "isVerified", "owner"] + }, + { + "name": "emailsByOwnerId", + "qtype": "getMany", + "model": "Email", + "selection": ["id", "ownerId", "email", "isVerified", "isPrimary", "owner"] + }, + { + "name": "phoneNumbersByOwnerId", + "qtype": "getMany", + "model": "PhoneNumber", + "selection": ["id", "ownerId", "cc", "number", "isVerified", "isPrimary", "owner"] + }, + { + "name": "cryptoAddressesByOwnerId", + "qtype": "getMany", + "model": "CryptoAddress", + "selection": ["id", "ownerId", "address", "isVerified", "isPrimary", "owner"] + }, + { + "name": "authAccountsByOwnerId", + "qtype": "getMany", + "model": "AuthAccount", + "selection": ["id", "ownerId", "service", "identifier", "details", "isVerified", "owner"] + }, + "userProfile", + "userSetting", + "userCharacteristic", + { + "name": "userContacts", + "qtype": "getMany", + "model": "UserContact", + "selection": [ + "id", + "userId", + "vcf", + "fullName", + "emails", + "device", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + { + "name": "userConnectionsByRequesterId", + "qtype": "getMany", + "model": "UserConnection", + "selection": [ + "id", + "accepted", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "requesterId", + "responderId", + "requester", + "responder" + ] + }, + { + "name": "userConnectionsByResponderId", + "qtype": "getMany", + "model": "UserConnection", + "selection": [ + "id", + "accepted", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "requesterId", + "responderId", + "requester", + "responder" + ] + }, + { + "name": "locationsByOwnerId", + "qtype": "getMany", + "model": "Location", + "selection": [ + "id", + "name", + "location", + "bbox", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "locationType", + "owner", + "locationTypeByLocationType" + ] + }, + { + "name": "userLocations", + "qtype": "getMany", + "model": "UserLocation", + "selection": [ + "id", + "userId", + "name", + "kind", + "description", + "location", + "bbox", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + { + "name": "actionsByOwnerId", + "qtype": "getMany", + "model": "Action", + "selection": [ + "id", + "slug", + "photo", + "shareImage", + "title", + "titleObjectTemplate", + "url", + "description", + "discoveryHeader", + "discoveryDescription", + "notificationText", + "notificationObjectTemplate", + "enableNotifications", + "enableNotificationsText", + "search", + "location", + "locationRadius", + "timeRequired", + "startDate", + "endDate", + "approved", + "published", + "isPrivate", + "rewardAmount", + "activityFeedText", + "callToAction", + "completedActionText", + "alreadyCompletedActionText", + "selfVerifiable", + "isRecurring", + "recurringInterval", + "oncePerObject", + "minimumGroupMembers", + "limitedToLocation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "ownerId", + "objectTypeId", + "rewardId", + "verifyRewardId", + "group", + "owner", + "objectType", + "reward", + "verifyReward", + "searchRank" + ] + }, + { + "name": "actionGoalsByOwnerId", + "qtype": "getMany", + "model": "ActionGoal", + "selection": [ + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "goalId", + "owner", + "action", + "goal" + ] + }, + { + "name": "actionVariationsByOwnerId", + "qtype": "getMany", + "model": "ActionVariation", + "selection": [ + "id", + "photo", + "title", + "description", + "income", + "gender", + "dob", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "owner", + "action" + ] + }, + { + "name": "actionItemsByOwnerId", + "qtype": "getMany", + "model": "ActionItem", + "selection": [ + "id", + "name", + "description", + "type", + "itemOrder", + "timeRequired", + "isRequired", + "notificationText", + "embedCode", + "url", + "media", + "location", + "locationRadius", + "rewardWeight", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "itemTypeId", + "ownerId", + "actionId", + "itemType", + "owner", + "action" + ] + }, + { + "name": "requiredActionsByOwnerId", + "qtype": "getMany", + "model": "RequiredAction", + "selection": [ + "id", + "actionOrder", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "requiredId", + "action", + "owner", + "required" + ] + }, + { + "name": "userActions", + "qtype": "getMany", + "model": "UserAction", + "selection": [ + "id", + "userId", + "actionStarted", + "complete", + "verified", + "verifiedDate", + "userRating", + "rejected", + "location", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "objectId", + "user", + "owner", + "action", + "object" + ] + }, + { + "name": "userActionsByOwnerId", + "qtype": "getMany", + "model": "UserAction", + "selection": [ + "id", + "userId", + "actionStarted", + "complete", + "verified", + "verifiedDate", + "userRating", + "rejected", + "location", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "objectId", + "user", + "owner", + "action", + "object" + ] + }, + { + "name": "userActionVerifications", + "qtype": "getMany", + "model": "UserActionVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "user", + "owner", + "action", + "userAction" + ] + }, + { + "name": "userActionVerificationsByOwnerId", + "qtype": "getMany", + "model": "UserActionVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "user", + "owner", + "action", + "userAction" + ] + }, + { + "name": "userActionItems", + "qtype": "getMany", + "model": "UserActionItem", + "selection": [ + "id", + "userId", + "text", + "media", + "location", + "bbox", + "data", + "complete", + "verified", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "user", + "owner", + "action", + "userAction", + "actionItem" + ] + }, + { + "name": "userActionItemsByOwnerId", + "qtype": "getMany", + "model": "UserActionItem", + "selection": [ + "id", + "userId", + "text", + "media", + "location", + "bbox", + "data", + "complete", + "verified", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "user", + "owner", + "action", + "userAction", + "actionItem" + ] + }, + { + "name": "userActionItemVerificationsByVerifierId", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + }, + { + "name": "userActionItemVerifications", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + }, + { + "name": "userActionItemVerificationsByOwnerId", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + }, + { + "name": "tracksByOwnerId", + "qtype": "getMany", + "model": "Track", + "selection": [ + "id", + "name", + "description", + "photo", + "icon", + "isPublished", + "isApproved", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "objectTypeId", + "owner", + "objectType" + ] + }, + { + "name": "trackActionsByOwnerId", + "qtype": "getMany", + "model": "TrackAction", + "selection": [ + "id", + "trackOrder", + "isRequired", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "trackId", + "action", + "owner", + "track" + ] + }, + { + "name": "objectsByOwnerId", + "qtype": "getMany", + "model": "Object", + "selection": [ + "id", + "name", + "description", + "photo", + "media", + "location", + "bbox", + "data", + "ownerId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "typeId", + "owner", + "type" + ] + }, + { + "name": "objectAttributesByOwnerId", + "qtype": "getMany", + "model": "ObjectAttribute", + "selection": [ + "id", + "description", + "location", + "text", + "numeric", + "image", + "data", + "ownerId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "valueId", + "objectId", + "objectTypeAttributeId", + "owner", + "value", + "object", + "objectTypeAttribute" + ] + }, + "organizationProfileByOrganizationId", + { + "name": "userPassActions", + "qtype": "getMany", + "model": "UserPassAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userSavedActions", + "qtype": "getMany", + "model": "UserSavedAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userViewedActions", + "qtype": "getMany", + "model": "UserViewedAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userActionReactionsByReacterId", + "qtype": "getMany", + "model": "UserActionReaction", + "selection": [ + "id", + "reacterId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userActionId", + "userId", + "actionId", + "reacter", + "userAction", + "user", + "action" + ] + }, + { + "name": "userActionReactions", + "qtype": "getMany", + "model": "UserActionReaction", + "selection": [ + "id", + "reacterId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userActionId", + "userId", + "actionId", + "reacter", + "userAction", + "user", + "action" + ] + }, + { + "name": "userMessagesBySenderId", + "qtype": "getMany", + "model": "UserMessage", + "selection": [ + "id", + "senderId", + "type", + "content", + "upload", + "received", + "receiverRead", + "senderReaction", + "receiverReaction", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "receiverId", + "sender", + "receiver" + ] + }, + { + "name": "userMessagesByReceiverId", + "qtype": "getMany", + "model": "UserMessage", + "selection": [ + "id", + "senderId", + "type", + "content", + "upload", + "received", + "receiverRead", + "senderReaction", + "receiverReaction", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "receiverId", + "sender", + "receiver" + ] + }, + { + "name": "messagesBySenderId", + "qtype": "getMany", + "model": "Message", + "selection": [ + "id", + "senderId", + "type", + "content", + "upload", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "sender", + "group" + ] + }, + { + "name": "postsByPosterId", + "qtype": "getMany", + "model": "Post", + "selection": [ + "id", + "posterId", + "type", + "flagged", + "image", + "url", + "location", + "data", + "taggedUserIds", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "poster" + ] + }, + { + "name": "postReactionsByReacterId", + "qtype": "getMany", + "model": "PostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "reacter", + "post", + "poster" + ] + }, + { + "name": "postReactionsByPosterId", + "qtype": "getMany", + "model": "PostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "reacter", + "post", + "poster" + ] + }, + { + "name": "postCommentsByCommenterId", + "qtype": "getMany", + "model": "PostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "commenter", + "parent", + "post", + "poster" + ] + }, + { + "name": "postCommentsByPosterId", + "qtype": "getMany", + "model": "PostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "commenter", + "parent", + "post", + "poster" + ] + }, + { + "name": "groupPostsByPosterId", + "qtype": "getMany", + "model": "GroupPost", + "selection": [ + "id", + "posterId", + "type", + "flagged", + "image", + "url", + "location", + "data", + "taggedUserIds", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "poster", + "group" + ] + }, + { + "name": "groupPostReactionsByReacterId", + "qtype": "getMany", + "model": "GroupPostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "posterId", + "postId", + "reacter", + "group", + "poster", + "post" + ] + }, + { + "name": "groupPostReactionsByPosterId", + "qtype": "getMany", + "model": "GroupPostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "posterId", + "postId", + "reacter", + "group", + "poster", + "post" + ] + }, + { + "name": "groupPostCommentsByCommenterId", + "qtype": "getMany", + "model": "GroupPostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "postId", + "posterId", + "commenter", + "parent", + "group", + "post", + "poster" + ] + }, + { + "name": "groupPostCommentsByPosterId", + "qtype": "getMany", + "model": "GroupPostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "postId", + "posterId", + "commenter", + "parent", + "group", + "post", + "poster" + ] + }, + { + "name": "userDevices", + "qtype": "getMany", + "model": "UserDevice", + "selection": [ + "id", + "type", + "deviceId", + "pushToken", + "pushTokenRequested", + "data", + "userId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + { + "name": "notificationsByActorId", + "qtype": "getMany", + "model": "Notification", + "selection": [ + "id", + "actorId", + "recipientId", + "notificationType", + "notificationText", + "entityType", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actor", + "recipient" + ] + }, + { + "name": "notificationsByRecipientId", + "qtype": "getMany", + "model": "Notification", + "selection": [ + "id", + "actorId", + "recipientId", + "notificationType", + "notificationText", + "entityType", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actor", + "recipient" + ] + }, + { + "name": "notificationPreferences", + "qtype": "getMany", + "model": "NotificationPreference", + "selection": [ + "id", + "userId", + "emails", + "sms", + "notifications", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + { + "name": "userQuestionsByOwnerId", + "qtype": "getMany", + "model": "UserQuestion", + "selection": [ + "id", + "questionType", + "questionPrompt", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner" + ] + }, + { + "name": "userAnswers", + "qtype": "getMany", + "model": "UserAnswer", + "selection": [ + "id", + "userId", + "location", + "text", + "numeric", + "image", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "questionId", + "ownerId", + "user", + "question", + "owner" + ] + }, + { + "name": "userAnswersByOwnerId", + "qtype": "getMany", + "model": "UserAnswer", + "selection": [ + "id", + "userId", + "location", + "text", + "numeric", + "image", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "questionId", + "ownerId", + "user", + "question", + "owner" + ] + }, + { + "name": "rewardLimitsByOwnerId", + "qtype": "getMany", + "model": "RewardLimit", + "selection": [ + "id", + "rewardAmount", + "rewardUnit", + "totalRewardLimit", + "weeklyLimit", + "dailyLimit", + "totalLimit", + "userTotalLimit", + "userWeeklyLimit", + "userDailyLimit", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner" + ] + }, + "searchTsvRank" + ] + }, + "userByUsername": { + "model": "User", + "qtype": "getOne", + "properties": { + "username": { + "isNotNull": true, + "type": "String" + } + }, + "selection": [ + "id", + "username", + "displayName", + "profilePicture", + "searchTsv", + "type", + "roleTypeByType", + { + "name": "groupsByOwnerId", + "qtype": "getMany", + "model": "Group", + "selection": ["id", "name", "createdBy", "updatedBy", "createdAt", "updatedAt", "ownerId", "owner"] + }, + { + "name": "connectedAccountsByOwnerId", + "qtype": "getMany", + "model": "ConnectedAccount", + "selection": ["id", "ownerId", "service", "identifier", "details", "isVerified", "owner"] + }, + { + "name": "emailsByOwnerId", + "qtype": "getMany", + "model": "Email", + "selection": ["id", "ownerId", "email", "isVerified", "isPrimary", "owner"] + }, + { + "name": "phoneNumbersByOwnerId", + "qtype": "getMany", + "model": "PhoneNumber", + "selection": ["id", "ownerId", "cc", "number", "isVerified", "isPrimary", "owner"] + }, + { + "name": "cryptoAddressesByOwnerId", + "qtype": "getMany", + "model": "CryptoAddress", + "selection": ["id", "ownerId", "address", "isVerified", "isPrimary", "owner"] + }, + { + "name": "authAccountsByOwnerId", + "qtype": "getMany", + "model": "AuthAccount", + "selection": ["id", "ownerId", "service", "identifier", "details", "isVerified", "owner"] + }, + "userProfile", + "userSetting", + "userCharacteristic", + { + "name": "userContacts", + "qtype": "getMany", + "model": "UserContact", + "selection": [ + "id", + "userId", + "vcf", + "fullName", + "emails", + "device", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + { + "name": "userConnectionsByRequesterId", + "qtype": "getMany", + "model": "UserConnection", + "selection": [ + "id", + "accepted", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "requesterId", + "responderId", + "requester", + "responder" + ] + }, + { + "name": "userConnectionsByResponderId", + "qtype": "getMany", + "model": "UserConnection", + "selection": [ + "id", + "accepted", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "requesterId", + "responderId", + "requester", + "responder" + ] + }, + { + "name": "locationsByOwnerId", + "qtype": "getMany", + "model": "Location", + "selection": [ + "id", + "name", + "location", + "bbox", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "locationType", + "owner", + "locationTypeByLocationType" + ] + }, + { + "name": "userLocations", + "qtype": "getMany", + "model": "UserLocation", + "selection": [ + "id", + "userId", + "name", + "kind", + "description", + "location", + "bbox", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + { + "name": "actionsByOwnerId", + "qtype": "getMany", + "model": "Action", + "selection": [ + "id", + "slug", + "photo", + "shareImage", + "title", + "titleObjectTemplate", + "url", + "description", + "discoveryHeader", + "discoveryDescription", + "notificationText", + "notificationObjectTemplate", + "enableNotifications", + "enableNotificationsText", + "search", + "location", + "locationRadius", + "timeRequired", + "startDate", + "endDate", + "approved", + "published", + "isPrivate", + "rewardAmount", + "activityFeedText", + "callToAction", + "completedActionText", + "alreadyCompletedActionText", + "selfVerifiable", + "isRecurring", + "recurringInterval", + "oncePerObject", + "minimumGroupMembers", + "limitedToLocation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "ownerId", + "objectTypeId", + "rewardId", + "verifyRewardId", + "group", + "owner", + "objectType", + "reward", + "verifyReward", + "searchRank" + ] + }, + { + "name": "actionGoalsByOwnerId", + "qtype": "getMany", + "model": "ActionGoal", + "selection": [ + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "goalId", + "owner", + "action", + "goal" + ] + }, + { + "name": "actionVariationsByOwnerId", + "qtype": "getMany", + "model": "ActionVariation", + "selection": [ + "id", + "photo", + "title", + "description", + "income", + "gender", + "dob", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "owner", + "action" + ] + }, + { + "name": "actionItemsByOwnerId", + "qtype": "getMany", + "model": "ActionItem", + "selection": [ + "id", + "name", + "description", + "type", + "itemOrder", + "timeRequired", + "isRequired", + "notificationText", + "embedCode", + "url", + "media", + "location", + "locationRadius", + "rewardWeight", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "itemTypeId", + "ownerId", + "actionId", + "itemType", + "owner", + "action" + ] + }, + { + "name": "requiredActionsByOwnerId", + "qtype": "getMany", + "model": "RequiredAction", + "selection": [ + "id", + "actionOrder", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "requiredId", + "action", + "owner", + "required" + ] + }, + { + "name": "userActions", + "qtype": "getMany", + "model": "UserAction", + "selection": [ + "id", + "userId", + "actionStarted", + "complete", + "verified", + "verifiedDate", + "userRating", + "rejected", + "location", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "objectId", + "user", + "owner", + "action", + "object" + ] + }, + { + "name": "userActionsByOwnerId", + "qtype": "getMany", + "model": "UserAction", + "selection": [ + "id", + "userId", + "actionStarted", + "complete", + "verified", + "verifiedDate", + "userRating", + "rejected", + "location", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "objectId", + "user", + "owner", + "action", + "object" + ] + }, + { + "name": "userActionVerifications", + "qtype": "getMany", + "model": "UserActionVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "user", + "owner", + "action", + "userAction" + ] + }, + { + "name": "userActionVerificationsByOwnerId", + "qtype": "getMany", + "model": "UserActionVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "user", + "owner", + "action", + "userAction" + ] + }, + { + "name": "userActionItems", + "qtype": "getMany", + "model": "UserActionItem", + "selection": [ + "id", + "userId", + "text", + "media", + "location", + "bbox", + "data", + "complete", + "verified", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "user", + "owner", + "action", + "userAction", + "actionItem" + ] + }, + { + "name": "userActionItemsByOwnerId", + "qtype": "getMany", + "model": "UserActionItem", + "selection": [ + "id", + "userId", + "text", + "media", + "location", + "bbox", + "data", + "complete", + "verified", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "user", + "owner", + "action", + "userAction", + "actionItem" + ] + }, + { + "name": "userActionItemVerificationsByVerifierId", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + }, + { + "name": "userActionItemVerifications", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + }, + { + "name": "userActionItemVerificationsByOwnerId", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + }, + { + "name": "tracksByOwnerId", + "qtype": "getMany", + "model": "Track", + "selection": [ + "id", + "name", + "description", + "photo", + "icon", + "isPublished", + "isApproved", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "objectTypeId", + "owner", + "objectType" + ] + }, + { + "name": "trackActionsByOwnerId", + "qtype": "getMany", + "model": "TrackAction", + "selection": [ + "id", + "trackOrder", + "isRequired", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "trackId", + "action", + "owner", + "track" + ] + }, + { + "name": "objectsByOwnerId", + "qtype": "getMany", + "model": "Object", + "selection": [ + "id", + "name", + "description", + "photo", + "media", + "location", + "bbox", + "data", + "ownerId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "typeId", + "owner", + "type" + ] + }, + { + "name": "objectAttributesByOwnerId", + "qtype": "getMany", + "model": "ObjectAttribute", + "selection": [ + "id", + "description", + "location", + "text", + "numeric", + "image", + "data", + "ownerId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "valueId", + "objectId", + "objectTypeAttributeId", + "owner", + "value", + "object", + "objectTypeAttribute" + ] + }, + "organizationProfileByOrganizationId", + { + "name": "userPassActions", + "qtype": "getMany", + "model": "UserPassAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userSavedActions", + "qtype": "getMany", + "model": "UserSavedAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userViewedActions", + "qtype": "getMany", + "model": "UserViewedAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userActionReactionsByReacterId", + "qtype": "getMany", + "model": "UserActionReaction", + "selection": [ + "id", + "reacterId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userActionId", + "userId", + "actionId", + "reacter", + "userAction", + "user", + "action" + ] + }, + { + "name": "userActionReactions", + "qtype": "getMany", + "model": "UserActionReaction", + "selection": [ + "id", + "reacterId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userActionId", + "userId", + "actionId", + "reacter", + "userAction", + "user", + "action" + ] + }, + { + "name": "userMessagesBySenderId", + "qtype": "getMany", + "model": "UserMessage", + "selection": [ + "id", + "senderId", + "type", + "content", + "upload", + "received", + "receiverRead", + "senderReaction", + "receiverReaction", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "receiverId", + "sender", + "receiver" + ] + }, + { + "name": "userMessagesByReceiverId", + "qtype": "getMany", + "model": "UserMessage", + "selection": [ + "id", + "senderId", + "type", + "content", + "upload", + "received", + "receiverRead", + "senderReaction", + "receiverReaction", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "receiverId", + "sender", + "receiver" + ] + }, + { + "name": "messagesBySenderId", + "qtype": "getMany", + "model": "Message", + "selection": [ + "id", + "senderId", + "type", + "content", + "upload", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "sender", + "group" + ] + }, + { + "name": "postsByPosterId", + "qtype": "getMany", + "model": "Post", + "selection": [ + "id", + "posterId", + "type", + "flagged", + "image", + "url", + "location", + "data", + "taggedUserIds", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "poster" + ] + }, + { + "name": "postReactionsByReacterId", + "qtype": "getMany", + "model": "PostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "reacter", + "post", + "poster" + ] + }, + { + "name": "postReactionsByPosterId", + "qtype": "getMany", + "model": "PostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "reacter", + "post", + "poster" + ] + }, + { + "name": "postCommentsByCommenterId", + "qtype": "getMany", + "model": "PostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "commenter", + "parent", + "post", + "poster" + ] + }, + { + "name": "postCommentsByPosterId", + "qtype": "getMany", + "model": "PostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "commenter", + "parent", + "post", + "poster" + ] + }, + { + "name": "groupPostsByPosterId", + "qtype": "getMany", + "model": "GroupPost", + "selection": [ + "id", + "posterId", + "type", + "flagged", + "image", + "url", + "location", + "data", + "taggedUserIds", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "poster", + "group" + ] + }, + { + "name": "groupPostReactionsByReacterId", + "qtype": "getMany", + "model": "GroupPostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "posterId", + "postId", + "reacter", + "group", + "poster", + "post" + ] + }, + { + "name": "groupPostReactionsByPosterId", + "qtype": "getMany", + "model": "GroupPostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "posterId", + "postId", + "reacter", + "group", + "poster", + "post" + ] + }, + { + "name": "groupPostCommentsByCommenterId", + "qtype": "getMany", + "model": "GroupPostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "postId", + "posterId", + "commenter", + "parent", + "group", + "post", + "poster" + ] + }, + { + "name": "groupPostCommentsByPosterId", + "qtype": "getMany", + "model": "GroupPostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "postId", + "posterId", + "commenter", + "parent", + "group", + "post", + "poster" + ] + }, + { + "name": "userDevices", + "qtype": "getMany", + "model": "UserDevice", + "selection": [ + "id", + "type", + "deviceId", + "pushToken", + "pushTokenRequested", + "data", + "userId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + { + "name": "notificationsByActorId", + "qtype": "getMany", + "model": "Notification", + "selection": [ + "id", + "actorId", + "recipientId", + "notificationType", + "notificationText", + "entityType", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actor", + "recipient" + ] + }, + { + "name": "notificationsByRecipientId", + "qtype": "getMany", + "model": "Notification", + "selection": [ + "id", + "actorId", + "recipientId", + "notificationType", + "notificationText", + "entityType", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actor", + "recipient" + ] + }, + { + "name": "notificationPreferences", + "qtype": "getMany", + "model": "NotificationPreference", + "selection": [ + "id", + "userId", + "emails", + "sms", + "notifications", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + { + "name": "userQuestionsByOwnerId", + "qtype": "getMany", + "model": "UserQuestion", + "selection": [ + "id", + "questionType", + "questionPrompt", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner" + ] + }, + { + "name": "userAnswers", + "qtype": "getMany", + "model": "UserAnswer", + "selection": [ + "id", + "userId", + "location", + "text", + "numeric", + "image", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "questionId", + "ownerId", + "user", + "question", + "owner" + ] + }, + { + "name": "userAnswersByOwnerId", + "qtype": "getMany", + "model": "UserAnswer", + "selection": [ + "id", + "userId", + "location", + "text", + "numeric", + "image", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "questionId", + "ownerId", + "user", + "question", + "owner" + ] + }, + { + "name": "rewardLimitsByOwnerId", + "qtype": "getMany", + "model": "RewardLimit", + "selection": [ + "id", + "rewardAmount", + "rewardUnit", + "totalRewardLimit", + "weeklyLimit", + "dailyLimit", + "totalLimit", + "userTotalLimit", + "userWeeklyLimit", + "userDailyLimit", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner" + ] + }, + "searchTsvRank" + ] + }, + "zipCode": { + "model": "ZipCode", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": ["id", "zip", "location", "bbox", "createdBy", "updatedBy", "createdAt", "updatedAt"] + }, + "zipCodeByZip": { + "model": "ZipCode", + "qtype": "getOne", + "properties": { + "zip": { + "isNotNull": true, + "type": "Int" + } + }, + "selection": ["id", "zip", "location", "bbox", "createdBy", "updatedBy", "createdAt", "updatedAt"] + }, + "authAccount": { + "model": "AuthAccount", + "qtype": "getOne", + "properties": { + "id": { + "isNotNull": true, + "type": "UUID" + } + }, + "selection": ["id", "ownerId", "service", "identifier", "details", "isVerified", "owner"] + }, + "authAccountByServiceAndIdentifier": { + "model": "AuthAccount", + "qtype": "getOne", + "properties": { + "service": { + "isNotNull": true, + "type": "String" + }, + "identifier": { + "isNotNull": true, + "type": "String" + } + }, + "selection": ["id", "ownerId", "service", "identifier", "details", "isVerified", "owner"] + }, + "getCurrentUser": { + "model": "User", + "qtype": "getOne", + "properties": {}, + "selection": [ + "id", + "username", + "displayName", + "profilePicture", + "searchTsv", + "type", + "roleTypeByType", + { + "name": "groupsByOwnerId", + "qtype": "getMany", + "model": "Group", + "selection": ["id", "name", "createdBy", "updatedBy", "createdAt", "updatedAt", "ownerId", "owner"] + }, + { + "name": "connectedAccountsByOwnerId", + "qtype": "getMany", + "model": "ConnectedAccount", + "selection": ["id", "ownerId", "service", "identifier", "details", "isVerified", "owner"] + }, + { + "name": "emailsByOwnerId", + "qtype": "getMany", + "model": "Email", + "selection": ["id", "ownerId", "email", "isVerified", "isPrimary", "owner"] + }, + { + "name": "phoneNumbersByOwnerId", + "qtype": "getMany", + "model": "PhoneNumber", + "selection": ["id", "ownerId", "cc", "number", "isVerified", "isPrimary", "owner"] + }, + { + "name": "cryptoAddressesByOwnerId", + "qtype": "getMany", + "model": "CryptoAddress", + "selection": ["id", "ownerId", "address", "isVerified", "isPrimary", "owner"] + }, + { + "name": "authAccountsByOwnerId", + "qtype": "getMany", + "model": "AuthAccount", + "selection": ["id", "ownerId", "service", "identifier", "details", "isVerified", "owner"] + }, + "userProfile", + "userSetting", + "userCharacteristic", + { + "name": "userContacts", + "qtype": "getMany", + "model": "UserContact", + "selection": [ + "id", + "userId", + "vcf", + "fullName", + "emails", + "device", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + { + "name": "userConnectionsByRequesterId", + "qtype": "getMany", + "model": "UserConnection", + "selection": [ + "id", + "accepted", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "requesterId", + "responderId", + "requester", + "responder" + ] + }, + { + "name": "userConnectionsByResponderId", + "qtype": "getMany", + "model": "UserConnection", + "selection": [ + "id", + "accepted", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "requesterId", + "responderId", + "requester", + "responder" + ] + }, + { + "name": "locationsByOwnerId", + "qtype": "getMany", + "model": "Location", + "selection": [ + "id", + "name", + "location", + "bbox", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "locationType", + "owner", + "locationTypeByLocationType" + ] + }, + { + "name": "userLocations", + "qtype": "getMany", + "model": "UserLocation", + "selection": [ + "id", + "userId", + "name", + "kind", + "description", + "location", + "bbox", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + { + "name": "actionsByOwnerId", + "qtype": "getMany", + "model": "Action", + "selection": [ + "id", + "slug", + "photo", + "shareImage", + "title", + "titleObjectTemplate", + "url", + "description", + "discoveryHeader", + "discoveryDescription", + "notificationText", + "notificationObjectTemplate", + "enableNotifications", + "enableNotificationsText", + "search", + "location", + "locationRadius", + "timeRequired", + "startDate", + "endDate", + "approved", + "published", + "isPrivate", + "rewardAmount", + "activityFeedText", + "callToAction", + "completedActionText", + "alreadyCompletedActionText", + "selfVerifiable", + "isRecurring", + "recurringInterval", + "oncePerObject", + "minimumGroupMembers", + "limitedToLocation", + "tags", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "ownerId", + "objectTypeId", + "rewardId", + "verifyRewardId", + "group", + "owner", + "objectType", + "reward", + "verifyReward", + "searchRank" + ] + }, + { + "name": "actionGoalsByOwnerId", + "qtype": "getMany", + "model": "ActionGoal", + "selection": [ + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "goalId", + "owner", + "action", + "goal" + ] + }, + { + "name": "actionVariationsByOwnerId", + "qtype": "getMany", + "model": "ActionVariation", + "selection": [ + "id", + "photo", + "title", + "description", + "income", + "gender", + "dob", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "owner", + "action" + ] + }, + { + "name": "actionItemsByOwnerId", + "qtype": "getMany", + "model": "ActionItem", + "selection": [ + "id", + "name", + "description", + "type", + "itemOrder", + "timeRequired", + "isRequired", + "notificationText", + "embedCode", + "url", + "media", + "location", + "locationRadius", + "rewardWeight", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "itemTypeId", + "ownerId", + "actionId", + "itemType", + "owner", + "action" + ] + }, + { + "name": "requiredActionsByOwnerId", + "qtype": "getMany", + "model": "RequiredAction", + "selection": [ + "id", + "actionOrder", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "requiredId", + "action", + "owner", + "required" + ] + }, + { + "name": "userActions", + "qtype": "getMany", + "model": "UserAction", + "selection": [ + "id", + "userId", + "actionStarted", + "complete", + "verified", + "verifiedDate", + "userRating", + "rejected", + "location", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "objectId", + "user", + "owner", + "action", + "object" + ] + }, + { + "name": "userActionsByOwnerId", + "qtype": "getMany", + "model": "UserAction", + "selection": [ + "id", + "userId", + "actionStarted", + "complete", + "verified", + "verifiedDate", + "userRating", + "rejected", + "location", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "objectId", + "user", + "owner", + "action", + "object" + ] + }, + { + "name": "userActionVerifications", + "qtype": "getMany", + "model": "UserActionVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "user", + "owner", + "action", + "userAction" + ] + }, + { + "name": "userActionVerificationsByOwnerId", + "qtype": "getMany", + "model": "UserActionVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "user", + "owner", + "action", + "userAction" + ] + }, + { + "name": "userActionItems", + "qtype": "getMany", + "model": "UserActionItem", + "selection": [ + "id", + "userId", + "text", + "media", + "location", + "bbox", + "data", + "complete", + "verified", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "user", + "owner", + "action", + "userAction", + "actionItem" + ] + }, + { + "name": "userActionItemsByOwnerId", + "qtype": "getMany", + "model": "UserActionItem", + "selection": [ + "id", + "userId", + "text", + "media", + "location", + "bbox", + "data", + "complete", + "verified", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "user", + "owner", + "action", + "userAction", + "actionItem" + ] + }, + { + "name": "userActionItemVerificationsByVerifierId", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + }, + { + "name": "userActionItemVerifications", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + }, + { + "name": "userActionItemVerificationsByOwnerId", + "qtype": "getMany", + "model": "UserActionItemVerification", + "selection": [ + "id", + "verifierId", + "verified", + "rejected", + "notes", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userId", + "ownerId", + "actionId", + "userActionId", + "actionItemId", + "userActionItemId", + "verifier", + "user", + "owner", + "action", + "userAction", + "actionItem", + "userActionItem" + ] + }, + { + "name": "tracksByOwnerId", + "qtype": "getMany", + "model": "Track", + "selection": [ + "id", + "name", + "description", + "photo", + "icon", + "isPublished", + "isApproved", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "objectTypeId", + "owner", + "objectType" + ] + }, + { + "name": "trackActionsByOwnerId", + "qtype": "getMany", + "model": "TrackAction", + "selection": [ + "id", + "trackOrder", + "isRequired", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actionId", + "ownerId", + "trackId", + "action", + "owner", + "track" + ] + }, + { + "name": "objectsByOwnerId", + "qtype": "getMany", + "model": "Object", + "selection": [ + "id", + "name", + "description", + "photo", + "media", + "location", + "bbox", + "data", + "ownerId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "typeId", + "owner", + "type" + ] + }, + { + "name": "objectAttributesByOwnerId", + "qtype": "getMany", + "model": "ObjectAttribute", + "selection": [ + "id", + "description", + "location", + "text", + "numeric", + "image", + "data", + "ownerId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "valueId", + "objectId", + "objectTypeAttributeId", + "owner", + "value", + "object", + "objectTypeAttribute" + ] + }, + "organizationProfileByOrganizationId", + { + "name": "userPassActions", + "qtype": "getMany", + "model": "UserPassAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userSavedActions", + "qtype": "getMany", + "model": "UserSavedAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userViewedActions", + "qtype": "getMany", + "model": "UserViewedAction", + "selection": ["id", "userId", "createdBy", "updatedBy", "createdAt", "updatedAt", "actionId", "user", "action"] + }, + { + "name": "userActionReactionsByReacterId", + "qtype": "getMany", + "model": "UserActionReaction", + "selection": [ + "id", + "reacterId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userActionId", + "userId", + "actionId", + "reacter", + "userAction", + "user", + "action" + ] + }, + { + "name": "userActionReactions", + "qtype": "getMany", + "model": "UserActionReaction", + "selection": [ + "id", + "reacterId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "userActionId", + "userId", + "actionId", + "reacter", + "userAction", + "user", + "action" + ] + }, + { + "name": "userMessagesBySenderId", + "qtype": "getMany", + "model": "UserMessage", + "selection": [ + "id", + "senderId", + "type", + "content", + "upload", + "received", + "receiverRead", + "senderReaction", + "receiverReaction", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "receiverId", + "sender", + "receiver" + ] + }, + { + "name": "userMessagesByReceiverId", + "qtype": "getMany", + "model": "UserMessage", + "selection": [ + "id", + "senderId", + "type", + "content", + "upload", + "received", + "receiverRead", + "senderReaction", + "receiverReaction", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "receiverId", + "sender", + "receiver" + ] + }, + { + "name": "messagesBySenderId", + "qtype": "getMany", + "model": "Message", + "selection": [ + "id", + "senderId", + "type", + "content", + "upload", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "sender", + "group" + ] + }, + { + "name": "postsByPosterId", + "qtype": "getMany", + "model": "Post", + "selection": [ + "id", + "posterId", + "type", + "flagged", + "image", + "url", + "location", + "data", + "taggedUserIds", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "poster" + ] + }, + { + "name": "postReactionsByReacterId", + "qtype": "getMany", + "model": "PostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "reacter", + "post", + "poster" + ] + }, + { + "name": "postReactionsByPosterId", + "qtype": "getMany", + "model": "PostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "reacter", + "post", + "poster" + ] + }, + { + "name": "postCommentsByCommenterId", + "qtype": "getMany", + "model": "PostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "commenter", + "parent", + "post", + "poster" + ] + }, + { + "name": "postCommentsByPosterId", + "qtype": "getMany", + "model": "PostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "postId", + "posterId", + "commenter", + "parent", + "post", + "poster" + ] + }, + { + "name": "groupPostsByPosterId", + "qtype": "getMany", + "model": "GroupPost", + "selection": [ + "id", + "posterId", + "type", + "flagged", + "image", + "url", + "location", + "data", + "taggedUserIds", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "poster", + "group" + ] + }, + { + "name": "groupPostReactionsByReacterId", + "qtype": "getMany", + "model": "GroupPostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "posterId", + "postId", + "reacter", + "group", + "poster", + "post" + ] + }, + { + "name": "groupPostReactionsByPosterId", + "qtype": "getMany", + "model": "GroupPostReaction", + "selection": [ + "id", + "reacterId", + "type", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "posterId", + "postId", + "reacter", + "group", + "poster", + "post" + ] + }, + { + "name": "groupPostCommentsByCommenterId", + "qtype": "getMany", + "model": "GroupPostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "postId", + "posterId", + "commenter", + "parent", + "group", + "post", + "poster" + ] + }, + { + "name": "groupPostCommentsByPosterId", + "qtype": "getMany", + "model": "GroupPostComment", + "selection": [ + "id", + "commenterId", + "parentId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "groupId", + "postId", + "posterId", + "commenter", + "parent", + "group", + "post", + "poster" + ] + }, + { + "name": "userDevices", + "qtype": "getMany", + "model": "UserDevice", + "selection": [ + "id", + "type", + "deviceId", + "pushToken", + "pushTokenRequested", + "data", + "userId", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + { + "name": "notificationsByActorId", + "qtype": "getMany", + "model": "Notification", + "selection": [ + "id", + "actorId", + "recipientId", + "notificationType", + "notificationText", + "entityType", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actor", + "recipient" + ] + }, + { + "name": "notificationsByRecipientId", + "qtype": "getMany", + "model": "Notification", + "selection": [ + "id", + "actorId", + "recipientId", + "notificationType", + "notificationText", + "entityType", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "actor", + "recipient" + ] + }, + { + "name": "notificationPreferences", + "qtype": "getMany", + "model": "NotificationPreference", + "selection": [ + "id", + "userId", + "emails", + "sms", + "notifications", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "user" + ] + }, + { + "name": "userQuestionsByOwnerId", + "qtype": "getMany", + "model": "UserQuestion", + "selection": [ + "id", + "questionType", + "questionPrompt", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner" + ] + }, + { + "name": "userAnswers", + "qtype": "getMany", + "model": "UserAnswer", + "selection": [ + "id", + "userId", + "location", + "text", + "numeric", + "image", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "questionId", + "ownerId", + "user", + "question", + "owner" + ] + }, + { + "name": "userAnswersByOwnerId", + "qtype": "getMany", + "model": "UserAnswer", + "selection": [ + "id", + "userId", + "location", + "text", + "numeric", + "image", + "data", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "questionId", + "ownerId", + "user", + "question", + "owner" + ] + }, + { + "name": "rewardLimitsByOwnerId", + "qtype": "getMany", + "model": "RewardLimit", + "selection": [ + "id", + "rewardAmount", + "rewardUnit", + "totalRewardLimit", + "weeklyLimit", + "dailyLimit", + "totalLimit", + "userTotalLimit", + "userWeeklyLimit", + "userDailyLimit", + "createdBy", + "updatedBy", + "createdAt", + "updatedAt", + "ownerId", + "owner" + ] + }, + "searchTsvRank" + ] + }, + "_meta": { + "model": "Metaschema", + "qtype": "getOne", + "properties": {}, + "selection": [ + { + "name": "tables", + "qtype": "getOne", + "model": "MetaschemaTable", + "properties": {}, + "selection": [ + "name", + "query", + "inflection", + "relations", + "fields", + "constraints", + "foreignKeyConstraints", + "primaryKeyConstraints", + "uniqueConstraints", + "checkConstraints", + "exclusionConstraints" + ] + } + ] + }, + "createActionGoal": { + "qtype": "mutation", + "mutationType": "create", + "model": "ActionGoal", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateActionGoalInput", + "properties": { + "actionGoal": { + "name": "actionGoal", + "isNotNull": true, + "properties": { + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "actionId": { + "name": "actionId", + "isNotNull": true, + "type": "UUID" + }, + "goalId": { + "name": "goalId", + "isNotNull": true, + "type": "UUID" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateActionGoalPayload", + "ofType": null + } + }, + "createActionItemType": { + "qtype": "mutation", + "mutationType": "create", + "model": "ActionItemType", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateActionItemTypeInput", + "properties": { + "actionItemType": { + "name": "actionItemType", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "Int" + }, + "name": { + "name": "name", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "image": { + "name": "image", + "type": "JSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "imageUpload": { + "name": "imageUpload", + "type": "Upload" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateActionItemTypePayload", + "ofType": null + } + }, + "createActionItem": { + "qtype": "mutation", + "mutationType": "create", + "model": "ActionItem", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateActionItemInput", + "properties": { + "actionItem": { + "name": "actionItem", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "type": { + "name": "type", + "type": "String" + }, + "itemOrder": { + "name": "itemOrder", + "type": "Int" + }, + "timeRequired": { + "name": "timeRequired", + "properties": { + "seconds": { + "name": "seconds", + "type": "Float" + }, + "minutes": { + "name": "minutes", + "type": "Int" + }, + "hours": { + "name": "hours", + "type": "Int" + }, + "days": { + "name": "days", + "type": "Int" + }, + "months": { + "name": "months", + "type": "Int" + }, + "years": { + "name": "years", + "type": "Int" + } + } + }, + "isRequired": { + "name": "isRequired", + "type": "Boolean" + }, + "notificationText": { + "name": "notificationText", + "type": "String" + }, + "embedCode": { + "name": "embedCode", + "type": "String" + }, + "url": { + "name": "url", + "type": "String" + }, + "media": { + "name": "media", + "type": "JSON" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "locationRadius": { + "name": "locationRadius", + "type": "BigFloat" + }, + "rewardWeight": { + "name": "rewardWeight", + "type": "BigFloat" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "itemTypeId": { + "name": "itemTypeId", + "type": "Int" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "actionId": { + "name": "actionId", + "isNotNull": true, + "type": "UUID" + }, + "mediaUpload": { + "name": "mediaUpload", + "type": "Upload" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateActionItemPayload", + "ofType": null + } + }, + "createActionVariation": { + "qtype": "mutation", + "mutationType": "create", + "model": "ActionVariation", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateActionVariationInput", + "properties": { + "actionVariation": { + "name": "actionVariation", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "photo": { + "name": "photo", + "type": "JSON" + }, + "title": { + "name": "title", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "income": { + "name": "income", + "isArray": true, + "type": "BigFloat" + }, + "gender": { + "name": "gender", + "isArray": true, + "type": "String" + }, + "dob": { + "name": "dob", + "isArray": true, + "type": "Date" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "actionId": { + "name": "actionId", + "isNotNull": true, + "type": "UUID" + }, + "photoUpload": { + "name": "photoUpload", + "type": "Upload" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateActionVariationPayload", + "ofType": null + } + }, + "createAction": { + "qtype": "mutation", + "mutationType": "create", + "model": "Action", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateActionInput", + "properties": { + "action": { + "name": "action", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "slug": { + "name": "slug", + "type": "String" + }, + "photo": { + "name": "photo", + "type": "JSON" + }, + "shareImage": { + "name": "shareImage", + "type": "JSON" + }, + "title": { + "name": "title", + "type": "String" + }, + "titleObjectTemplate": { + "name": "titleObjectTemplate", + "type": "String" + }, + "url": { + "name": "url", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "discoveryHeader": { + "name": "discoveryHeader", + "type": "String" + }, + "discoveryDescription": { + "name": "discoveryDescription", + "type": "String" + }, + "notificationText": { + "name": "notificationText", + "type": "String" + }, + "notificationObjectTemplate": { + "name": "notificationObjectTemplate", + "type": "String" + }, + "enableNotifications": { + "name": "enableNotifications", + "type": "Boolean" + }, + "enableNotificationsText": { + "name": "enableNotificationsText", + "type": "String" + }, + "search": { + "name": "search", + "type": "FullText" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "locationRadius": { + "name": "locationRadius", + "type": "BigFloat" + }, + "timeRequired": { + "name": "timeRequired", + "properties": { + "seconds": { + "name": "seconds", + "type": "Float" + }, + "minutes": { + "name": "minutes", + "type": "Int" + }, + "hours": { + "name": "hours", + "type": "Int" + }, + "days": { + "name": "days", + "type": "Int" + }, + "months": { + "name": "months", + "type": "Int" + }, + "years": { + "name": "years", + "type": "Int" + } + } + }, + "startDate": { + "name": "startDate", + "type": "Datetime" + }, + "endDate": { + "name": "endDate", + "type": "Datetime" + }, + "approved": { + "name": "approved", + "type": "Boolean" + }, + "published": { + "name": "published", + "type": "Boolean" + }, + "isPrivate": { + "name": "isPrivate", + "type": "Boolean" + }, + "rewardAmount": { + "name": "rewardAmount", + "type": "BigFloat" + }, + "activityFeedText": { + "name": "activityFeedText", + "type": "String" + }, + "callToAction": { + "name": "callToAction", + "type": "String" + }, + "completedActionText": { + "name": "completedActionText", + "type": "String" + }, + "alreadyCompletedActionText": { + "name": "alreadyCompletedActionText", + "type": "String" + }, + "selfVerifiable": { + "name": "selfVerifiable", + "type": "Boolean" + }, + "isRecurring": { + "name": "isRecurring", + "type": "Boolean" + }, + "recurringInterval": { + "name": "recurringInterval", + "properties": { + "seconds": { + "name": "seconds", + "type": "Float" + }, + "minutes": { + "name": "minutes", + "type": "Int" + }, + "hours": { + "name": "hours", + "type": "Int" + }, + "days": { + "name": "days", + "type": "Int" + }, + "months": { + "name": "months", + "type": "Int" + }, + "years": { + "name": "years", + "type": "Int" + } + } + }, + "oncePerObject": { + "name": "oncePerObject", + "type": "Boolean" + }, + "minimumGroupMembers": { + "name": "minimumGroupMembers", + "type": "Int" + }, + "limitedToLocation": { + "name": "limitedToLocation", + "type": "Boolean" + }, + "tags": { + "name": "tags", + "isArray": true, + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "groupId": { + "name": "groupId", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "isNotNull": true, + "type": "UUID" + }, + "objectTypeId": { + "name": "objectTypeId", + "type": "Int" + }, + "rewardId": { + "name": "rewardId", + "type": "UUID" + }, + "verifyRewardId": { + "name": "verifyRewardId", + "type": "UUID" + }, + "photoUpload": { + "name": "photoUpload", + "type": "Upload" + }, + "shareImageUpload": { + "name": "shareImageUpload", + "type": "Upload" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateActionPayload", + "ofType": null + } + }, + "createConnectedAccount": { + "qtype": "mutation", + "mutationType": "create", + "model": "ConnectedAccount", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateConnectedAccountInput", + "properties": { + "connectedAccount": { + "name": "connectedAccount", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "service": { + "name": "service", + "isNotNull": true, + "type": "String" + }, + "identifier": { + "name": "identifier", + "isNotNull": true, + "type": "String" + }, + "details": { + "name": "details", + "isNotNull": true, + "type": "JSON" + }, + "isVerified": { + "name": "isVerified", + "type": "Boolean" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateConnectedAccountPayload", + "ofType": null + } + }, + "createCryptoAddress": { + "qtype": "mutation", + "mutationType": "create", + "model": "CryptoAddress", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateCryptoAddressInput", + "properties": { + "cryptoAddress": { + "name": "cryptoAddress", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "address": { + "name": "address", + "isNotNull": true, + "type": "String" + }, + "isVerified": { + "name": "isVerified", + "type": "Boolean" + }, + "isPrimary": { + "name": "isPrimary", + "type": "Boolean" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateCryptoAddressPayload", + "ofType": null + } + }, + "createEmail": { + "qtype": "mutation", + "mutationType": "create", + "model": "Email", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateEmailInput", + "properties": { + "email": { + "name": "email", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "email": { + "name": "email", + "isNotNull": true, + "type": "String" + }, + "isVerified": { + "name": "isVerified", + "type": "Boolean" + }, + "isPrimary": { + "name": "isPrimary", + "type": "Boolean" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateEmailPayload", + "ofType": null + } + }, + "createGoalExplanation": { + "qtype": "mutation", + "mutationType": "create", + "model": "GoalExplanation", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateGoalExplanationInput", + "properties": { + "goalExplanation": { + "name": "goalExplanation", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "audio": { + "name": "audio", + "type": "JSON" + }, + "audioDuration": { + "name": "audioDuration", + "properties": { + "seconds": { + "name": "seconds", + "type": "Float" + }, + "minutes": { + "name": "minutes", + "type": "Int" + }, + "hours": { + "name": "hours", + "type": "Int" + }, + "days": { + "name": "days", + "type": "Int" + }, + "months": { + "name": "months", + "type": "Int" + }, + "years": { + "name": "years", + "type": "Int" + } + } + }, + "explanationTitle": { + "name": "explanationTitle", + "type": "String" + }, + "explanation": { + "name": "explanation", + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "goalId": { + "name": "goalId", + "isNotNull": true, + "type": "UUID" + }, + "audioUpload": { + "name": "audioUpload", + "type": "Upload" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateGoalExplanationPayload", + "ofType": null + } + }, + "createGoal": { + "qtype": "mutation", + "mutationType": "create", + "model": "Goal", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateGoalInput", + "properties": { + "goal": { + "name": "goal", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "slug": { + "name": "slug", + "type": "String" + }, + "shortName": { + "name": "shortName", + "type": "String" + }, + "icon": { + "name": "icon", + "type": "String" + }, + "subHead": { + "name": "subHead", + "type": "String" + }, + "tags": { + "name": "tags", + "isArray": true, + "type": "String" + }, + "search": { + "name": "search", + "type": "FullText" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateGoalPayload", + "ofType": null + } + }, + "createGroupPostComment": { + "qtype": "mutation", + "mutationType": "create", + "model": "GroupPostComment", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateGroupPostCommentInput", + "properties": { + "groupPostComment": { + "name": "groupPostComment", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "commenterId": { + "name": "commenterId", + "type": "UUID" + }, + "parentId": { + "name": "parentId", + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "groupId": { + "name": "groupId", + "type": "UUID" + }, + "postId": { + "name": "postId", + "isNotNull": true, + "type": "UUID" + }, + "posterId": { + "name": "posterId", + "type": "UUID" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateGroupPostCommentPayload", + "ofType": null + } + }, + "createGroupPostReaction": { + "qtype": "mutation", + "mutationType": "create", + "model": "GroupPostReaction", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateGroupPostReactionInput", + "properties": { + "groupPostReaction": { + "name": "groupPostReaction", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "reacterId": { + "name": "reacterId", + "type": "UUID" + }, + "type": { + "name": "type", + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "groupId": { + "name": "groupId", + "type": "UUID" + }, + "posterId": { + "name": "posterId", + "type": "UUID" + }, + "postId": { + "name": "postId", + "isNotNull": true, + "type": "UUID" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateGroupPostReactionPayload", + "ofType": null + } + }, + "createGroupPost": { + "qtype": "mutation", + "mutationType": "create", + "model": "GroupPost", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateGroupPostInput", + "properties": { + "groupPost": { + "name": "groupPost", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "posterId": { + "name": "posterId", + "type": "UUID" + }, + "type": { + "name": "type", + "type": "String" + }, + "flagged": { + "name": "flagged", + "type": "Boolean" + }, + "image": { + "name": "image", + "type": "JSON" + }, + "url": { + "name": "url", + "type": "String" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "data": { + "name": "data", + "type": "JSON" + }, + "taggedUserIds": { + "name": "taggedUserIds", + "isArray": true, + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "groupId": { + "name": "groupId", + "isNotNull": true, + "type": "UUID" + }, + "imageUpload": { + "name": "imageUpload", + "type": "Upload" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateGroupPostPayload", + "ofType": null + } + }, + "createGroup": { + "qtype": "mutation", + "mutationType": "create", + "model": "Group", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateGroupInput", + "properties": { + "group": { + "name": "group", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateGroupPayload", + "ofType": null + } + }, + "createLocationType": { + "qtype": "mutation", + "mutationType": "create", + "model": "LocationType", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateLocationTypeInput", + "properties": { + "locationType": { + "name": "locationType", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateLocationTypePayload", + "ofType": null + } + }, + "createLocation": { + "qtype": "mutation", + "mutationType": "create", + "model": "Location", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateLocationInput", + "properties": { + "location": { + "name": "location", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "bbox": { + "name": "bbox", + "type": "GeoJSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "ownerId": { + "name": "ownerId", + "isNotNull": true, + "type": "UUID" + }, + "locationType": { + "name": "locationType", + "isNotNull": true, + "type": "UUID" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateLocationPayload", + "ofType": null + } + }, + "createMessageGroup": { + "qtype": "mutation", + "mutationType": "create", + "model": "MessageGroup", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateMessageGroupInput", + "properties": { + "messageGroup": { + "name": "messageGroup", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "memberIds": { + "name": "memberIds", + "isArray": true, + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateMessageGroupPayload", + "ofType": null + } + }, + "createMessage": { + "qtype": "mutation", + "mutationType": "create", + "model": "Message", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateMessageInput", + "properties": { + "message": { + "name": "message", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "senderId": { + "name": "senderId", + "type": "UUID" + }, + "type": { + "name": "type", + "type": "String" + }, + "content": { + "name": "content", + "type": "JSON" + }, + "upload": { + "name": "upload", + "type": "JSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "groupId": { + "name": "groupId", + "isNotNull": true, + "type": "UUID" + }, + "uploadUpload": { + "name": "uploadUpload", + "type": "Upload" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateMessagePayload", + "ofType": null + } + }, + "createNewsArticle": { + "qtype": "mutation", + "mutationType": "create", + "model": "NewsArticle", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateNewsArticleInput", + "properties": { + "newsArticle": { + "name": "newsArticle", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "link": { + "name": "link", + "type": "String" + }, + "publishedAt": { + "name": "publishedAt", + "type": "Datetime" + }, + "photo": { + "name": "photo", + "type": "JSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "photoUpload": { + "name": "photoUpload", + "type": "Upload" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateNewsArticlePayload", + "ofType": null + } + }, + "createNotificationPreference": { + "qtype": "mutation", + "mutationType": "create", + "model": "NotificationPreference", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateNotificationPreferenceInput", + "properties": { + "notificationPreference": { + "name": "notificationPreference", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "emails": { + "name": "emails", + "type": "Boolean" + }, + "sms": { + "name": "sms", + "type": "Boolean" + }, + "notifications": { + "name": "notifications", + "type": "Boolean" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateNotificationPreferencePayload", + "ofType": null + } + }, + "createNotification": { + "qtype": "mutation", + "mutationType": "create", + "model": "Notification", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateNotificationInput", + "properties": { + "notification": { + "name": "notification", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "actorId": { + "name": "actorId", + "type": "UUID" + }, + "recipientId": { + "name": "recipientId", + "type": "UUID" + }, + "notificationType": { + "name": "notificationType", + "type": "String" + }, + "notificationText": { + "name": "notificationText", + "type": "String" + }, + "entityType": { + "name": "entityType", + "type": "String" + }, + "data": { + "name": "data", + "type": "JSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateNotificationPayload", + "ofType": null + } + }, + "createObjectAttribute": { + "qtype": "mutation", + "mutationType": "create", + "model": "ObjectAttribute", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateObjectAttributeInput", + "properties": { + "objectAttribute": { + "name": "objectAttribute", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "description": { + "name": "description", + "type": "String" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "text": { + "name": "text", + "type": "String" + }, + "numeric": { + "name": "numeric", + "type": "BigFloat" + }, + "image": { + "name": "image", + "type": "JSON" + }, + "data": { + "name": "data", + "type": "JSON" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "valueId": { + "name": "valueId", + "type": "UUID" + }, + "objectId": { + "name": "objectId", + "isNotNull": true, + "type": "UUID" + }, + "objectTypeAttributeId": { + "name": "objectTypeAttributeId", + "isNotNull": true, + "type": "UUID" + }, + "imageUpload": { + "name": "imageUpload", + "type": "Upload" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateObjectAttributePayload", + "ofType": null + } + }, + "createObjectTypeAttribute": { + "qtype": "mutation", + "mutationType": "create", + "model": "ObjectTypeAttribute", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateObjectTypeAttributeInput", + "properties": { + "objectTypeAttribute": { + "name": "objectTypeAttribute", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "label": { + "name": "label", + "type": "String" + }, + "type": { + "name": "type", + "type": "String" + }, + "unit": { + "name": "unit", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "min": { + "name": "min", + "type": "Int" + }, + "max": { + "name": "max", + "type": "Int" + }, + "pattern": { + "name": "pattern", + "type": "String" + }, + "isRequired": { + "name": "isRequired", + "type": "Boolean" + }, + "attrOrder": { + "name": "attrOrder", + "type": "Int" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "objectTypeId": { + "name": "objectTypeId", + "isNotNull": true, + "type": "Int" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateObjectTypeAttributePayload", + "ofType": null + } + }, + "createObjectTypeValue": { + "qtype": "mutation", + "mutationType": "create", + "model": "ObjectTypeValue", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateObjectTypeValueInput", + "properties": { + "objectTypeValue": { + "name": "objectTypeValue", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "photo": { + "name": "photo", + "type": "JSON" + }, + "icon": { + "name": "icon", + "type": "JSON" + }, + "type": { + "name": "type", + "type": "String" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "text": { + "name": "text", + "type": "String" + }, + "numeric": { + "name": "numeric", + "type": "BigFloat" + }, + "image": { + "name": "image", + "type": "JSON" + }, + "data": { + "name": "data", + "type": "JSON" + }, + "valueOrder": { + "name": "valueOrder", + "type": "Int" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "attrId": { + "name": "attrId", + "isNotNull": true, + "type": "UUID" + }, + "photoUpload": { + "name": "photoUpload", + "type": "Upload" + }, + "iconUpload": { + "name": "iconUpload", + "type": "Upload" + }, + "imageUpload": { + "name": "imageUpload", + "type": "Upload" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateObjectTypeValuePayload", + "ofType": null + } + }, + "createObjectType": { + "qtype": "mutation", + "mutationType": "create", + "model": "ObjectType", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateObjectTypeInput", + "properties": { + "objectType": { + "name": "objectType", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "Int" + }, + "name": { + "name": "name", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "photo": { + "name": "photo", + "type": "JSON" + }, + "icon": { + "name": "icon", + "type": "JSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "photoUpload": { + "name": "photoUpload", + "type": "Upload" + }, + "iconUpload": { + "name": "iconUpload", + "type": "Upload" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateObjectTypePayload", + "ofType": null + } + }, + "createObject": { + "qtype": "mutation", + "mutationType": "create", + "model": "Object", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateObjectInput", + "properties": { + "object": { + "name": "object", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "photo": { + "name": "photo", + "type": "JSON" + }, + "media": { + "name": "media", + "type": "JSON" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "bbox": { + "name": "bbox", + "type": "GeoJSON" + }, + "data": { + "name": "data", + "type": "JSON" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "typeId": { + "name": "typeId", + "isNotNull": true, + "type": "Int" + }, + "photoUpload": { + "name": "photoUpload", + "type": "Upload" + }, + "mediaUpload": { + "name": "mediaUpload", + "type": "Upload" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateObjectPayload", + "ofType": null + } + }, + "createOrganizationProfile": { + "qtype": "mutation", + "mutationType": "create", + "model": "OrganizationProfile", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateOrganizationProfileInput", + "properties": { + "organizationProfile": { + "name": "organizationProfile", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "headerImage": { + "name": "headerImage", + "type": "JSON" + }, + "profilePicture": { + "name": "profilePicture", + "type": "JSON" + }, + "description": { + "name": "description", + "type": "String" + }, + "website": { + "name": "website", + "type": "String" + }, + "reputation": { + "name": "reputation", + "type": "BigFloat" + }, + "tags": { + "name": "tags", + "isArray": true, + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "organizationId": { + "name": "organizationId", + "isNotNull": true, + "type": "UUID" + }, + "headerImageUpload": { + "name": "headerImageUpload", + "type": "Upload" + }, + "profilePictureUpload": { + "name": "profilePictureUpload", + "type": "Upload" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateOrganizationProfilePayload", + "ofType": null + } + }, + "createPhoneNumber": { + "qtype": "mutation", + "mutationType": "create", + "model": "PhoneNumber", + "properties": { + "input": { + "isNotNull": true, + "type": "CreatePhoneNumberInput", + "properties": { + "phoneNumber": { + "name": "phoneNumber", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "cc": { + "name": "cc", + "isNotNull": true, + "type": "String" + }, + "number": { + "name": "number", + "isNotNull": true, + "type": "String" + }, + "isVerified": { + "name": "isVerified", + "type": "Boolean" + }, + "isPrimary": { + "name": "isPrimary", + "type": "Boolean" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreatePhoneNumberPayload", + "ofType": null + } + }, + "createPostComment": { + "qtype": "mutation", + "mutationType": "create", + "model": "PostComment", + "properties": { + "input": { + "isNotNull": true, + "type": "CreatePostCommentInput", + "properties": { + "postComment": { + "name": "postComment", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "commenterId": { + "name": "commenterId", + "type": "UUID" + }, + "parentId": { + "name": "parentId", + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "postId": { + "name": "postId", + "isNotNull": true, + "type": "UUID" + }, + "posterId": { + "name": "posterId", + "type": "UUID" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreatePostCommentPayload", + "ofType": null + } + }, + "createPostReaction": { + "qtype": "mutation", + "mutationType": "create", + "model": "PostReaction", + "properties": { + "input": { + "isNotNull": true, + "type": "CreatePostReactionInput", + "properties": { + "postReaction": { + "name": "postReaction", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "reacterId": { + "name": "reacterId", + "type": "UUID" + }, + "type": { + "name": "type", + "type": "Int" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "postId": { + "name": "postId", + "isNotNull": true, + "type": "UUID" + }, + "posterId": { + "name": "posterId", + "type": "UUID" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreatePostReactionPayload", + "ofType": null + } + }, + "createPost": { + "qtype": "mutation", + "mutationType": "create", + "model": "Post", + "properties": { + "input": { + "isNotNull": true, + "type": "CreatePostInput", + "properties": { + "post": { + "name": "post", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "posterId": { + "name": "posterId", + "type": "UUID" + }, + "type": { + "name": "type", + "type": "String" + }, + "flagged": { + "name": "flagged", + "type": "Boolean" + }, + "image": { + "name": "image", + "type": "JSON" + }, + "url": { + "name": "url", + "type": "String" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "data": { + "name": "data", + "type": "JSON" + }, + "taggedUserIds": { + "name": "taggedUserIds", + "isArray": true, + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "imageUpload": { + "name": "imageUpload", + "type": "Upload" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreatePostPayload", + "ofType": null + } + }, + "createRequiredAction": { + "qtype": "mutation", + "mutationType": "create", + "model": "RequiredAction", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateRequiredActionInput", + "properties": { + "requiredAction": { + "name": "requiredAction", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "actionOrder": { + "name": "actionOrder", + "type": "Int" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "actionId": { + "name": "actionId", + "isNotNull": true, + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "requiredId": { + "name": "requiredId", + "isNotNull": true, + "type": "UUID" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateRequiredActionPayload", + "ofType": null + } + }, + "createRewardLimit": { + "qtype": "mutation", + "mutationType": "create", + "model": "RewardLimit", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateRewardLimitInput", + "properties": { + "rewardLimit": { + "name": "rewardLimit", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "rewardAmount": { + "name": "rewardAmount", + "type": "BigFloat" + }, + "rewardUnit": { + "name": "rewardUnit", + "type": "String" + }, + "totalRewardLimit": { + "name": "totalRewardLimit", + "type": "BigFloat" + }, + "weeklyLimit": { + "name": "weeklyLimit", + "type": "BigFloat" + }, + "dailyLimit": { + "name": "dailyLimit", + "type": "BigFloat" + }, + "totalLimit": { + "name": "totalLimit", + "type": "BigFloat" + }, + "userTotalLimit": { + "name": "userTotalLimit", + "type": "BigFloat" + }, + "userWeeklyLimit": { + "name": "userWeeklyLimit", + "type": "BigFloat" + }, + "userDailyLimit": { + "name": "userDailyLimit", + "type": "BigFloat" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "ownerId": { + "name": "ownerId", + "isNotNull": true, + "type": "UUID" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateRewardLimitPayload", + "ofType": null + } + }, + "createRoleType": { + "qtype": "mutation", + "mutationType": "create", + "model": "RoleType", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateRoleTypeInput", + "properties": { + "roleType": { + "name": "roleType", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "Int" + }, + "name": { + "name": "name", + "isNotNull": true, + "type": "String" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateRoleTypePayload", + "ofType": null + } + }, + "createTrackAction": { + "qtype": "mutation", + "mutationType": "create", + "model": "TrackAction", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateTrackActionInput", + "properties": { + "trackAction": { + "name": "trackAction", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "trackOrder": { + "name": "trackOrder", + "type": "Int" + }, + "isRequired": { + "name": "isRequired", + "type": "Boolean" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "actionId": { + "name": "actionId", + "isNotNull": true, + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "trackId": { + "name": "trackId", + "isNotNull": true, + "type": "UUID" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateTrackActionPayload", + "ofType": null + } + }, + "createTrack": { + "qtype": "mutation", + "mutationType": "create", + "model": "Track", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateTrackInput", + "properties": { + "track": { + "name": "track", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "photo": { + "name": "photo", + "type": "JSON" + }, + "icon": { + "name": "icon", + "type": "JSON" + }, + "isPublished": { + "name": "isPublished", + "type": "Boolean" + }, + "isApproved": { + "name": "isApproved", + "type": "Boolean" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "ownerId": { + "name": "ownerId", + "isNotNull": true, + "type": "UUID" + }, + "objectTypeId": { + "name": "objectTypeId", + "type": "Int" + }, + "photoUpload": { + "name": "photoUpload", + "type": "Upload" + }, + "iconUpload": { + "name": "iconUpload", + "type": "Upload" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateTrackPayload", + "ofType": null + } + }, + "createUserActionItemVerification": { + "qtype": "mutation", + "mutationType": "create", + "model": "UserActionItemVerification", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateUserActionItemVerificationInput", + "properties": { + "userActionItemVerification": { + "name": "userActionItemVerification", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "verifierId": { + "name": "verifierId", + "type": "UUID" + }, + "verified": { + "name": "verified", + "type": "Boolean" + }, + "rejected": { + "name": "rejected", + "type": "Boolean" + }, + "notes": { + "name": "notes", + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "actionId": { + "name": "actionId", + "type": "UUID" + }, + "userActionId": { + "name": "userActionId", + "type": "UUID" + }, + "actionItemId": { + "name": "actionItemId", + "type": "UUID" + }, + "userActionItemId": { + "name": "userActionItemId", + "isNotNull": true, + "type": "UUID" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateUserActionItemVerificationPayload", + "ofType": null + } + }, + "createUserActionItem": { + "qtype": "mutation", + "mutationType": "create", + "model": "UserActionItem", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateUserActionItemInput", + "properties": { + "userActionItem": { + "name": "userActionItem", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "text": { + "name": "text", + "type": "String" + }, + "media": { + "name": "media", + "type": "JSON" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "bbox": { + "name": "bbox", + "type": "GeoJSON" + }, + "data": { + "name": "data", + "type": "JSON" + }, + "complete": { + "name": "complete", + "type": "Boolean" + }, + "verified": { + "name": "verified", + "type": "Boolean" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "actionId": { + "name": "actionId", + "type": "UUID" + }, + "userActionId": { + "name": "userActionId", + "isNotNull": true, + "type": "UUID" + }, + "actionItemId": { + "name": "actionItemId", + "isNotNull": true, + "type": "UUID" + }, + "mediaUpload": { + "name": "mediaUpload", + "type": "Upload" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateUserActionItemPayload", + "ofType": null + } + }, + "createUserActionReaction": { + "qtype": "mutation", + "mutationType": "create", + "model": "UserActionReaction", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateUserActionReactionInput", + "properties": { + "userActionReaction": { + "name": "userActionReaction", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "reacterId": { + "name": "reacterId", + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "userActionId": { + "name": "userActionId", + "isNotNull": true, + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "actionId": { + "name": "actionId", + "type": "UUID" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateUserActionReactionPayload", + "ofType": null + } + }, + "createUserActionVerification": { + "qtype": "mutation", + "mutationType": "create", + "model": "UserActionVerification", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateUserActionVerificationInput", + "properties": { + "userActionVerification": { + "name": "userActionVerification", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "verifierId": { + "name": "verifierId", + "type": "UUID" + }, + "verified": { + "name": "verified", + "type": "Boolean" + }, + "rejected": { + "name": "rejected", + "type": "Boolean" + }, + "notes": { + "name": "notes", + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "actionId": { + "name": "actionId", + "type": "UUID" + }, + "userActionId": { + "name": "userActionId", + "isNotNull": true, + "type": "UUID" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateUserActionVerificationPayload", + "ofType": null + } + }, + "createUserAction": { + "qtype": "mutation", + "mutationType": "create", + "model": "UserAction", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateUserActionInput", + "properties": { + "userAction": { + "name": "userAction", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "actionStarted": { + "name": "actionStarted", + "type": "Datetime" + }, + "complete": { + "name": "complete", + "type": "Boolean" + }, + "verified": { + "name": "verified", + "type": "Boolean" + }, + "verifiedDate": { + "name": "verifiedDate", + "type": "Datetime" + }, + "userRating": { + "name": "userRating", + "type": "Int" + }, + "rejected": { + "name": "rejected", + "type": "Boolean" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "actionId": { + "name": "actionId", + "isNotNull": true, + "type": "UUID" + }, + "objectId": { + "name": "objectId", + "type": "UUID" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateUserActionPayload", + "ofType": null + } + }, + "createUserAnswer": { + "qtype": "mutation", + "mutationType": "create", + "model": "UserAnswer", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateUserAnswerInput", + "properties": { + "userAnswer": { + "name": "userAnswer", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "text": { + "name": "text", + "type": "String" + }, + "numeric": { + "name": "numeric", + "type": "BigFloat" + }, + "image": { + "name": "image", + "type": "JSON" + }, + "data": { + "name": "data", + "type": "JSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "questionId": { + "name": "questionId", + "isNotNull": true, + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "imageUpload": { + "name": "imageUpload", + "type": "Upload" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateUserAnswerPayload", + "ofType": null + } + }, + "createUserCharacteristic": { + "qtype": "mutation", + "mutationType": "create", + "model": "UserCharacteristic", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateUserCharacteristicInput", + "properties": { + "userCharacteristic": { + "name": "userCharacteristic", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "income": { + "name": "income", + "type": "BigFloat" + }, + "gender": { + "name": "gender", + "type": "String" + }, + "race": { + "name": "race", + "type": "String" + }, + "age": { + "name": "age", + "type": "Int" + }, + "dob": { + "name": "dob", + "type": "Date" + }, + "education": { + "name": "education", + "type": "String" + }, + "homeOwnership": { + "name": "homeOwnership", + "type": "Int" + }, + "treeHuggerLevel": { + "name": "treeHuggerLevel", + "type": "Int" + }, + "diyLevel": { + "name": "diyLevel", + "type": "Int" + }, + "gardenerLevel": { + "name": "gardenerLevel", + "type": "Int" + }, + "freeTime": { + "name": "freeTime", + "type": "Int" + }, + "researchToDoer": { + "name": "researchToDoer", + "type": "Int" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateUserCharacteristicPayload", + "ofType": null + } + }, + "createUserConnection": { + "qtype": "mutation", + "mutationType": "create", + "model": "UserConnection", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateUserConnectionInput", + "properties": { + "userConnection": { + "name": "userConnection", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "accepted": { + "name": "accepted", + "type": "Boolean" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "requesterId": { + "name": "requesterId", + "isNotNull": true, + "type": "UUID" + }, + "responderId": { + "name": "responderId", + "isNotNull": true, + "type": "UUID" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateUserConnectionPayload", + "ofType": null + } + }, + "createUserContact": { + "qtype": "mutation", + "mutationType": "create", + "model": "UserContact", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateUserContactInput", + "properties": { + "userContact": { + "name": "userContact", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "vcf": { + "name": "vcf", + "type": "JSON" + }, + "fullName": { + "name": "fullName", + "type": "String" + }, + "emails": { + "name": "emails", + "isArray": true, + "type": "String" + }, + "device": { + "name": "device", + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateUserContactPayload", + "ofType": null + } + }, + "createUserDevice": { + "qtype": "mutation", + "mutationType": "create", + "model": "UserDevice", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateUserDeviceInput", + "properties": { + "userDevice": { + "name": "userDevice", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "type": { + "name": "type", + "isNotNull": true, + "type": "Int" + }, + "deviceId": { + "name": "deviceId", + "type": "String" + }, + "pushToken": { + "name": "pushToken", + "type": "String" + }, + "pushTokenRequested": { + "name": "pushTokenRequested", + "type": "Boolean" + }, + "data": { + "name": "data", + "type": "JSON" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateUserDevicePayload", + "ofType": null + } + }, + "createUserLocation": { + "qtype": "mutation", + "mutationType": "create", + "model": "UserLocation", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateUserLocationInput", + "properties": { + "userLocation": { + "name": "userLocation", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "kind": { + "name": "kind", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "bbox": { + "name": "bbox", + "type": "GeoJSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateUserLocationPayload", + "ofType": null + } + }, + "createUserMessage": { + "qtype": "mutation", + "mutationType": "create", + "model": "UserMessage", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateUserMessageInput", + "properties": { + "userMessage": { + "name": "userMessage", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "senderId": { + "name": "senderId", + "type": "UUID" + }, + "type": { + "name": "type", + "type": "String" + }, + "content": { + "name": "content", + "type": "JSON" + }, + "upload": { + "name": "upload", + "type": "JSON" + }, + "received": { + "name": "received", + "type": "Boolean" + }, + "receiverRead": { + "name": "receiverRead", + "type": "Boolean" + }, + "senderReaction": { + "name": "senderReaction", + "type": "String" + }, + "receiverReaction": { + "name": "receiverReaction", + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "receiverId": { + "name": "receiverId", + "isNotNull": true, + "type": "UUID" + }, + "uploadUpload": { + "name": "uploadUpload", + "type": "Upload" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateUserMessagePayload", + "ofType": null + } + }, + "createUserPassAction": { + "qtype": "mutation", + "mutationType": "create", + "model": "UserPassAction", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateUserPassActionInput", + "properties": { + "userPassAction": { + "name": "userPassAction", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "actionId": { + "name": "actionId", + "isNotNull": true, + "type": "UUID" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateUserPassActionPayload", + "ofType": null + } + }, + "createUserProfile": { + "qtype": "mutation", + "mutationType": "create", + "model": "UserProfile", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateUserProfileInput", + "properties": { + "userProfile": { + "name": "userProfile", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "profilePicture": { + "name": "profilePicture", + "type": "JSON" + }, + "bio": { + "name": "bio", + "type": "String" + }, + "reputation": { + "name": "reputation", + "type": "BigFloat" + }, + "displayName": { + "name": "displayName", + "type": "String" + }, + "tags": { + "name": "tags", + "isArray": true, + "type": "String" + }, + "desired": { + "name": "desired", + "isArray": true, + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "profilePictureUpload": { + "name": "profilePictureUpload", + "type": "Upload" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateUserProfilePayload", + "ofType": null + } + }, + "createUserQuestion": { + "qtype": "mutation", + "mutationType": "create", + "model": "UserQuestion", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateUserQuestionInput", + "properties": { + "userQuestion": { + "name": "userQuestion", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "questionType": { + "name": "questionType", + "type": "String" + }, + "questionPrompt": { + "name": "questionPrompt", + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "ownerId": { + "name": "ownerId", + "isNotNull": true, + "type": "UUID" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateUserQuestionPayload", + "ofType": null + } + }, + "createUserSavedAction": { + "qtype": "mutation", + "mutationType": "create", + "model": "UserSavedAction", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateUserSavedActionInput", + "properties": { + "userSavedAction": { + "name": "userSavedAction", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "actionId": { + "name": "actionId", + "isNotNull": true, + "type": "UUID" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateUserSavedActionPayload", + "ofType": null + } + }, + "createUserSetting": { + "qtype": "mutation", + "mutationType": "create", + "model": "UserSetting", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateUserSettingInput", + "properties": { + "userSetting": { + "name": "userSetting", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "firstName": { + "name": "firstName", + "type": "String" + }, + "lastName": { + "name": "lastName", + "type": "String" + }, + "searchRadius": { + "name": "searchRadius", + "type": "BigFloat" + }, + "zip": { + "name": "zip", + "type": "Int" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateUserSettingPayload", + "ofType": null + } + }, + "createUserViewedAction": { + "qtype": "mutation", + "mutationType": "create", + "model": "UserViewedAction", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateUserViewedActionInput", + "properties": { + "userViewedAction": { + "name": "userViewedAction", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "actionId": { + "name": "actionId", + "isNotNull": true, + "type": "UUID" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateUserViewedActionPayload", + "ofType": null + } + }, + "createUser": { + "qtype": "mutation", + "mutationType": "create", + "model": "User", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateUserInput", + "properties": { + "user": { + "name": "user", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "username": { + "name": "username", + "type": "String" + }, + "displayName": { + "name": "displayName", + "type": "String" + }, + "profilePicture": { + "name": "profilePicture", + "type": "JSON" + }, + "searchTsv": { + "name": "searchTsv", + "type": "FullText" + }, + "type": { + "name": "type", + "type": "Int" + }, + "profilePictureUpload": { + "name": "profilePictureUpload", + "type": "Upload" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateUserPayload", + "ofType": null + } + }, + "createZipCode": { + "qtype": "mutation", + "mutationType": "create", + "model": "ZipCode", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateZipCodeInput", + "properties": { + "zipCode": { + "name": "zipCode", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "zip": { + "name": "zip", + "type": "Int" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "bbox": { + "name": "bbox", + "type": "GeoJSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateZipCodePayload", + "ofType": null + } + }, + "createAuthAccount": { + "qtype": "mutation", + "mutationType": "create", + "model": "AuthAccount", + "properties": { + "input": { + "isNotNull": true, + "type": "CreateAuthAccountInput", + "properties": { + "authAccount": { + "name": "authAccount", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "service": { + "name": "service", + "isNotNull": true, + "type": "String" + }, + "identifier": { + "name": "identifier", + "isNotNull": true, + "type": "String" + }, + "details": { + "name": "details", + "isNotNull": true, + "type": "JSON" + }, + "isVerified": { + "name": "isVerified", + "type": "Boolean" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "CreateAuthAccountPayload", + "ofType": null + } + }, + "updateActionGoal": { + "qtype": "mutation", + "mutationType": "patch", + "model": "ActionGoal", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateActionGoalInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "actionId": { + "name": "actionId", + "type": "UUID" + }, + "goalId": { + "name": "goalId", + "type": "UUID" + } + } + }, + "actionId": { + "name": "actionId", + "isNotNull": true, + "type": "UUID" + }, + "goalId": { + "name": "goalId", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateActionGoalPayload", + "ofType": null + } + }, + "updateActionItemType": { + "qtype": "mutation", + "mutationType": "patch", + "model": "ActionItemType", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateActionItemTypeInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "Int" + }, + "name": { + "name": "name", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "image": { + "name": "image", + "type": "JSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "imageUpload": { + "name": "imageUpload", + "type": "Upload" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "Int" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateActionItemTypePayload", + "ofType": null + } + }, + "updateActionItem": { + "qtype": "mutation", + "mutationType": "patch", + "model": "ActionItem", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateActionItemInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "type": { + "name": "type", + "type": "String" + }, + "itemOrder": { + "name": "itemOrder", + "type": "Int" + }, + "timeRequired": { + "name": "timeRequired", + "properties": { + "seconds": { + "name": "seconds", + "type": "Float" + }, + "minutes": { + "name": "minutes", + "type": "Int" + }, + "hours": { + "name": "hours", + "type": "Int" + }, + "days": { + "name": "days", + "type": "Int" + }, + "months": { + "name": "months", + "type": "Int" + }, + "years": { + "name": "years", + "type": "Int" + } + } + }, + "isRequired": { + "name": "isRequired", + "type": "Boolean" + }, + "notificationText": { + "name": "notificationText", + "type": "String" + }, + "embedCode": { + "name": "embedCode", + "type": "String" + }, + "url": { + "name": "url", + "type": "String" + }, + "media": { + "name": "media", + "type": "JSON" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "locationRadius": { + "name": "locationRadius", + "type": "BigFloat" + }, + "rewardWeight": { + "name": "rewardWeight", + "type": "BigFloat" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "itemTypeId": { + "name": "itemTypeId", + "type": "Int" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "actionId": { + "name": "actionId", + "type": "UUID" + }, + "mediaUpload": { + "name": "mediaUpload", + "type": "Upload" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateActionItemPayload", + "ofType": null + } + }, + "updateActionVariation": { + "qtype": "mutation", + "mutationType": "patch", + "model": "ActionVariation", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateActionVariationInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "photo": { + "name": "photo", + "type": "JSON" + }, + "title": { + "name": "title", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "income": { + "name": "income", + "isArray": true, + "type": "BigFloat" + }, + "gender": { + "name": "gender", + "isArray": true, + "type": "String" + }, + "dob": { + "name": "dob", + "isArray": true, + "type": "Date" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "actionId": { + "name": "actionId", + "type": "UUID" + }, + "photoUpload": { + "name": "photoUpload", + "type": "Upload" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateActionVariationPayload", + "ofType": null + } + }, + "updateAction": { + "qtype": "mutation", + "mutationType": "patch", + "model": "Action", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateActionInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "slug": { + "name": "slug", + "type": "String" + }, + "photo": { + "name": "photo", + "type": "JSON" + }, + "shareImage": { + "name": "shareImage", + "type": "JSON" + }, + "title": { + "name": "title", + "type": "String" + }, + "titleObjectTemplate": { + "name": "titleObjectTemplate", + "type": "String" + }, + "url": { + "name": "url", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "discoveryHeader": { + "name": "discoveryHeader", + "type": "String" + }, + "discoveryDescription": { + "name": "discoveryDescription", + "type": "String" + }, + "notificationText": { + "name": "notificationText", + "type": "String" + }, + "notificationObjectTemplate": { + "name": "notificationObjectTemplate", + "type": "String" + }, + "enableNotifications": { + "name": "enableNotifications", + "type": "Boolean" + }, + "enableNotificationsText": { + "name": "enableNotificationsText", + "type": "String" + }, + "search": { + "name": "search", + "type": "FullText" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "locationRadius": { + "name": "locationRadius", + "type": "BigFloat" + }, + "timeRequired": { + "name": "timeRequired", + "properties": { + "seconds": { + "name": "seconds", + "type": "Float" + }, + "minutes": { + "name": "minutes", + "type": "Int" + }, + "hours": { + "name": "hours", + "type": "Int" + }, + "days": { + "name": "days", + "type": "Int" + }, + "months": { + "name": "months", + "type": "Int" + }, + "years": { + "name": "years", + "type": "Int" + } + } + }, + "startDate": { + "name": "startDate", + "type": "Datetime" + }, + "endDate": { + "name": "endDate", + "type": "Datetime" + }, + "approved": { + "name": "approved", + "type": "Boolean" + }, + "published": { + "name": "published", + "type": "Boolean" + }, + "isPrivate": { + "name": "isPrivate", + "type": "Boolean" + }, + "rewardAmount": { + "name": "rewardAmount", + "type": "BigFloat" + }, + "activityFeedText": { + "name": "activityFeedText", + "type": "String" + }, + "callToAction": { + "name": "callToAction", + "type": "String" + }, + "completedActionText": { + "name": "completedActionText", + "type": "String" + }, + "alreadyCompletedActionText": { + "name": "alreadyCompletedActionText", + "type": "String" + }, + "selfVerifiable": { + "name": "selfVerifiable", + "type": "Boolean" + }, + "isRecurring": { + "name": "isRecurring", + "type": "Boolean" + }, + "recurringInterval": { + "name": "recurringInterval", + "properties": { + "seconds": { + "name": "seconds", + "type": "Float" + }, + "minutes": { + "name": "minutes", + "type": "Int" + }, + "hours": { + "name": "hours", + "type": "Int" + }, + "days": { + "name": "days", + "type": "Int" + }, + "months": { + "name": "months", + "type": "Int" + }, + "years": { + "name": "years", + "type": "Int" + } + } + }, + "oncePerObject": { + "name": "oncePerObject", + "type": "Boolean" + }, + "minimumGroupMembers": { + "name": "minimumGroupMembers", + "type": "Int" + }, + "limitedToLocation": { + "name": "limitedToLocation", + "type": "Boolean" + }, + "tags": { + "name": "tags", + "isArray": true, + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "groupId": { + "name": "groupId", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "objectTypeId": { + "name": "objectTypeId", + "type": "Int" + }, + "rewardId": { + "name": "rewardId", + "type": "UUID" + }, + "verifyRewardId": { + "name": "verifyRewardId", + "type": "UUID" + }, + "photoUpload": { + "name": "photoUpload", + "type": "Upload" + }, + "shareImageUpload": { + "name": "shareImageUpload", + "type": "Upload" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateActionPayload", + "ofType": null + } + }, + "updateActionBySlug": { + "qtype": "mutation", + "mutationType": "patch", + "model": "Action", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateActionBySlugInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "slug": { + "name": "slug", + "type": "String" + }, + "photo": { + "name": "photo", + "type": "JSON" + }, + "shareImage": { + "name": "shareImage", + "type": "JSON" + }, + "title": { + "name": "title", + "type": "String" + }, + "titleObjectTemplate": { + "name": "titleObjectTemplate", + "type": "String" + }, + "url": { + "name": "url", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "discoveryHeader": { + "name": "discoveryHeader", + "type": "String" + }, + "discoveryDescription": { + "name": "discoveryDescription", + "type": "String" + }, + "notificationText": { + "name": "notificationText", + "type": "String" + }, + "notificationObjectTemplate": { + "name": "notificationObjectTemplate", + "type": "String" + }, + "enableNotifications": { + "name": "enableNotifications", + "type": "Boolean" + }, + "enableNotificationsText": { + "name": "enableNotificationsText", + "type": "String" + }, + "search": { + "name": "search", + "type": "FullText" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "locationRadius": { + "name": "locationRadius", + "type": "BigFloat" + }, + "timeRequired": { + "name": "timeRequired", + "properties": { + "seconds": { + "name": "seconds", + "type": "Float" + }, + "minutes": { + "name": "minutes", + "type": "Int" + }, + "hours": { + "name": "hours", + "type": "Int" + }, + "days": { + "name": "days", + "type": "Int" + }, + "months": { + "name": "months", + "type": "Int" + }, + "years": { + "name": "years", + "type": "Int" + } + } + }, + "startDate": { + "name": "startDate", + "type": "Datetime" + }, + "endDate": { + "name": "endDate", + "type": "Datetime" + }, + "approved": { + "name": "approved", + "type": "Boolean" + }, + "published": { + "name": "published", + "type": "Boolean" + }, + "isPrivate": { + "name": "isPrivate", + "type": "Boolean" + }, + "rewardAmount": { + "name": "rewardAmount", + "type": "BigFloat" + }, + "activityFeedText": { + "name": "activityFeedText", + "type": "String" + }, + "callToAction": { + "name": "callToAction", + "type": "String" + }, + "completedActionText": { + "name": "completedActionText", + "type": "String" + }, + "alreadyCompletedActionText": { + "name": "alreadyCompletedActionText", + "type": "String" + }, + "selfVerifiable": { + "name": "selfVerifiable", + "type": "Boolean" + }, + "isRecurring": { + "name": "isRecurring", + "type": "Boolean" + }, + "recurringInterval": { + "name": "recurringInterval", + "properties": { + "seconds": { + "name": "seconds", + "type": "Float" + }, + "minutes": { + "name": "minutes", + "type": "Int" + }, + "hours": { + "name": "hours", + "type": "Int" + }, + "days": { + "name": "days", + "type": "Int" + }, + "months": { + "name": "months", + "type": "Int" + }, + "years": { + "name": "years", + "type": "Int" + } + } + }, + "oncePerObject": { + "name": "oncePerObject", + "type": "Boolean" + }, + "minimumGroupMembers": { + "name": "minimumGroupMembers", + "type": "Int" + }, + "limitedToLocation": { + "name": "limitedToLocation", + "type": "Boolean" + }, + "tags": { + "name": "tags", + "isArray": true, + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "groupId": { + "name": "groupId", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "objectTypeId": { + "name": "objectTypeId", + "type": "Int" + }, + "rewardId": { + "name": "rewardId", + "type": "UUID" + }, + "verifyRewardId": { + "name": "verifyRewardId", + "type": "UUID" + }, + "photoUpload": { + "name": "photoUpload", + "type": "Upload" + }, + "shareImageUpload": { + "name": "shareImageUpload", + "type": "Upload" + } + } + }, + "slug": { + "name": "slug", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateActionPayload", + "ofType": null + } + }, + "updateConnectedAccount": { + "qtype": "mutation", + "mutationType": "patch", + "model": "ConnectedAccount", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateConnectedAccountInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "service": { + "name": "service", + "type": "String" + }, + "identifier": { + "name": "identifier", + "type": "String" + }, + "details": { + "name": "details", + "type": "JSON" + }, + "isVerified": { + "name": "isVerified", + "type": "Boolean" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateConnectedAccountPayload", + "ofType": null + } + }, + "updateConnectedAccountByServiceAndIdentifier": { + "qtype": "mutation", + "mutationType": "patch", + "model": "ConnectedAccount", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateConnectedAccountByServiceAndIdentifierInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "service": { + "name": "service", + "type": "String" + }, + "identifier": { + "name": "identifier", + "type": "String" + }, + "details": { + "name": "details", + "type": "JSON" + }, + "isVerified": { + "name": "isVerified", + "type": "Boolean" + } + } + }, + "service": { + "name": "service", + "isNotNull": true, + "type": "String" + }, + "identifier": { + "name": "identifier", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateConnectedAccountPayload", + "ofType": null + } + }, + "updateCryptoAddress": { + "qtype": "mutation", + "mutationType": "patch", + "model": "CryptoAddress", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateCryptoAddressInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "address": { + "name": "address", + "type": "String" + }, + "isVerified": { + "name": "isVerified", + "type": "Boolean" + }, + "isPrimary": { + "name": "isPrimary", + "type": "Boolean" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateCryptoAddressPayload", + "ofType": null + } + }, + "updateCryptoAddressByAddress": { + "qtype": "mutation", + "mutationType": "patch", + "model": "CryptoAddress", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateCryptoAddressByAddressInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "address": { + "name": "address", + "type": "String" + }, + "isVerified": { + "name": "isVerified", + "type": "Boolean" + }, + "isPrimary": { + "name": "isPrimary", + "type": "Boolean" + } + } + }, + "address": { + "name": "address", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateCryptoAddressPayload", + "ofType": null + } + }, + "updateEmail": { + "qtype": "mutation", + "mutationType": "patch", + "model": "Email", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateEmailInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "email": { + "name": "email", + "type": "String" + }, + "isVerified": { + "name": "isVerified", + "type": "Boolean" + }, + "isPrimary": { + "name": "isPrimary", + "type": "Boolean" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateEmailPayload", + "ofType": null + } + }, + "updateEmailByEmail": { + "qtype": "mutation", + "mutationType": "patch", + "model": "Email", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateEmailByEmailInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "email": { + "name": "email", + "type": "String" + }, + "isVerified": { + "name": "isVerified", + "type": "Boolean" + }, + "isPrimary": { + "name": "isPrimary", + "type": "Boolean" + } + } + }, + "email": { + "name": "email", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateEmailPayload", + "ofType": null + } + }, + "updateGoalExplanation": { + "qtype": "mutation", + "mutationType": "patch", + "model": "GoalExplanation", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateGoalExplanationInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "audio": { + "name": "audio", + "type": "JSON" + }, + "audioDuration": { + "name": "audioDuration", + "properties": { + "seconds": { + "name": "seconds", + "type": "Float" + }, + "minutes": { + "name": "minutes", + "type": "Int" + }, + "hours": { + "name": "hours", + "type": "Int" + }, + "days": { + "name": "days", + "type": "Int" + }, + "months": { + "name": "months", + "type": "Int" + }, + "years": { + "name": "years", + "type": "Int" + } + } + }, + "explanationTitle": { + "name": "explanationTitle", + "type": "String" + }, + "explanation": { + "name": "explanation", + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "goalId": { + "name": "goalId", + "type": "UUID" + }, + "audioUpload": { + "name": "audioUpload", + "type": "Upload" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateGoalExplanationPayload", + "ofType": null + } + }, + "updateGoal": { + "qtype": "mutation", + "mutationType": "patch", + "model": "Goal", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateGoalInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "slug": { + "name": "slug", + "type": "String" + }, + "shortName": { + "name": "shortName", + "type": "String" + }, + "icon": { + "name": "icon", + "type": "String" + }, + "subHead": { + "name": "subHead", + "type": "String" + }, + "tags": { + "name": "tags", + "isArray": true, + "type": "String" + }, + "search": { + "name": "search", + "type": "FullText" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateGoalPayload", + "ofType": null + } + }, + "updateGoalByName": { + "qtype": "mutation", + "mutationType": "patch", + "model": "Goal", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateGoalByNameInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "slug": { + "name": "slug", + "type": "String" + }, + "shortName": { + "name": "shortName", + "type": "String" + }, + "icon": { + "name": "icon", + "type": "String" + }, + "subHead": { + "name": "subHead", + "type": "String" + }, + "tags": { + "name": "tags", + "isArray": true, + "type": "String" + }, + "search": { + "name": "search", + "type": "FullText" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + }, + "name": { + "name": "name", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateGoalPayload", + "ofType": null + } + }, + "updateGoalBySlug": { + "qtype": "mutation", + "mutationType": "patch", + "model": "Goal", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateGoalBySlugInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "slug": { + "name": "slug", + "type": "String" + }, + "shortName": { + "name": "shortName", + "type": "String" + }, + "icon": { + "name": "icon", + "type": "String" + }, + "subHead": { + "name": "subHead", + "type": "String" + }, + "tags": { + "name": "tags", + "isArray": true, + "type": "String" + }, + "search": { + "name": "search", + "type": "FullText" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + }, + "slug": { + "name": "slug", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateGoalPayload", + "ofType": null + } + }, + "updateGroupPostComment": { + "qtype": "mutation", + "mutationType": "patch", + "model": "GroupPostComment", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateGroupPostCommentInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "commenterId": { + "name": "commenterId", + "type": "UUID" + }, + "parentId": { + "name": "parentId", + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "groupId": { + "name": "groupId", + "type": "UUID" + }, + "postId": { + "name": "postId", + "type": "UUID" + }, + "posterId": { + "name": "posterId", + "type": "UUID" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateGroupPostCommentPayload", + "ofType": null + } + }, + "updateGroupPostReaction": { + "qtype": "mutation", + "mutationType": "patch", + "model": "GroupPostReaction", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateGroupPostReactionInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "reacterId": { + "name": "reacterId", + "type": "UUID" + }, + "type": { + "name": "type", + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "groupId": { + "name": "groupId", + "type": "UUID" + }, + "posterId": { + "name": "posterId", + "type": "UUID" + }, + "postId": { + "name": "postId", + "type": "UUID" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateGroupPostReactionPayload", + "ofType": null + } + }, + "updateGroupPost": { + "qtype": "mutation", + "mutationType": "patch", + "model": "GroupPost", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateGroupPostInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "posterId": { + "name": "posterId", + "type": "UUID" + }, + "type": { + "name": "type", + "type": "String" + }, + "flagged": { + "name": "flagged", + "type": "Boolean" + }, + "image": { + "name": "image", + "type": "JSON" + }, + "url": { + "name": "url", + "type": "String" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "data": { + "name": "data", + "type": "JSON" + }, + "taggedUserIds": { + "name": "taggedUserIds", + "isArray": true, + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "groupId": { + "name": "groupId", + "type": "UUID" + }, + "imageUpload": { + "name": "imageUpload", + "type": "Upload" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateGroupPostPayload", + "ofType": null + } + }, + "updateGroup": { + "qtype": "mutation", + "mutationType": "patch", + "model": "Group", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateGroupInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateGroupPayload", + "ofType": null + } + }, + "updateLocationType": { + "qtype": "mutation", + "mutationType": "patch", + "model": "LocationType", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateLocationTypeInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateLocationTypePayload", + "ofType": null + } + }, + "updateLocation": { + "qtype": "mutation", + "mutationType": "patch", + "model": "Location", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateLocationInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "bbox": { + "name": "bbox", + "type": "GeoJSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "locationType": { + "name": "locationType", + "type": "UUID" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateLocationPayload", + "ofType": null + } + }, + "updateMessageGroup": { + "qtype": "mutation", + "mutationType": "patch", + "model": "MessageGroup", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateMessageGroupInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "memberIds": { + "name": "memberIds", + "isArray": true, + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateMessageGroupPayload", + "ofType": null + } + }, + "updateMessage": { + "qtype": "mutation", + "mutationType": "patch", + "model": "Message", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateMessageInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "senderId": { + "name": "senderId", + "type": "UUID" + }, + "type": { + "name": "type", + "type": "String" + }, + "content": { + "name": "content", + "type": "JSON" + }, + "upload": { + "name": "upload", + "type": "JSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "groupId": { + "name": "groupId", + "type": "UUID" + }, + "uploadUpload": { + "name": "uploadUpload", + "type": "Upload" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateMessagePayload", + "ofType": null + } + }, + "updateNewsArticle": { + "qtype": "mutation", + "mutationType": "patch", + "model": "NewsArticle", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateNewsArticleInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "link": { + "name": "link", + "type": "String" + }, + "publishedAt": { + "name": "publishedAt", + "type": "Datetime" + }, + "photo": { + "name": "photo", + "type": "JSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "photoUpload": { + "name": "photoUpload", + "type": "Upload" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateNewsArticlePayload", + "ofType": null + } + }, + "updateNotificationPreference": { + "qtype": "mutation", + "mutationType": "patch", + "model": "NotificationPreference", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateNotificationPreferenceInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "emails": { + "name": "emails", + "type": "Boolean" + }, + "sms": { + "name": "sms", + "type": "Boolean" + }, + "notifications": { + "name": "notifications", + "type": "Boolean" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateNotificationPreferencePayload", + "ofType": null + } + }, + "updateNotification": { + "qtype": "mutation", + "mutationType": "patch", + "model": "Notification", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateNotificationInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "actorId": { + "name": "actorId", + "type": "UUID" + }, + "recipientId": { + "name": "recipientId", + "type": "UUID" + }, + "notificationType": { + "name": "notificationType", + "type": "String" + }, + "notificationText": { + "name": "notificationText", + "type": "String" + }, + "entityType": { + "name": "entityType", + "type": "String" + }, + "data": { + "name": "data", + "type": "JSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateNotificationPayload", + "ofType": null + } + }, + "updateObjectAttribute": { + "qtype": "mutation", + "mutationType": "patch", + "model": "ObjectAttribute", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateObjectAttributeInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "description": { + "name": "description", + "type": "String" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "text": { + "name": "text", + "type": "String" + }, + "numeric": { + "name": "numeric", + "type": "BigFloat" + }, + "image": { + "name": "image", + "type": "JSON" + }, + "data": { + "name": "data", + "type": "JSON" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "valueId": { + "name": "valueId", + "type": "UUID" + }, + "objectId": { + "name": "objectId", + "type": "UUID" + }, + "objectTypeAttributeId": { + "name": "objectTypeAttributeId", + "type": "UUID" + }, + "imageUpload": { + "name": "imageUpload", + "type": "Upload" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateObjectAttributePayload", + "ofType": null + } + }, + "updateObjectTypeAttribute": { + "qtype": "mutation", + "mutationType": "patch", + "model": "ObjectTypeAttribute", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateObjectTypeAttributeInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "label": { + "name": "label", + "type": "String" + }, + "type": { + "name": "type", + "type": "String" + }, + "unit": { + "name": "unit", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "min": { + "name": "min", + "type": "Int" + }, + "max": { + "name": "max", + "type": "Int" + }, + "pattern": { + "name": "pattern", + "type": "String" + }, + "isRequired": { + "name": "isRequired", + "type": "Boolean" + }, + "attrOrder": { + "name": "attrOrder", + "type": "Int" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "objectTypeId": { + "name": "objectTypeId", + "type": "Int" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateObjectTypeAttributePayload", + "ofType": null + } + }, + "updateObjectTypeValue": { + "qtype": "mutation", + "mutationType": "patch", + "model": "ObjectTypeValue", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateObjectTypeValueInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "photo": { + "name": "photo", + "type": "JSON" + }, + "icon": { + "name": "icon", + "type": "JSON" + }, + "type": { + "name": "type", + "type": "String" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "text": { + "name": "text", + "type": "String" + }, + "numeric": { + "name": "numeric", + "type": "BigFloat" + }, + "image": { + "name": "image", + "type": "JSON" + }, + "data": { + "name": "data", + "type": "JSON" + }, + "valueOrder": { + "name": "valueOrder", + "type": "Int" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "attrId": { + "name": "attrId", + "type": "UUID" + }, + "photoUpload": { + "name": "photoUpload", + "type": "Upload" + }, + "iconUpload": { + "name": "iconUpload", + "type": "Upload" + }, + "imageUpload": { + "name": "imageUpload", + "type": "Upload" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateObjectTypeValuePayload", + "ofType": null + } + }, + "updateObjectType": { + "qtype": "mutation", + "mutationType": "patch", + "model": "ObjectType", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateObjectTypeInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "Int" + }, + "name": { + "name": "name", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "photo": { + "name": "photo", + "type": "JSON" + }, + "icon": { + "name": "icon", + "type": "JSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "photoUpload": { + "name": "photoUpload", + "type": "Upload" + }, + "iconUpload": { + "name": "iconUpload", + "type": "Upload" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "Int" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateObjectTypePayload", + "ofType": null + } + }, + "updateObject": { + "qtype": "mutation", + "mutationType": "patch", + "model": "Object", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateObjectInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "photo": { + "name": "photo", + "type": "JSON" + }, + "media": { + "name": "media", + "type": "JSON" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "bbox": { + "name": "bbox", + "type": "GeoJSON" + }, + "data": { + "name": "data", + "type": "JSON" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "typeId": { + "name": "typeId", + "type": "Int" + }, + "photoUpload": { + "name": "photoUpload", + "type": "Upload" + }, + "mediaUpload": { + "name": "mediaUpload", + "type": "Upload" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateObjectPayload", + "ofType": null + } + }, + "updateOrganizationProfile": { + "qtype": "mutation", + "mutationType": "patch", + "model": "OrganizationProfile", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateOrganizationProfileInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "headerImage": { + "name": "headerImage", + "type": "JSON" + }, + "profilePicture": { + "name": "profilePicture", + "type": "JSON" + }, + "description": { + "name": "description", + "type": "String" + }, + "website": { + "name": "website", + "type": "String" + }, + "reputation": { + "name": "reputation", + "type": "BigFloat" + }, + "tags": { + "name": "tags", + "isArray": true, + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "organizationId": { + "name": "organizationId", + "type": "UUID" + }, + "headerImageUpload": { + "name": "headerImageUpload", + "type": "Upload" + }, + "profilePictureUpload": { + "name": "profilePictureUpload", + "type": "Upload" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateOrganizationProfilePayload", + "ofType": null + } + }, + "updatePhoneNumber": { + "qtype": "mutation", + "mutationType": "patch", + "model": "PhoneNumber", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdatePhoneNumberInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "cc": { + "name": "cc", + "type": "String" + }, + "number": { + "name": "number", + "type": "String" + }, + "isVerified": { + "name": "isVerified", + "type": "Boolean" + }, + "isPrimary": { + "name": "isPrimary", + "type": "Boolean" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdatePhoneNumberPayload", + "ofType": null + } + }, + "updatePhoneNumberByNumber": { + "qtype": "mutation", + "mutationType": "patch", + "model": "PhoneNumber", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdatePhoneNumberByNumberInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "cc": { + "name": "cc", + "type": "String" + }, + "number": { + "name": "number", + "type": "String" + }, + "isVerified": { + "name": "isVerified", + "type": "Boolean" + }, + "isPrimary": { + "name": "isPrimary", + "type": "Boolean" + } + } + }, + "number": { + "name": "number", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdatePhoneNumberPayload", + "ofType": null + } + }, + "updatePostComment": { + "qtype": "mutation", + "mutationType": "patch", + "model": "PostComment", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdatePostCommentInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "commenterId": { + "name": "commenterId", + "type": "UUID" + }, + "parentId": { + "name": "parentId", + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "postId": { + "name": "postId", + "type": "UUID" + }, + "posterId": { + "name": "posterId", + "type": "UUID" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdatePostCommentPayload", + "ofType": null + } + }, + "updatePostReaction": { + "qtype": "mutation", + "mutationType": "patch", + "model": "PostReaction", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdatePostReactionInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "reacterId": { + "name": "reacterId", + "type": "UUID" + }, + "type": { + "name": "type", + "type": "Int" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "postId": { + "name": "postId", + "type": "UUID" + }, + "posterId": { + "name": "posterId", + "type": "UUID" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdatePostReactionPayload", + "ofType": null + } + }, + "updatePost": { + "qtype": "mutation", + "mutationType": "patch", + "model": "Post", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdatePostInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "posterId": { + "name": "posterId", + "type": "UUID" + }, + "type": { + "name": "type", + "type": "String" + }, + "flagged": { + "name": "flagged", + "type": "Boolean" + }, + "image": { + "name": "image", + "type": "JSON" + }, + "url": { + "name": "url", + "type": "String" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "data": { + "name": "data", + "type": "JSON" + }, + "taggedUserIds": { + "name": "taggedUserIds", + "isArray": true, + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "imageUpload": { + "name": "imageUpload", + "type": "Upload" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdatePostPayload", + "ofType": null + } + }, + "updateRequiredAction": { + "qtype": "mutation", + "mutationType": "patch", + "model": "RequiredAction", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateRequiredActionInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "actionOrder": { + "name": "actionOrder", + "type": "Int" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "actionId": { + "name": "actionId", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "requiredId": { + "name": "requiredId", + "type": "UUID" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateRequiredActionPayload", + "ofType": null + } + }, + "updateRewardLimit": { + "qtype": "mutation", + "mutationType": "patch", + "model": "RewardLimit", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateRewardLimitInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "rewardAmount": { + "name": "rewardAmount", + "type": "BigFloat" + }, + "rewardUnit": { + "name": "rewardUnit", + "type": "String" + }, + "totalRewardLimit": { + "name": "totalRewardLimit", + "type": "BigFloat" + }, + "weeklyLimit": { + "name": "weeklyLimit", + "type": "BigFloat" + }, + "dailyLimit": { + "name": "dailyLimit", + "type": "BigFloat" + }, + "totalLimit": { + "name": "totalLimit", + "type": "BigFloat" + }, + "userTotalLimit": { + "name": "userTotalLimit", + "type": "BigFloat" + }, + "userWeeklyLimit": { + "name": "userWeeklyLimit", + "type": "BigFloat" + }, + "userDailyLimit": { + "name": "userDailyLimit", + "type": "BigFloat" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateRewardLimitPayload", + "ofType": null + } + }, + "updateRoleType": { + "qtype": "mutation", + "mutationType": "patch", + "model": "RoleType", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateRoleTypeInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "Int" + }, + "name": { + "name": "name", + "type": "String" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "Int" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateRoleTypePayload", + "ofType": null + } + }, + "updateRoleTypeByName": { + "qtype": "mutation", + "mutationType": "patch", + "model": "RoleType", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateRoleTypeByNameInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "Int" + }, + "name": { + "name": "name", + "type": "String" + } + } + }, + "name": { + "name": "name", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateRoleTypePayload", + "ofType": null + } + }, + "updateTrackAction": { + "qtype": "mutation", + "mutationType": "patch", + "model": "TrackAction", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateTrackActionInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "trackOrder": { + "name": "trackOrder", + "type": "Int" + }, + "isRequired": { + "name": "isRequired", + "type": "Boolean" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "actionId": { + "name": "actionId", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "trackId": { + "name": "trackId", + "type": "UUID" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateTrackActionPayload", + "ofType": null + } + }, + "updateTrack": { + "qtype": "mutation", + "mutationType": "patch", + "model": "Track", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateTrackInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "photo": { + "name": "photo", + "type": "JSON" + }, + "icon": { + "name": "icon", + "type": "JSON" + }, + "isPublished": { + "name": "isPublished", + "type": "Boolean" + }, + "isApproved": { + "name": "isApproved", + "type": "Boolean" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "objectTypeId": { + "name": "objectTypeId", + "type": "Int" + }, + "photoUpload": { + "name": "photoUpload", + "type": "Upload" + }, + "iconUpload": { + "name": "iconUpload", + "type": "Upload" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateTrackPayload", + "ofType": null + } + }, + "updateUserActionItemVerification": { + "qtype": "mutation", + "mutationType": "patch", + "model": "UserActionItemVerification", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateUserActionItemVerificationInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "verifierId": { + "name": "verifierId", + "type": "UUID" + }, + "verified": { + "name": "verified", + "type": "Boolean" + }, + "rejected": { + "name": "rejected", + "type": "Boolean" + }, + "notes": { + "name": "notes", + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "actionId": { + "name": "actionId", + "type": "UUID" + }, + "userActionId": { + "name": "userActionId", + "type": "UUID" + }, + "actionItemId": { + "name": "actionItemId", + "type": "UUID" + }, + "userActionItemId": { + "name": "userActionItemId", + "type": "UUID" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateUserActionItemVerificationPayload", + "ofType": null + } + }, + "updateUserActionItem": { + "qtype": "mutation", + "mutationType": "patch", + "model": "UserActionItem", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateUserActionItemInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "text": { + "name": "text", + "type": "String" + }, + "media": { + "name": "media", + "type": "JSON" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "bbox": { + "name": "bbox", + "type": "GeoJSON" + }, + "data": { + "name": "data", + "type": "JSON" + }, + "complete": { + "name": "complete", + "type": "Boolean" + }, + "verified": { + "name": "verified", + "type": "Boolean" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "actionId": { + "name": "actionId", + "type": "UUID" + }, + "userActionId": { + "name": "userActionId", + "type": "UUID" + }, + "actionItemId": { + "name": "actionItemId", + "type": "UUID" + }, + "mediaUpload": { + "name": "mediaUpload", + "type": "Upload" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateUserActionItemPayload", + "ofType": null + } + }, + "updateUserActionReaction": { + "qtype": "mutation", + "mutationType": "patch", + "model": "UserActionReaction", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateUserActionReactionInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "reacterId": { + "name": "reacterId", + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "userActionId": { + "name": "userActionId", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "actionId": { + "name": "actionId", + "type": "UUID" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateUserActionReactionPayload", + "ofType": null + } + }, + "updateUserActionVerification": { + "qtype": "mutation", + "mutationType": "patch", + "model": "UserActionVerification", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateUserActionVerificationInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "verifierId": { + "name": "verifierId", + "type": "UUID" + }, + "verified": { + "name": "verified", + "type": "Boolean" + }, + "rejected": { + "name": "rejected", + "type": "Boolean" + }, + "notes": { + "name": "notes", + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "actionId": { + "name": "actionId", + "type": "UUID" + }, + "userActionId": { + "name": "userActionId", + "type": "UUID" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateUserActionVerificationPayload", + "ofType": null + } + }, + "updateUserAction": { + "qtype": "mutation", + "mutationType": "patch", + "model": "UserAction", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateUserActionInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "actionStarted": { + "name": "actionStarted", + "type": "Datetime" + }, + "complete": { + "name": "complete", + "type": "Boolean" + }, + "verified": { + "name": "verified", + "type": "Boolean" + }, + "verifiedDate": { + "name": "verifiedDate", + "type": "Datetime" + }, + "userRating": { + "name": "userRating", + "type": "Int" + }, + "rejected": { + "name": "rejected", + "type": "Boolean" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "actionId": { + "name": "actionId", + "type": "UUID" + }, + "objectId": { + "name": "objectId", + "type": "UUID" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateUserActionPayload", + "ofType": null + } + }, + "updateUserAnswer": { + "qtype": "mutation", + "mutationType": "patch", + "model": "UserAnswer", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateUserAnswerInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "text": { + "name": "text", + "type": "String" + }, + "numeric": { + "name": "numeric", + "type": "BigFloat" + }, + "image": { + "name": "image", + "type": "JSON" + }, + "data": { + "name": "data", + "type": "JSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "questionId": { + "name": "questionId", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "imageUpload": { + "name": "imageUpload", + "type": "Upload" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateUserAnswerPayload", + "ofType": null + } + }, + "updateUserCharacteristic": { + "qtype": "mutation", + "mutationType": "patch", + "model": "UserCharacteristic", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateUserCharacteristicInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "income": { + "name": "income", + "type": "BigFloat" + }, + "gender": { + "name": "gender", + "type": "String" + }, + "race": { + "name": "race", + "type": "String" + }, + "age": { + "name": "age", + "type": "Int" + }, + "dob": { + "name": "dob", + "type": "Date" + }, + "education": { + "name": "education", + "type": "String" + }, + "homeOwnership": { + "name": "homeOwnership", + "type": "Int" + }, + "treeHuggerLevel": { + "name": "treeHuggerLevel", + "type": "Int" + }, + "diyLevel": { + "name": "diyLevel", + "type": "Int" + }, + "gardenerLevel": { + "name": "gardenerLevel", + "type": "Int" + }, + "freeTime": { + "name": "freeTime", + "type": "Int" + }, + "researchToDoer": { + "name": "researchToDoer", + "type": "Int" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateUserCharacteristicPayload", + "ofType": null + } + }, + "updateUserConnection": { + "qtype": "mutation", + "mutationType": "patch", + "model": "UserConnection", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateUserConnectionInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "accepted": { + "name": "accepted", + "type": "Boolean" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "requesterId": { + "name": "requesterId", + "type": "UUID" + }, + "responderId": { + "name": "responderId", + "type": "UUID" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateUserConnectionPayload", + "ofType": null + } + }, + "updateUserContact": { + "qtype": "mutation", + "mutationType": "patch", + "model": "UserContact", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateUserContactInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "vcf": { + "name": "vcf", + "type": "JSON" + }, + "fullName": { + "name": "fullName", + "type": "String" + }, + "emails": { + "name": "emails", + "isArray": true, + "type": "String" + }, + "device": { + "name": "device", + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateUserContactPayload", + "ofType": null + } + }, + "updateUserDevice": { + "qtype": "mutation", + "mutationType": "patch", + "model": "UserDevice", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateUserDeviceInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "type": { + "name": "type", + "type": "Int" + }, + "deviceId": { + "name": "deviceId", + "type": "String" + }, + "pushToken": { + "name": "pushToken", + "type": "String" + }, + "pushTokenRequested": { + "name": "pushTokenRequested", + "type": "Boolean" + }, + "data": { + "name": "data", + "type": "JSON" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateUserDevicePayload", + "ofType": null + } + }, + "updateUserLocation": { + "qtype": "mutation", + "mutationType": "patch", + "model": "UserLocation", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateUserLocationInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "name": { + "name": "name", + "type": "String" + }, + "kind": { + "name": "kind", + "type": "String" + }, + "description": { + "name": "description", + "type": "String" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "bbox": { + "name": "bbox", + "type": "GeoJSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateUserLocationPayload", + "ofType": null + } + }, + "updateUserMessage": { + "qtype": "mutation", + "mutationType": "patch", + "model": "UserMessage", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateUserMessageInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "senderId": { + "name": "senderId", + "type": "UUID" + }, + "type": { + "name": "type", + "type": "String" + }, + "content": { + "name": "content", + "type": "JSON" + }, + "upload": { + "name": "upload", + "type": "JSON" + }, + "received": { + "name": "received", + "type": "Boolean" + }, + "receiverRead": { + "name": "receiverRead", + "type": "Boolean" + }, + "senderReaction": { + "name": "senderReaction", + "type": "String" + }, + "receiverReaction": { + "name": "receiverReaction", + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "receiverId": { + "name": "receiverId", + "type": "UUID" + }, + "uploadUpload": { + "name": "uploadUpload", + "type": "Upload" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateUserMessagePayload", + "ofType": null + } + }, + "updateUserPassAction": { + "qtype": "mutation", + "mutationType": "patch", + "model": "UserPassAction", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateUserPassActionInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "actionId": { + "name": "actionId", + "type": "UUID" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateUserPassActionPayload", + "ofType": null + } + }, + "updateUserProfile": { + "qtype": "mutation", + "mutationType": "patch", + "model": "UserProfile", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateUserProfileInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "profilePicture": { + "name": "profilePicture", + "type": "JSON" + }, + "bio": { + "name": "bio", + "type": "String" + }, + "reputation": { + "name": "reputation", + "type": "BigFloat" + }, + "displayName": { + "name": "displayName", + "type": "String" + }, + "tags": { + "name": "tags", + "isArray": true, + "type": "String" + }, + "desired": { + "name": "desired", + "isArray": true, + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "profilePictureUpload": { + "name": "profilePictureUpload", + "type": "Upload" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateUserProfilePayload", + "ofType": null + } + }, + "updateUserQuestion": { + "qtype": "mutation", + "mutationType": "patch", + "model": "UserQuestion", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateUserQuestionInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "questionType": { + "name": "questionType", + "type": "String" + }, + "questionPrompt": { + "name": "questionPrompt", + "type": "String" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateUserQuestionPayload", + "ofType": null + } + }, + "updateUserSavedAction": { + "qtype": "mutation", + "mutationType": "patch", + "model": "UserSavedAction", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateUserSavedActionInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "actionId": { + "name": "actionId", + "type": "UUID" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateUserSavedActionPayload", + "ofType": null + } + }, + "updateUserSetting": { + "qtype": "mutation", + "mutationType": "patch", + "model": "UserSetting", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateUserSettingInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "firstName": { + "name": "firstName", + "type": "String" + }, + "lastName": { + "name": "lastName", + "type": "String" + }, + "searchRadius": { + "name": "searchRadius", + "type": "BigFloat" + }, + "zip": { + "name": "zip", + "type": "Int" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateUserSettingPayload", + "ofType": null + } + }, + "updateUserViewedAction": { + "qtype": "mutation", + "mutationType": "patch", + "model": "UserViewedAction", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateUserViewedActionInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "userId": { + "name": "userId", + "type": "UUID" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + }, + "actionId": { + "name": "actionId", + "type": "UUID" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateUserViewedActionPayload", + "ofType": null + } + }, + "updateUser": { + "qtype": "mutation", + "mutationType": "patch", + "model": "User", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateUserInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "username": { + "name": "username", + "type": "String" + }, + "displayName": { + "name": "displayName", + "type": "String" + }, + "profilePicture": { + "name": "profilePicture", + "type": "JSON" + }, + "searchTsv": { + "name": "searchTsv", + "type": "FullText" + }, + "type": { + "name": "type", + "type": "Int" + }, + "profilePictureUpload": { + "name": "profilePictureUpload", + "type": "Upload" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateUserPayload", + "ofType": null + } + }, + "updateUserByUsername": { + "qtype": "mutation", + "mutationType": "patch", + "model": "User", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateUserByUsernameInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "username": { + "name": "username", + "type": "String" + }, + "displayName": { + "name": "displayName", + "type": "String" + }, + "profilePicture": { + "name": "profilePicture", + "type": "JSON" + }, + "searchTsv": { + "name": "searchTsv", + "type": "FullText" + }, + "type": { + "name": "type", + "type": "Int" + }, + "profilePictureUpload": { + "name": "profilePictureUpload", + "type": "Upload" + } + } + }, + "username": { + "name": "username", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateUserPayload", + "ofType": null + } + }, + "updateZipCode": { + "qtype": "mutation", + "mutationType": "patch", + "model": "ZipCode", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateZipCodeInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "zip": { + "name": "zip", + "type": "Int" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "bbox": { + "name": "bbox", + "type": "GeoJSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateZipCodePayload", + "ofType": null + } + }, + "updateZipCodeByZip": { + "qtype": "mutation", + "mutationType": "patch", + "model": "ZipCode", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateZipCodeByZipInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "zip": { + "name": "zip", + "type": "Int" + }, + "location": { + "name": "location", + "type": "GeoJSON" + }, + "bbox": { + "name": "bbox", + "type": "GeoJSON" + }, + "createdBy": { + "name": "createdBy", + "type": "UUID" + }, + "updatedBy": { + "name": "updatedBy", + "type": "UUID" + }, + "createdAt": { + "name": "createdAt", + "type": "Datetime" + }, + "updatedAt": { + "name": "updatedAt", + "type": "Datetime" + } + } + }, + "zip": { + "name": "zip", + "isNotNull": true, + "type": "Int" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateZipCodePayload", + "ofType": null + } + }, + "updateAuthAccount": { + "qtype": "mutation", + "mutationType": "patch", + "model": "AuthAccount", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateAuthAccountInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "service": { + "name": "service", + "type": "String" + }, + "identifier": { + "name": "identifier", + "type": "String" + }, + "details": { + "name": "details", + "type": "JSON" + }, + "isVerified": { + "name": "isVerified", + "type": "Boolean" + } + } + }, + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateAuthAccountPayload", + "ofType": null + } + }, + "updateAuthAccountByServiceAndIdentifier": { + "qtype": "mutation", + "mutationType": "patch", + "model": "AuthAccount", + "properties": { + "input": { + "isNotNull": true, + "type": "UpdateAuthAccountByServiceAndIdentifierInput", + "properties": { + "patch": { + "name": "patch", + "isNotNull": true, + "properties": { + "id": { + "name": "id", + "type": "UUID" + }, + "ownerId": { + "name": "ownerId", + "type": "UUID" + }, + "service": { + "name": "service", + "type": "String" + }, + "identifier": { + "name": "identifier", + "type": "String" + }, + "details": { + "name": "details", + "type": "JSON" + }, + "isVerified": { + "name": "isVerified", + "type": "Boolean" + } + } + }, + "service": { + "name": "service", + "isNotNull": true, + "type": "String" + }, + "identifier": { + "name": "identifier", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "UpdateAuthAccountPayload", + "ofType": null + } + }, + "deleteActionGoal": { + "qtype": "mutation", + "mutationType": "delete", + "model": "ActionGoal", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteActionGoalInput", + "properties": { + "actionId": { + "name": "actionId", + "isNotNull": true, + "type": "UUID" + }, + "goalId": { + "name": "goalId", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteActionGoalPayload", + "ofType": null + } + }, + "deleteActionItemType": { + "qtype": "mutation", + "mutationType": "delete", + "model": "ActionItemType", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteActionItemTypeInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "Int" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteActionItemTypePayload", + "ofType": null + } + }, + "deleteActionItem": { + "qtype": "mutation", + "mutationType": "delete", + "model": "ActionItem", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteActionItemInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteActionItemPayload", + "ofType": null + } + }, + "deleteActionVariation": { + "qtype": "mutation", + "mutationType": "delete", + "model": "ActionVariation", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteActionVariationInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteActionVariationPayload", + "ofType": null + } + }, + "deleteAction": { + "qtype": "mutation", + "mutationType": "delete", + "model": "Action", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteActionInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteActionPayload", + "ofType": null + } + }, + "deleteActionBySlug": { + "qtype": "mutation", + "mutationType": "delete", + "model": "Action", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteActionBySlugInput", + "properties": { + "slug": { + "name": "slug", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteActionPayload", + "ofType": null + } + }, + "deleteConnectedAccount": { + "qtype": "mutation", + "mutationType": "delete", + "model": "ConnectedAccount", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteConnectedAccountInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteConnectedAccountPayload", + "ofType": null + } + }, + "deleteConnectedAccountByServiceAndIdentifier": { + "qtype": "mutation", + "mutationType": "delete", + "model": "ConnectedAccount", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteConnectedAccountByServiceAndIdentifierInput", + "properties": { + "service": { + "name": "service", + "isNotNull": true, + "type": "String" + }, + "identifier": { + "name": "identifier", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteConnectedAccountPayload", + "ofType": null + } + }, + "deleteCryptoAddress": { + "qtype": "mutation", + "mutationType": "delete", + "model": "CryptoAddress", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteCryptoAddressInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteCryptoAddressPayload", + "ofType": null + } + }, + "deleteCryptoAddressByAddress": { + "qtype": "mutation", + "mutationType": "delete", + "model": "CryptoAddress", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteCryptoAddressByAddressInput", + "properties": { + "address": { + "name": "address", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteCryptoAddressPayload", + "ofType": null + } + }, + "deleteEmail": { + "qtype": "mutation", + "mutationType": "delete", + "model": "Email", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteEmailInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteEmailPayload", + "ofType": null + } + }, + "deleteEmailByEmail": { + "qtype": "mutation", + "mutationType": "delete", + "model": "Email", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteEmailByEmailInput", + "properties": { + "email": { + "name": "email", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteEmailPayload", + "ofType": null + } + }, + "deleteGoalExplanation": { + "qtype": "mutation", + "mutationType": "delete", + "model": "GoalExplanation", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteGoalExplanationInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteGoalExplanationPayload", + "ofType": null + } + }, + "deleteGoal": { + "qtype": "mutation", + "mutationType": "delete", + "model": "Goal", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteGoalInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteGoalPayload", + "ofType": null + } + }, + "deleteGoalByName": { + "qtype": "mutation", + "mutationType": "delete", + "model": "Goal", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteGoalByNameInput", + "properties": { + "name": { + "name": "name", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteGoalPayload", + "ofType": null + } + }, + "deleteGoalBySlug": { + "qtype": "mutation", + "mutationType": "delete", + "model": "Goal", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteGoalBySlugInput", + "properties": { + "slug": { + "name": "slug", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteGoalPayload", + "ofType": null + } + }, + "deleteGroupPostComment": { + "qtype": "mutation", + "mutationType": "delete", + "model": "GroupPostComment", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteGroupPostCommentInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteGroupPostCommentPayload", + "ofType": null + } + }, + "deleteGroupPostReaction": { + "qtype": "mutation", + "mutationType": "delete", + "model": "GroupPostReaction", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteGroupPostReactionInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteGroupPostReactionPayload", + "ofType": null + } + }, + "deleteGroupPost": { + "qtype": "mutation", + "mutationType": "delete", + "model": "GroupPost", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteGroupPostInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteGroupPostPayload", + "ofType": null + } + }, + "deleteGroup": { + "qtype": "mutation", + "mutationType": "delete", + "model": "Group", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteGroupInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteGroupPayload", + "ofType": null + } + }, + "deleteLocationType": { + "qtype": "mutation", + "mutationType": "delete", + "model": "LocationType", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteLocationTypeInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteLocationTypePayload", + "ofType": null + } + }, + "deleteLocation": { + "qtype": "mutation", + "mutationType": "delete", + "model": "Location", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteLocationInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteLocationPayload", + "ofType": null + } + }, + "deleteMessageGroup": { + "qtype": "mutation", + "mutationType": "delete", + "model": "MessageGroup", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteMessageGroupInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteMessageGroupPayload", + "ofType": null + } + }, + "deleteMessage": { + "qtype": "mutation", + "mutationType": "delete", + "model": "Message", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteMessageInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteMessagePayload", + "ofType": null + } + }, + "deleteNewsArticle": { + "qtype": "mutation", + "mutationType": "delete", + "model": "NewsArticle", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteNewsArticleInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteNewsArticlePayload", + "ofType": null + } + }, + "deleteNotificationPreference": { + "qtype": "mutation", + "mutationType": "delete", + "model": "NotificationPreference", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteNotificationPreferenceInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteNotificationPreferencePayload", + "ofType": null + } + }, + "deleteNotification": { + "qtype": "mutation", + "mutationType": "delete", + "model": "Notification", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteNotificationInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteNotificationPayload", + "ofType": null + } + }, + "deleteObjectAttribute": { + "qtype": "mutation", + "mutationType": "delete", + "model": "ObjectAttribute", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteObjectAttributeInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteObjectAttributePayload", + "ofType": null + } + }, + "deleteObjectTypeAttribute": { + "qtype": "mutation", + "mutationType": "delete", + "model": "ObjectTypeAttribute", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteObjectTypeAttributeInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteObjectTypeAttributePayload", + "ofType": null + } + }, + "deleteObjectTypeValue": { + "qtype": "mutation", + "mutationType": "delete", + "model": "ObjectTypeValue", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteObjectTypeValueInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteObjectTypeValuePayload", + "ofType": null + } + }, + "deleteObjectType": { + "qtype": "mutation", + "mutationType": "delete", + "model": "ObjectType", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteObjectTypeInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "Int" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteObjectTypePayload", + "ofType": null + } + }, + "deleteObject": { + "qtype": "mutation", + "mutationType": "delete", + "model": "Object", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteObjectInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteObjectPayload", + "ofType": null + } + }, + "deleteOrganizationProfile": { + "qtype": "mutation", + "mutationType": "delete", + "model": "OrganizationProfile", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteOrganizationProfileInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteOrganizationProfilePayload", + "ofType": null + } + }, + "deletePhoneNumber": { + "qtype": "mutation", + "mutationType": "delete", + "model": "PhoneNumber", + "properties": { + "input": { + "isNotNull": true, + "type": "DeletePhoneNumberInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeletePhoneNumberPayload", + "ofType": null + } + }, + "deletePhoneNumberByNumber": { + "qtype": "mutation", + "mutationType": "delete", + "model": "PhoneNumber", + "properties": { + "input": { + "isNotNull": true, + "type": "DeletePhoneNumberByNumberInput", + "properties": { + "number": { + "name": "number", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeletePhoneNumberPayload", + "ofType": null + } + }, + "deletePostComment": { + "qtype": "mutation", + "mutationType": "delete", + "model": "PostComment", + "properties": { + "input": { + "isNotNull": true, + "type": "DeletePostCommentInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeletePostCommentPayload", + "ofType": null + } + }, + "deletePostReaction": { + "qtype": "mutation", + "mutationType": "delete", + "model": "PostReaction", + "properties": { + "input": { + "isNotNull": true, + "type": "DeletePostReactionInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeletePostReactionPayload", + "ofType": null + } + }, + "deletePost": { + "qtype": "mutation", + "mutationType": "delete", + "model": "Post", + "properties": { + "input": { + "isNotNull": true, + "type": "DeletePostInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeletePostPayload", + "ofType": null + } + }, + "deleteRequiredAction": { + "qtype": "mutation", + "mutationType": "delete", + "model": "RequiredAction", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteRequiredActionInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteRequiredActionPayload", + "ofType": null + } + }, + "deleteRewardLimit": { + "qtype": "mutation", + "mutationType": "delete", + "model": "RewardLimit", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteRewardLimitInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteRewardLimitPayload", + "ofType": null + } + }, + "deleteRoleType": { + "qtype": "mutation", + "mutationType": "delete", + "model": "RoleType", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteRoleTypeInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "Int" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteRoleTypePayload", + "ofType": null + } + }, + "deleteRoleTypeByName": { + "qtype": "mutation", + "mutationType": "delete", + "model": "RoleType", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteRoleTypeByNameInput", + "properties": { + "name": { + "name": "name", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteRoleTypePayload", + "ofType": null + } + }, + "deleteTrackAction": { + "qtype": "mutation", + "mutationType": "delete", + "model": "TrackAction", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteTrackActionInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteTrackActionPayload", + "ofType": null + } + }, + "deleteTrack": { + "qtype": "mutation", + "mutationType": "delete", + "model": "Track", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteTrackInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteTrackPayload", + "ofType": null + } + }, + "deleteUserActionItemVerification": { + "qtype": "mutation", + "mutationType": "delete", + "model": "UserActionItemVerification", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteUserActionItemVerificationInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteUserActionItemVerificationPayload", + "ofType": null + } + }, + "deleteUserActionItem": { + "qtype": "mutation", + "mutationType": "delete", + "model": "UserActionItem", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteUserActionItemInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteUserActionItemPayload", + "ofType": null + } + }, + "deleteUserActionReaction": { + "qtype": "mutation", + "mutationType": "delete", + "model": "UserActionReaction", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteUserActionReactionInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteUserActionReactionPayload", + "ofType": null + } + }, + "deleteUserActionVerification": { + "qtype": "mutation", + "mutationType": "delete", + "model": "UserActionVerification", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteUserActionVerificationInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteUserActionVerificationPayload", + "ofType": null + } + }, + "deleteUserAction": { + "qtype": "mutation", + "mutationType": "delete", + "model": "UserAction", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteUserActionInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteUserActionPayload", + "ofType": null + } + }, + "deleteUserAnswer": { + "qtype": "mutation", + "mutationType": "delete", + "model": "UserAnswer", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteUserAnswerInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteUserAnswerPayload", + "ofType": null + } + }, + "deleteUserCharacteristic": { + "qtype": "mutation", + "mutationType": "delete", + "model": "UserCharacteristic", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteUserCharacteristicInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteUserCharacteristicPayload", + "ofType": null + } + }, + "deleteUserConnection": { + "qtype": "mutation", + "mutationType": "delete", + "model": "UserConnection", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteUserConnectionInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteUserConnectionPayload", + "ofType": null + } + }, + "deleteUserContact": { + "qtype": "mutation", + "mutationType": "delete", + "model": "UserContact", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteUserContactInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteUserContactPayload", + "ofType": null + } + }, + "deleteUserDevice": { + "qtype": "mutation", + "mutationType": "delete", + "model": "UserDevice", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteUserDeviceInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteUserDevicePayload", + "ofType": null + } + }, + "deleteUserLocation": { + "qtype": "mutation", + "mutationType": "delete", + "model": "UserLocation", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteUserLocationInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteUserLocationPayload", + "ofType": null + } + }, + "deleteUserMessage": { + "qtype": "mutation", + "mutationType": "delete", + "model": "UserMessage", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteUserMessageInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteUserMessagePayload", + "ofType": null + } + }, + "deleteUserPassAction": { + "qtype": "mutation", + "mutationType": "delete", + "model": "UserPassAction", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteUserPassActionInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteUserPassActionPayload", + "ofType": null + } + }, + "deleteUserProfile": { + "qtype": "mutation", + "mutationType": "delete", + "model": "UserProfile", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteUserProfileInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteUserProfilePayload", + "ofType": null + } + }, + "deleteUserQuestion": { + "qtype": "mutation", + "mutationType": "delete", + "model": "UserQuestion", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteUserQuestionInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteUserQuestionPayload", + "ofType": null + } + }, + "deleteUserSavedAction": { + "qtype": "mutation", + "mutationType": "delete", + "model": "UserSavedAction", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteUserSavedActionInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteUserSavedActionPayload", + "ofType": null + } + }, + "deleteUserSetting": { + "qtype": "mutation", + "mutationType": "delete", + "model": "UserSetting", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteUserSettingInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteUserSettingPayload", + "ofType": null + } + }, + "deleteUserViewedAction": { + "qtype": "mutation", + "mutationType": "delete", + "model": "UserViewedAction", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteUserViewedActionInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteUserViewedActionPayload", + "ofType": null + } + }, + "deleteUser": { + "qtype": "mutation", + "mutationType": "delete", + "model": "User", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteUserInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteUserPayload", + "ofType": null + } + }, + "deleteUserByUsername": { + "qtype": "mutation", + "mutationType": "delete", + "model": "User", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteUserByUsernameInput", + "properties": { + "username": { + "name": "username", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteUserPayload", + "ofType": null + } + }, + "deleteZipCode": { + "qtype": "mutation", + "mutationType": "delete", + "model": "ZipCode", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteZipCodeInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteZipCodePayload", + "ofType": null + } + }, + "deleteZipCodeByZip": { + "qtype": "mutation", + "mutationType": "delete", + "model": "ZipCode", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteZipCodeByZipInput", + "properties": { + "zip": { + "name": "zip", + "isNotNull": true, + "type": "Int" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteZipCodePayload", + "ofType": null + } + }, + "deleteAuthAccount": { + "qtype": "mutation", + "mutationType": "delete", + "model": "AuthAccount", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteAuthAccountInput", + "properties": { + "id": { + "name": "id", + "isNotNull": true, + "type": "UUID" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteAuthAccountPayload", + "ofType": null + } + }, + "deleteAuthAccountByServiceAndIdentifier": { + "qtype": "mutation", + "mutationType": "delete", + "model": "AuthAccount", + "properties": { + "input": { + "isNotNull": true, + "type": "DeleteAuthAccountByServiceAndIdentifierInput", + "properties": { + "service": { + "name": "service", + "isNotNull": true, + "type": "String" + }, + "identifier": { + "name": "identifier", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "DeleteAuthAccountPayload", + "ofType": null + } + }, + "uuidGenerateV4": { + "qtype": "mutation", + "mutationType": "other", + "properties": { + "input": { + "isNotNull": true, + "type": "UuidGenerateV4Input", + "properties": {} + } + }, + "output": { + "kind": "OBJECT", + "name": "UuidGenerateV4Payload", + "ofType": null + }, + "outputs": [ + { + "name": "uuid", + "type": { + "kind": "SCALAR", + "name": "UUID", + "ofType": null + } + } + ] + }, + "confirmDeleteAccount": { + "qtype": "mutation", + "mutationType": "other", + "properties": { + "input": { + "isNotNull": true, + "type": "ConfirmDeleteAccountInput", + "properties": { + "userId": { + "name": "userId", + "type": "UUID" + }, + "token": { + "name": "token", + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "ConfirmDeleteAccountPayload", + "ofType": null + }, + "outputs": [ + { + "name": "boolean", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + ] + }, + "extendTokenExpires": { + "qtype": "mutation", + "mutationType": "other", + "model": "ApiToken", + "properties": { + "input": { + "isNotNull": true, + "type": "ExtendTokenExpiresInput", + "properties": { + "amount": { + "name": "amount", + "properties": { + "seconds": { + "name": "seconds", + "type": "Float" + }, + "minutes": { + "name": "minutes", + "type": "Int" + }, + "hours": { + "name": "hours", + "type": "Int" + }, + "days": { + "name": "days", + "type": "Int" + }, + "months": { + "name": "months", + "type": "Int" + }, + "years": { + "name": "years", + "type": "Int" + } + } + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "ExtendTokenExpiresPayload", + "ofType": null + } + }, + "forgotPassword": { + "qtype": "mutation", + "mutationType": "other", + "properties": { + "input": { + "isNotNull": true, + "type": "ForgotPasswordInput", + "properties": { + "email": { + "name": "email", + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "ForgotPasswordPayload", + "ofType": null + }, + "outputs": [] + }, + "login": { + "qtype": "mutation", + "mutationType": "other", + "model": "ApiToken", + "properties": { + "input": { + "isNotNull": true, + "type": "LoginInput", + "properties": { + "email": { + "name": "email", + "isNotNull": true, + "type": "String" + }, + "password": { + "name": "password", + "isNotNull": true, + "type": "String" + }, + "rememberMe": { + "name": "rememberMe", + "type": "Boolean" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "LoginPayload", + "ofType": null + } + }, + "loginOneTimeToken": { + "qtype": "mutation", + "mutationType": "other", + "model": "ApiToken", + "properties": { + "input": { + "isNotNull": true, + "type": "LoginOneTimeTokenInput", + "properties": { + "token": { + "name": "token", + "isNotNull": true, + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "LoginOneTimeTokenPayload", + "ofType": null + } + }, + "logout": { + "qtype": "mutation", + "mutationType": "other", + "properties": { + "input": { + "isNotNull": true, + "type": "LogoutInput", + "properties": {} + } + }, + "output": { + "kind": "OBJECT", + "name": "LogoutPayload", + "ofType": null + }, + "outputs": [] + }, + "oneTimeToken": { + "qtype": "mutation", + "mutationType": "other", + "properties": { + "input": { + "isNotNull": true, + "type": "OneTimeTokenInput", + "properties": { + "email": { + "name": "email", + "isNotNull": true, + "type": "String" + }, + "password": { + "name": "password", + "isNotNull": true, + "type": "String" + }, + "origin": { + "name": "origin", + "isNotNull": true, + "type": "String" + }, + "rememberMe": { + "name": "rememberMe", + "type": "Boolean" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "OneTimeTokenPayload", + "ofType": null + }, + "outputs": [ + { + "name": "string", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + ] + }, + "register": { + "qtype": "mutation", + "mutationType": "other", + "model": "ApiToken", + "properties": { + "input": { + "isNotNull": true, + "type": "RegisterInput", + "properties": { + "email": { + "name": "email", + "type": "String" + }, + "password": { + "name": "password", + "type": "String" + }, + "rememberMe": { + "name": "rememberMe", + "type": "Boolean" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "RegisterPayload", + "ofType": null + } + }, + "resetPassword": { + "qtype": "mutation", + "mutationType": "other", + "properties": { + "input": { + "isNotNull": true, + "type": "ResetPasswordInput", + "properties": { + "roleId": { + "name": "roleId", + "type": "UUID" + }, + "resetToken": { + "name": "resetToken", + "type": "String" + }, + "newPassword": { + "name": "newPassword", + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "ResetPasswordPayload", + "ofType": null + }, + "outputs": [ + { + "name": "boolean", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + ] + }, + "sendAccountDeletionEmail": { + "qtype": "mutation", + "mutationType": "other", + "properties": { + "input": { + "isNotNull": true, + "type": "SendAccountDeletionEmailInput", + "properties": {} + } + }, + "output": { + "kind": "OBJECT", + "name": "SendAccountDeletionEmailPayload", + "ofType": null + }, + "outputs": [ + { + "name": "boolean", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + ] + }, + "sendVerificationEmail": { + "qtype": "mutation", + "mutationType": "other", + "properties": { + "input": { + "isNotNull": true, + "type": "SendVerificationEmailInput", + "properties": { + "email": { + "name": "email", + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "SendVerificationEmailPayload", + "ofType": null + }, + "outputs": [ + { + "name": "boolean", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + ] + }, + "setPassword": { + "qtype": "mutation", + "mutationType": "other", + "properties": { + "input": { + "isNotNull": true, + "type": "SetPasswordInput", + "properties": { + "currentPassword": { + "name": "currentPassword", + "type": "String" + }, + "newPassword": { + "name": "newPassword", + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "SetPasswordPayload", + "ofType": null + }, + "outputs": [ + { + "name": "boolean", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + ] + }, + "verifyEmail": { + "qtype": "mutation", + "mutationType": "other", + "properties": { + "input": { + "isNotNull": true, + "type": "VerifyEmailInput", + "properties": { + "emailId": { + "name": "emailId", + "type": "UUID" + }, + "token": { + "name": "token", + "type": "String" + } + } + } + }, + "output": { + "kind": "OBJECT", + "name": "VerifyEmailPayload", + "ofType": null + }, + "outputs": [ + { + "name": "boolean", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + ] + } } diff --git a/graphql/query/__fixtures__/api/meta-obj.json b/graphql/query/__fixtures__/api/meta-obj.json index 7f38aa852..b2ff3cd7b 100644 --- a/graphql/query/__fixtures__/api/meta-obj.json +++ b/graphql/query/__fixtures__/api/meta-obj.json @@ -1,12122 +1,12397 @@ { - "tables": [{ - "name": "ActionGoal", - "fields": [{ - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Action", - "fromKey": { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "action" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Goal", - "fromKey": { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "goal" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "ActionItemType", - "fields": [{ - "name": "id", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "image", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }], - "foreignConstraints": [] - }, - { - "name": "ActionItem", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "itemOrder", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "timeRequired", - "type": { - "gqlType": "Interval", - "isArray": false, - "modifier": null, - "pgAlias": "interval", - "pgType": "interval", - "subtype": null, - "typmod": null - } - }, - { - "name": "isRequired", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "notificationText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "embedCode", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "url", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "url", - "pgType": "url", - "subtype": null, - "typmod": null - } - }, - { - "name": "media", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "upload", - "pgType": "upload", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "locationRadius", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "rewardWeight", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "itemTypeId", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "foreignConstraints": [{ - "refTable": "ActionItemType", - "fromKey": { - "name": "itemTypeId", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - }, - "alias": "itemType" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Action", - "fromKey": { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "action" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "ActionVariation", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "photo", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "title", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "income", - "type": { - "gqlType": "[BigFloat]", - "isArray": true, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "gender", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": 5, - "pgAlias": "char", - "pgType": "bpchar", - "subtype": null, - "typmod": { - "modifier": 5 - } - } - }, - { - "name": "dob", - "type": { - "gqlType": "[Date]", - "isArray": true, - "modifier": null, - "pgAlias": "date", - "pgType": "date", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Action", - "fromKey": { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "action" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "Action", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "slug", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "photo", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "shareImage", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "title", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "titleObjectTemplate", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "url", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "url", - "pgType": "url", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "discoveryHeader", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "discoveryDescription", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "notificationText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "notificationObjectTemplate", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "enableNotifications", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "enableNotificationsText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "search", - "type": { - "gqlType": "FullText", - "isArray": false, - "modifier": null, - "pgAlias": "tsvector", - "pgType": "tsvector", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "locationRadius", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "timeRequired", - "type": { - "gqlType": "Interval", - "isArray": false, - "modifier": null, - "pgAlias": "interval", - "pgType": "interval", - "subtype": null, - "typmod": null - } - }, - { - "name": "startDate", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "endDate", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "approved", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "published", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "isPrivate", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "rewardAmount", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "activityFeedText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "callToAction", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "completedActionText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "alreadyCompletedActionText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "selfVerifiable", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "isRecurring", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "recurringInterval", - "type": { - "gqlType": "Interval", - "isArray": false, - "modifier": null, - "pgAlias": "interval", - "pgType": "interval", - "subtype": null, - "typmod": null - } - }, - { - "name": "oncePerObject", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "minimumGroupMembers", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "limitedToLocation", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "tags", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "objectTypeId", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "rewardId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "verifyRewardId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "slug", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }], - "foreignConstraints": [{ - "refTable": "Group", - "fromKey": { - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "group" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "ObjectType", - "fromKey": { - "name": "objectTypeId", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - }, - "alias": "objectType" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "RewardLimit", - "fromKey": { - "name": "rewardId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "reward" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "RewardLimit", - "fromKey": { - "name": "verifyRewardId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "verifyReward" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "ConnectedAccount", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "service", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "identifier", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "details", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "isVerified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "service", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "identifier", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - } - ], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }] - }, - { - "name": "CryptoAddress", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "address", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "isVerified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "isPrimary", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "address", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }] - }, - { - "name": "Email", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "email", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "email", - "pgType": "email", - "subtype": null, - "typmod": null - } - }, - { - "name": "isVerified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "isPrimary", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "email", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "email", - "pgType": "email", - "subtype": null, - "typmod": null - } - }], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }] - }, - { - "name": "GoalExplanation", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "audio", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "upload", - "pgType": "upload", - "subtype": null, - "typmod": null - } - }, - { - "name": "audioDuration", - "type": { - "gqlType": "Interval", - "isArray": false, - "modifier": null, - "pgAlias": "interval", - "pgType": "interval", - "subtype": null, - "typmod": null - } - }, - { - "name": "explanationTitle", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "explanation", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "Goal", - "fromKey": { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "goal" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }] - }, - { - "name": "Goal", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "slug", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "shortName", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "icon", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "subHead", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "tags", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "search", - "type": { - "gqlType": "FullText", - "isArray": false, - "modifier": null, - "pgAlias": "tsvector", - "pgType": "tsvector", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }], - "foreignConstraints": [] - }, - { - "name": "GroupPostComment", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "commenterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "parentId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "postId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "posterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "commenterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "commenter" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "GroupPostComment", - "fromKey": { - "name": "parentId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "parent" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Group", - "fromKey": { - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "group" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "GroupPost", - "fromKey": { - "name": "postId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "post" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "User", - "fromKey": { - "name": "posterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "poster" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "GroupPostReaction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "posterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "postId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "reacter" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Group", - "fromKey": { - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "group" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "User", - "fromKey": { - "name": "posterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "poster" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "GroupPost", - "fromKey": { - "name": "postId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "post" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "GroupPost", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "posterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "flagged", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "image", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "url", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "url", - "pgType": "url", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "data", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "taggedUserIds", - "type": { - "gqlType": "[UUID]", - "isArray": true, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "posterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "poster" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Group", - "fromKey": { - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "group" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "Group", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }] - }, - { - "name": "LocationType", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [] - }, - { - "name": "Location", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "bbox", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107468, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPolygon", - "typmod": { - "srid": 4326, - "subtype": 3, - "hasZ": false, - "hasM": false, - "gisType": "Polygon" - } - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "locationType", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "LocationType", - "fromKey": { - "name": "locationType", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "locationTypeByLocationType" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "MessageGroup", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "memberIds", - "type": { - "gqlType": "[UUID]", - "isArray": true, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [] - }, - { - "name": "Message", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "content", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "upload", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "upload", - "pgType": "upload", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "sender" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "MessageGroup", - "fromKey": { - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "group" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "NewsArticle", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "link", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "url", - "pgType": "url", - "subtype": null, - "typmod": null - } - }, - { - "name": "publishedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "photo", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [] - }, - { - "name": "NotificationPreference", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "emails", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "sms", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "notifications", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "user" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }] - }, - { - "name": "Notification", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actorId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "recipientId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "notificationType", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "notificationText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "entityType", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "data", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "actorId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "actor" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "User", - "fromKey": { - "name": "recipientId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "recipient" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "ObjectAttribute", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "text", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "numeric", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "image", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "data", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "valueId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "objectId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "objectTypeAttributeId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "objectId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "objectTypeAttributeId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "ObjectTypeValue", - "fromKey": { - "name": "valueId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "value" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Object", - "fromKey": { - "name": "objectId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "object" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "ObjectTypeAttribute", - "fromKey": { - "name": "objectTypeAttributeId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "objectTypeAttribute" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "ObjectTypeAttribute", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "label", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "unit", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "min", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "max", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "pattern", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "isRequired", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "attrOrder", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "objectTypeId", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "ObjectType", - "fromKey": { - "name": "objectTypeId", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - }, - "alias": "objectType" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - } - }] - }, - { - "name": "ObjectTypeValue", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "photo", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "icon", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "text", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "numeric", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "image", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "data", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "valueOrder", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "attrId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "ObjectTypeAttribute", - "fromKey": { - "name": "attrId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "attr" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }] - }, - { - "name": "ObjectType", - "fields": [{ - "name": "id", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "photo", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "icon", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [] - }, - { - "name": "Object", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "photo", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "media", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "upload", - "pgType": "upload", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "bbox", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107468, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPolygon", - "typmod": { - "srid": 4326, - "subtype": 3, - "hasZ": false, - "hasM": false, - "gisType": "Polygon" - } - } - }, - { - "name": "data", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "typeId", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "ObjectType", - "fromKey": { - "name": "typeId", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - }, - "alias": "type" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "OrganizationProfile", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "headerImage", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "profilePicture", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "website", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "url", - "pgType": "url", - "subtype": null, - "typmod": null - } - }, - { - "name": "reputation", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "tags", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "organizationId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "organizationId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "organizationId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "organization" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }] - }, - { - "name": "PhoneNumber", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "cc", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "number", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "isVerified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "isPrimary", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "number", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }] - }, - { - "name": "PostComment", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "commenterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "parentId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "postId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "posterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "commenterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "commenter" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "PostComment", - "fromKey": { - "name": "parentId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "parent" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Post", - "fromKey": { - "name": "postId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "post" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "User", - "fromKey": { - "name": "posterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "poster" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "PostReaction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "postId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "posterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "reacter" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Post", - "fromKey": { - "name": "postId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "post" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "User", - "fromKey": { - "name": "posterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "poster" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "Post", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "posterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "flagged", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "image", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "url", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "url", - "pgType": "url", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "data", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "taggedUserIds", - "type": { - "gqlType": "[UUID]", - "isArray": true, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "posterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "poster" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }] - }, - { - "name": "RequiredAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionOrder", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "requiredId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "Action", - "fromKey": { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "action" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Action", - "fromKey": { - "name": "requiredId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "required" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "RewardLimit", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "rewardAmount", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "rewardUnit", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "totalRewardLimit", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "weeklyLimit", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "dailyLimit", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "totalLimit", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "userTotalLimit", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "userWeeklyLimit", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "userDailyLimit", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }] - }, - { - "name": "RoleType", - "fields": [{ - "name": "id", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }], - "foreignConstraints": [] - }, - { - "name": "TrackAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "trackOrder", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "isRequired", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "trackId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "Action", - "fromKey": { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "action" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Track", - "fromKey": { - "name": "trackId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "track" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "Track", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "photo", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "icon", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "isPublished", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "isApproved", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "objectTypeId", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "ObjectType", - "fromKey": { - "name": "objectTypeId", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - }, - "alias": "objectType" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "UserActionItemVerification", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "verifierId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "verified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "rejected", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "notes", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "verifierId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "verifier" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "User", - "fromKey": { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "user" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Action", - "fromKey": { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "action" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "UserAction", - "fromKey": { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "userAction" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "ActionItem", - "fromKey": { - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "actionItem" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "UserActionItem", - "fromKey": { - "name": "userActionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "userActionItem" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "UserActionItem", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "text", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "media", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "upload", - "pgType": "upload", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "bbox", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107468, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPolygon", - "typmod": { - "srid": 4326, - "subtype": 3, - "hasZ": false, - "hasM": false, - "gisType": "Polygon" - } - } - }, - { - "name": "data", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "complete", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "verified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "user" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Action", - "fromKey": { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "action" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "UserAction", - "fromKey": { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "userAction" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "ActionItem", - "fromKey": { - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "actionItem" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "UserActionReaction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "reacter" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "UserAction", - "fromKey": { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "userAction" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "User", - "fromKey": { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "user" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Action", - "fromKey": { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "action" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "UserActionVerification", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "verifierId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "verified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "rejected", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "notes", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "user" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Action", - "fromKey": { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "action" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "UserAction", - "fromKey": { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "userAction" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "UserAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionStarted", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "complete", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "verified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "verifiedDate", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userRating", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "rejected", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "objectId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "user" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Action", - "fromKey": { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "action" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Object", - "fromKey": { - "name": "objectId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "object" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "UserAnswer", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "text", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "numeric", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "image", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "data", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "questionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "user" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "UserQuestion", - "fromKey": { - "name": "questionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "question" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "UserCharacteristic", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "income", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "gender", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": 5, - "pgAlias": "char", - "pgType": "bpchar", - "subtype": null, - "typmod": { - "modifier": 5 - } - } - }, - { - "name": "race", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "age", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "dob", - "type": { - "gqlType": "Date", - "isArray": false, - "modifier": null, - "pgAlias": "date", - "pgType": "date", - "subtype": null, - "typmod": null - } - }, - { - "name": "education", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "homeOwnership", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "treeHuggerLevel", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "diyLevel", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "gardenerLevel", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "freeTime", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "researchToDoer", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "user" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }] - }, - { - "name": "UserConnection", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "accepted", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "requesterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "responderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "requesterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "responderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "requesterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "requester" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "User", - "fromKey": { - "name": "responderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "responder" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "UserContact", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "vcf", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "fullName", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "emails", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "email", - "pgType": "email", - "subtype": null, - "typmod": null - } - }, - { - "name": "device", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "user" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }] - }, - { - "name": "UserDevice", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "deviceId", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "pushToken", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "pushTokenRequested", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "data", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "user" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }] - }, - { - "name": "UserLocation", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "kind", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "bbox", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107468, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPolygon", - "typmod": { - "srid": 4326, - "subtype": 3, - "hasZ": false, - "hasM": false, - "gisType": "Polygon" - } - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "user" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }] - }, - { - "name": "UserMessage", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "content", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "upload", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "upload", - "pgType": "upload", - "subtype": null, - "typmod": null - } - }, - { - "name": "received", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverRead", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderReaction", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverReaction", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "sender" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "User", - "fromKey": { - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "receiver" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "UserPassAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "user" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Action", - "fromKey": { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "action" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "UserProfile", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "profilePicture", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "bio", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "reputation", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "displayName", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "tags", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "desired", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "user" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }] - }, - { - "name": "UserQuestion", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "questionType", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "questionPrompt", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }] - }, - { - "name": "UserSavedAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "user" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Action", - "fromKey": { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "action" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "UserSetting", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "firstName", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "lastName", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "searchRadius", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "zip", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "user" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }] - }, - { - "name": "UserViewedAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "user" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }, - { - "refTable": "Action", - "fromKey": { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "action" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - } - ] - }, - { - "name": "User", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "username", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "displayName", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "profilePicture", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "searchTsv", - "type": { - "gqlType": "FullText", - "isArray": false, - "modifier": null, - "pgAlias": "tsvector", - "pgType": "tsvector", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "username", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }], - "foreignConstraints": [{ - "refTable": "RoleType", - "fromKey": { - "name": "type", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - }, - "alias": "roleTypeByType" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - } - }] - }, - { - "name": "ZipCode", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "zip", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "bbox", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107468, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPolygon", - "typmod": { - "srid": 4326, - "subtype": 3, - "hasZ": false, - "hasM": false, - "gisType": "Polygon" - } - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "zip", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }], - "foreignConstraints": [] - }, - { - "name": "AuthAccount", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "service", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "identifier", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "details", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "isVerified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - } - ], - "primaryConstraints": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "uniqueConstraints": [{ - "name": "service", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "identifier", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - } - ], - "foreignConstraints": [{ - "refTable": "User", - "fromKey": { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - }, - "alias": "owner" - }, - "toKey": { - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - }] - } - ] + "tables": [ + { + "name": "ActionGoal", + "fields": [ + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Action", + "fromKey": { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "action" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Goal", + "fromKey": { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "goal" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "ActionItemType", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "image", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [] + }, + { + "name": "ActionItem", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "itemOrder", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "timeRequired", + "type": { + "gqlType": "Interval", + "isArray": false, + "modifier": null, + "pgAlias": "interval", + "pgType": "interval", + "subtype": null, + "typmod": null + } + }, + { + "name": "isRequired", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "notificationText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "embedCode", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "url", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "url", + "pgType": "url", + "subtype": null, + "typmod": null + } + }, + { + "name": "media", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "upload", + "pgType": "upload", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "locationRadius", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "rewardWeight", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "itemTypeId", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [ + { + "refTable": "ActionItemType", + "fromKey": { + "name": "itemTypeId", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + }, + "alias": "itemType" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Action", + "fromKey": { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "action" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "ActionVariation", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "photo", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "title", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "income", + "type": { + "gqlType": "[BigFloat]", + "isArray": true, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "gender", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": 5, + "pgAlias": "char", + "pgType": "bpchar", + "subtype": null, + "typmod": { + "modifier": 5 + } + } + }, + { + "name": "dob", + "type": { + "gqlType": "[Date]", + "isArray": true, + "modifier": null, + "pgAlias": "date", + "pgType": "date", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Action", + "fromKey": { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "action" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "Action", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "slug", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "photo", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "shareImage", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "title", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "titleObjectTemplate", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "url", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "url", + "pgType": "url", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "discoveryHeader", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "discoveryDescription", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "notificationText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "notificationObjectTemplate", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "enableNotifications", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "enableNotificationsText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "search", + "type": { + "gqlType": "FullText", + "isArray": false, + "modifier": null, + "pgAlias": "tsvector", + "pgType": "tsvector", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "locationRadius", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "timeRequired", + "type": { + "gqlType": "Interval", + "isArray": false, + "modifier": null, + "pgAlias": "interval", + "pgType": "interval", + "subtype": null, + "typmod": null + } + }, + { + "name": "startDate", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "endDate", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "approved", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "published", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "isPrivate", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "rewardAmount", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "activityFeedText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "callToAction", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "completedActionText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "alreadyCompletedActionText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "selfVerifiable", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "isRecurring", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "recurringInterval", + "type": { + "gqlType": "Interval", + "isArray": false, + "modifier": null, + "pgAlias": "interval", + "pgType": "interval", + "subtype": null, + "typmod": null + } + }, + { + "name": "oncePerObject", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "minimumGroupMembers", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "limitedToLocation", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "tags", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "objectTypeId", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "rewardId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "verifyRewardId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "slug", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [ + { + "refTable": "Group", + "fromKey": { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "group" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "ObjectType", + "fromKey": { + "name": "objectTypeId", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + }, + "alias": "objectType" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "RewardLimit", + "fromKey": { + "name": "rewardId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "reward" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "RewardLimit", + "fromKey": { + "name": "verifyRewardId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "verifyReward" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "ConnectedAccount", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "service", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "identifier", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "details", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "isVerified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "service", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "identifier", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "CryptoAddress", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "address", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "isVerified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "isPrimary", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "address", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "Email", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "email", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "email", + "pgType": "email", + "subtype": null, + "typmod": null + } + }, + { + "name": "isVerified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "isPrimary", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "email", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "email", + "pgType": "email", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "GoalExplanation", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "audio", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "upload", + "pgType": "upload", + "subtype": null, + "typmod": null + } + }, + { + "name": "audioDuration", + "type": { + "gqlType": "Interval", + "isArray": false, + "modifier": null, + "pgAlias": "interval", + "pgType": "interval", + "subtype": null, + "typmod": null + } + }, + { + "name": "explanationTitle", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "explanation", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "Goal", + "fromKey": { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "goal" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "Goal", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "slug", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "shortName", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "icon", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "subHead", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "tags", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "search", + "type": { + "gqlType": "FullText", + "isArray": false, + "modifier": null, + "pgAlias": "tsvector", + "pgType": "tsvector", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [] + }, + { + "name": "GroupPostComment", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "commenterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "parentId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "postId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "posterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "commenterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "commenter" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "GroupPostComment", + "fromKey": { + "name": "parentId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "parent" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Group", + "fromKey": { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "group" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "GroupPost", + "fromKey": { + "name": "postId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "post" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "User", + "fromKey": { + "name": "posterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "poster" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "GroupPostReaction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "posterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "postId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "reacter" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Group", + "fromKey": { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "group" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "User", + "fromKey": { + "name": "posterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "poster" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "GroupPost", + "fromKey": { + "name": "postId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "post" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "GroupPost", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "posterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "flagged", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "image", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "url", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "url", + "pgType": "url", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "data", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "taggedUserIds", + "type": { + "gqlType": "[UUID]", + "isArray": true, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "posterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "poster" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Group", + "fromKey": { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "group" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "Group", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "LocationType", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [] + }, + { + "name": "Location", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "bbox", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107468, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPolygon", + "typmod": { + "srid": 4326, + "subtype": 3, + "hasZ": false, + "hasM": false, + "gisType": "Polygon" + } + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "locationType", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "LocationType", + "fromKey": { + "name": "locationType", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "locationTypeByLocationType" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "MessageGroup", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "memberIds", + "type": { + "gqlType": "[UUID]", + "isArray": true, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [] + }, + { + "name": "Message", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "content", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "upload", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "upload", + "pgType": "upload", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "sender" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "MessageGroup", + "fromKey": { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "group" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "NewsArticle", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "link", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "url", + "pgType": "url", + "subtype": null, + "typmod": null + } + }, + { + "name": "publishedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "photo", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [] + }, + { + "name": "NotificationPreference", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "emails", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "sms", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "notifications", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "user" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "Notification", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actorId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "recipientId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "notificationType", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "notificationText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "entityType", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "data", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "actorId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "actor" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "User", + "fromKey": { + "name": "recipientId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "recipient" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "ObjectAttribute", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "text", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "numeric", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "image", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "data", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "valueId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "objectId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "objectTypeAttributeId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "objectId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "objectTypeAttributeId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "ObjectTypeValue", + "fromKey": { + "name": "valueId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "value" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Object", + "fromKey": { + "name": "objectId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "object" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "ObjectTypeAttribute", + "fromKey": { + "name": "objectTypeAttributeId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "objectTypeAttribute" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "ObjectTypeAttribute", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "label", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "unit", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "min", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "max", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "pattern", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "isRequired", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "attrOrder", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "objectTypeId", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "ObjectType", + "fromKey": { + "name": "objectTypeId", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + }, + "alias": "objectType" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "ObjectTypeValue", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "photo", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "icon", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "text", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "numeric", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "image", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "data", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "valueOrder", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "attrId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "ObjectTypeAttribute", + "fromKey": { + "name": "attrId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "attr" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "ObjectType", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "photo", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "icon", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [] + }, + { + "name": "Object", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "photo", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "media", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "upload", + "pgType": "upload", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "bbox", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107468, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPolygon", + "typmod": { + "srid": 4326, + "subtype": 3, + "hasZ": false, + "hasM": false, + "gisType": "Polygon" + } + } + }, + { + "name": "data", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "typeId", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "ObjectType", + "fromKey": { + "name": "typeId", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + }, + "alias": "type" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "OrganizationProfile", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "headerImage", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "profilePicture", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "website", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "url", + "pgType": "url", + "subtype": null, + "typmod": null + } + }, + { + "name": "reputation", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "tags", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "organizationId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "organizationId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "organizationId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "organization" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "PhoneNumber", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "cc", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "number", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "isVerified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "isPrimary", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "number", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "PostComment", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "commenterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "parentId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "postId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "posterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "commenterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "commenter" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "PostComment", + "fromKey": { + "name": "parentId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "parent" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Post", + "fromKey": { + "name": "postId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "post" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "User", + "fromKey": { + "name": "posterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "poster" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "PostReaction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "postId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "posterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "reacter" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Post", + "fromKey": { + "name": "postId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "post" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "User", + "fromKey": { + "name": "posterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "poster" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "Post", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "posterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "flagged", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "image", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "url", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "url", + "pgType": "url", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "data", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "taggedUserIds", + "type": { + "gqlType": "[UUID]", + "isArray": true, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "posterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "poster" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "RequiredAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionOrder", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "requiredId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "Action", + "fromKey": { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "action" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Action", + "fromKey": { + "name": "requiredId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "required" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "RewardLimit", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "rewardAmount", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "rewardUnit", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "totalRewardLimit", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "weeklyLimit", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "dailyLimit", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "totalLimit", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "userTotalLimit", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "userWeeklyLimit", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "userDailyLimit", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "RoleType", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [] + }, + { + "name": "TrackAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "trackOrder", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "isRequired", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "trackId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "Action", + "fromKey": { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "action" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Track", + "fromKey": { + "name": "trackId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "track" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "Track", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "photo", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "icon", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "isPublished", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "isApproved", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "objectTypeId", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "ObjectType", + "fromKey": { + "name": "objectTypeId", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + }, + "alias": "objectType" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "UserActionItemVerification", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "verifierId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "verified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "rejected", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "notes", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "verifierId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "verifier" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "User", + "fromKey": { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "user" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Action", + "fromKey": { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "action" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "UserAction", + "fromKey": { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "userAction" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "ActionItem", + "fromKey": { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "actionItem" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "UserActionItem", + "fromKey": { + "name": "userActionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "userActionItem" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "UserActionItem", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "text", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "media", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "upload", + "pgType": "upload", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "bbox", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107468, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPolygon", + "typmod": { + "srid": 4326, + "subtype": 3, + "hasZ": false, + "hasM": false, + "gisType": "Polygon" + } + } + }, + { + "name": "data", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "complete", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "verified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "user" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Action", + "fromKey": { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "action" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "UserAction", + "fromKey": { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "userAction" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "ActionItem", + "fromKey": { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "actionItem" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "UserActionReaction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "reacter" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "UserAction", + "fromKey": { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "userAction" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "User", + "fromKey": { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "user" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Action", + "fromKey": { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "action" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "UserActionVerification", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "verifierId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "verified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "rejected", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "notes", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "user" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Action", + "fromKey": { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "action" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "UserAction", + "fromKey": { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "userAction" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "UserAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionStarted", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "complete", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "verified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "verifiedDate", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userRating", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "rejected", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "objectId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "user" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Action", + "fromKey": { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "action" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Object", + "fromKey": { + "name": "objectId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "object" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "UserAnswer", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "text", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "numeric", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "image", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "data", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "questionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "user" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "UserQuestion", + "fromKey": { + "name": "questionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "question" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "UserCharacteristic", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "income", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "gender", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": 5, + "pgAlias": "char", + "pgType": "bpchar", + "subtype": null, + "typmod": { + "modifier": 5 + } + } + }, + { + "name": "race", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "age", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "dob", + "type": { + "gqlType": "Date", + "isArray": false, + "modifier": null, + "pgAlias": "date", + "pgType": "date", + "subtype": null, + "typmod": null + } + }, + { + "name": "education", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "homeOwnership", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "treeHuggerLevel", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "diyLevel", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "gardenerLevel", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "freeTime", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "researchToDoer", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "user" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "UserConnection", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "accepted", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "requesterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "responderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "requesterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "responderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "requesterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "requester" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "User", + "fromKey": { + "name": "responderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "responder" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "UserContact", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "vcf", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "fullName", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "emails", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "email", + "pgType": "email", + "subtype": null, + "typmod": null + } + }, + { + "name": "device", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "user" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "UserDevice", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "deviceId", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "pushToken", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "pushTokenRequested", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "data", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "user" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "UserLocation", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "kind", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "bbox", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107468, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPolygon", + "typmod": { + "srid": 4326, + "subtype": 3, + "hasZ": false, + "hasM": false, + "gisType": "Polygon" + } + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "user" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "UserMessage", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "content", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "upload", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "upload", + "pgType": "upload", + "subtype": null, + "typmod": null + } + }, + { + "name": "received", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverRead", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderReaction", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverReaction", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "sender" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "User", + "fromKey": { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "receiver" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "UserPassAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "user" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Action", + "fromKey": { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "action" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "UserProfile", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "profilePicture", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "bio", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "reputation", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "displayName", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "tags", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "desired", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "user" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "UserQuestion", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "questionType", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "questionPrompt", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "UserSavedAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "user" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Action", + "fromKey": { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "action" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "UserSetting", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "firstName", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "lastName", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "searchRadius", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "zip", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "user" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "UserViewedAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "user" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + }, + { + "refTable": "Action", + "fromKey": { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "action" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "User", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "username", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "displayName", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "profilePicture", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "searchTsv", + "type": { + "gqlType": "FullText", + "isArray": false, + "modifier": null, + "pgAlias": "tsvector", + "pgType": "tsvector", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "username", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [ + { + "refTable": "RoleType", + "fromKey": { + "name": "type", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + }, + "alias": "roleTypeByType" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + } + } + ] + }, + { + "name": "ZipCode", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "zip", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "bbox", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107468, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPolygon", + "typmod": { + "srid": 4326, + "subtype": 3, + "hasZ": false, + "hasM": false, + "gisType": "Polygon" + } + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "zip", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [] + }, + { + "name": "AuthAccount", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "service", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "identifier", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "details", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "isVerified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + } + ], + "primaryConstraints": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "uniqueConstraints": [ + { + "name": "service", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "identifier", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + } + ], + "foreignConstraints": [ + { + "refTable": "User", + "fromKey": { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + }, + "alias": "owner" + }, + "toKey": { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + } + ] + } + ] } diff --git a/graphql/query/__fixtures__/api/meta-schema.json b/graphql/query/__fixtures__/api/meta-schema.json index 1051baaf2..a96c87ebd 100644 --- a/graphql/query/__fixtures__/api/meta-schema.json +++ b/graphql/query/__fixtures__/api/meta-schema.json @@ -1,32305 +1,34747 @@ { - "_meta": { - "tables": [{ - "name": "ActionGoal", - "query": { - "all": "actionGoals", - "create": "createActionGoal", - "delete": "deleteActionGoal", - "one": "actionGoal", - "update": "updateActionGoal" - }, - "inflection": { - "allRows": "actionGoals", - "allRowsSimple": "actionGoalsList", - "conditionType": "ActionGoalCondition", - "connection": "ActionGoalsConnection", - "createField": "createActionGoal", - "createInputType": "CreateActionGoalInput", - "createPayloadType": "CreateActionGoalPayload", - "deleteByPrimaryKey": "deleteActionGoal", - "deletePayloadType": "DeleteActionGoalPayload", - "edge": "ActionGoalsEdge", - "edgeField": "actionGoalEdge", - "enumType": "ActionGoals", - "filterType": "ActionGoalFilter", - "inputType": "ActionGoalInput", - "orderByType": "ActionGoalsOrderBy", - "patchField": "patch", - "patchType": "ActionGoalPatch", - "tableFieldName": "actionGoal", - "tableType": "ActionGoal", - "typeName": "action_goals", - "updateByPrimaryKey": "updateActionGoal", - "updatePayloadType": "UpdateActionGoalPayload" - }, - "fields": [{ - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "action_goals_pkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ] - }], - "foreignKeyConstraints": [{ - "name": "action_goals_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "action_goals_goal_id_fkey", - "fields": [{ - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Goal" - } - }, - { - "name": "action_goals_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ], - "uniqueConstraints": [], - "relations": { - "belongsTo": [{ - "fieldName": "action", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "Action" - } - }, - { - "fieldName": "goal", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "Goal" - } - }, - { - "fieldName": "owner", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - } - ], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "ActionItem", - "query": { - "all": "actionItems", - "create": "createActionItem", - "delete": "deleteActionItem", - "one": "actionItem", - "update": "updateActionItem" - }, - "inflection": { - "allRows": "actionItems", - "allRowsSimple": "actionItemsList", - "conditionType": "ActionItemCondition", - "connection": "ActionItemsConnection", - "createField": "createActionItem", - "createInputType": "CreateActionItemInput", - "createPayloadType": "CreateActionItemPayload", - "deleteByPrimaryKey": "deleteActionItem", - "deletePayloadType": "DeleteActionItemPayload", - "edge": "ActionItemsEdge", - "edgeField": "actionItemEdge", - "enumType": "ActionItems", - "filterType": "ActionItemFilter", - "inputType": "ActionItemInput", - "orderByType": "ActionItemsOrderBy", - "patchField": "patch", - "patchType": "ActionItemPatch", - "tableFieldName": "actionItem", - "tableType": "ActionItem", - "typeName": "action_items", - "updateByPrimaryKey": "updateActionItem", - "updatePayloadType": "UpdateActionItemPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "itemOrder", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "timeRequired", - "type": { - "gqlType": "Interval", - "isArray": false, - "modifier": null, - "pgAlias": "interval", - "pgType": "interval", - "subtype": null, - "typmod": null - } - }, - { - "name": "isRequired", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "notificationText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "embedCode", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "url", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "url", - "pgType": "url", - "subtype": null, - "typmod": null - } - }, - { - "name": "media", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "upload", - "pgType": "upload", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "action_items_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "action_items_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }], - "uniqueConstraints": [{ - "name": "action_items_name_action_id_key", - "fields": [{ - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ] - }], - "relations": { - "belongsTo": [{ - "fieldName": "action", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "Action" - } - }], - "has": [{ - "fieldName": "userActionItems", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionItem", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "value", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "status", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_items_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_items_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_items_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "user_action_items_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_items_action_item_id_fkey", - "fields": [{ - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "ActionItem" - } - } - ] - } - }], - "hasMany": [{ - "fieldName": "userActionItems", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionItem", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "value", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "status", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_items_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_items_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_items_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "user_action_items_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_items_action_item_id_fkey", - "fields": [{ - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "ActionItem" - } - } - ] - } - }], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "ActionResult", - "query": { - "all": "actionResults", - "create": "createActionResult", - "delete": "deleteActionResult", - "one": "actionResult", - "update": "updateActionResult" - }, - "inflection": { - "allRows": "actionResults", - "allRowsSimple": "actionResultsList", - "conditionType": "ActionResultCondition", - "connection": "ActionResultsConnection", - "createField": "createActionResult", - "createInputType": "CreateActionResultInput", - "createPayloadType": "CreateActionResultPayload", - "deleteByPrimaryKey": "deleteActionResult", - "deletePayloadType": "DeleteActionResultPayload", - "edge": "ActionResultsEdge", - "edgeField": "actionResultEdge", - "enumType": "ActionResults", - "filterType": "ActionResultFilter", - "inputType": "ActionResultInput", - "orderByType": "ActionResultsOrderBy", - "patchField": "patch", - "patchType": "ActionResultPatch", - "tableFieldName": "actionResult", - "tableType": "ActionResult", - "typeName": "action_results", - "updateByPrimaryKey": "updateActionResult", - "updatePayloadType": "UpdateActionResultPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "action_results_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "action_results_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "action_results_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ], - "uniqueConstraints": [], - "relations": { - "belongsTo": [{ - "fieldName": "action", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "Action" - } - }, - { - "fieldName": "owner", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - } - ], - "has": [{ - "fieldName": "userActionResults", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionResult", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "value", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_results_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_results_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_results_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "user_action_results_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_results_action_result_id_fkey", - "fields": [{ - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "ActionResult" - } - } - ] - } - }], - "hasMany": [{ - "fieldName": "userActionResults", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionResult", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "value", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_results_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_results_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_results_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "user_action_results_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_results_action_result_id_fkey", - "fields": [{ - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "ActionResult" - } - } - ] - } - }], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "Action", - "query": { - "all": "actions", - "create": "createAction", - "delete": "deleteAction", - "one": "action", - "update": "updateAction" - }, - "inflection": { - "allRows": "actions", - "allRowsSimple": "actionsList", - "conditionType": "ActionCondition", - "connection": "ActionsConnection", - "createField": "createAction", - "createInputType": "CreateActionInput", - "createPayloadType": "CreateActionPayload", - "deleteByPrimaryKey": "deleteAction", - "deletePayloadType": "DeleteActionPayload", - "edge": "ActionsEdge", - "edgeField": "actionEdge", - "enumType": "Actions", - "filterType": "ActionFilter", - "inputType": "ActionInput", - "orderByType": "ActionsOrderBy", - "patchField": "patch", - "patchType": "ActionPatch", - "tableFieldName": "action", - "tableType": "Action", - "typeName": "actions", - "updateByPrimaryKey": "updateAction", - "updatePayloadType": "UpdateActionPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "slug", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "photo", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "title", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "url", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "url", - "pgType": "url", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "discoveryHeader", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "discoveryDescription", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "enableNotifications", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "enableNotificationsText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "search", - "type": { - "gqlType": "FullText", - "isArray": false, - "modifier": null, - "pgAlias": "tsvector", - "pgType": "tsvector", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "locationRadius", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "timeRequired", - "type": { - "gqlType": "Interval", - "isArray": false, - "modifier": null, - "pgAlias": "interval", - "pgType": "interval", - "subtype": null, - "typmod": null - } - }, - { - "name": "startDate", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "endDate", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "approved", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "rewardAmount", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "activityFeedText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "callToAction", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "completedActionText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "alreadyCompletedActionText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "tags", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "actions_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }], - "uniqueConstraints": [{ - "name": "actions_slug_key", - "fields": [{ - "name": "slug", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }] - }], - "relations": { - "belongsTo": [{ - "fieldName": "owner", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }], - "has": [{ - "fieldName": "actionGoals", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "ActionGoal", - "fields": [{ - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "action_goals_pkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ] - }], - "foreignKeyConstraints": [{ - "name": "action_goals_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "action_goals_goal_id_fkey", - "fields": [{ - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Goal" - } - }, - { - "name": "action_goals_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - }, - { - "fieldName": "actionResults", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "ActionResult", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "action_results_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "action_results_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "action_results_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - }, - { - "fieldName": "actionItems", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "ActionItem", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "itemOrder", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "timeRequired", - "type": { - "gqlType": "Interval", - "isArray": false, - "modifier": null, - "pgAlias": "interval", - "pgType": "interval", - "subtype": null, - "typmod": null - } - }, - { - "name": "isRequired", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "notificationText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "embedCode", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "url", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "url", - "pgType": "url", - "subtype": null, - "typmod": null - } - }, - { - "name": "media", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "upload", - "pgType": "upload", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "action_items_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "action_items_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }] - } - }, - { - "fieldName": "userActions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionStarted", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "complete", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "verified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "verifiedDate", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userRating", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "rejected", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "rejectedReason", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "verifierId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_actions_verifier_id_fkey", - "fields": [{ - "name": "verifierId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userActionResults", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionResult", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "value", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_results_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_results_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_results_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "user_action_results_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_results_action_result_id_fkey", - "fields": [{ - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "ActionResult" - } - } - ] - } - }, - { - "fieldName": "userActionItems", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionItem", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "value", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "status", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_items_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_items_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_items_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "user_action_items_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_items_action_item_id_fkey", - "fields": [{ - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "ActionItem" - } - } - ] - } - }, - { - "fieldName": "userPassActions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserPassAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_pass_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_pass_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_pass_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userSavedActions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserSavedAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_saved_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_saved_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_saved_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userViewedActions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserViewedAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_viewed_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_viewed_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_viewed_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userActionReactions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionReaction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_reactions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_reactions_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_reactions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_reactions_reacter_id_fkey", - "fields": [{ - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_reactions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - } - ], - "hasMany": [{ - "fieldName": "actionGoals", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "ActionGoal", - "fields": [{ - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "action_goals_pkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ] - }], - "foreignKeyConstraints": [{ - "name": "action_goals_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "action_goals_goal_id_fkey", - "fields": [{ - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Goal" - } - }, - { - "name": "action_goals_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - }, - { - "fieldName": "actionResults", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "ActionResult", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "action_results_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "action_results_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "action_results_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - }, - { - "fieldName": "actionItems", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "ActionItem", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "itemOrder", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "timeRequired", - "type": { - "gqlType": "Interval", - "isArray": false, - "modifier": null, - "pgAlias": "interval", - "pgType": "interval", - "subtype": null, - "typmod": null - } - }, - { - "name": "isRequired", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "notificationText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "embedCode", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "url", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "url", - "pgType": "url", - "subtype": null, - "typmod": null - } - }, - { - "name": "media", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "upload", - "pgType": "upload", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "action_items_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "action_items_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }] - } - }, - { - "fieldName": "userActions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionStarted", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "complete", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "verified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "verifiedDate", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userRating", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "rejected", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "rejectedReason", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "verifierId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_actions_verifier_id_fkey", - "fields": [{ - "name": "verifierId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userActionResults", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionResult", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "value", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_results_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_results_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_results_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "user_action_results_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_results_action_result_id_fkey", - "fields": [{ - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "ActionResult" - } - } - ] - } - }, - { - "fieldName": "userActionItems", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionItem", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "value", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "status", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_items_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_items_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_items_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "user_action_items_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_items_action_item_id_fkey", - "fields": [{ - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "ActionItem" - } - } - ] - } - }, - { - "fieldName": "userPassActions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserPassAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_pass_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_pass_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_pass_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userSavedActions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserSavedAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_saved_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_saved_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_saved_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userViewedActions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserViewedAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_viewed_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_viewed_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_viewed_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userActionReactions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionReaction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_reactions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_reactions_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_reactions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_reactions_reacter_id_fkey", - "fields": [{ - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_reactions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - } - ], - "hasOne": [], - "manyToMany": [{ - "fieldName": "goals", - "type": "ManyToMany", - "leftKeyAttributes": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "rightKeyAttributes": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "junctionTable": { - "name": "ActionGoal", - "fields": [{ - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "query": { - "all": "actionGoals", - "create": "createActionGoal", - "delete": "deleteActionGoal", - "one": "actionGoal", - "update": "updateActionGoal" - }, - "primaryKeyConstraints": [{ - "name": "action_goals_pkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ] - }], - "foreignKeyConstraints": [{ - "name": "action_goals_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "action_goals_goal_id_fkey", - "fields": [{ - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Goal" - } - }, - { - "name": "action_goals_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - }, - "rightTable": { - "name": "Goal", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "slug", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "shortName", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "icon", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "subHead", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "tags", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "search", - "type": { - "gqlType": "FullText", - "isArray": false, - "modifier": null, - "pgAlias": "tsvector", - "pgType": "tsvector", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "query": { - "all": "goals", - "create": "createGoal", - "delete": "deleteGoal", - "one": "goal", - "update": "updateGoal" - }, - "primaryKeyConstraints": [{ - "name": "goals_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [] - } - }] - } - }, - { - "name": "ClaimedInvite", - "query": { - "all": "claimedInvites", - "create": "createClaimedInvite", - "delete": "deleteClaimedInvite", - "one": "claimedInvite", - "update": "updateClaimedInvite" - }, - "inflection": { - "allRows": "claimedInvites", - "allRowsSimple": "claimedInvitesList", - "conditionType": "ClaimedInviteCondition", - "connection": "ClaimedInvitesConnection", - "createField": "createClaimedInvite", - "createInputType": "CreateClaimedInviteInput", - "createPayloadType": "CreateClaimedInvitePayload", - "deleteByPrimaryKey": "deleteClaimedInvite", - "deletePayloadType": "DeleteClaimedInvitePayload", - "edge": "ClaimedInvitesEdge", - "edgeField": "claimedInviteEdge", - "enumType": "ClaimedInvites", - "filterType": "ClaimedInviteFilter", - "inputType": "ClaimedInviteInput", - "orderByType": "ClaimedInvitesOrderBy", - "patchField": "patch", - "patchType": "ClaimedInvitePatch", - "tableFieldName": "claimedInvite", - "tableType": "ClaimedInvite", - "typeName": "claimed_invites", - "updateByPrimaryKey": "updateClaimedInvite", - "updatePayloadType": "UpdateClaimedInvitePayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "data", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "claimed_invites_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "claimed_invites_sender_id_fkey", - "fields": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "claimed_invites_receiver_id_fkey", - "fields": [{ - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ], - "uniqueConstraints": [], - "relations": { - "belongsTo": [{ - "fieldName": "sender", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }, - { - "fieldName": "receiver", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - } - ], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "ConnectedAccount", - "query": { - "all": "connectedAccounts", - "create": "createConnectedAccount", - "delete": "deleteConnectedAccount", - "one": "connectedAccount", - "update": "updateConnectedAccount" - }, - "inflection": { - "allRows": "connectedAccounts", - "allRowsSimple": "connectedAccountsList", - "conditionType": "ConnectedAccountCondition", - "connection": "ConnectedAccountsConnection", - "createField": "createConnectedAccount", - "createInputType": "CreateConnectedAccountInput", - "createPayloadType": "CreateConnectedAccountPayload", - "deleteByPrimaryKey": "deleteConnectedAccount", - "deletePayloadType": "DeleteConnectedAccountPayload", - "edge": "ConnectedAccountsEdge", - "edgeField": "connectedAccountEdge", - "enumType": "ConnectedAccounts", - "filterType": "ConnectedAccountFilter", - "inputType": "ConnectedAccountInput", - "orderByType": "ConnectedAccountsOrderBy", - "patchField": "patch", - "patchType": "ConnectedAccountPatch", - "tableFieldName": "connectedAccount", - "tableType": "ConnectedAccount", - "typeName": "connected_accounts", - "updateByPrimaryKey": "updateConnectedAccount", - "updatePayloadType": "UpdateConnectedAccountPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "service", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "identifier", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "details", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "isVerified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "connected_accounts_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "connected_accounts_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }], - "uniqueConstraints": [{ - "name": "connected_accounts_service_identifier_key", - "fields": [{ - "name": "service", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "identifier", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - } - ] - }], - "relations": { - "belongsTo": [{ - "fieldName": "owner", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "CryptoAddress", - "query": { - "all": "cryptoAddresses", - "create": "createCryptoAddress", - "delete": "deleteCryptoAddress", - "one": "cryptoAddress", - "update": "updateCryptoAddress" - }, - "inflection": { - "allRows": "cryptoAddresses", - "allRowsSimple": "cryptoAddressesList", - "conditionType": "CryptoAddressCondition", - "connection": "CryptoAddressesConnection", - "createField": "createCryptoAddress", - "createInputType": "CreateCryptoAddressInput", - "createPayloadType": "CreateCryptoAddressPayload", - "deleteByPrimaryKey": "deleteCryptoAddress", - "deletePayloadType": "DeleteCryptoAddressPayload", - "edge": "CryptoAddressesEdge", - "edgeField": "cryptoAddressEdge", - "enumType": "CryptoAddresses", - "filterType": "CryptoAddressFilter", - "inputType": "CryptoAddressInput", - "orderByType": "CryptoAddressesOrderBy", - "patchField": "patch", - "patchType": "CryptoAddressPatch", - "tableFieldName": "cryptoAddress", - "tableType": "CryptoAddress", - "typeName": "crypto_addresses", - "updateByPrimaryKey": "updateCryptoAddress", - "updatePayloadType": "UpdateCryptoAddressPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "address", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "isVerified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "isPrimary", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "crypto_addresses_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "crypto_addresses_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }], - "uniqueConstraints": [{ - "name": "crypto_addresses_address_key", - "fields": [{ - "name": "address", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }] - }], - "relations": { - "belongsTo": [{ - "fieldName": "owner", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "Email", - "query": { - "all": "emails", - "create": "createEmail", - "delete": "deleteEmail", - "one": "email", - "update": "updateEmail" - }, - "inflection": { - "allRows": "emails", - "allRowsSimple": "emailsList", - "conditionType": "EmailCondition", - "connection": "EmailsConnection", - "createField": "createEmail", - "createInputType": "CreateEmailInput", - "createPayloadType": "CreateEmailPayload", - "deleteByPrimaryKey": "deleteEmail", - "deletePayloadType": "DeleteEmailPayload", - "edge": "EmailsEdge", - "edgeField": "emailEdge", - "enumType": "Emails", - "filterType": "EmailFilter", - "inputType": "EmailInput", - "orderByType": "EmailsOrderBy", - "patchField": "patch", - "patchType": "EmailPatch", - "tableFieldName": "email", - "tableType": "Email", - "typeName": "emails", - "updateByPrimaryKey": "updateEmail", - "updatePayloadType": "UpdateEmailPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "email", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "email", - "pgType": "email", - "subtype": null, - "typmod": null - } - }, - { - "name": "isVerified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "isPrimary", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "emails_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "emails_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }], - "uniqueConstraints": [{ - "name": "emails_email_key", - "fields": [{ - "name": "email", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "email", - "pgType": "email", - "subtype": null, - "typmod": null - } - }] - }], - "relations": { - "belongsTo": [{ - "fieldName": "owner", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "GoalExplanation", - "query": { - "all": "goalExplanations", - "create": "createGoalExplanation", - "delete": "deleteGoalExplanation", - "one": "goalExplanation", - "update": "updateGoalExplanation" - }, - "inflection": { - "allRows": "goalExplanations", - "allRowsSimple": "goalExplanationsList", - "conditionType": "GoalExplanationCondition", - "connection": "GoalExplanationsConnection", - "createField": "createGoalExplanation", - "createInputType": "CreateGoalExplanationInput", - "createPayloadType": "CreateGoalExplanationPayload", - "deleteByPrimaryKey": "deleteGoalExplanation", - "deletePayloadType": "DeleteGoalExplanationPayload", - "edge": "GoalExplanationsEdge", - "edgeField": "goalExplanationEdge", - "enumType": "GoalExplanations", - "filterType": "GoalExplanationFilter", - "inputType": "GoalExplanationInput", - "orderByType": "GoalExplanationsOrderBy", - "patchField": "patch", - "patchType": "GoalExplanationPatch", - "tableFieldName": "goalExplanation", - "tableType": "GoalExplanation", - "typeName": "goal_explanations", - "updateByPrimaryKey": "updateGoalExplanation", - "updatePayloadType": "UpdateGoalExplanationPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "audio", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "attachment", - "pgType": "attachment", - "subtype": null, - "typmod": null - } - }, - { - "name": "audioDuration", - "type": { - "gqlType": "Interval", - "isArray": false, - "modifier": null, - "pgAlias": "interval", - "pgType": "interval", - "subtype": null, - "typmod": null - } - }, - { - "name": "explanationTitle", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "explanation", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "goal_explanations_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "goal_explanations_goal_id_fkey", - "fields": [{ - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Goal" - } - }], - "uniqueConstraints": [], - "relations": { - "belongsTo": [{ - "fieldName": "goal", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "Goal" - } - }], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "Goal", - "query": { - "all": "goals", - "create": "createGoal", - "delete": "deleteGoal", - "one": "goal", - "update": "updateGoal" - }, - "inflection": { - "allRows": "goals", - "allRowsSimple": "goalsList", - "conditionType": "GoalCondition", - "connection": "GoalsConnection", - "createField": "createGoal", - "createInputType": "CreateGoalInput", - "createPayloadType": "CreateGoalPayload", - "deleteByPrimaryKey": "deleteGoal", - "deletePayloadType": "DeleteGoalPayload", - "edge": "GoalsEdge", - "edgeField": "goalEdge", - "enumType": "Goals", - "filterType": "GoalFilter", - "inputType": "GoalInput", - "orderByType": "GoalsOrderBy", - "patchField": "patch", - "patchType": "GoalPatch", - "tableFieldName": "goal", - "tableType": "Goal", - "typeName": "goals", - "updateByPrimaryKey": "updateGoal", - "updatePayloadType": "UpdateGoalPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "slug", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "shortName", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "icon", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "subHead", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "tags", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "search", - "type": { - "gqlType": "FullText", - "isArray": false, - "modifier": null, - "pgAlias": "tsvector", - "pgType": "tsvector", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "goals_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [], - "uniqueConstraints": [{ - "name": "goals_name_key", - "fields": [{ - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }] - }, - { - "name": "goals_slug_key", - "fields": [{ - "name": "slug", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }] - } - ], - "relations": { - "belongsTo": [], - "has": [{ - "fieldName": "goalExplanations", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "GoalExplanation", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "audio", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "attachment", - "pgType": "attachment", - "subtype": null, - "typmod": null - } - }, - { - "name": "audioDuration", - "type": { - "gqlType": "Interval", - "isArray": false, - "modifier": null, - "pgAlias": "interval", - "pgType": "interval", - "subtype": null, - "typmod": null - } - }, - { - "name": "explanationTitle", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "explanation", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "goal_explanations_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "goal_explanations_goal_id_fkey", - "fields": [{ - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Goal" - } - }] - } - }, - { - "fieldName": "actionGoals", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "ActionGoal", - "fields": [{ - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "action_goals_pkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ] - }], - "foreignKeyConstraints": [{ - "name": "action_goals_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "action_goals_goal_id_fkey", - "fields": [{ - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Goal" - } - }, - { - "name": "action_goals_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - } - ], - "hasMany": [{ - "fieldName": "goalExplanations", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "GoalExplanation", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "audio", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "attachment", - "pgType": "attachment", - "subtype": null, - "typmod": null - } - }, - { - "name": "audioDuration", - "type": { - "gqlType": "Interval", - "isArray": false, - "modifier": null, - "pgAlias": "interval", - "pgType": "interval", - "subtype": null, - "typmod": null - } - }, - { - "name": "explanationTitle", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "explanation", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "goal_explanations_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "goal_explanations_goal_id_fkey", - "fields": [{ - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Goal" - } - }] - } - }, - { - "fieldName": "actionGoals", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "ActionGoal", - "fields": [{ - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "action_goals_pkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ] - }], - "foreignKeyConstraints": [{ - "name": "action_goals_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "action_goals_goal_id_fkey", - "fields": [{ - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Goal" - } - }, - { - "name": "action_goals_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - } - ], - "hasOne": [], - "manyToMany": [{ - "fieldName": "actions", - "type": "ManyToMany", - "leftKeyAttributes": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "rightKeyAttributes": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "junctionTable": { - "name": "ActionGoal", - "fields": [{ - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "query": { - "all": "actionGoals", - "create": "createActionGoal", - "delete": "deleteActionGoal", - "one": "actionGoal", - "update": "updateActionGoal" - }, - "primaryKeyConstraints": [{ - "name": "action_goals_pkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ] - }], - "foreignKeyConstraints": [{ - "name": "action_goals_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "action_goals_goal_id_fkey", - "fields": [{ - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Goal" - } - }, - { - "name": "action_goals_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - }, - "rightTable": { - "name": "Action", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "slug", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "photo", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "title", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "url", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "url", - "pgType": "url", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "discoveryHeader", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "discoveryDescription", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "enableNotifications", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "enableNotificationsText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "search", - "type": { - "gqlType": "FullText", - "isArray": false, - "modifier": null, - "pgAlias": "tsvector", - "pgType": "tsvector", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "locationRadius", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "timeRequired", - "type": { - "gqlType": "Interval", - "isArray": false, - "modifier": null, - "pgAlias": "interval", - "pgType": "interval", - "subtype": null, - "typmod": null - } - }, - { - "name": "startDate", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "endDate", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "approved", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "rewardAmount", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "activityFeedText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "callToAction", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "completedActionText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "alreadyCompletedActionText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "tags", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "query": { - "all": "actions", - "create": "createAction", - "delete": "deleteAction", - "one": "action", - "update": "updateAction" - }, - "primaryKeyConstraints": [{ - "name": "actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "actions_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }] - } - }, - { - "name": "Invite", - "query": { - "all": "invites", - "create": "createInvite", - "delete": "deleteInvite", - "one": "invite", - "update": "updateInvite" - }, - "inflection": { - "allRows": "invites", - "allRowsSimple": "invitesList", - "conditionType": "InviteCondition", - "connection": "InvitesConnection", - "createField": "createInvite", - "createInputType": "CreateInviteInput", - "createPayloadType": "CreateInvitePayload", - "deleteByPrimaryKey": "deleteInvite", - "deletePayloadType": "DeleteInvitePayload", - "edge": "InvitesEdge", - "edgeField": "inviteEdge", - "enumType": "Invites", - "filterType": "InviteFilter", - "inputType": "InviteInput", - "orderByType": "InvitesOrderBy", - "patchField": "patch", - "patchType": "InvitePatch", - "tableFieldName": "invite", - "tableType": "Invite", - "typeName": "invites", - "updateByPrimaryKey": "updateInvite", - "updatePayloadType": "UpdateInvitePayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "email", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "email", - "pgType": "email", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "inviteToken", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "inviteValid", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "inviteLimit", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "inviteCount", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "multiple", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "data", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "expiresAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "invites_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "invites_sender_id_fkey", - "fields": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }], - "uniqueConstraints": [{ - "name": "invites_email_sender_id_key", - "fields": [{ - "name": "email", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "email", - "pgType": "email", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ] - }, - { - "name": "invites_invite_token_key", - "fields": [{ - "name": "inviteToken", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }] - } - ], - "relations": { - "belongsTo": [{ - "fieldName": "sender", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "LevelRequirement", - "query": { - "all": "levelRequirements", - "create": "createLevelRequirement", - "delete": "deleteLevelRequirement", - "one": "levelRequirement", - "update": "updateLevelRequirement" - }, - "inflection": { - "allRows": "levelRequirements", - "allRowsSimple": "levelRequirementsList", - "conditionType": "LevelRequirementCondition", - "connection": "LevelRequirementsConnection", - "createField": "createLevelRequirement", - "createInputType": "CreateLevelRequirementInput", - "createPayloadType": "CreateLevelRequirementPayload", - "deleteByPrimaryKey": "deleteLevelRequirement", - "deletePayloadType": "DeleteLevelRequirementPayload", - "edge": "LevelRequirementsEdge", - "edgeField": "levelRequirementEdge", - "enumType": "LevelRequirements", - "filterType": "LevelRequirementFilter", - "inputType": "LevelRequirementInput", - "orderByType": "LevelRequirementsOrderBy", - "patchField": "patch", - "patchType": "LevelRequirementPatch", - "tableFieldName": "levelRequirement", - "tableType": "LevelRequirement", - "typeName": "level_requirements", - "updateByPrimaryKey": "updateLevelRequirement", - "updatePayloadType": "UpdateLevelRequirementPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "level", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "requiredCount", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "priority", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "level_requirements_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [], - "uniqueConstraints": [{ - "name": "level_requirements_name_level_key", - "fields": [{ - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "level", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - } - ] - }], - "relations": { - "belongsTo": [], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "Level", - "query": { - "all": "levels", - "create": "createLevel", - "delete": "deleteLevel", - "one": "level", - "update": "updateLevel" - }, - "inflection": { - "allRows": "levels", - "allRowsSimple": "levelsList", - "conditionType": "LevelCondition", - "connection": "LevelsConnection", - "createField": "createLevel", - "createInputType": "CreateLevelInput", - "createPayloadType": "CreateLevelPayload", - "deleteByPrimaryKey": "deleteLevel", - "deletePayloadType": "DeleteLevelPayload", - "edge": "LevelsEdge", - "edgeField": "levelEdge", - "enumType": "Levels", - "filterType": "LevelFilter", - "inputType": "LevelInput", - "orderByType": "LevelsOrderBy", - "patchField": "patch", - "patchType": "LevelPatch", - "tableFieldName": "level", - "tableType": "Level", - "typeName": "levels", - "updateByPrimaryKey": "updateLevel", - "updatePayloadType": "UpdateLevelPayload" - }, - "fields": [{ - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }], - "primaryKeyConstraints": [{ - "name": "levels_pkey", - "fields": [{ - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [], - "uniqueConstraints": [], - "relations": { - "belongsTo": [], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "MessageGroup", - "query": { - "all": "messageGroups", - "create": "createMessageGroup", - "delete": "deleteMessageGroup", - "one": "messageGroup", - "update": "updateMessageGroup" - }, - "inflection": { - "allRows": "messageGroups", - "allRowsSimple": "messageGroupsList", - "conditionType": "MessageGroupCondition", - "connection": "MessageGroupsConnection", - "createField": "createMessageGroup", - "createInputType": "CreateMessageGroupInput", - "createPayloadType": "CreateMessageGroupPayload", - "deleteByPrimaryKey": "deleteMessageGroup", - "deletePayloadType": "DeleteMessageGroupPayload", - "edge": "MessageGroupsEdge", - "edgeField": "messageGroupEdge", - "enumType": "MessageGroups", - "filterType": "MessageGroupFilter", - "inputType": "MessageGroupInput", - "orderByType": "MessageGroupsOrderBy", - "patchField": "patch", - "patchType": "MessageGroupPatch", - "tableFieldName": "messageGroup", - "tableType": "MessageGroup", - "typeName": "message_groups", - "updateByPrimaryKey": "updateMessageGroup", - "updatePayloadType": "UpdateMessageGroupPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "memberIds", - "type": { - "gqlType": "[UUID]", - "isArray": true, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "message_groups_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [], - "uniqueConstraints": [], - "relations": { - "belongsTo": [], - "has": [{ - "fieldName": "messagesByGroupId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "Message", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "content", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "upload", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "upload", - "pgType": "upload", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "messages_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "messages_sender_id_fkey", - "fields": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "messages_group_id_fkey", - "fields": [{ - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "MessageGroup" - } - } - ] - } - }], - "hasMany": [{ - "fieldName": "messagesByGroupId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "Message", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "content", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "upload", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "upload", - "pgType": "upload", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "messages_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "messages_sender_id_fkey", - "fields": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "messages_group_id_fkey", - "fields": [{ - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "MessageGroup" - } - } - ] - } - }], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "Message", - "query": { - "all": "messages", - "create": "createMessage", - "delete": "deleteMessage", - "one": "message", - "update": "updateMessage" - }, - "inflection": { - "allRows": "messages", - "allRowsSimple": "messagesList", - "conditionType": "MessageCondition", - "connection": "MessagesConnection", - "createField": "createMessage", - "createInputType": "CreateMessageInput", - "createPayloadType": "CreateMessagePayload", - "deleteByPrimaryKey": "deleteMessage", - "deletePayloadType": "DeleteMessagePayload", - "edge": "MessagesEdge", - "edgeField": "messageEdge", - "enumType": "Messages", - "filterType": "MessageFilter", - "inputType": "MessageInput", - "orderByType": "MessagesOrderBy", - "patchField": "patch", - "patchType": "MessagePatch", - "tableFieldName": "message", - "tableType": "Message", - "typeName": "messages", - "updateByPrimaryKey": "updateMessage", - "updatePayloadType": "UpdateMessagePayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "content", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "upload", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "upload", - "pgType": "upload", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "messages_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "messages_sender_id_fkey", - "fields": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "messages_group_id_fkey", - "fields": [{ - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "MessageGroup" - } - } - ], - "uniqueConstraints": [], - "relations": { - "belongsTo": [{ - "fieldName": "sender", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }, - { - "fieldName": "group", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "MessageGroup" - } - } - ], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "NewsUpdate", - "query": { - "all": "newsUpdates", - "create": "createNewsUpdate", - "delete": "deleteNewsUpdate", - "one": "newsUpdate", - "update": "updateNewsUpdate" - }, - "inflection": { - "allRows": "newsUpdates", - "allRowsSimple": "newsUpdatesList", - "conditionType": "NewsUpdateCondition", - "connection": "NewsUpdatesConnection", - "createField": "createNewsUpdate", - "createInputType": "CreateNewsUpdateInput", - "createPayloadType": "CreateNewsUpdatePayload", - "deleteByPrimaryKey": "deleteNewsUpdate", - "deletePayloadType": "DeleteNewsUpdatePayload", - "edge": "NewsUpdatesEdge", - "edgeField": "newsUpdateEdge", - "enumType": "NewsUpdates", - "filterType": "NewsUpdateFilter", - "inputType": "NewsUpdateInput", - "orderByType": "NewsUpdatesOrderBy", - "patchField": "patch", - "patchType": "NewsUpdatePatch", - "tableFieldName": "newsUpdate", - "tableType": "NewsUpdate", - "typeName": "news_updates", - "updateByPrimaryKey": "updateNewsUpdate", - "updatePayloadType": "UpdateNewsUpdatePayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "link", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "url", - "pgType": "url", - "subtype": null, - "typmod": null - } - }, - { - "name": "publishedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "photo", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "news_updates_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [], - "uniqueConstraints": [], - "relations": { - "belongsTo": [], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "OrganizationProfile", - "query": { - "all": "organizationProfiles", - "create": "createOrganizationProfile", - "delete": "deleteOrganizationProfile", - "one": "organizationProfile", - "update": "updateOrganizationProfile" - }, - "inflection": { - "allRows": "organizationProfiles", - "allRowsSimple": "organizationProfilesList", - "conditionType": "OrganizationProfileCondition", - "connection": "OrganizationProfilesConnection", - "createField": "createOrganizationProfile", - "createInputType": "CreateOrganizationProfileInput", - "createPayloadType": "CreateOrganizationProfilePayload", - "deleteByPrimaryKey": "deleteOrganizationProfile", - "deletePayloadType": "DeleteOrganizationProfilePayload", - "edge": "OrganizationProfilesEdge", - "edgeField": "organizationProfileEdge", - "enumType": "OrganizationProfiles", - "filterType": "OrganizationProfileFilter", - "inputType": "OrganizationProfileInput", - "orderByType": "OrganizationProfilesOrderBy", - "patchField": "patch", - "patchType": "OrganizationProfilePatch", - "tableFieldName": "organizationProfile", - "tableType": "OrganizationProfile", - "typeName": "organization_profiles", - "updateByPrimaryKey": "updateOrganizationProfile", - "updatePayloadType": "UpdateOrganizationProfilePayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "profilePicture", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "website", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "url", - "pgType": "url", - "subtype": null, - "typmod": null - } - }, - { - "name": "reputation", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "tags", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "organizationId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "organization_profiles_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "organization_profiles_organization_id_fkey", - "fields": [{ - "name": "organizationId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }], - "uniqueConstraints": [{ - "name": "organization_profiles_organization_id_key", - "fields": [{ - "name": "organizationId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "relations": { - "belongsTo": [{ - "fieldName": "organization", - "isUnique": true, - "type": "BelongsTo", - "keys": [{ - "name": "organizationId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "PhoneNumber", - "query": { - "all": "phoneNumbers", - "create": "createPhoneNumber", - "delete": "deletePhoneNumber", - "one": "phoneNumber", - "update": "updatePhoneNumber" - }, - "inflection": { - "allRows": "phoneNumbers", - "allRowsSimple": "phoneNumbersList", - "conditionType": "PhoneNumberCondition", - "connection": "PhoneNumbersConnection", - "createField": "createPhoneNumber", - "createInputType": "CreatePhoneNumberInput", - "createPayloadType": "CreatePhoneNumberPayload", - "deleteByPrimaryKey": "deletePhoneNumber", - "deletePayloadType": "DeletePhoneNumberPayload", - "edge": "PhoneNumbersEdge", - "edgeField": "phoneNumberEdge", - "enumType": "PhoneNumbers", - "filterType": "PhoneNumberFilter", - "inputType": "PhoneNumberInput", - "orderByType": "PhoneNumbersOrderBy", - "patchField": "patch", - "patchType": "PhoneNumberPatch", - "tableFieldName": "phoneNumber", - "tableType": "PhoneNumber", - "typeName": "phone_numbers", - "updateByPrimaryKey": "updatePhoneNumber", - "updatePayloadType": "UpdatePhoneNumberPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "cc", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "number", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "isVerified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "isPrimary", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "phone_numbers_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "phone_numbers_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }], - "uniqueConstraints": [{ - "name": "phone_numbers_number_key", - "fields": [{ - "name": "number", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }] - }], - "relations": { - "belongsTo": [{ - "fieldName": "owner", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "UserAchievement", - "query": { - "all": "userAchievements", - "create": "createUserAchievement", - "delete": "deleteUserAchievement", - "one": "userAchievement", - "update": "updateUserAchievement" - }, - "inflection": { - "allRows": "userAchievements", - "allRowsSimple": "userAchievementsList", - "conditionType": "UserAchievementCondition", - "connection": "UserAchievementsConnection", - "createField": "createUserAchievement", - "createInputType": "CreateUserAchievementInput", - "createPayloadType": "CreateUserAchievementPayload", - "deleteByPrimaryKey": "deleteUserAchievement", - "deletePayloadType": "DeleteUserAchievementPayload", - "edge": "UserAchievementsEdge", - "edgeField": "userAchievementEdge", - "enumType": "UserAchievements", - "filterType": "UserAchievementFilter", - "inputType": "UserAchievementInput", - "orderByType": "UserAchievementsOrderBy", - "patchField": "patch", - "patchType": "UserAchievementPatch", - "tableFieldName": "userAchievement", - "tableType": "UserAchievement", - "typeName": "user_achievements", - "updateByPrimaryKey": "updateUserAchievement", - "updatePayloadType": "UpdateUserAchievementPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "count", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_achievements_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [], - "uniqueConstraints": [{ - "name": "user_achievements_unique_key", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - } - ] - }], - "relations": { - "belongsTo": [], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "UserActionItem", - "query": { - "all": "userActionItems", - "create": "createUserActionItem", - "delete": "deleteUserActionItem", - "one": "userActionItem", - "update": "updateUserActionItem" - }, - "inflection": { - "allRows": "userActionItems", - "allRowsSimple": "userActionItemsList", - "conditionType": "UserActionItemCondition", - "connection": "UserActionItemsConnection", - "createField": "createUserActionItem", - "createInputType": "CreateUserActionItemInput", - "createPayloadType": "CreateUserActionItemPayload", - "deleteByPrimaryKey": "deleteUserActionItem", - "deletePayloadType": "DeleteUserActionItemPayload", - "edge": "UserActionItemsEdge", - "edgeField": "userActionItemEdge", - "enumType": "UserActionItems", - "filterType": "UserActionItemFilter", - "inputType": "UserActionItemInput", - "orderByType": "UserActionItemsOrderBy", - "patchField": "patch", - "patchType": "UserActionItemPatch", - "tableFieldName": "userActionItem", - "tableType": "UserActionItem", - "typeName": "user_action_items", - "updateByPrimaryKey": "updateUserActionItem", - "updatePayloadType": "UpdateUserActionItemPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "value", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "status", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_items_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_items_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_items_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "user_action_items_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_items_action_item_id_fkey", - "fields": [{ - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "ActionItem" - } - } - ], - "uniqueConstraints": [{ - "name": "user_action_items_user_id_user_action_id_action_item_id_key", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ] - }], - "relations": { - "belongsTo": [{ - "fieldName": "user", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }, - { - "fieldName": "action", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "Action" - } - }, - { - "fieldName": "userAction", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "UserAction" - } - }, - { - "fieldName": "actionItem", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "ActionItem" - } - } - ], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "UserActionReaction", - "query": { - "all": "userActionReactions", - "create": "createUserActionReaction", - "delete": "deleteUserActionReaction", - "one": "userActionReaction", - "update": "updateUserActionReaction" - }, - "inflection": { - "allRows": "userActionReactions", - "allRowsSimple": "userActionReactionsList", - "conditionType": "UserActionReactionCondition", - "connection": "UserActionReactionsConnection", - "createField": "createUserActionReaction", - "createInputType": "CreateUserActionReactionInput", - "createPayloadType": "CreateUserActionReactionPayload", - "deleteByPrimaryKey": "deleteUserActionReaction", - "deletePayloadType": "DeleteUserActionReactionPayload", - "edge": "UserActionReactionsEdge", - "edgeField": "userActionReactionEdge", - "enumType": "UserActionReactions", - "filterType": "UserActionReactionFilter", - "inputType": "UserActionReactionInput", - "orderByType": "UserActionReactionsOrderBy", - "patchField": "patch", - "patchType": "UserActionReactionPatch", - "tableFieldName": "userActionReaction", - "tableType": "UserActionReaction", - "typeName": "user_action_reactions", - "updateByPrimaryKey": "updateUserActionReaction", - "updatePayloadType": "UpdateUserActionReactionPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_reactions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_reactions_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_reactions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_reactions_reacter_id_fkey", - "fields": [{ - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_reactions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ], - "uniqueConstraints": [], - "relations": { - "belongsTo": [{ - "fieldName": "userAction", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "UserAction" - } - }, - { - "fieldName": "user", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }, - { - "fieldName": "reacter", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }, - { - "fieldName": "action", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "Action" - } - } - ], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "UserActionResult", - "query": { - "all": "userActionResults", - "create": "createUserActionResult", - "delete": "deleteUserActionResult", - "one": "userActionResult", - "update": "updateUserActionResult" - }, - "inflection": { - "allRows": "userActionResults", - "allRowsSimple": "userActionResultsList", - "conditionType": "UserActionResultCondition", - "connection": "UserActionResultsConnection", - "createField": "createUserActionResult", - "createInputType": "CreateUserActionResultInput", - "createPayloadType": "CreateUserActionResultPayload", - "deleteByPrimaryKey": "deleteUserActionResult", - "deletePayloadType": "DeleteUserActionResultPayload", - "edge": "UserActionResultsEdge", - "edgeField": "userActionResultEdge", - "enumType": "UserActionResults", - "filterType": "UserActionResultFilter", - "inputType": "UserActionResultInput", - "orderByType": "UserActionResultsOrderBy", - "patchField": "patch", - "patchType": "UserActionResultPatch", - "tableFieldName": "userActionResult", - "tableType": "UserActionResult", - "typeName": "user_action_results", - "updateByPrimaryKey": "updateUserActionResult", - "updatePayloadType": "UpdateUserActionResultPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "value", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_results_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_results_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_results_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "user_action_results_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_results_action_result_id_fkey", - "fields": [{ - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "ActionResult" - } - } - ], - "uniqueConstraints": [{ - "name": "user_action_results_user_id_user_action_id_action_result_id_key", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ] - }], - "relations": { - "belongsTo": [{ - "fieldName": "user", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }, - { - "fieldName": "action", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "Action" - } - }, - { - "fieldName": "userAction", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "UserAction" - } - }, - { - "fieldName": "actionResult", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "ActionResult" - } - } - ], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "UserAction", - "query": { - "all": "userActions", - "create": "createUserAction", - "delete": "deleteUserAction", - "one": "userAction", - "update": "updateUserAction" - }, - "inflection": { - "allRows": "userActions", - "allRowsSimple": "userActionsList", - "conditionType": "UserActionCondition", - "connection": "UserActionsConnection", - "createField": "createUserAction", - "createInputType": "CreateUserActionInput", - "createPayloadType": "CreateUserActionPayload", - "deleteByPrimaryKey": "deleteUserAction", - "deletePayloadType": "DeleteUserActionPayload", - "edge": "UserActionsEdge", - "edgeField": "userActionEdge", - "enumType": "UserActions", - "filterType": "UserActionFilter", - "inputType": "UserActionInput", - "orderByType": "UserActionsOrderBy", - "patchField": "patch", - "patchType": "UserActionPatch", - "tableFieldName": "userAction", - "tableType": "UserAction", - "typeName": "user_actions", - "updateByPrimaryKey": "updateUserAction", - "updatePayloadType": "UpdateUserActionPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionStarted", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "complete", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "verified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "verifiedDate", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userRating", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "rejected", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "rejectedReason", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "verifierId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_actions_verifier_id_fkey", - "fields": [{ - "name": "verifierId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ], - "uniqueConstraints": [], - "relations": { - "belongsTo": [{ - "fieldName": "user", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }, - { - "fieldName": "verifier", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "verifierId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }, - { - "fieldName": "action", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "Action" - } - } - ], - "has": [{ - "fieldName": "userActionResults", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionResult", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "value", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_results_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_results_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_results_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "user_action_results_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_results_action_result_id_fkey", - "fields": [{ - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "ActionResult" - } - } - ] - } - }, - { - "fieldName": "userActionItems", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionItem", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "value", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "status", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_items_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_items_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_items_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "user_action_items_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_items_action_item_id_fkey", - "fields": [{ - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "ActionItem" - } - } - ] - } - }, - { - "fieldName": "userActionReactions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionReaction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_reactions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_reactions_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_reactions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_reactions_reacter_id_fkey", - "fields": [{ - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_reactions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - } - ], - "hasMany": [{ - "fieldName": "userActionResults", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionResult", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "value", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_results_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_results_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_results_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "user_action_results_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_results_action_result_id_fkey", - "fields": [{ - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "ActionResult" - } - } - ] - } - }, - { - "fieldName": "userActionItems", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionItem", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "value", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "status", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_items_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_items_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_items_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "user_action_items_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_items_action_item_id_fkey", - "fields": [{ - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "ActionItem" - } - } - ] - } - }, - { - "fieldName": "userActionReactions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionReaction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_reactions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_reactions_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_reactions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_reactions_reacter_id_fkey", - "fields": [{ - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_reactions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - } - ], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "UserCharacteristic", - "query": { - "all": "userCharacteristics", - "create": "createUserCharacteristic", - "delete": "deleteUserCharacteristic", - "one": "userCharacteristic", - "update": "updateUserCharacteristic" - }, - "inflection": { - "allRows": "userCharacteristics", - "allRowsSimple": "userCharacteristicsList", - "conditionType": "UserCharacteristicCondition", - "connection": "UserCharacteristicsConnection", - "createField": "createUserCharacteristic", - "createInputType": "CreateUserCharacteristicInput", - "createPayloadType": "CreateUserCharacteristicPayload", - "deleteByPrimaryKey": "deleteUserCharacteristic", - "deletePayloadType": "DeleteUserCharacteristicPayload", - "edge": "UserCharacteristicsEdge", - "edgeField": "userCharacteristicEdge", - "enumType": "UserCharacteristics", - "filterType": "UserCharacteristicFilter", - "inputType": "UserCharacteristicInput", - "orderByType": "UserCharacteristicsOrderBy", - "patchField": "patch", - "patchType": "UserCharacteristicPatch", - "tableFieldName": "userCharacteristic", - "tableType": "UserCharacteristic", - "typeName": "user_characteristics", - "updateByPrimaryKey": "updateUserCharacteristic", - "updatePayloadType": "UpdateUserCharacteristicPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "income", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "gender", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": 5, - "pgAlias": "char", - "pgType": "bpchar", - "subtype": null, - "typmod": { - "modifier": 5 - } - } - }, - { - "name": "race", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "age", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "dob", - "type": { - "gqlType": "Date", - "isArray": false, - "modifier": null, - "pgAlias": "date", - "pgType": "date", - "subtype": null, - "typmod": null - } - }, - { - "name": "education", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "homeOwnership", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "treeHuggerLevel", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "diyLevel", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "gardenerLevel", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "freeTime", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "researchToDoer", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_characteristics_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_characteristics_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }], - "uniqueConstraints": [{ - "name": "user_characteristics_user_id_key", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "relations": { - "belongsTo": [{ - "fieldName": "user", - "isUnique": true, - "type": "BelongsTo", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "UserConnection", - "query": { - "all": "userConnections", - "create": "createUserConnection", - "delete": "deleteUserConnection", - "one": "userConnection", - "update": "updateUserConnection" - }, - "inflection": { - "allRows": "userConnections", - "allRowsSimple": "userConnectionsList", - "conditionType": "UserConnectionCondition", - "connection": "UserConnectionsConnection", - "createField": "createUserConnection", - "createInputType": "CreateUserConnectionInput", - "createPayloadType": "CreateUserConnectionPayload", - "deleteByPrimaryKey": "deleteUserConnection", - "deletePayloadType": "DeleteUserConnectionPayload", - "edge": "UserConnectionsEdge", - "edgeField": "userConnectionEdge", - "enumType": "UserConnections", - "filterType": "UserConnectionFilter", - "inputType": "UserConnectionInput", - "orderByType": "UserConnectionsOrderBy", - "patchField": "patch", - "patchType": "UserConnectionPatch", - "tableFieldName": "userConnection", - "tableType": "UserConnection", - "typeName": "user_connections", - "updateByPrimaryKey": "updateUserConnection", - "updatePayloadType": "UpdateUserConnectionPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "accepted", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "requesterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "responderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_connections_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_connections_requester_id_fkey", - "fields": [{ - "name": "requesterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_connections_responder_id_fkey", - "fields": [{ - "name": "responderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ], - "uniqueConstraints": [{ - "name": "user_connections_requester_id_responder_id_key", - "fields": [{ - "name": "requesterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "responderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ] - }], - "relations": { - "belongsTo": [{ - "fieldName": "requester", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "requesterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }, - { - "fieldName": "responder", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "responderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - } - ], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "UserContact", - "query": { - "all": "userContacts", - "create": "createUserContact", - "delete": "deleteUserContact", - "one": "userContact", - "update": "updateUserContact" - }, - "inflection": { - "allRows": "userContacts", - "allRowsSimple": "userContactsList", - "conditionType": "UserContactCondition", - "connection": "UserContactsConnection", - "createField": "createUserContact", - "createInputType": "CreateUserContactInput", - "createPayloadType": "CreateUserContactPayload", - "deleteByPrimaryKey": "deleteUserContact", - "deletePayloadType": "DeleteUserContactPayload", - "edge": "UserContactsEdge", - "edgeField": "userContactEdge", - "enumType": "UserContacts", - "filterType": "UserContactFilter", - "inputType": "UserContactInput", - "orderByType": "UserContactsOrderBy", - "patchField": "patch", - "patchType": "UserContactPatch", - "tableFieldName": "userContact", - "tableType": "UserContact", - "typeName": "user_contacts", - "updateByPrimaryKey": "updateUserContact", - "updatePayloadType": "UpdateUserContactPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "vcf", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "fullName", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "emails", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "email", - "pgType": "email", - "subtype": null, - "typmod": null - } - }, - { - "name": "device", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_contacts_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_contacts_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }], - "uniqueConstraints": [], - "relations": { - "belongsTo": [{ - "fieldName": "user", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "UserMessage", - "query": { - "all": "userMessages", - "create": "createUserMessage", - "delete": "deleteUserMessage", - "one": "userMessage", - "update": "updateUserMessage" - }, - "inflection": { - "allRows": "userMessages", - "allRowsSimple": "userMessagesList", - "conditionType": "UserMessageCondition", - "connection": "UserMessagesConnection", - "createField": "createUserMessage", - "createInputType": "CreateUserMessageInput", - "createPayloadType": "CreateUserMessagePayload", - "deleteByPrimaryKey": "deleteUserMessage", - "deletePayloadType": "DeleteUserMessagePayload", - "edge": "UserMessagesEdge", - "edgeField": "userMessageEdge", - "enumType": "UserMessages", - "filterType": "UserMessageFilter", - "inputType": "UserMessageInput", - "orderByType": "UserMessagesOrderBy", - "patchField": "patch", - "patchType": "UserMessagePatch", - "tableFieldName": "userMessage", - "tableType": "UserMessage", - "typeName": "user_messages", - "updateByPrimaryKey": "updateUserMessage", - "updatePayloadType": "UpdateUserMessagePayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "content", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "upload", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "upload", - "pgType": "upload", - "subtype": null, - "typmod": null - } - }, - { - "name": "received", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverRead", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderReaction", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverReaction", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_messages_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_messages_sender_id_fkey", - "fields": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_messages_receiver_id_fkey", - "fields": [{ - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ], - "uniqueConstraints": [], - "relations": { - "belongsTo": [{ - "fieldName": "sender", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }, - { - "fieldName": "receiver", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - } - ], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "UserPassAction", - "query": { - "all": "userPassActions", - "create": "createUserPassAction", - "delete": "deleteUserPassAction", - "one": "userPassAction", - "update": "updateUserPassAction" - }, - "inflection": { - "allRows": "userPassActions", - "allRowsSimple": "userPassActionsList", - "conditionType": "UserPassActionCondition", - "connection": "UserPassActionsConnection", - "createField": "createUserPassAction", - "createInputType": "CreateUserPassActionInput", - "createPayloadType": "CreateUserPassActionPayload", - "deleteByPrimaryKey": "deleteUserPassAction", - "deletePayloadType": "DeleteUserPassActionPayload", - "edge": "UserPassActionsEdge", - "edgeField": "userPassActionEdge", - "enumType": "UserPassActions", - "filterType": "UserPassActionFilter", - "inputType": "UserPassActionInput", - "orderByType": "UserPassActionsOrderBy", - "patchField": "patch", - "patchType": "UserPassActionPatch", - "tableFieldName": "userPassAction", - "tableType": "UserPassAction", - "typeName": "user_pass_actions", - "updateByPrimaryKey": "updateUserPassAction", - "updatePayloadType": "UpdateUserPassActionPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_pass_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_pass_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_pass_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ], - "uniqueConstraints": [{ - "name": "user_pass_actions_user_id_action_id_key", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ] - }], - "relations": { - "belongsTo": [{ - "fieldName": "user", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }, - { - "fieldName": "action", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "Action" - } - } - ], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "UserProfile", - "query": { - "all": "userProfiles", - "create": "createUserProfile", - "delete": "deleteUserProfile", - "one": "userProfile", - "update": "updateUserProfile" - }, - "inflection": { - "allRows": "userProfiles", - "allRowsSimple": "userProfilesList", - "conditionType": "UserProfileCondition", - "connection": "UserProfilesConnection", - "createField": "createUserProfile", - "createInputType": "CreateUserProfileInput", - "createPayloadType": "CreateUserProfilePayload", - "deleteByPrimaryKey": "deleteUserProfile", - "deletePayloadType": "DeleteUserProfilePayload", - "edge": "UserProfilesEdge", - "edgeField": "userProfileEdge", - "enumType": "UserProfiles", - "filterType": "UserProfileFilter", - "inputType": "UserProfileInput", - "orderByType": "UserProfilesOrderBy", - "patchField": "patch", - "patchType": "UserProfilePatch", - "tableFieldName": "userProfile", - "tableType": "UserProfile", - "typeName": "user_profiles", - "updateByPrimaryKey": "updateUserProfile", - "updatePayloadType": "UpdateUserProfilePayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "profilePicture", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "bio", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "reputation", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "displayName", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "tags", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "desired", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_profiles_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_profiles_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }], - "uniqueConstraints": [{ - "name": "user_profiles_user_id_key", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "relations": { - "belongsTo": [{ - "fieldName": "user", - "isUnique": true, - "type": "BelongsTo", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "UserSavedAction", - "query": { - "all": "userSavedActions", - "create": "createUserSavedAction", - "delete": "deleteUserSavedAction", - "one": "userSavedAction", - "update": "updateUserSavedAction" - }, - "inflection": { - "allRows": "userSavedActions", - "allRowsSimple": "userSavedActionsList", - "conditionType": "UserSavedActionCondition", - "connection": "UserSavedActionsConnection", - "createField": "createUserSavedAction", - "createInputType": "CreateUserSavedActionInput", - "createPayloadType": "CreateUserSavedActionPayload", - "deleteByPrimaryKey": "deleteUserSavedAction", - "deletePayloadType": "DeleteUserSavedActionPayload", - "edge": "UserSavedActionsEdge", - "edgeField": "userSavedActionEdge", - "enumType": "UserSavedActions", - "filterType": "UserSavedActionFilter", - "inputType": "UserSavedActionInput", - "orderByType": "UserSavedActionsOrderBy", - "patchField": "patch", - "patchType": "UserSavedActionPatch", - "tableFieldName": "userSavedAction", - "tableType": "UserSavedAction", - "typeName": "user_saved_actions", - "updateByPrimaryKey": "updateUserSavedAction", - "updatePayloadType": "UpdateUserSavedActionPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_saved_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_saved_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_saved_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ], - "uniqueConstraints": [{ - "name": "user_saved_actions_user_id_action_id_key", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ] - }], - "relations": { - "belongsTo": [{ - "fieldName": "user", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }, - { - "fieldName": "action", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "Action" - } - } - ], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "UserSetting", - "query": { - "all": "userSettings", - "create": "createUserSetting", - "delete": "deleteUserSetting", - "one": "userSetting", - "update": "updateUserSetting" - }, - "inflection": { - "allRows": "userSettings", - "allRowsSimple": "userSettingsList", - "conditionType": "UserSettingCondition", - "connection": "UserSettingsConnection", - "createField": "createUserSetting", - "createInputType": "CreateUserSettingInput", - "createPayloadType": "CreateUserSettingPayload", - "deleteByPrimaryKey": "deleteUserSetting", - "deletePayloadType": "DeleteUserSettingPayload", - "edge": "UserSettingsEdge", - "edgeField": "userSettingEdge", - "enumType": "UserSettings", - "filterType": "UserSettingFilter", - "inputType": "UserSettingInput", - "orderByType": "UserSettingsOrderBy", - "patchField": "patch", - "patchType": "UserSettingPatch", - "tableFieldName": "userSetting", - "tableType": "UserSetting", - "typeName": "user_settings", - "updateByPrimaryKey": "updateUserSetting", - "updatePayloadType": "UpdateUserSettingPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "firstName", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "lastName", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "searchRadius", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "zip", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_settings_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_settings_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }], - "uniqueConstraints": [{ - "name": "user_settings_user_id_key", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "relations": { - "belongsTo": [{ - "fieldName": "user", - "isUnique": true, - "type": "BelongsTo", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "UserStep", - "query": { - "all": "userSteps", - "create": "createUserStep", - "delete": "deleteUserStep", - "one": "userStep", - "update": "updateUserStep" - }, - "inflection": { - "allRows": "userSteps", - "allRowsSimple": "userStepsList", - "conditionType": "UserStepCondition", - "connection": "UserStepsConnection", - "createField": "createUserStep", - "createInputType": "CreateUserStepInput", - "createPayloadType": "CreateUserStepPayload", - "deleteByPrimaryKey": "deleteUserStep", - "deletePayloadType": "DeleteUserStepPayload", - "edge": "UserStepsEdge", - "edgeField": "userStepEdge", - "enumType": "UserSteps", - "filterType": "UserStepFilter", - "inputType": "UserStepInput", - "orderByType": "UserStepsOrderBy", - "patchField": "patch", - "patchType": "UserStepPatch", - "tableFieldName": "userStep", - "tableType": "UserStep", - "typeName": "user_steps", - "updateByPrimaryKey": "updateUserStep", - "updatePayloadType": "UpdateUserStepPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "count", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_steps_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [], - "uniqueConstraints": [], - "relations": { - "belongsTo": [], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "UserViewedAction", - "query": { - "all": "userViewedActions", - "create": "createUserViewedAction", - "delete": "deleteUserViewedAction", - "one": "userViewedAction", - "update": "updateUserViewedAction" - }, - "inflection": { - "allRows": "userViewedActions", - "allRowsSimple": "userViewedActionsList", - "conditionType": "UserViewedActionCondition", - "connection": "UserViewedActionsConnection", - "createField": "createUserViewedAction", - "createInputType": "CreateUserViewedActionInput", - "createPayloadType": "CreateUserViewedActionPayload", - "deleteByPrimaryKey": "deleteUserViewedAction", - "deletePayloadType": "DeleteUserViewedActionPayload", - "edge": "UserViewedActionsEdge", - "edgeField": "userViewedActionEdge", - "enumType": "UserViewedActions", - "filterType": "UserViewedActionFilter", - "inputType": "UserViewedActionInput", - "orderByType": "UserViewedActionsOrderBy", - "patchField": "patch", - "patchType": "UserViewedActionPatch", - "tableFieldName": "userViewedAction", - "tableType": "UserViewedAction", - "typeName": "user_viewed_actions", - "updateByPrimaryKey": "updateUserViewedAction", - "updatePayloadType": "UpdateUserViewedActionPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_viewed_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_viewed_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_viewed_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ], - "uniqueConstraints": [], - "relations": { - "belongsTo": [{ - "fieldName": "user", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }, - { - "fieldName": "action", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "Action" - } - } - ], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "User", - "query": { - "all": "users", - "create": "createUser", - "delete": "deleteUser", - "one": "user", - "update": "updateUser" - }, - "inflection": { - "allRows": "users", - "allRowsSimple": "usersList", - "conditionType": "UserCondition", - "connection": "UsersConnection", - "createField": "createUser", - "createInputType": "CreateUserInput", - "createPayloadType": "CreateUserPayload", - "deleteByPrimaryKey": "deleteUser", - "deletePayloadType": "DeleteUserPayload", - "edge": "UsersEdge", - "edgeField": "userEdge", - "enumType": "Users", - "filterType": "UserFilter", - "inputType": "UserInput", - "orderByType": "UsersOrderBy", - "patchField": "patch", - "patchType": "UserPatch", - "tableFieldName": "user", - "tableType": "User", - "typeName": "users", - "updateByPrimaryKey": "updateUser", - "updatePayloadType": "UpdateUserPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "users_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [], - "uniqueConstraints": [], - "relations": { - "belongsTo": [], - "has": [{ - "fieldName": "connectedAccountsByOwnerId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "ConnectedAccount", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "service", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "identifier", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "details", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "isVerified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "connected_accounts_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "connected_accounts_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "emailsByOwnerId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "Email", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "email", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "email", - "pgType": "email", - "subtype": null, - "typmod": null - } - }, - { - "name": "isVerified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "isPrimary", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "emails_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "emails_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "phoneNumbersByOwnerId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "PhoneNumber", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "cc", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "number", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "isVerified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "isPrimary", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "phone_numbers_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "phone_numbers_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "cryptoAddressesByOwnerId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "CryptoAddress", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "address", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "isVerified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "isPrimary", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "crypto_addresses_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "crypto_addresses_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "invitesBySenderId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "Invite", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "email", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "email", - "pgType": "email", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "inviteToken", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "inviteValid", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "inviteLimit", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "inviteCount", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "multiple", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "data", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "expiresAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "invites_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "invites_sender_id_fkey", - "fields": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "claimedInvitesBySenderId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "ClaimedInvite", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "data", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "claimed_invites_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "claimed_invites_sender_id_fkey", - "fields": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "claimed_invites_receiver_id_fkey", - "fields": [{ - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - }, - { - "fieldName": "claimedInvitesByReceiverId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "ClaimedInvite", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "data", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "claimed_invites_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "claimed_invites_sender_id_fkey", - "fields": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "claimed_invites_receiver_id_fkey", - "fields": [{ - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - }, - { - "fieldName": "authAccountsByOwnerId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "AuthAccount", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "service", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "identifier", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "details", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "isVerified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "auth_accounts_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "auth_accounts_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "userProfile", - "isUnique": true, - "type": "hasOne", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserProfile", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "profilePicture", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "bio", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "reputation", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "displayName", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "tags", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "desired", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_profiles_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_profiles_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "userSetting", - "isUnique": true, - "type": "hasOne", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserSetting", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "firstName", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "lastName", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "searchRadius", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "zip", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_settings_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_settings_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "userCharacteristic", - "isUnique": true, - "type": "hasOne", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserCharacteristic", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "income", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "gender", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": 5, - "pgAlias": "char", - "pgType": "bpchar", - "subtype": null, - "typmod": { - "modifier": 5 - } - } - }, - { - "name": "race", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "age", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "dob", - "type": { - "gqlType": "Date", - "isArray": false, - "modifier": null, - "pgAlias": "date", - "pgType": "date", - "subtype": null, - "typmod": null - } - }, - { - "name": "education", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "homeOwnership", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "treeHuggerLevel", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "diyLevel", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "gardenerLevel", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "freeTime", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "researchToDoer", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_characteristics_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_characteristics_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "userContacts", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserContact", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "vcf", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "fullName", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "emails", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "email", - "pgType": "email", - "subtype": null, - "typmod": null - } - }, - { - "name": "device", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_contacts_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_contacts_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "userConnectionsByRequesterId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "requesterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserConnection", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "accepted", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "requesterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "responderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_connections_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_connections_requester_id_fkey", - "fields": [{ - "name": "requesterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_connections_responder_id_fkey", - "fields": [{ - "name": "responderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - }, - { - "fieldName": "userConnectionsByResponderId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "responderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserConnection", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "accepted", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "requesterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "responderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_connections_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_connections_requester_id_fkey", - "fields": [{ - "name": "requesterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_connections_responder_id_fkey", - "fields": [{ - "name": "responderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - }, - { - "fieldName": "actionsByOwnerId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "Action", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "slug", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "photo", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "title", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "url", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "url", - "pgType": "url", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "discoveryHeader", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "discoveryDescription", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "enableNotifications", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "enableNotificationsText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "search", - "type": { - "gqlType": "FullText", - "isArray": false, - "modifier": null, - "pgAlias": "tsvector", - "pgType": "tsvector", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "locationRadius", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "timeRequired", - "type": { - "gqlType": "Interval", - "isArray": false, - "modifier": null, - "pgAlias": "interval", - "pgType": "interval", - "subtype": null, - "typmod": null - } - }, - { - "name": "startDate", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "endDate", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "approved", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "rewardAmount", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "activityFeedText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "callToAction", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "completedActionText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "alreadyCompletedActionText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "tags", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "actions_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "actionGoalsByOwnerId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "ActionGoal", - "fields": [{ - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "action_goals_pkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ] - }], - "foreignKeyConstraints": [{ - "name": "action_goals_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "action_goals_goal_id_fkey", - "fields": [{ - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Goal" - } - }, - { - "name": "action_goals_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - }, - { - "fieldName": "actionResultsByOwnerId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "ActionResult", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "action_results_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "action_results_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "action_results_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - }, - { - "fieldName": "userActions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionStarted", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "complete", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "verified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "verifiedDate", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userRating", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "rejected", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "rejectedReason", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "verifierId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_actions_verifier_id_fkey", - "fields": [{ - "name": "verifierId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userActionsByVerifierId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "verifierId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionStarted", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "complete", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "verified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "verifiedDate", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userRating", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "rejected", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "rejectedReason", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "verifierId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_actions_verifier_id_fkey", - "fields": [{ - "name": "verifierId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userActionResults", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionResult", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "value", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_results_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_results_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_results_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "user_action_results_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_results_action_result_id_fkey", - "fields": [{ - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "ActionResult" - } - } - ] - } - }, - { - "fieldName": "userActionItems", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionItem", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "value", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "status", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_items_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_items_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_items_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "user_action_items_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_items_action_item_id_fkey", - "fields": [{ - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "ActionItem" - } - } - ] - } - }, - { - "fieldName": "organizationProfileByOrganizationId", - "isUnique": true, - "type": "hasOne", - "keys": [{ - "name": "organizationId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "OrganizationProfile", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "profilePicture", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "website", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "url", - "pgType": "url", - "subtype": null, - "typmod": null - } - }, - { - "name": "reputation", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "tags", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "organizationId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "organization_profiles_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "organization_profiles_organization_id_fkey", - "fields": [{ - "name": "organizationId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "userPassActions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserPassAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_pass_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_pass_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_pass_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userSavedActions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserSavedAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_saved_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_saved_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_saved_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userViewedActions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserViewedAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_viewed_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_viewed_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_viewed_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userActionReactions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionReaction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_reactions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_reactions_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_reactions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_reactions_reacter_id_fkey", - "fields": [{ - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_reactions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userActionReactionsByReacterId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionReaction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_reactions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_reactions_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_reactions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_reactions_reacter_id_fkey", - "fields": [{ - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_reactions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userMessagesBySenderId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserMessage", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "content", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "upload", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "upload", - "pgType": "upload", - "subtype": null, - "typmod": null - } - }, - { - "name": "received", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverRead", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderReaction", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverReaction", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_messages_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_messages_sender_id_fkey", - "fields": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_messages_receiver_id_fkey", - "fields": [{ - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - }, - { - "fieldName": "userMessagesByReceiverId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserMessage", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "content", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "upload", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "upload", - "pgType": "upload", - "subtype": null, - "typmod": null - } - }, - { - "name": "received", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverRead", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderReaction", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverReaction", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_messages_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_messages_sender_id_fkey", - "fields": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_messages_receiver_id_fkey", - "fields": [{ - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - }, - { - "fieldName": "messagesBySenderId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "Message", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "content", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "upload", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "upload", - "pgType": "upload", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "messages_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "messages_sender_id_fkey", - "fields": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "messages_group_id_fkey", - "fields": [{ - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "MessageGroup" - } - } - ] - } - } - ], - "hasMany": [{ - "fieldName": "connectedAccountsByOwnerId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "ConnectedAccount", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "service", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "identifier", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "details", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "isVerified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "connected_accounts_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "connected_accounts_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "emailsByOwnerId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "Email", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "email", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "email", - "pgType": "email", - "subtype": null, - "typmod": null - } - }, - { - "name": "isVerified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "isPrimary", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "emails_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "emails_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "phoneNumbersByOwnerId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "PhoneNumber", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "cc", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "number", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "isVerified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "isPrimary", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "phone_numbers_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "phone_numbers_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "cryptoAddressesByOwnerId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "CryptoAddress", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "address", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "isVerified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "isPrimary", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "crypto_addresses_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "crypto_addresses_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "invitesBySenderId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "Invite", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "email", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "email", - "pgType": "email", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "inviteToken", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "inviteValid", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "inviteLimit", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "inviteCount", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "multiple", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "data", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "expiresAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "invites_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "invites_sender_id_fkey", - "fields": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "claimedInvitesBySenderId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "ClaimedInvite", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "data", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "claimed_invites_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "claimed_invites_sender_id_fkey", - "fields": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "claimed_invites_receiver_id_fkey", - "fields": [{ - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - }, - { - "fieldName": "claimedInvitesByReceiverId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "ClaimedInvite", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "data", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "claimed_invites_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "claimed_invites_sender_id_fkey", - "fields": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "claimed_invites_receiver_id_fkey", - "fields": [{ - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - }, - { - "fieldName": "authAccountsByOwnerId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "AuthAccount", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "service", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "identifier", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "details", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "isVerified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "auth_accounts_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "auth_accounts_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "userContacts", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserContact", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "vcf", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "fullName", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "emails", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "email", - "pgType": "email", - "subtype": null, - "typmod": null - } - }, - { - "name": "device", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_contacts_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_contacts_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "userConnectionsByRequesterId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "requesterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserConnection", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "accepted", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "requesterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "responderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_connections_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_connections_requester_id_fkey", - "fields": [{ - "name": "requesterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_connections_responder_id_fkey", - "fields": [{ - "name": "responderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - }, - { - "fieldName": "userConnectionsByResponderId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "responderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserConnection", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "accepted", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "requesterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "responderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_connections_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_connections_requester_id_fkey", - "fields": [{ - "name": "requesterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_connections_responder_id_fkey", - "fields": [{ - "name": "responderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - }, - { - "fieldName": "actionsByOwnerId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "Action", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "slug", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "photo", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "title", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "url", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "url", - "pgType": "url", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "discoveryHeader", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "discoveryDescription", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "enableNotifications", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "enableNotificationsText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "search", - "type": { - "gqlType": "FullText", - "isArray": false, - "modifier": null, - "pgAlias": "tsvector", - "pgType": "tsvector", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "locationRadius", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "timeRequired", - "type": { - "gqlType": "Interval", - "isArray": false, - "modifier": null, - "pgAlias": "interval", - "pgType": "interval", - "subtype": null, - "typmod": null - } - }, - { - "name": "startDate", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "endDate", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "approved", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "rewardAmount", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "activityFeedText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "callToAction", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "completedActionText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "alreadyCompletedActionText", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "tags", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "actions_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "actionGoalsByOwnerId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "ActionGoal", - "fields": [{ - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "action_goals_pkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ] - }], - "foreignKeyConstraints": [{ - "name": "action_goals_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "action_goals_goal_id_fkey", - "fields": [{ - "name": "goalId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Goal" - } - }, - { - "name": "action_goals_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - }, - { - "fieldName": "actionResultsByOwnerId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "ActionResult", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "action_results_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "action_results_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "action_results_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - }, - { - "fieldName": "userActions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionStarted", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "complete", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "verified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "verifiedDate", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userRating", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "rejected", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "rejectedReason", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "verifierId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_actions_verifier_id_fkey", - "fields": [{ - "name": "verifierId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userActionsByVerifierId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "verifierId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionStarted", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "complete", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "verified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "verifiedDate", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userRating", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "rejected", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "rejectedReason", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "verifierId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_actions_verifier_id_fkey", - "fields": [{ - "name": "verifierId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userActionResults", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionResult", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "value", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_results_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_results_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_results_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "user_action_results_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_results_action_result_id_fkey", - "fields": [{ - "name": "actionResultId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "ActionResult" - } - } - ] - } - }, - { - "fieldName": "userActionItems", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionItem", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "value", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "status", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_items_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_items_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_items_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - }, - { - "name": "user_action_items_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_items_action_item_id_fkey", - "fields": [{ - "name": "actionItemId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "ActionItem" - } - } - ] - } - }, - { - "fieldName": "userPassActions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserPassAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_pass_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_pass_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_pass_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userSavedActions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserSavedAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_saved_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_saved_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_saved_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userViewedActions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserViewedAction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_viewed_actions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_viewed_actions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_viewed_actions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userActionReactions", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionReaction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_reactions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_reactions_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_reactions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_reactions_reacter_id_fkey", - "fields": [{ - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_reactions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userActionReactionsByReacterId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserActionReaction", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_action_reactions_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_action_reactions_user_action_id_fkey", - "fields": [{ - "name": "userActionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "UserAction" - } - }, - { - "name": "user_action_reactions_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_reactions_reacter_id_fkey", - "fields": [{ - "name": "reacterId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_action_reactions_action_id_fkey", - "fields": [{ - "name": "actionId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "Action" - } - } - ] - } - }, - { - "fieldName": "userMessagesBySenderId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserMessage", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "content", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "upload", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "upload", - "pgType": "upload", - "subtype": null, - "typmod": null - } - }, - { - "name": "received", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverRead", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderReaction", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverReaction", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_messages_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_messages_sender_id_fkey", - "fields": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_messages_receiver_id_fkey", - "fields": [{ - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - }, - { - "fieldName": "userMessagesByReceiverId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserMessage", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "content", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "upload", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "upload", - "pgType": "upload", - "subtype": null, - "typmod": null - } - }, - { - "name": "received", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverRead", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderReaction", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverReaction", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_messages_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_messages_sender_id_fkey", - "fields": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "user_messages_receiver_id_fkey", - "fields": [{ - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - } - }, - { - "fieldName": "messagesBySenderId", - "isUnique": false, - "type": "hasMany", - "keys": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "Message", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "content", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "upload", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "upload", - "pgType": "upload", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "messages_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "messages_sender_id_fkey", - "fields": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "messages_group_id_fkey", - "fields": [{ - "name": "groupId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "MessageGroup" - } - } - ] - } - } - ], - "hasOne": [{ - "fieldName": "userProfile", - "isUnique": true, - "type": "hasOne", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserProfile", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "profilePicture", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "bio", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "reputation", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "displayName", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "tags", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "desired", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_profiles_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_profiles_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "userSetting", - "isUnique": true, - "type": "hasOne", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserSetting", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "firstName", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "lastName", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "searchRadius", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "zip", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_settings_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_settings_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "userCharacteristic", - "isUnique": true, - "type": "hasOne", - "keys": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "UserCharacteristic", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "income", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "gender", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": 5, - "pgAlias": "char", - "pgType": "bpchar", - "subtype": null, - "typmod": { - "modifier": 5 - } - } - }, - { - "name": "race", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "age", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "dob", - "type": { - "gqlType": "Date", - "isArray": false, - "modifier": null, - "pgAlias": "date", - "pgType": "date", - "subtype": null, - "typmod": null - } - }, - { - "name": "education", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "homeOwnership", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "treeHuggerLevel", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "diyLevel", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "gardenerLevel", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "freeTime", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "researchToDoer", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "smallint", - "pgType": "int2", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "user_characteristics_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "user_characteristics_user_id_fkey", - "fields": [{ - "name": "userId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - }, - { - "fieldName": "organizationProfileByOrganizationId", - "isUnique": true, - "type": "hasOne", - "keys": [{ - "name": "organizationId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "referencedBy": { - "name": "OrganizationProfile", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "name", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "profilePicture", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "image", - "pgType": "image", - "subtype": null, - "typmod": null - } - }, - { - "name": "description", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "website", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "url", - "pgType": "url", - "subtype": null, - "typmod": null - } - }, - { - "name": "reputation", - "type": { - "gqlType": "BigFloat", - "isArray": false, - "modifier": null, - "pgAlias": "numeric", - "pgType": "numeric", - "subtype": null, - "typmod": null - } - }, - { - "name": "tags", - "type": { - "gqlType": "[String]", - "isArray": true, - "modifier": null, - "pgAlias": "citext", - "pgType": "citext", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "organizationId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "organization_profiles_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "organization_profiles_organization_id_fkey", - "fields": [{ - "name": "organizationId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }] - } - } - ], - "manyToMany": [{ - "fieldName": "usersByClaimedInviteSenderIdAndReceiverId", - "type": "ManyToMany", - "leftKeyAttributes": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "rightKeyAttributes": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "junctionTable": { - "name": "ClaimedInvite", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "data", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "query": { - "all": "claimedInvites", - "create": "createClaimedInvite", - "delete": "deleteClaimedInvite", - "one": "claimedInvite", - "update": "updateClaimedInvite" - }, - "primaryKeyConstraints": [{ - "name": "claimed_invites_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "claimed_invites_sender_id_fkey", - "fields": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "claimed_invites_receiver_id_fkey", - "fields": [{ - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - }, - "rightTable": { - "name": "User", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - } - ], - "query": { - "all": "users", - "create": "createUser", - "delete": "deleteUser", - "one": "user", - "update": "updateUser" - }, - "primaryKeyConstraints": [{ - "name": "users_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [] - } - }, - { - "fieldName": "usersByClaimedInviteReceiverIdAndSenderId", - "type": "ManyToMany", - "leftKeyAttributes": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "rightKeyAttributes": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "junctionTable": { - "name": "ClaimedInvite", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "data", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "query": { - "all": "claimedInvites", - "create": "createClaimedInvite", - "delete": "deleteClaimedInvite", - "one": "claimedInvite", - "update": "updateClaimedInvite" - }, - "primaryKeyConstraints": [{ - "name": "claimed_invites_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "claimed_invites_sender_id_fkey", - "fields": [{ - "name": "senderId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }, - { - "name": "claimed_invites_receiver_id_fkey", - "fields": [{ - "name": "receiverId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - } - ] - }, - "rightTable": { - "name": "User", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "type", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - } - ], - "query": { - "all": "users", - "create": "createUser", - "delete": "deleteUser", - "one": "user", - "update": "updateUser" - }, - "primaryKeyConstraints": [{ - "name": "users_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [] - } - } - ] - } - }, - { - "name": "ZipCode", - "query": { - "all": "zipCodes", - "create": "createZipCode", - "delete": "deleteZipCode", - "one": "zipCode", - "update": "updateZipCode" - }, - "inflection": { - "allRows": "zipCodes", - "allRowsSimple": "zipCodesList", - "conditionType": "ZipCodeCondition", - "connection": "ZipCodesConnection", - "createField": "createZipCode", - "createInputType": "CreateZipCodeInput", - "createPayloadType": "CreateZipCodePayload", - "deleteByPrimaryKey": "deleteZipCode", - "deletePayloadType": "DeleteZipCodePayload", - "edge": "ZipCodesEdge", - "edgeField": "zipCodeEdge", - "enumType": "ZipCodes", - "filterType": "ZipCodeFilter", - "inputType": "ZipCodeInput", - "orderByType": "ZipCodesOrderBy", - "patchField": "patch", - "patchType": "ZipCodePatch", - "tableFieldName": "zipCode", - "tableType": "ZipCode", - "typeName": "zip_codes", - "updateByPrimaryKey": "updateZipCode", - "updatePayloadType": "UpdateZipCodePayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "zip", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }, - { - "name": "location", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107460, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPoint", - "typmod": { - "srid": 4326, - "subtype": 1, - "hasZ": false, - "hasM": false, - "gisType": "Point" - } - } - }, - { - "name": "bbox", - "type": { - "gqlType": "GeoJSON", - "isArray": false, - "modifier": 1107468, - "pgAlias": "geometry", - "pgType": "geometry", - "subtype": "GeometryPolygon", - "typmod": { - "srid": 4326, - "subtype": 3, - "hasZ": false, - "hasM": false, - "gisType": "Polygon" - } - } - }, - { - "name": "createdBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedBy", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "createdAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - }, - { - "name": "updatedAt", - "type": { - "gqlType": "Datetime", - "isArray": false, - "modifier": null, - "pgAlias": "timestamptz", - "pgType": "timestamptz", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "zip_codes_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [], - "uniqueConstraints": [{ - "name": "zip_codes_zip_key", - "fields": [{ - "name": "zip", - "type": { - "gqlType": "Int", - "isArray": false, - "modifier": null, - "pgAlias": "int", - "pgType": "int4", - "subtype": null, - "typmod": null - } - }] - }], - "relations": { - "belongsTo": [], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - }, - { - "name": "AuthAccount", - "query": { - "all": "authAccounts", - "create": "createAuthAccount", - "delete": "deleteAuthAccount", - "one": "authAccount", - "update": "updateAuthAccount" - }, - "inflection": { - "allRows": "authAccounts", - "allRowsSimple": "authAccountsList", - "conditionType": "AuthAccountCondition", - "connection": "AuthAccountsConnection", - "createField": "createAuthAccount", - "createInputType": "CreateAuthAccountInput", - "createPayloadType": "CreateAuthAccountPayload", - "deleteByPrimaryKey": "deleteAuthAccount", - "deletePayloadType": "DeleteAuthAccountPayload", - "edge": "AuthAccountsEdge", - "edgeField": "authAccountEdge", - "enumType": "AuthAccounts", - "filterType": "AuthAccountFilter", - "inputType": "AuthAccountInput", - "orderByType": "AuthAccountsOrderBy", - "patchField": "patch", - "patchType": "AuthAccountPatch", - "tableFieldName": "authAccount", - "tableType": "AuthAccount", - "typeName": "auth_accounts", - "updateByPrimaryKey": "updateAuthAccount", - "updatePayloadType": "UpdateAuthAccountPayload" - }, - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }, - { - "name": "service", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "identifier", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "details", - "type": { - "gqlType": "JSON", - "isArray": false, - "modifier": null, - "pgAlias": "jsonb", - "pgType": "jsonb", - "subtype": null, - "typmod": null - } - }, - { - "name": "isVerified", - "type": { - "gqlType": "Boolean", - "isArray": false, - "modifier": null, - "pgAlias": "boolean", - "pgType": "bool", - "subtype": null, - "typmod": null - } - } - ], - "primaryKeyConstraints": [{ - "name": "auth_accounts_pkey", - "fields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }] - }], - "foreignKeyConstraints": [{ - "name": "auth_accounts_owner_id_fkey", - "fields": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refFields": [{ - "name": "id", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "refTable": { - "name": "User" - } - }], - "uniqueConstraints": [{ - "name": "auth_accounts_service_identifier_key", - "fields": [{ - "name": "service", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - }, - { - "name": "identifier", - "type": { - "gqlType": "String", - "isArray": false, - "modifier": null, - "pgAlias": "text", - "pgType": "text", - "subtype": null, - "typmod": null - } - } - ] - }], - "relations": { - "belongsTo": [{ - "fieldName": "owner", - "isUnique": false, - "type": "BelongsTo", - "keys": [{ - "name": "ownerId", - "type": { - "gqlType": "UUID", - "isArray": false, - "modifier": null, - "pgAlias": "uuid", - "pgType": "uuid", - "subtype": null, - "typmod": null - } - }], - "references": { - "name": "User" - } - }], - "has": [], - "hasMany": [], - "hasOne": [], - "manyToMany": [] - } - } - ] - } + "_meta": { + "tables": [ + { + "name": "ActionGoal", + "query": { + "all": "actionGoals", + "create": "createActionGoal", + "delete": "deleteActionGoal", + "one": "actionGoal", + "update": "updateActionGoal" + }, + "inflection": { + "allRows": "actionGoals", + "allRowsSimple": "actionGoalsList", + "conditionType": "ActionGoalCondition", + "connection": "ActionGoalsConnection", + "createField": "createActionGoal", + "createInputType": "CreateActionGoalInput", + "createPayloadType": "CreateActionGoalPayload", + "deleteByPrimaryKey": "deleteActionGoal", + "deletePayloadType": "DeleteActionGoalPayload", + "edge": "ActionGoalsEdge", + "edgeField": "actionGoalEdge", + "enumType": "ActionGoals", + "filterType": "ActionGoalFilter", + "inputType": "ActionGoalInput", + "orderByType": "ActionGoalsOrderBy", + "patchField": "patch", + "patchType": "ActionGoalPatch", + "tableFieldName": "actionGoal", + "tableType": "ActionGoal", + "typeName": "action_goals", + "updateByPrimaryKey": "updateActionGoal", + "updatePayloadType": "UpdateActionGoalPayload" + }, + "fields": [ + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "action_goals_pkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "action_goals_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "action_goals_goal_id_fkey", + "fields": [ + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Goal" + } + }, + { + "name": "action_goals_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ], + "uniqueConstraints": [], + "relations": { + "belongsTo": [ + { + "fieldName": "action", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "Action" + } + }, + { + "fieldName": "goal", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "Goal" + } + }, + { + "fieldName": "owner", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "ActionItem", + "query": { + "all": "actionItems", + "create": "createActionItem", + "delete": "deleteActionItem", + "one": "actionItem", + "update": "updateActionItem" + }, + "inflection": { + "allRows": "actionItems", + "allRowsSimple": "actionItemsList", + "conditionType": "ActionItemCondition", + "connection": "ActionItemsConnection", + "createField": "createActionItem", + "createInputType": "CreateActionItemInput", + "createPayloadType": "CreateActionItemPayload", + "deleteByPrimaryKey": "deleteActionItem", + "deletePayloadType": "DeleteActionItemPayload", + "edge": "ActionItemsEdge", + "edgeField": "actionItemEdge", + "enumType": "ActionItems", + "filterType": "ActionItemFilter", + "inputType": "ActionItemInput", + "orderByType": "ActionItemsOrderBy", + "patchField": "patch", + "patchType": "ActionItemPatch", + "tableFieldName": "actionItem", + "tableType": "ActionItem", + "typeName": "action_items", + "updateByPrimaryKey": "updateActionItem", + "updatePayloadType": "UpdateActionItemPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "itemOrder", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "timeRequired", + "type": { + "gqlType": "Interval", + "isArray": false, + "modifier": null, + "pgAlias": "interval", + "pgType": "interval", + "subtype": null, + "typmod": null + } + }, + { + "name": "isRequired", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "notificationText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "embedCode", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "url", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "url", + "pgType": "url", + "subtype": null, + "typmod": null + } + }, + { + "name": "media", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "upload", + "pgType": "upload", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "action_items_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "action_items_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ], + "uniqueConstraints": [ + { + "name": "action_items_name_action_id_key", + "fields": [ + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [ + { + "fieldName": "action", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "Action" + } + } + ], + "has": [ + { + "fieldName": "userActionItems", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionItem", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "value", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "status", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_items_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_items_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_items_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "user_action_items_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_items_action_item_id_fkey", + "fields": [ + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "ActionItem" + } + } + ] + } + } + ], + "hasMany": [ + { + "fieldName": "userActionItems", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionItem", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "value", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "status", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_items_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_items_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_items_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "user_action_items_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_items_action_item_id_fkey", + "fields": [ + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "ActionItem" + } + } + ] + } + } + ], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "ActionResult", + "query": { + "all": "actionResults", + "create": "createActionResult", + "delete": "deleteActionResult", + "one": "actionResult", + "update": "updateActionResult" + }, + "inflection": { + "allRows": "actionResults", + "allRowsSimple": "actionResultsList", + "conditionType": "ActionResultCondition", + "connection": "ActionResultsConnection", + "createField": "createActionResult", + "createInputType": "CreateActionResultInput", + "createPayloadType": "CreateActionResultPayload", + "deleteByPrimaryKey": "deleteActionResult", + "deletePayloadType": "DeleteActionResultPayload", + "edge": "ActionResultsEdge", + "edgeField": "actionResultEdge", + "enumType": "ActionResults", + "filterType": "ActionResultFilter", + "inputType": "ActionResultInput", + "orderByType": "ActionResultsOrderBy", + "patchField": "patch", + "patchType": "ActionResultPatch", + "tableFieldName": "actionResult", + "tableType": "ActionResult", + "typeName": "action_results", + "updateByPrimaryKey": "updateActionResult", + "updatePayloadType": "UpdateActionResultPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "action_results_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "action_results_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "action_results_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ], + "uniqueConstraints": [], + "relations": { + "belongsTo": [ + { + "fieldName": "action", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "Action" + } + }, + { + "fieldName": "owner", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + } + ], + "has": [ + { + "fieldName": "userActionResults", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionResult", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "value", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_results_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_results_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_results_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "user_action_results_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_results_action_result_id_fkey", + "fields": [ + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "ActionResult" + } + } + ] + } + } + ], + "hasMany": [ + { + "fieldName": "userActionResults", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionResult", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "value", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_results_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_results_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_results_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "user_action_results_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_results_action_result_id_fkey", + "fields": [ + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "ActionResult" + } + } + ] + } + } + ], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "Action", + "query": { + "all": "actions", + "create": "createAction", + "delete": "deleteAction", + "one": "action", + "update": "updateAction" + }, + "inflection": { + "allRows": "actions", + "allRowsSimple": "actionsList", + "conditionType": "ActionCondition", + "connection": "ActionsConnection", + "createField": "createAction", + "createInputType": "CreateActionInput", + "createPayloadType": "CreateActionPayload", + "deleteByPrimaryKey": "deleteAction", + "deletePayloadType": "DeleteActionPayload", + "edge": "ActionsEdge", + "edgeField": "actionEdge", + "enumType": "Actions", + "filterType": "ActionFilter", + "inputType": "ActionInput", + "orderByType": "ActionsOrderBy", + "patchField": "patch", + "patchType": "ActionPatch", + "tableFieldName": "action", + "tableType": "Action", + "typeName": "actions", + "updateByPrimaryKey": "updateAction", + "updatePayloadType": "UpdateActionPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "slug", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "photo", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "title", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "url", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "url", + "pgType": "url", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "discoveryHeader", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "discoveryDescription", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "enableNotifications", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "enableNotificationsText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "search", + "type": { + "gqlType": "FullText", + "isArray": false, + "modifier": null, + "pgAlias": "tsvector", + "pgType": "tsvector", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "locationRadius", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "timeRequired", + "type": { + "gqlType": "Interval", + "isArray": false, + "modifier": null, + "pgAlias": "interval", + "pgType": "interval", + "subtype": null, + "typmod": null + } + }, + { + "name": "startDate", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "endDate", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "approved", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "rewardAmount", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "activityFeedText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "callToAction", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "completedActionText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "alreadyCompletedActionText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "tags", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "actions_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ], + "uniqueConstraints": [ + { + "name": "actions_slug_key", + "fields": [ + { + "name": "slug", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [ + { + "fieldName": "owner", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + } + ], + "has": [ + { + "fieldName": "actionGoals", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "ActionGoal", + "fields": [ + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "action_goals_pkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "action_goals_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "action_goals_goal_id_fkey", + "fields": [ + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Goal" + } + }, + { + "name": "action_goals_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "actionResults", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "ActionResult", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "action_results_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "action_results_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "action_results_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "actionItems", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "ActionItem", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "itemOrder", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "timeRequired", + "type": { + "gqlType": "Interval", + "isArray": false, + "modifier": null, + "pgAlias": "interval", + "pgType": "interval", + "subtype": null, + "typmod": null + } + }, + { + "name": "isRequired", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "notificationText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "embedCode", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "url", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "url", + "pgType": "url", + "subtype": null, + "typmod": null + } + }, + { + "name": "media", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "upload", + "pgType": "upload", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "action_items_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "action_items_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userActions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionStarted", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "complete", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "verified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "verifiedDate", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userRating", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "rejected", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "rejectedReason", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "verifierId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_actions_verifier_id_fkey", + "fields": [ + { + "name": "verifierId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userActionResults", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionResult", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "value", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_results_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_results_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_results_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "user_action_results_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_results_action_result_id_fkey", + "fields": [ + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "ActionResult" + } + } + ] + } + }, + { + "fieldName": "userActionItems", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionItem", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "value", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "status", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_items_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_items_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_items_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "user_action_items_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_items_action_item_id_fkey", + "fields": [ + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "ActionItem" + } + } + ] + } + }, + { + "fieldName": "userPassActions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserPassAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_pass_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_pass_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_pass_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userSavedActions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserSavedAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_saved_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_saved_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_saved_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userViewedActions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserViewedAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_viewed_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_viewed_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_viewed_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userActionReactions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionReaction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_reactions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_reactions_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_reactions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_reactions_reacter_id_fkey", + "fields": [ + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_reactions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + } + ], + "hasMany": [ + { + "fieldName": "actionGoals", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "ActionGoal", + "fields": [ + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "action_goals_pkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "action_goals_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "action_goals_goal_id_fkey", + "fields": [ + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Goal" + } + }, + { + "name": "action_goals_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "actionResults", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "ActionResult", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "action_results_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "action_results_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "action_results_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "actionItems", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "ActionItem", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "itemOrder", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "timeRequired", + "type": { + "gqlType": "Interval", + "isArray": false, + "modifier": null, + "pgAlias": "interval", + "pgType": "interval", + "subtype": null, + "typmod": null + } + }, + { + "name": "isRequired", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "notificationText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "embedCode", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "url", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "url", + "pgType": "url", + "subtype": null, + "typmod": null + } + }, + { + "name": "media", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "upload", + "pgType": "upload", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "action_items_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "action_items_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userActions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionStarted", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "complete", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "verified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "verifiedDate", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userRating", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "rejected", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "rejectedReason", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "verifierId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_actions_verifier_id_fkey", + "fields": [ + { + "name": "verifierId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userActionResults", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionResult", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "value", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_results_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_results_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_results_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "user_action_results_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_results_action_result_id_fkey", + "fields": [ + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "ActionResult" + } + } + ] + } + }, + { + "fieldName": "userActionItems", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionItem", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "value", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "status", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_items_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_items_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_items_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "user_action_items_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_items_action_item_id_fkey", + "fields": [ + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "ActionItem" + } + } + ] + } + }, + { + "fieldName": "userPassActions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserPassAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_pass_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_pass_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_pass_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userSavedActions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserSavedAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_saved_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_saved_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_saved_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userViewedActions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserViewedAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_viewed_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_viewed_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_viewed_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userActionReactions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionReaction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_reactions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_reactions_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_reactions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_reactions_reacter_id_fkey", + "fields": [ + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_reactions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + } + ], + "hasOne": [], + "manyToMany": [ + { + "fieldName": "goals", + "type": "ManyToMany", + "leftKeyAttributes": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "rightKeyAttributes": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "junctionTable": { + "name": "ActionGoal", + "fields": [ + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "query": { + "all": "actionGoals", + "create": "createActionGoal", + "delete": "deleteActionGoal", + "one": "actionGoal", + "update": "updateActionGoal" + }, + "primaryKeyConstraints": [ + { + "name": "action_goals_pkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "action_goals_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "action_goals_goal_id_fkey", + "fields": [ + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Goal" + } + }, + { + "name": "action_goals_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + }, + "rightTable": { + "name": "Goal", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "slug", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "shortName", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "icon", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "subHead", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "tags", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "search", + "type": { + "gqlType": "FullText", + "isArray": false, + "modifier": null, + "pgAlias": "tsvector", + "pgType": "tsvector", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "query": { + "all": "goals", + "create": "createGoal", + "delete": "deleteGoal", + "one": "goal", + "update": "updateGoal" + }, + "primaryKeyConstraints": [ + { + "name": "goals_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [] + } + } + ] + } + }, + { + "name": "ClaimedInvite", + "query": { + "all": "claimedInvites", + "create": "createClaimedInvite", + "delete": "deleteClaimedInvite", + "one": "claimedInvite", + "update": "updateClaimedInvite" + }, + "inflection": { + "allRows": "claimedInvites", + "allRowsSimple": "claimedInvitesList", + "conditionType": "ClaimedInviteCondition", + "connection": "ClaimedInvitesConnection", + "createField": "createClaimedInvite", + "createInputType": "CreateClaimedInviteInput", + "createPayloadType": "CreateClaimedInvitePayload", + "deleteByPrimaryKey": "deleteClaimedInvite", + "deletePayloadType": "DeleteClaimedInvitePayload", + "edge": "ClaimedInvitesEdge", + "edgeField": "claimedInviteEdge", + "enumType": "ClaimedInvites", + "filterType": "ClaimedInviteFilter", + "inputType": "ClaimedInviteInput", + "orderByType": "ClaimedInvitesOrderBy", + "patchField": "patch", + "patchType": "ClaimedInvitePatch", + "tableFieldName": "claimedInvite", + "tableType": "ClaimedInvite", + "typeName": "claimed_invites", + "updateByPrimaryKey": "updateClaimedInvite", + "updatePayloadType": "UpdateClaimedInvitePayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "data", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "claimed_invites_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "claimed_invites_sender_id_fkey", + "fields": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "claimed_invites_receiver_id_fkey", + "fields": [ + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ], + "uniqueConstraints": [], + "relations": { + "belongsTo": [ + { + "fieldName": "sender", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + }, + { + "fieldName": "receiver", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "ConnectedAccount", + "query": { + "all": "connectedAccounts", + "create": "createConnectedAccount", + "delete": "deleteConnectedAccount", + "one": "connectedAccount", + "update": "updateConnectedAccount" + }, + "inflection": { + "allRows": "connectedAccounts", + "allRowsSimple": "connectedAccountsList", + "conditionType": "ConnectedAccountCondition", + "connection": "ConnectedAccountsConnection", + "createField": "createConnectedAccount", + "createInputType": "CreateConnectedAccountInput", + "createPayloadType": "CreateConnectedAccountPayload", + "deleteByPrimaryKey": "deleteConnectedAccount", + "deletePayloadType": "DeleteConnectedAccountPayload", + "edge": "ConnectedAccountsEdge", + "edgeField": "connectedAccountEdge", + "enumType": "ConnectedAccounts", + "filterType": "ConnectedAccountFilter", + "inputType": "ConnectedAccountInput", + "orderByType": "ConnectedAccountsOrderBy", + "patchField": "patch", + "patchType": "ConnectedAccountPatch", + "tableFieldName": "connectedAccount", + "tableType": "ConnectedAccount", + "typeName": "connected_accounts", + "updateByPrimaryKey": "updateConnectedAccount", + "updatePayloadType": "UpdateConnectedAccountPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "service", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "identifier", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "details", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "isVerified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "connected_accounts_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "connected_accounts_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ], + "uniqueConstraints": [ + { + "name": "connected_accounts_service_identifier_key", + "fields": [ + { + "name": "service", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "identifier", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [ + { + "fieldName": "owner", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "CryptoAddress", + "query": { + "all": "cryptoAddresses", + "create": "createCryptoAddress", + "delete": "deleteCryptoAddress", + "one": "cryptoAddress", + "update": "updateCryptoAddress" + }, + "inflection": { + "allRows": "cryptoAddresses", + "allRowsSimple": "cryptoAddressesList", + "conditionType": "CryptoAddressCondition", + "connection": "CryptoAddressesConnection", + "createField": "createCryptoAddress", + "createInputType": "CreateCryptoAddressInput", + "createPayloadType": "CreateCryptoAddressPayload", + "deleteByPrimaryKey": "deleteCryptoAddress", + "deletePayloadType": "DeleteCryptoAddressPayload", + "edge": "CryptoAddressesEdge", + "edgeField": "cryptoAddressEdge", + "enumType": "CryptoAddresses", + "filterType": "CryptoAddressFilter", + "inputType": "CryptoAddressInput", + "orderByType": "CryptoAddressesOrderBy", + "patchField": "patch", + "patchType": "CryptoAddressPatch", + "tableFieldName": "cryptoAddress", + "tableType": "CryptoAddress", + "typeName": "crypto_addresses", + "updateByPrimaryKey": "updateCryptoAddress", + "updatePayloadType": "UpdateCryptoAddressPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "address", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "isVerified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "isPrimary", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "crypto_addresses_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "crypto_addresses_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ], + "uniqueConstraints": [ + { + "name": "crypto_addresses_address_key", + "fields": [ + { + "name": "address", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [ + { + "fieldName": "owner", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "Email", + "query": { + "all": "emails", + "create": "createEmail", + "delete": "deleteEmail", + "one": "email", + "update": "updateEmail" + }, + "inflection": { + "allRows": "emails", + "allRowsSimple": "emailsList", + "conditionType": "EmailCondition", + "connection": "EmailsConnection", + "createField": "createEmail", + "createInputType": "CreateEmailInput", + "createPayloadType": "CreateEmailPayload", + "deleteByPrimaryKey": "deleteEmail", + "deletePayloadType": "DeleteEmailPayload", + "edge": "EmailsEdge", + "edgeField": "emailEdge", + "enumType": "Emails", + "filterType": "EmailFilter", + "inputType": "EmailInput", + "orderByType": "EmailsOrderBy", + "patchField": "patch", + "patchType": "EmailPatch", + "tableFieldName": "email", + "tableType": "Email", + "typeName": "emails", + "updateByPrimaryKey": "updateEmail", + "updatePayloadType": "UpdateEmailPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "email", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "email", + "pgType": "email", + "subtype": null, + "typmod": null + } + }, + { + "name": "isVerified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "isPrimary", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "emails_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "emails_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ], + "uniqueConstraints": [ + { + "name": "emails_email_key", + "fields": [ + { + "name": "email", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "email", + "pgType": "email", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [ + { + "fieldName": "owner", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "GoalExplanation", + "query": { + "all": "goalExplanations", + "create": "createGoalExplanation", + "delete": "deleteGoalExplanation", + "one": "goalExplanation", + "update": "updateGoalExplanation" + }, + "inflection": { + "allRows": "goalExplanations", + "allRowsSimple": "goalExplanationsList", + "conditionType": "GoalExplanationCondition", + "connection": "GoalExplanationsConnection", + "createField": "createGoalExplanation", + "createInputType": "CreateGoalExplanationInput", + "createPayloadType": "CreateGoalExplanationPayload", + "deleteByPrimaryKey": "deleteGoalExplanation", + "deletePayloadType": "DeleteGoalExplanationPayload", + "edge": "GoalExplanationsEdge", + "edgeField": "goalExplanationEdge", + "enumType": "GoalExplanations", + "filterType": "GoalExplanationFilter", + "inputType": "GoalExplanationInput", + "orderByType": "GoalExplanationsOrderBy", + "patchField": "patch", + "patchType": "GoalExplanationPatch", + "tableFieldName": "goalExplanation", + "tableType": "GoalExplanation", + "typeName": "goal_explanations", + "updateByPrimaryKey": "updateGoalExplanation", + "updatePayloadType": "UpdateGoalExplanationPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "audio", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "attachment", + "pgType": "attachment", + "subtype": null, + "typmod": null + } + }, + { + "name": "audioDuration", + "type": { + "gqlType": "Interval", + "isArray": false, + "modifier": null, + "pgAlias": "interval", + "pgType": "interval", + "subtype": null, + "typmod": null + } + }, + { + "name": "explanationTitle", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "explanation", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "goal_explanations_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "goal_explanations_goal_id_fkey", + "fields": [ + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Goal" + } + } + ], + "uniqueConstraints": [], + "relations": { + "belongsTo": [ + { + "fieldName": "goal", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "Goal" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "Goal", + "query": { + "all": "goals", + "create": "createGoal", + "delete": "deleteGoal", + "one": "goal", + "update": "updateGoal" + }, + "inflection": { + "allRows": "goals", + "allRowsSimple": "goalsList", + "conditionType": "GoalCondition", + "connection": "GoalsConnection", + "createField": "createGoal", + "createInputType": "CreateGoalInput", + "createPayloadType": "CreateGoalPayload", + "deleteByPrimaryKey": "deleteGoal", + "deletePayloadType": "DeleteGoalPayload", + "edge": "GoalsEdge", + "edgeField": "goalEdge", + "enumType": "Goals", + "filterType": "GoalFilter", + "inputType": "GoalInput", + "orderByType": "GoalsOrderBy", + "patchField": "patch", + "patchType": "GoalPatch", + "tableFieldName": "goal", + "tableType": "Goal", + "typeName": "goals", + "updateByPrimaryKey": "updateGoal", + "updatePayloadType": "UpdateGoalPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "slug", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "shortName", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "icon", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "subHead", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "tags", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "search", + "type": { + "gqlType": "FullText", + "isArray": false, + "modifier": null, + "pgAlias": "tsvector", + "pgType": "tsvector", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "goals_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [], + "uniqueConstraints": [ + { + "name": "goals_name_key", + "fields": [ + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + } + ] + }, + { + "name": "goals_slug_key", + "fields": [ + { + "name": "slug", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [], + "has": [ + { + "fieldName": "goalExplanations", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "GoalExplanation", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "audio", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "attachment", + "pgType": "attachment", + "subtype": null, + "typmod": null + } + }, + { + "name": "audioDuration", + "type": { + "gqlType": "Interval", + "isArray": false, + "modifier": null, + "pgAlias": "interval", + "pgType": "interval", + "subtype": null, + "typmod": null + } + }, + { + "name": "explanationTitle", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "explanation", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "goal_explanations_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "goal_explanations_goal_id_fkey", + "fields": [ + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Goal" + } + } + ] + } + }, + { + "fieldName": "actionGoals", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "ActionGoal", + "fields": [ + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "action_goals_pkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "action_goals_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "action_goals_goal_id_fkey", + "fields": [ + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Goal" + } + }, + { + "name": "action_goals_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + } + ], + "hasMany": [ + { + "fieldName": "goalExplanations", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "GoalExplanation", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "audio", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "attachment", + "pgType": "attachment", + "subtype": null, + "typmod": null + } + }, + { + "name": "audioDuration", + "type": { + "gqlType": "Interval", + "isArray": false, + "modifier": null, + "pgAlias": "interval", + "pgType": "interval", + "subtype": null, + "typmod": null + } + }, + { + "name": "explanationTitle", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "explanation", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "goal_explanations_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "goal_explanations_goal_id_fkey", + "fields": [ + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Goal" + } + } + ] + } + }, + { + "fieldName": "actionGoals", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "ActionGoal", + "fields": [ + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "action_goals_pkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "action_goals_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "action_goals_goal_id_fkey", + "fields": [ + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Goal" + } + }, + { + "name": "action_goals_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + } + ], + "hasOne": [], + "manyToMany": [ + { + "fieldName": "actions", + "type": "ManyToMany", + "leftKeyAttributes": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "rightKeyAttributes": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "junctionTable": { + "name": "ActionGoal", + "fields": [ + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "query": { + "all": "actionGoals", + "create": "createActionGoal", + "delete": "deleteActionGoal", + "one": "actionGoal", + "update": "updateActionGoal" + }, + "primaryKeyConstraints": [ + { + "name": "action_goals_pkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "action_goals_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "action_goals_goal_id_fkey", + "fields": [ + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Goal" + } + }, + { + "name": "action_goals_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + }, + "rightTable": { + "name": "Action", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "slug", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "photo", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "title", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "url", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "url", + "pgType": "url", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "discoveryHeader", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "discoveryDescription", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "enableNotifications", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "enableNotificationsText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "search", + "type": { + "gqlType": "FullText", + "isArray": false, + "modifier": null, + "pgAlias": "tsvector", + "pgType": "tsvector", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "locationRadius", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "timeRequired", + "type": { + "gqlType": "Interval", + "isArray": false, + "modifier": null, + "pgAlias": "interval", + "pgType": "interval", + "subtype": null, + "typmod": null + } + }, + { + "name": "startDate", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "endDate", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "approved", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "rewardAmount", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "activityFeedText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "callToAction", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "completedActionText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "alreadyCompletedActionText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "tags", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "query": { + "all": "actions", + "create": "createAction", + "delete": "deleteAction", + "one": "action", + "update": "updateAction" + }, + "primaryKeyConstraints": [ + { + "name": "actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "actions_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + } + ] + } + }, + { + "name": "Invite", + "query": { + "all": "invites", + "create": "createInvite", + "delete": "deleteInvite", + "one": "invite", + "update": "updateInvite" + }, + "inflection": { + "allRows": "invites", + "allRowsSimple": "invitesList", + "conditionType": "InviteCondition", + "connection": "InvitesConnection", + "createField": "createInvite", + "createInputType": "CreateInviteInput", + "createPayloadType": "CreateInvitePayload", + "deleteByPrimaryKey": "deleteInvite", + "deletePayloadType": "DeleteInvitePayload", + "edge": "InvitesEdge", + "edgeField": "inviteEdge", + "enumType": "Invites", + "filterType": "InviteFilter", + "inputType": "InviteInput", + "orderByType": "InvitesOrderBy", + "patchField": "patch", + "patchType": "InvitePatch", + "tableFieldName": "invite", + "tableType": "Invite", + "typeName": "invites", + "updateByPrimaryKey": "updateInvite", + "updatePayloadType": "UpdateInvitePayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "email", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "email", + "pgType": "email", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "inviteToken", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "inviteValid", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "inviteLimit", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "inviteCount", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "multiple", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "data", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "expiresAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "invites_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "invites_sender_id_fkey", + "fields": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ], + "uniqueConstraints": [ + { + "name": "invites_email_sender_id_key", + "fields": [ + { + "name": "email", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "email", + "pgType": "email", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + }, + { + "name": "invites_invite_token_key", + "fields": [ + { + "name": "inviteToken", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [ + { + "fieldName": "sender", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "LevelRequirement", + "query": { + "all": "levelRequirements", + "create": "createLevelRequirement", + "delete": "deleteLevelRequirement", + "one": "levelRequirement", + "update": "updateLevelRequirement" + }, + "inflection": { + "allRows": "levelRequirements", + "allRowsSimple": "levelRequirementsList", + "conditionType": "LevelRequirementCondition", + "connection": "LevelRequirementsConnection", + "createField": "createLevelRequirement", + "createInputType": "CreateLevelRequirementInput", + "createPayloadType": "CreateLevelRequirementPayload", + "deleteByPrimaryKey": "deleteLevelRequirement", + "deletePayloadType": "DeleteLevelRequirementPayload", + "edge": "LevelRequirementsEdge", + "edgeField": "levelRequirementEdge", + "enumType": "LevelRequirements", + "filterType": "LevelRequirementFilter", + "inputType": "LevelRequirementInput", + "orderByType": "LevelRequirementsOrderBy", + "patchField": "patch", + "patchType": "LevelRequirementPatch", + "tableFieldName": "levelRequirement", + "tableType": "LevelRequirement", + "typeName": "level_requirements", + "updateByPrimaryKey": "updateLevelRequirement", + "updatePayloadType": "UpdateLevelRequirementPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "level", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "requiredCount", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "priority", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "level_requirements_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [], + "uniqueConstraints": [ + { + "name": "level_requirements_name_level_key", + "fields": [ + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "level", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "Level", + "query": { + "all": "levels", + "create": "createLevel", + "delete": "deleteLevel", + "one": "level", + "update": "updateLevel" + }, + "inflection": { + "allRows": "levels", + "allRowsSimple": "levelsList", + "conditionType": "LevelCondition", + "connection": "LevelsConnection", + "createField": "createLevel", + "createInputType": "CreateLevelInput", + "createPayloadType": "CreateLevelPayload", + "deleteByPrimaryKey": "deleteLevel", + "deletePayloadType": "DeleteLevelPayload", + "edge": "LevelsEdge", + "edgeField": "levelEdge", + "enumType": "Levels", + "filterType": "LevelFilter", + "inputType": "LevelInput", + "orderByType": "LevelsOrderBy", + "patchField": "patch", + "patchType": "LevelPatch", + "tableFieldName": "level", + "tableType": "Level", + "typeName": "levels", + "updateByPrimaryKey": "updateLevel", + "updatePayloadType": "UpdateLevelPayload" + }, + "fields": [ + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "levels_pkey", + "fields": [ + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [], + "uniqueConstraints": [], + "relations": { + "belongsTo": [], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "MessageGroup", + "query": { + "all": "messageGroups", + "create": "createMessageGroup", + "delete": "deleteMessageGroup", + "one": "messageGroup", + "update": "updateMessageGroup" + }, + "inflection": { + "allRows": "messageGroups", + "allRowsSimple": "messageGroupsList", + "conditionType": "MessageGroupCondition", + "connection": "MessageGroupsConnection", + "createField": "createMessageGroup", + "createInputType": "CreateMessageGroupInput", + "createPayloadType": "CreateMessageGroupPayload", + "deleteByPrimaryKey": "deleteMessageGroup", + "deletePayloadType": "DeleteMessageGroupPayload", + "edge": "MessageGroupsEdge", + "edgeField": "messageGroupEdge", + "enumType": "MessageGroups", + "filterType": "MessageGroupFilter", + "inputType": "MessageGroupInput", + "orderByType": "MessageGroupsOrderBy", + "patchField": "patch", + "patchType": "MessageGroupPatch", + "tableFieldName": "messageGroup", + "tableType": "MessageGroup", + "typeName": "message_groups", + "updateByPrimaryKey": "updateMessageGroup", + "updatePayloadType": "UpdateMessageGroupPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "memberIds", + "type": { + "gqlType": "[UUID]", + "isArray": true, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "message_groups_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [], + "uniqueConstraints": [], + "relations": { + "belongsTo": [], + "has": [ + { + "fieldName": "messagesByGroupId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "Message", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "content", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "upload", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "upload", + "pgType": "upload", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "messages_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "messages_sender_id_fkey", + "fields": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "messages_group_id_fkey", + "fields": [ + { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "MessageGroup" + } + } + ] + } + } + ], + "hasMany": [ + { + "fieldName": "messagesByGroupId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "Message", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "content", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "upload", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "upload", + "pgType": "upload", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "messages_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "messages_sender_id_fkey", + "fields": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "messages_group_id_fkey", + "fields": [ + { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "MessageGroup" + } + } + ] + } + } + ], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "Message", + "query": { + "all": "messages", + "create": "createMessage", + "delete": "deleteMessage", + "one": "message", + "update": "updateMessage" + }, + "inflection": { + "allRows": "messages", + "allRowsSimple": "messagesList", + "conditionType": "MessageCondition", + "connection": "MessagesConnection", + "createField": "createMessage", + "createInputType": "CreateMessageInput", + "createPayloadType": "CreateMessagePayload", + "deleteByPrimaryKey": "deleteMessage", + "deletePayloadType": "DeleteMessagePayload", + "edge": "MessagesEdge", + "edgeField": "messageEdge", + "enumType": "Messages", + "filterType": "MessageFilter", + "inputType": "MessageInput", + "orderByType": "MessagesOrderBy", + "patchField": "patch", + "patchType": "MessagePatch", + "tableFieldName": "message", + "tableType": "Message", + "typeName": "messages", + "updateByPrimaryKey": "updateMessage", + "updatePayloadType": "UpdateMessagePayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "content", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "upload", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "upload", + "pgType": "upload", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "messages_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "messages_sender_id_fkey", + "fields": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "messages_group_id_fkey", + "fields": [ + { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "MessageGroup" + } + } + ], + "uniqueConstraints": [], + "relations": { + "belongsTo": [ + { + "fieldName": "sender", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + }, + { + "fieldName": "group", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "MessageGroup" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "NewsUpdate", + "query": { + "all": "newsUpdates", + "create": "createNewsUpdate", + "delete": "deleteNewsUpdate", + "one": "newsUpdate", + "update": "updateNewsUpdate" + }, + "inflection": { + "allRows": "newsUpdates", + "allRowsSimple": "newsUpdatesList", + "conditionType": "NewsUpdateCondition", + "connection": "NewsUpdatesConnection", + "createField": "createNewsUpdate", + "createInputType": "CreateNewsUpdateInput", + "createPayloadType": "CreateNewsUpdatePayload", + "deleteByPrimaryKey": "deleteNewsUpdate", + "deletePayloadType": "DeleteNewsUpdatePayload", + "edge": "NewsUpdatesEdge", + "edgeField": "newsUpdateEdge", + "enumType": "NewsUpdates", + "filterType": "NewsUpdateFilter", + "inputType": "NewsUpdateInput", + "orderByType": "NewsUpdatesOrderBy", + "patchField": "patch", + "patchType": "NewsUpdatePatch", + "tableFieldName": "newsUpdate", + "tableType": "NewsUpdate", + "typeName": "news_updates", + "updateByPrimaryKey": "updateNewsUpdate", + "updatePayloadType": "UpdateNewsUpdatePayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "link", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "url", + "pgType": "url", + "subtype": null, + "typmod": null + } + }, + { + "name": "publishedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "photo", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "news_updates_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [], + "uniqueConstraints": [], + "relations": { + "belongsTo": [], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "OrganizationProfile", + "query": { + "all": "organizationProfiles", + "create": "createOrganizationProfile", + "delete": "deleteOrganizationProfile", + "one": "organizationProfile", + "update": "updateOrganizationProfile" + }, + "inflection": { + "allRows": "organizationProfiles", + "allRowsSimple": "organizationProfilesList", + "conditionType": "OrganizationProfileCondition", + "connection": "OrganizationProfilesConnection", + "createField": "createOrganizationProfile", + "createInputType": "CreateOrganizationProfileInput", + "createPayloadType": "CreateOrganizationProfilePayload", + "deleteByPrimaryKey": "deleteOrganizationProfile", + "deletePayloadType": "DeleteOrganizationProfilePayload", + "edge": "OrganizationProfilesEdge", + "edgeField": "organizationProfileEdge", + "enumType": "OrganizationProfiles", + "filterType": "OrganizationProfileFilter", + "inputType": "OrganizationProfileInput", + "orderByType": "OrganizationProfilesOrderBy", + "patchField": "patch", + "patchType": "OrganizationProfilePatch", + "tableFieldName": "organizationProfile", + "tableType": "OrganizationProfile", + "typeName": "organization_profiles", + "updateByPrimaryKey": "updateOrganizationProfile", + "updatePayloadType": "UpdateOrganizationProfilePayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "profilePicture", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "website", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "url", + "pgType": "url", + "subtype": null, + "typmod": null + } + }, + { + "name": "reputation", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "tags", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "organizationId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "organization_profiles_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "organization_profiles_organization_id_fkey", + "fields": [ + { + "name": "organizationId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ], + "uniqueConstraints": [ + { + "name": "organization_profiles_organization_id_key", + "fields": [ + { + "name": "organizationId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [ + { + "fieldName": "organization", + "isUnique": true, + "type": "BelongsTo", + "keys": [ + { + "name": "organizationId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "PhoneNumber", + "query": { + "all": "phoneNumbers", + "create": "createPhoneNumber", + "delete": "deletePhoneNumber", + "one": "phoneNumber", + "update": "updatePhoneNumber" + }, + "inflection": { + "allRows": "phoneNumbers", + "allRowsSimple": "phoneNumbersList", + "conditionType": "PhoneNumberCondition", + "connection": "PhoneNumbersConnection", + "createField": "createPhoneNumber", + "createInputType": "CreatePhoneNumberInput", + "createPayloadType": "CreatePhoneNumberPayload", + "deleteByPrimaryKey": "deletePhoneNumber", + "deletePayloadType": "DeletePhoneNumberPayload", + "edge": "PhoneNumbersEdge", + "edgeField": "phoneNumberEdge", + "enumType": "PhoneNumbers", + "filterType": "PhoneNumberFilter", + "inputType": "PhoneNumberInput", + "orderByType": "PhoneNumbersOrderBy", + "patchField": "patch", + "patchType": "PhoneNumberPatch", + "tableFieldName": "phoneNumber", + "tableType": "PhoneNumber", + "typeName": "phone_numbers", + "updateByPrimaryKey": "updatePhoneNumber", + "updatePayloadType": "UpdatePhoneNumberPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "cc", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "number", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "isVerified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "isPrimary", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "phone_numbers_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "phone_numbers_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ], + "uniqueConstraints": [ + { + "name": "phone_numbers_number_key", + "fields": [ + { + "name": "number", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [ + { + "fieldName": "owner", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "UserAchievement", + "query": { + "all": "userAchievements", + "create": "createUserAchievement", + "delete": "deleteUserAchievement", + "one": "userAchievement", + "update": "updateUserAchievement" + }, + "inflection": { + "allRows": "userAchievements", + "allRowsSimple": "userAchievementsList", + "conditionType": "UserAchievementCondition", + "connection": "UserAchievementsConnection", + "createField": "createUserAchievement", + "createInputType": "CreateUserAchievementInput", + "createPayloadType": "CreateUserAchievementPayload", + "deleteByPrimaryKey": "deleteUserAchievement", + "deletePayloadType": "DeleteUserAchievementPayload", + "edge": "UserAchievementsEdge", + "edgeField": "userAchievementEdge", + "enumType": "UserAchievements", + "filterType": "UserAchievementFilter", + "inputType": "UserAchievementInput", + "orderByType": "UserAchievementsOrderBy", + "patchField": "patch", + "patchType": "UserAchievementPatch", + "tableFieldName": "userAchievement", + "tableType": "UserAchievement", + "typeName": "user_achievements", + "updateByPrimaryKey": "updateUserAchievement", + "updatePayloadType": "UpdateUserAchievementPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "count", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_achievements_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [], + "uniqueConstraints": [ + { + "name": "user_achievements_unique_key", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "UserActionItem", + "query": { + "all": "userActionItems", + "create": "createUserActionItem", + "delete": "deleteUserActionItem", + "one": "userActionItem", + "update": "updateUserActionItem" + }, + "inflection": { + "allRows": "userActionItems", + "allRowsSimple": "userActionItemsList", + "conditionType": "UserActionItemCondition", + "connection": "UserActionItemsConnection", + "createField": "createUserActionItem", + "createInputType": "CreateUserActionItemInput", + "createPayloadType": "CreateUserActionItemPayload", + "deleteByPrimaryKey": "deleteUserActionItem", + "deletePayloadType": "DeleteUserActionItemPayload", + "edge": "UserActionItemsEdge", + "edgeField": "userActionItemEdge", + "enumType": "UserActionItems", + "filterType": "UserActionItemFilter", + "inputType": "UserActionItemInput", + "orderByType": "UserActionItemsOrderBy", + "patchField": "patch", + "patchType": "UserActionItemPatch", + "tableFieldName": "userActionItem", + "tableType": "UserActionItem", + "typeName": "user_action_items", + "updateByPrimaryKey": "updateUserActionItem", + "updatePayloadType": "UpdateUserActionItemPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "value", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "status", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_items_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_items_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_items_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "user_action_items_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_items_action_item_id_fkey", + "fields": [ + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "ActionItem" + } + } + ], + "uniqueConstraints": [ + { + "name": "user_action_items_user_id_user_action_id_action_item_id_key", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [ + { + "fieldName": "user", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + }, + { + "fieldName": "action", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "Action" + } + }, + { + "fieldName": "userAction", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "UserAction" + } + }, + { + "fieldName": "actionItem", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "ActionItem" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "UserActionReaction", + "query": { + "all": "userActionReactions", + "create": "createUserActionReaction", + "delete": "deleteUserActionReaction", + "one": "userActionReaction", + "update": "updateUserActionReaction" + }, + "inflection": { + "allRows": "userActionReactions", + "allRowsSimple": "userActionReactionsList", + "conditionType": "UserActionReactionCondition", + "connection": "UserActionReactionsConnection", + "createField": "createUserActionReaction", + "createInputType": "CreateUserActionReactionInput", + "createPayloadType": "CreateUserActionReactionPayload", + "deleteByPrimaryKey": "deleteUserActionReaction", + "deletePayloadType": "DeleteUserActionReactionPayload", + "edge": "UserActionReactionsEdge", + "edgeField": "userActionReactionEdge", + "enumType": "UserActionReactions", + "filterType": "UserActionReactionFilter", + "inputType": "UserActionReactionInput", + "orderByType": "UserActionReactionsOrderBy", + "patchField": "patch", + "patchType": "UserActionReactionPatch", + "tableFieldName": "userActionReaction", + "tableType": "UserActionReaction", + "typeName": "user_action_reactions", + "updateByPrimaryKey": "updateUserActionReaction", + "updatePayloadType": "UpdateUserActionReactionPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_reactions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_reactions_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_reactions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_reactions_reacter_id_fkey", + "fields": [ + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_reactions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ], + "uniqueConstraints": [], + "relations": { + "belongsTo": [ + { + "fieldName": "userAction", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "UserAction" + } + }, + { + "fieldName": "user", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + }, + { + "fieldName": "reacter", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + }, + { + "fieldName": "action", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "Action" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "UserActionResult", + "query": { + "all": "userActionResults", + "create": "createUserActionResult", + "delete": "deleteUserActionResult", + "one": "userActionResult", + "update": "updateUserActionResult" + }, + "inflection": { + "allRows": "userActionResults", + "allRowsSimple": "userActionResultsList", + "conditionType": "UserActionResultCondition", + "connection": "UserActionResultsConnection", + "createField": "createUserActionResult", + "createInputType": "CreateUserActionResultInput", + "createPayloadType": "CreateUserActionResultPayload", + "deleteByPrimaryKey": "deleteUserActionResult", + "deletePayloadType": "DeleteUserActionResultPayload", + "edge": "UserActionResultsEdge", + "edgeField": "userActionResultEdge", + "enumType": "UserActionResults", + "filterType": "UserActionResultFilter", + "inputType": "UserActionResultInput", + "orderByType": "UserActionResultsOrderBy", + "patchField": "patch", + "patchType": "UserActionResultPatch", + "tableFieldName": "userActionResult", + "tableType": "UserActionResult", + "typeName": "user_action_results", + "updateByPrimaryKey": "updateUserActionResult", + "updatePayloadType": "UpdateUserActionResultPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "value", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_results_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_results_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_results_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "user_action_results_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_results_action_result_id_fkey", + "fields": [ + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "ActionResult" + } + } + ], + "uniqueConstraints": [ + { + "name": "user_action_results_user_id_user_action_id_action_result_id_key", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [ + { + "fieldName": "user", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + }, + { + "fieldName": "action", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "Action" + } + }, + { + "fieldName": "userAction", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "UserAction" + } + }, + { + "fieldName": "actionResult", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "ActionResult" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "UserAction", + "query": { + "all": "userActions", + "create": "createUserAction", + "delete": "deleteUserAction", + "one": "userAction", + "update": "updateUserAction" + }, + "inflection": { + "allRows": "userActions", + "allRowsSimple": "userActionsList", + "conditionType": "UserActionCondition", + "connection": "UserActionsConnection", + "createField": "createUserAction", + "createInputType": "CreateUserActionInput", + "createPayloadType": "CreateUserActionPayload", + "deleteByPrimaryKey": "deleteUserAction", + "deletePayloadType": "DeleteUserActionPayload", + "edge": "UserActionsEdge", + "edgeField": "userActionEdge", + "enumType": "UserActions", + "filterType": "UserActionFilter", + "inputType": "UserActionInput", + "orderByType": "UserActionsOrderBy", + "patchField": "patch", + "patchType": "UserActionPatch", + "tableFieldName": "userAction", + "tableType": "UserAction", + "typeName": "user_actions", + "updateByPrimaryKey": "updateUserAction", + "updatePayloadType": "UpdateUserActionPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionStarted", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "complete", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "verified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "verifiedDate", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userRating", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "rejected", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "rejectedReason", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "verifierId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_actions_verifier_id_fkey", + "fields": [ + { + "name": "verifierId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ], + "uniqueConstraints": [], + "relations": { + "belongsTo": [ + { + "fieldName": "user", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + }, + { + "fieldName": "verifier", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "verifierId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + }, + { + "fieldName": "action", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "Action" + } + } + ], + "has": [ + { + "fieldName": "userActionResults", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionResult", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "value", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_results_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_results_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_results_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "user_action_results_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_results_action_result_id_fkey", + "fields": [ + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "ActionResult" + } + } + ] + } + }, + { + "fieldName": "userActionItems", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionItem", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "value", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "status", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_items_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_items_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_items_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "user_action_items_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_items_action_item_id_fkey", + "fields": [ + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "ActionItem" + } + } + ] + } + }, + { + "fieldName": "userActionReactions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionReaction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_reactions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_reactions_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_reactions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_reactions_reacter_id_fkey", + "fields": [ + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_reactions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + } + ], + "hasMany": [ + { + "fieldName": "userActionResults", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionResult", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "value", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_results_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_results_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_results_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "user_action_results_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_results_action_result_id_fkey", + "fields": [ + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "ActionResult" + } + } + ] + } + }, + { + "fieldName": "userActionItems", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionItem", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "value", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "status", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_items_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_items_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_items_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "user_action_items_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_items_action_item_id_fkey", + "fields": [ + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "ActionItem" + } + } + ] + } + }, + { + "fieldName": "userActionReactions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionReaction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_reactions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_reactions_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_reactions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_reactions_reacter_id_fkey", + "fields": [ + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_reactions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + } + ], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "UserCharacteristic", + "query": { + "all": "userCharacteristics", + "create": "createUserCharacteristic", + "delete": "deleteUserCharacteristic", + "one": "userCharacteristic", + "update": "updateUserCharacteristic" + }, + "inflection": { + "allRows": "userCharacteristics", + "allRowsSimple": "userCharacteristicsList", + "conditionType": "UserCharacteristicCondition", + "connection": "UserCharacteristicsConnection", + "createField": "createUserCharacteristic", + "createInputType": "CreateUserCharacteristicInput", + "createPayloadType": "CreateUserCharacteristicPayload", + "deleteByPrimaryKey": "deleteUserCharacteristic", + "deletePayloadType": "DeleteUserCharacteristicPayload", + "edge": "UserCharacteristicsEdge", + "edgeField": "userCharacteristicEdge", + "enumType": "UserCharacteristics", + "filterType": "UserCharacteristicFilter", + "inputType": "UserCharacteristicInput", + "orderByType": "UserCharacteristicsOrderBy", + "patchField": "patch", + "patchType": "UserCharacteristicPatch", + "tableFieldName": "userCharacteristic", + "tableType": "UserCharacteristic", + "typeName": "user_characteristics", + "updateByPrimaryKey": "updateUserCharacteristic", + "updatePayloadType": "UpdateUserCharacteristicPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "income", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "gender", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": 5, + "pgAlias": "char", + "pgType": "bpchar", + "subtype": null, + "typmod": { + "modifier": 5 + } + } + }, + { + "name": "race", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "age", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "dob", + "type": { + "gqlType": "Date", + "isArray": false, + "modifier": null, + "pgAlias": "date", + "pgType": "date", + "subtype": null, + "typmod": null + } + }, + { + "name": "education", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "homeOwnership", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "treeHuggerLevel", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "diyLevel", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "gardenerLevel", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "freeTime", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "researchToDoer", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_characteristics_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_characteristics_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ], + "uniqueConstraints": [ + { + "name": "user_characteristics_user_id_key", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [ + { + "fieldName": "user", + "isUnique": true, + "type": "BelongsTo", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "UserConnection", + "query": { + "all": "userConnections", + "create": "createUserConnection", + "delete": "deleteUserConnection", + "one": "userConnection", + "update": "updateUserConnection" + }, + "inflection": { + "allRows": "userConnections", + "allRowsSimple": "userConnectionsList", + "conditionType": "UserConnectionCondition", + "connection": "UserConnectionsConnection", + "createField": "createUserConnection", + "createInputType": "CreateUserConnectionInput", + "createPayloadType": "CreateUserConnectionPayload", + "deleteByPrimaryKey": "deleteUserConnection", + "deletePayloadType": "DeleteUserConnectionPayload", + "edge": "UserConnectionsEdge", + "edgeField": "userConnectionEdge", + "enumType": "UserConnections", + "filterType": "UserConnectionFilter", + "inputType": "UserConnectionInput", + "orderByType": "UserConnectionsOrderBy", + "patchField": "patch", + "patchType": "UserConnectionPatch", + "tableFieldName": "userConnection", + "tableType": "UserConnection", + "typeName": "user_connections", + "updateByPrimaryKey": "updateUserConnection", + "updatePayloadType": "UpdateUserConnectionPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "accepted", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "requesterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "responderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_connections_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_connections_requester_id_fkey", + "fields": [ + { + "name": "requesterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_connections_responder_id_fkey", + "fields": [ + { + "name": "responderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ], + "uniqueConstraints": [ + { + "name": "user_connections_requester_id_responder_id_key", + "fields": [ + { + "name": "requesterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "responderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [ + { + "fieldName": "requester", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "requesterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + }, + { + "fieldName": "responder", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "responderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "UserContact", + "query": { + "all": "userContacts", + "create": "createUserContact", + "delete": "deleteUserContact", + "one": "userContact", + "update": "updateUserContact" + }, + "inflection": { + "allRows": "userContacts", + "allRowsSimple": "userContactsList", + "conditionType": "UserContactCondition", + "connection": "UserContactsConnection", + "createField": "createUserContact", + "createInputType": "CreateUserContactInput", + "createPayloadType": "CreateUserContactPayload", + "deleteByPrimaryKey": "deleteUserContact", + "deletePayloadType": "DeleteUserContactPayload", + "edge": "UserContactsEdge", + "edgeField": "userContactEdge", + "enumType": "UserContacts", + "filterType": "UserContactFilter", + "inputType": "UserContactInput", + "orderByType": "UserContactsOrderBy", + "patchField": "patch", + "patchType": "UserContactPatch", + "tableFieldName": "userContact", + "tableType": "UserContact", + "typeName": "user_contacts", + "updateByPrimaryKey": "updateUserContact", + "updatePayloadType": "UpdateUserContactPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "vcf", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "fullName", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "emails", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "email", + "pgType": "email", + "subtype": null, + "typmod": null + } + }, + { + "name": "device", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_contacts_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_contacts_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ], + "uniqueConstraints": [], + "relations": { + "belongsTo": [ + { + "fieldName": "user", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "UserMessage", + "query": { + "all": "userMessages", + "create": "createUserMessage", + "delete": "deleteUserMessage", + "one": "userMessage", + "update": "updateUserMessage" + }, + "inflection": { + "allRows": "userMessages", + "allRowsSimple": "userMessagesList", + "conditionType": "UserMessageCondition", + "connection": "UserMessagesConnection", + "createField": "createUserMessage", + "createInputType": "CreateUserMessageInput", + "createPayloadType": "CreateUserMessagePayload", + "deleteByPrimaryKey": "deleteUserMessage", + "deletePayloadType": "DeleteUserMessagePayload", + "edge": "UserMessagesEdge", + "edgeField": "userMessageEdge", + "enumType": "UserMessages", + "filterType": "UserMessageFilter", + "inputType": "UserMessageInput", + "orderByType": "UserMessagesOrderBy", + "patchField": "patch", + "patchType": "UserMessagePatch", + "tableFieldName": "userMessage", + "tableType": "UserMessage", + "typeName": "user_messages", + "updateByPrimaryKey": "updateUserMessage", + "updatePayloadType": "UpdateUserMessagePayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "content", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "upload", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "upload", + "pgType": "upload", + "subtype": null, + "typmod": null + } + }, + { + "name": "received", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverRead", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderReaction", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverReaction", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_messages_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_messages_sender_id_fkey", + "fields": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_messages_receiver_id_fkey", + "fields": [ + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ], + "uniqueConstraints": [], + "relations": { + "belongsTo": [ + { + "fieldName": "sender", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + }, + { + "fieldName": "receiver", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "UserPassAction", + "query": { + "all": "userPassActions", + "create": "createUserPassAction", + "delete": "deleteUserPassAction", + "one": "userPassAction", + "update": "updateUserPassAction" + }, + "inflection": { + "allRows": "userPassActions", + "allRowsSimple": "userPassActionsList", + "conditionType": "UserPassActionCondition", + "connection": "UserPassActionsConnection", + "createField": "createUserPassAction", + "createInputType": "CreateUserPassActionInput", + "createPayloadType": "CreateUserPassActionPayload", + "deleteByPrimaryKey": "deleteUserPassAction", + "deletePayloadType": "DeleteUserPassActionPayload", + "edge": "UserPassActionsEdge", + "edgeField": "userPassActionEdge", + "enumType": "UserPassActions", + "filterType": "UserPassActionFilter", + "inputType": "UserPassActionInput", + "orderByType": "UserPassActionsOrderBy", + "patchField": "patch", + "patchType": "UserPassActionPatch", + "tableFieldName": "userPassAction", + "tableType": "UserPassAction", + "typeName": "user_pass_actions", + "updateByPrimaryKey": "updateUserPassAction", + "updatePayloadType": "UpdateUserPassActionPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_pass_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_pass_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_pass_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ], + "uniqueConstraints": [ + { + "name": "user_pass_actions_user_id_action_id_key", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [ + { + "fieldName": "user", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + }, + { + "fieldName": "action", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "Action" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "UserProfile", + "query": { + "all": "userProfiles", + "create": "createUserProfile", + "delete": "deleteUserProfile", + "one": "userProfile", + "update": "updateUserProfile" + }, + "inflection": { + "allRows": "userProfiles", + "allRowsSimple": "userProfilesList", + "conditionType": "UserProfileCondition", + "connection": "UserProfilesConnection", + "createField": "createUserProfile", + "createInputType": "CreateUserProfileInput", + "createPayloadType": "CreateUserProfilePayload", + "deleteByPrimaryKey": "deleteUserProfile", + "deletePayloadType": "DeleteUserProfilePayload", + "edge": "UserProfilesEdge", + "edgeField": "userProfileEdge", + "enumType": "UserProfiles", + "filterType": "UserProfileFilter", + "inputType": "UserProfileInput", + "orderByType": "UserProfilesOrderBy", + "patchField": "patch", + "patchType": "UserProfilePatch", + "tableFieldName": "userProfile", + "tableType": "UserProfile", + "typeName": "user_profiles", + "updateByPrimaryKey": "updateUserProfile", + "updatePayloadType": "UpdateUserProfilePayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "profilePicture", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "bio", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "reputation", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "displayName", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "tags", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "desired", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_profiles_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_profiles_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ], + "uniqueConstraints": [ + { + "name": "user_profiles_user_id_key", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [ + { + "fieldName": "user", + "isUnique": true, + "type": "BelongsTo", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "UserSavedAction", + "query": { + "all": "userSavedActions", + "create": "createUserSavedAction", + "delete": "deleteUserSavedAction", + "one": "userSavedAction", + "update": "updateUserSavedAction" + }, + "inflection": { + "allRows": "userSavedActions", + "allRowsSimple": "userSavedActionsList", + "conditionType": "UserSavedActionCondition", + "connection": "UserSavedActionsConnection", + "createField": "createUserSavedAction", + "createInputType": "CreateUserSavedActionInput", + "createPayloadType": "CreateUserSavedActionPayload", + "deleteByPrimaryKey": "deleteUserSavedAction", + "deletePayloadType": "DeleteUserSavedActionPayload", + "edge": "UserSavedActionsEdge", + "edgeField": "userSavedActionEdge", + "enumType": "UserSavedActions", + "filterType": "UserSavedActionFilter", + "inputType": "UserSavedActionInput", + "orderByType": "UserSavedActionsOrderBy", + "patchField": "patch", + "patchType": "UserSavedActionPatch", + "tableFieldName": "userSavedAction", + "tableType": "UserSavedAction", + "typeName": "user_saved_actions", + "updateByPrimaryKey": "updateUserSavedAction", + "updatePayloadType": "UpdateUserSavedActionPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_saved_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_saved_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_saved_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ], + "uniqueConstraints": [ + { + "name": "user_saved_actions_user_id_action_id_key", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [ + { + "fieldName": "user", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + }, + { + "fieldName": "action", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "Action" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "UserSetting", + "query": { + "all": "userSettings", + "create": "createUserSetting", + "delete": "deleteUserSetting", + "one": "userSetting", + "update": "updateUserSetting" + }, + "inflection": { + "allRows": "userSettings", + "allRowsSimple": "userSettingsList", + "conditionType": "UserSettingCondition", + "connection": "UserSettingsConnection", + "createField": "createUserSetting", + "createInputType": "CreateUserSettingInput", + "createPayloadType": "CreateUserSettingPayload", + "deleteByPrimaryKey": "deleteUserSetting", + "deletePayloadType": "DeleteUserSettingPayload", + "edge": "UserSettingsEdge", + "edgeField": "userSettingEdge", + "enumType": "UserSettings", + "filterType": "UserSettingFilter", + "inputType": "UserSettingInput", + "orderByType": "UserSettingsOrderBy", + "patchField": "patch", + "patchType": "UserSettingPatch", + "tableFieldName": "userSetting", + "tableType": "UserSetting", + "typeName": "user_settings", + "updateByPrimaryKey": "updateUserSetting", + "updatePayloadType": "UpdateUserSettingPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "firstName", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "lastName", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "searchRadius", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "zip", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_settings_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_settings_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ], + "uniqueConstraints": [ + { + "name": "user_settings_user_id_key", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [ + { + "fieldName": "user", + "isUnique": true, + "type": "BelongsTo", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "UserStep", + "query": { + "all": "userSteps", + "create": "createUserStep", + "delete": "deleteUserStep", + "one": "userStep", + "update": "updateUserStep" + }, + "inflection": { + "allRows": "userSteps", + "allRowsSimple": "userStepsList", + "conditionType": "UserStepCondition", + "connection": "UserStepsConnection", + "createField": "createUserStep", + "createInputType": "CreateUserStepInput", + "createPayloadType": "CreateUserStepPayload", + "deleteByPrimaryKey": "deleteUserStep", + "deletePayloadType": "DeleteUserStepPayload", + "edge": "UserStepsEdge", + "edgeField": "userStepEdge", + "enumType": "UserSteps", + "filterType": "UserStepFilter", + "inputType": "UserStepInput", + "orderByType": "UserStepsOrderBy", + "patchField": "patch", + "patchType": "UserStepPatch", + "tableFieldName": "userStep", + "tableType": "UserStep", + "typeName": "user_steps", + "updateByPrimaryKey": "updateUserStep", + "updatePayloadType": "UpdateUserStepPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "count", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_steps_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [], + "uniqueConstraints": [], + "relations": { + "belongsTo": [], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "UserViewedAction", + "query": { + "all": "userViewedActions", + "create": "createUserViewedAction", + "delete": "deleteUserViewedAction", + "one": "userViewedAction", + "update": "updateUserViewedAction" + }, + "inflection": { + "allRows": "userViewedActions", + "allRowsSimple": "userViewedActionsList", + "conditionType": "UserViewedActionCondition", + "connection": "UserViewedActionsConnection", + "createField": "createUserViewedAction", + "createInputType": "CreateUserViewedActionInput", + "createPayloadType": "CreateUserViewedActionPayload", + "deleteByPrimaryKey": "deleteUserViewedAction", + "deletePayloadType": "DeleteUserViewedActionPayload", + "edge": "UserViewedActionsEdge", + "edgeField": "userViewedActionEdge", + "enumType": "UserViewedActions", + "filterType": "UserViewedActionFilter", + "inputType": "UserViewedActionInput", + "orderByType": "UserViewedActionsOrderBy", + "patchField": "patch", + "patchType": "UserViewedActionPatch", + "tableFieldName": "userViewedAction", + "tableType": "UserViewedAction", + "typeName": "user_viewed_actions", + "updateByPrimaryKey": "updateUserViewedAction", + "updatePayloadType": "UpdateUserViewedActionPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_viewed_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_viewed_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_viewed_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ], + "uniqueConstraints": [], + "relations": { + "belongsTo": [ + { + "fieldName": "user", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + }, + { + "fieldName": "action", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "Action" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "User", + "query": { + "all": "users", + "create": "createUser", + "delete": "deleteUser", + "one": "user", + "update": "updateUser" + }, + "inflection": { + "allRows": "users", + "allRowsSimple": "usersList", + "conditionType": "UserCondition", + "connection": "UsersConnection", + "createField": "createUser", + "createInputType": "CreateUserInput", + "createPayloadType": "CreateUserPayload", + "deleteByPrimaryKey": "deleteUser", + "deletePayloadType": "DeleteUserPayload", + "edge": "UsersEdge", + "edgeField": "userEdge", + "enumType": "Users", + "filterType": "UserFilter", + "inputType": "UserInput", + "orderByType": "UsersOrderBy", + "patchField": "patch", + "patchType": "UserPatch", + "tableFieldName": "user", + "tableType": "User", + "typeName": "users", + "updateByPrimaryKey": "updateUser", + "updatePayloadType": "UpdateUserPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "users_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [], + "uniqueConstraints": [], + "relations": { + "belongsTo": [], + "has": [ + { + "fieldName": "connectedAccountsByOwnerId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "ConnectedAccount", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "service", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "identifier", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "details", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "isVerified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "connected_accounts_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "connected_accounts_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "emailsByOwnerId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "Email", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "email", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "email", + "pgType": "email", + "subtype": null, + "typmod": null + } + }, + { + "name": "isVerified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "isPrimary", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "emails_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "emails_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "phoneNumbersByOwnerId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "PhoneNumber", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "cc", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "number", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "isVerified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "isPrimary", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "phone_numbers_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "phone_numbers_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "cryptoAddressesByOwnerId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "CryptoAddress", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "address", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "isVerified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "isPrimary", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "crypto_addresses_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "crypto_addresses_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "invitesBySenderId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "Invite", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "email", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "email", + "pgType": "email", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "inviteToken", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "inviteValid", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "inviteLimit", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "inviteCount", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "multiple", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "data", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "expiresAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "invites_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "invites_sender_id_fkey", + "fields": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "claimedInvitesBySenderId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "ClaimedInvite", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "data", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "claimed_invites_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "claimed_invites_sender_id_fkey", + "fields": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "claimed_invites_receiver_id_fkey", + "fields": [ + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "claimedInvitesByReceiverId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "ClaimedInvite", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "data", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "claimed_invites_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "claimed_invites_sender_id_fkey", + "fields": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "claimed_invites_receiver_id_fkey", + "fields": [ + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "authAccountsByOwnerId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "AuthAccount", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "service", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "identifier", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "details", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "isVerified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "auth_accounts_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "auth_accounts_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "userProfile", + "isUnique": true, + "type": "hasOne", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserProfile", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "profilePicture", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "bio", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "reputation", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "displayName", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "tags", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "desired", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_profiles_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_profiles_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "userSetting", + "isUnique": true, + "type": "hasOne", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserSetting", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "firstName", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "lastName", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "searchRadius", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "zip", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_settings_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_settings_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "userCharacteristic", + "isUnique": true, + "type": "hasOne", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserCharacteristic", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "income", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "gender", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": 5, + "pgAlias": "char", + "pgType": "bpchar", + "subtype": null, + "typmod": { + "modifier": 5 + } + } + }, + { + "name": "race", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "age", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "dob", + "type": { + "gqlType": "Date", + "isArray": false, + "modifier": null, + "pgAlias": "date", + "pgType": "date", + "subtype": null, + "typmod": null + } + }, + { + "name": "education", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "homeOwnership", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "treeHuggerLevel", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "diyLevel", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "gardenerLevel", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "freeTime", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "researchToDoer", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_characteristics_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_characteristics_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "userContacts", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserContact", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "vcf", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "fullName", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "emails", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "email", + "pgType": "email", + "subtype": null, + "typmod": null + } + }, + { + "name": "device", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_contacts_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_contacts_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "userConnectionsByRequesterId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "requesterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserConnection", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "accepted", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "requesterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "responderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_connections_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_connections_requester_id_fkey", + "fields": [ + { + "name": "requesterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_connections_responder_id_fkey", + "fields": [ + { + "name": "responderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "userConnectionsByResponderId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "responderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserConnection", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "accepted", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "requesterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "responderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_connections_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_connections_requester_id_fkey", + "fields": [ + { + "name": "requesterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_connections_responder_id_fkey", + "fields": [ + { + "name": "responderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "actionsByOwnerId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "Action", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "slug", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "photo", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "title", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "url", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "url", + "pgType": "url", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "discoveryHeader", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "discoveryDescription", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "enableNotifications", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "enableNotificationsText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "search", + "type": { + "gqlType": "FullText", + "isArray": false, + "modifier": null, + "pgAlias": "tsvector", + "pgType": "tsvector", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "locationRadius", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "timeRequired", + "type": { + "gqlType": "Interval", + "isArray": false, + "modifier": null, + "pgAlias": "interval", + "pgType": "interval", + "subtype": null, + "typmod": null + } + }, + { + "name": "startDate", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "endDate", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "approved", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "rewardAmount", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "activityFeedText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "callToAction", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "completedActionText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "alreadyCompletedActionText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "tags", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "actions_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "actionGoalsByOwnerId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "ActionGoal", + "fields": [ + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "action_goals_pkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "action_goals_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "action_goals_goal_id_fkey", + "fields": [ + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Goal" + } + }, + { + "name": "action_goals_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "actionResultsByOwnerId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "ActionResult", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "action_results_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "action_results_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "action_results_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "userActions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionStarted", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "complete", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "verified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "verifiedDate", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userRating", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "rejected", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "rejectedReason", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "verifierId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_actions_verifier_id_fkey", + "fields": [ + { + "name": "verifierId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userActionsByVerifierId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "verifierId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionStarted", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "complete", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "verified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "verifiedDate", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userRating", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "rejected", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "rejectedReason", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "verifierId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_actions_verifier_id_fkey", + "fields": [ + { + "name": "verifierId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userActionResults", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionResult", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "value", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_results_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_results_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_results_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "user_action_results_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_results_action_result_id_fkey", + "fields": [ + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "ActionResult" + } + } + ] + } + }, + { + "fieldName": "userActionItems", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionItem", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "value", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "status", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_items_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_items_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_items_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "user_action_items_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_items_action_item_id_fkey", + "fields": [ + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "ActionItem" + } + } + ] + } + }, + { + "fieldName": "organizationProfileByOrganizationId", + "isUnique": true, + "type": "hasOne", + "keys": [ + { + "name": "organizationId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "OrganizationProfile", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "profilePicture", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "website", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "url", + "pgType": "url", + "subtype": null, + "typmod": null + } + }, + { + "name": "reputation", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "tags", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "organizationId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "organization_profiles_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "organization_profiles_organization_id_fkey", + "fields": [ + { + "name": "organizationId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "userPassActions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserPassAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_pass_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_pass_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_pass_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userSavedActions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserSavedAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_saved_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_saved_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_saved_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userViewedActions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserViewedAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_viewed_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_viewed_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_viewed_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userActionReactions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionReaction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_reactions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_reactions_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_reactions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_reactions_reacter_id_fkey", + "fields": [ + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_reactions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userActionReactionsByReacterId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionReaction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_reactions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_reactions_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_reactions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_reactions_reacter_id_fkey", + "fields": [ + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_reactions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userMessagesBySenderId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserMessage", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "content", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "upload", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "upload", + "pgType": "upload", + "subtype": null, + "typmod": null + } + }, + { + "name": "received", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverRead", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderReaction", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverReaction", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_messages_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_messages_sender_id_fkey", + "fields": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_messages_receiver_id_fkey", + "fields": [ + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "userMessagesByReceiverId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserMessage", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "content", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "upload", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "upload", + "pgType": "upload", + "subtype": null, + "typmod": null + } + }, + { + "name": "received", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverRead", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderReaction", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverReaction", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_messages_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_messages_sender_id_fkey", + "fields": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_messages_receiver_id_fkey", + "fields": [ + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "messagesBySenderId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "Message", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "content", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "upload", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "upload", + "pgType": "upload", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "messages_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "messages_sender_id_fkey", + "fields": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "messages_group_id_fkey", + "fields": [ + { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "MessageGroup" + } + } + ] + } + } + ], + "hasMany": [ + { + "fieldName": "connectedAccountsByOwnerId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "ConnectedAccount", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "service", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "identifier", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "details", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "isVerified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "connected_accounts_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "connected_accounts_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "emailsByOwnerId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "Email", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "email", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "email", + "pgType": "email", + "subtype": null, + "typmod": null + } + }, + { + "name": "isVerified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "isPrimary", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "emails_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "emails_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "phoneNumbersByOwnerId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "PhoneNumber", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "cc", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "number", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "isVerified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "isPrimary", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "phone_numbers_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "phone_numbers_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "cryptoAddressesByOwnerId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "CryptoAddress", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "address", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "isVerified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "isPrimary", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "crypto_addresses_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "crypto_addresses_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "invitesBySenderId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "Invite", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "email", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "email", + "pgType": "email", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "inviteToken", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "inviteValid", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "inviteLimit", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "inviteCount", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "multiple", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "data", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "expiresAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "invites_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "invites_sender_id_fkey", + "fields": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "claimedInvitesBySenderId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "ClaimedInvite", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "data", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "claimed_invites_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "claimed_invites_sender_id_fkey", + "fields": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "claimed_invites_receiver_id_fkey", + "fields": [ + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "claimedInvitesByReceiverId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "ClaimedInvite", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "data", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "claimed_invites_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "claimed_invites_sender_id_fkey", + "fields": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "claimed_invites_receiver_id_fkey", + "fields": [ + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "authAccountsByOwnerId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "AuthAccount", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "service", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "identifier", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "details", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "isVerified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "auth_accounts_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "auth_accounts_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "userContacts", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserContact", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "vcf", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "fullName", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "emails", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "email", + "pgType": "email", + "subtype": null, + "typmod": null + } + }, + { + "name": "device", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_contacts_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_contacts_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "userConnectionsByRequesterId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "requesterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserConnection", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "accepted", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "requesterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "responderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_connections_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_connections_requester_id_fkey", + "fields": [ + { + "name": "requesterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_connections_responder_id_fkey", + "fields": [ + { + "name": "responderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "userConnectionsByResponderId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "responderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserConnection", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "accepted", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "requesterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "responderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_connections_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_connections_requester_id_fkey", + "fields": [ + { + "name": "requesterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_connections_responder_id_fkey", + "fields": [ + { + "name": "responderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "actionsByOwnerId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "Action", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "slug", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "photo", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "title", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "url", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "url", + "pgType": "url", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "discoveryHeader", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "discoveryDescription", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "enableNotifications", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "enableNotificationsText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "search", + "type": { + "gqlType": "FullText", + "isArray": false, + "modifier": null, + "pgAlias": "tsvector", + "pgType": "tsvector", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "locationRadius", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "timeRequired", + "type": { + "gqlType": "Interval", + "isArray": false, + "modifier": null, + "pgAlias": "interval", + "pgType": "interval", + "subtype": null, + "typmod": null + } + }, + { + "name": "startDate", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "endDate", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "approved", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "rewardAmount", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "activityFeedText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "callToAction", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "completedActionText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "alreadyCompletedActionText", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "tags", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "actions_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "actionGoalsByOwnerId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "ActionGoal", + "fields": [ + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "action_goals_pkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "action_goals_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "action_goals_goal_id_fkey", + "fields": [ + { + "name": "goalId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Goal" + } + }, + { + "name": "action_goals_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "actionResultsByOwnerId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "ActionResult", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "action_results_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "action_results_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "action_results_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "userActions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionStarted", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "complete", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "verified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "verifiedDate", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userRating", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "rejected", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "rejectedReason", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "verifierId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_actions_verifier_id_fkey", + "fields": [ + { + "name": "verifierId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userActionsByVerifierId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "verifierId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionStarted", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "complete", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "verified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "verifiedDate", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userRating", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "rejected", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "rejectedReason", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "verifierId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_actions_verifier_id_fkey", + "fields": [ + { + "name": "verifierId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userActionResults", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionResult", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "value", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_results_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_results_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_results_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "user_action_results_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_results_action_result_id_fkey", + "fields": [ + { + "name": "actionResultId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "ActionResult" + } + } + ] + } + }, + { + "fieldName": "userActionItems", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionItem", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "value", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "status", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_items_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_items_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_items_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + }, + { + "name": "user_action_items_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_items_action_item_id_fkey", + "fields": [ + { + "name": "actionItemId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "ActionItem" + } + } + ] + } + }, + { + "fieldName": "userPassActions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserPassAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_pass_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_pass_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_pass_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userSavedActions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserSavedAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_saved_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_saved_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_saved_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userViewedActions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserViewedAction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_viewed_actions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_viewed_actions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_viewed_actions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userActionReactions", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionReaction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_reactions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_reactions_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_reactions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_reactions_reacter_id_fkey", + "fields": [ + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_reactions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userActionReactionsByReacterId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserActionReaction", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_action_reactions_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_action_reactions_user_action_id_fkey", + "fields": [ + { + "name": "userActionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "UserAction" + } + }, + { + "name": "user_action_reactions_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_reactions_reacter_id_fkey", + "fields": [ + { + "name": "reacterId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_action_reactions_action_id_fkey", + "fields": [ + { + "name": "actionId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "Action" + } + } + ] + } + }, + { + "fieldName": "userMessagesBySenderId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserMessage", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "content", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "upload", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "upload", + "pgType": "upload", + "subtype": null, + "typmod": null + } + }, + { + "name": "received", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverRead", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderReaction", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverReaction", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_messages_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_messages_sender_id_fkey", + "fields": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_messages_receiver_id_fkey", + "fields": [ + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "userMessagesByReceiverId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserMessage", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "content", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "upload", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "upload", + "pgType": "upload", + "subtype": null, + "typmod": null + } + }, + { + "name": "received", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverRead", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderReaction", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverReaction", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_messages_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_messages_sender_id_fkey", + "fields": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "user_messages_receiver_id_fkey", + "fields": [ + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "messagesBySenderId", + "isUnique": false, + "type": "hasMany", + "keys": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "Message", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "content", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "upload", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "upload", + "pgType": "upload", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "messages_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "messages_sender_id_fkey", + "fields": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "messages_group_id_fkey", + "fields": [ + { + "name": "groupId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "MessageGroup" + } + } + ] + } + } + ], + "hasOne": [ + { + "fieldName": "userProfile", + "isUnique": true, + "type": "hasOne", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserProfile", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "profilePicture", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "bio", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "reputation", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "displayName", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "tags", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "desired", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_profiles_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_profiles_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "userSetting", + "isUnique": true, + "type": "hasOne", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserSetting", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "firstName", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "lastName", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "searchRadius", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "zip", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_settings_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_settings_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "userCharacteristic", + "isUnique": true, + "type": "hasOne", + "keys": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "UserCharacteristic", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "income", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "gender", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": 5, + "pgAlias": "char", + "pgType": "bpchar", + "subtype": null, + "typmod": { + "modifier": 5 + } + } + }, + { + "name": "race", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "age", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "dob", + "type": { + "gqlType": "Date", + "isArray": false, + "modifier": null, + "pgAlias": "date", + "pgType": "date", + "subtype": null, + "typmod": null + } + }, + { + "name": "education", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "homeOwnership", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "treeHuggerLevel", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "diyLevel", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "gardenerLevel", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "freeTime", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "researchToDoer", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "smallint", + "pgType": "int2", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "user_characteristics_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "user_characteristics_user_id_fkey", + "fields": [ + { + "name": "userId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + }, + { + "fieldName": "organizationProfileByOrganizationId", + "isUnique": true, + "type": "hasOne", + "keys": [ + { + "name": "organizationId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "referencedBy": { + "name": "OrganizationProfile", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "name", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "profilePicture", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "image", + "pgType": "image", + "subtype": null, + "typmod": null + } + }, + { + "name": "description", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "website", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "url", + "pgType": "url", + "subtype": null, + "typmod": null + } + }, + { + "name": "reputation", + "type": { + "gqlType": "BigFloat", + "isArray": false, + "modifier": null, + "pgAlias": "numeric", + "pgType": "numeric", + "subtype": null, + "typmod": null + } + }, + { + "name": "tags", + "type": { + "gqlType": "[String]", + "isArray": true, + "modifier": null, + "pgAlias": "citext", + "pgType": "citext", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "organizationId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "organization_profiles_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "organization_profiles_organization_id_fkey", + "fields": [ + { + "name": "organizationId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + } + } + ], + "manyToMany": [ + { + "fieldName": "usersByClaimedInviteSenderIdAndReceiverId", + "type": "ManyToMany", + "leftKeyAttributes": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "rightKeyAttributes": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "junctionTable": { + "name": "ClaimedInvite", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "data", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "query": { + "all": "claimedInvites", + "create": "createClaimedInvite", + "delete": "deleteClaimedInvite", + "one": "claimedInvite", + "update": "updateClaimedInvite" + }, + "primaryKeyConstraints": [ + { + "name": "claimed_invites_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "claimed_invites_sender_id_fkey", + "fields": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "claimed_invites_receiver_id_fkey", + "fields": [ + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + }, + "rightTable": { + "name": "User", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + } + ], + "query": { + "all": "users", + "create": "createUser", + "delete": "deleteUser", + "one": "user", + "update": "updateUser" + }, + "primaryKeyConstraints": [ + { + "name": "users_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [] + } + }, + { + "fieldName": "usersByClaimedInviteReceiverIdAndSenderId", + "type": "ManyToMany", + "leftKeyAttributes": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "rightKeyAttributes": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "junctionTable": { + "name": "ClaimedInvite", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "data", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "query": { + "all": "claimedInvites", + "create": "createClaimedInvite", + "delete": "deleteClaimedInvite", + "one": "claimedInvite", + "update": "updateClaimedInvite" + }, + "primaryKeyConstraints": [ + { + "name": "claimed_invites_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "claimed_invites_sender_id_fkey", + "fields": [ + { + "name": "senderId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + }, + { + "name": "claimed_invites_receiver_id_fkey", + "fields": [ + { + "name": "receiverId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ] + }, + "rightTable": { + "name": "User", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "type", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + } + ], + "query": { + "all": "users", + "create": "createUser", + "delete": "deleteUser", + "one": "user", + "update": "updateUser" + }, + "primaryKeyConstraints": [ + { + "name": "users_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [] + } + } + ] + } + }, + { + "name": "ZipCode", + "query": { + "all": "zipCodes", + "create": "createZipCode", + "delete": "deleteZipCode", + "one": "zipCode", + "update": "updateZipCode" + }, + "inflection": { + "allRows": "zipCodes", + "allRowsSimple": "zipCodesList", + "conditionType": "ZipCodeCondition", + "connection": "ZipCodesConnection", + "createField": "createZipCode", + "createInputType": "CreateZipCodeInput", + "createPayloadType": "CreateZipCodePayload", + "deleteByPrimaryKey": "deleteZipCode", + "deletePayloadType": "DeleteZipCodePayload", + "edge": "ZipCodesEdge", + "edgeField": "zipCodeEdge", + "enumType": "ZipCodes", + "filterType": "ZipCodeFilter", + "inputType": "ZipCodeInput", + "orderByType": "ZipCodesOrderBy", + "patchField": "patch", + "patchType": "ZipCodePatch", + "tableFieldName": "zipCode", + "tableType": "ZipCode", + "typeName": "zip_codes", + "updateByPrimaryKey": "updateZipCode", + "updatePayloadType": "UpdateZipCodePayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "zip", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + }, + { + "name": "location", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107460, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPoint", + "typmod": { + "srid": 4326, + "subtype": 1, + "hasZ": false, + "hasM": false, + "gisType": "Point" + } + } + }, + { + "name": "bbox", + "type": { + "gqlType": "GeoJSON", + "isArray": false, + "modifier": 1107468, + "pgAlias": "geometry", + "pgType": "geometry", + "subtype": "GeometryPolygon", + "typmod": { + "srid": 4326, + "subtype": 3, + "hasZ": false, + "hasM": false, + "gisType": "Polygon" + } + } + }, + { + "name": "createdBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedBy", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "createdAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + }, + { + "name": "updatedAt", + "type": { + "gqlType": "Datetime", + "isArray": false, + "modifier": null, + "pgAlias": "timestamptz", + "pgType": "timestamptz", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "zip_codes_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [], + "uniqueConstraints": [ + { + "name": "zip_codes_zip_key", + "fields": [ + { + "name": "zip", + "type": { + "gqlType": "Int", + "isArray": false, + "modifier": null, + "pgAlias": "int", + "pgType": "int4", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + }, + { + "name": "AuthAccount", + "query": { + "all": "authAccounts", + "create": "createAuthAccount", + "delete": "deleteAuthAccount", + "one": "authAccount", + "update": "updateAuthAccount" + }, + "inflection": { + "allRows": "authAccounts", + "allRowsSimple": "authAccountsList", + "conditionType": "AuthAccountCondition", + "connection": "AuthAccountsConnection", + "createField": "createAuthAccount", + "createInputType": "CreateAuthAccountInput", + "createPayloadType": "CreateAuthAccountPayload", + "deleteByPrimaryKey": "deleteAuthAccount", + "deletePayloadType": "DeleteAuthAccountPayload", + "edge": "AuthAccountsEdge", + "edgeField": "authAccountEdge", + "enumType": "AuthAccounts", + "filterType": "AuthAccountFilter", + "inputType": "AuthAccountInput", + "orderByType": "AuthAccountsOrderBy", + "patchField": "patch", + "patchType": "AuthAccountPatch", + "tableFieldName": "authAccount", + "tableType": "AuthAccount", + "typeName": "auth_accounts", + "updateByPrimaryKey": "updateAuthAccount", + "updatePayloadType": "UpdateAuthAccountPayload" + }, + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + }, + { + "name": "service", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "identifier", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "details", + "type": { + "gqlType": "JSON", + "isArray": false, + "modifier": null, + "pgAlias": "jsonb", + "pgType": "jsonb", + "subtype": null, + "typmod": null + } + }, + { + "name": "isVerified", + "type": { + "gqlType": "Boolean", + "isArray": false, + "modifier": null, + "pgAlias": "boolean", + "pgType": "bool", + "subtype": null, + "typmod": null + } + } + ], + "primaryKeyConstraints": [ + { + "name": "auth_accounts_pkey", + "fields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "foreignKeyConstraints": [ + { + "name": "auth_accounts_owner_id_fkey", + "fields": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refFields": [ + { + "name": "id", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "refTable": { + "name": "User" + } + } + ], + "uniqueConstraints": [ + { + "name": "auth_accounts_service_identifier_key", + "fields": [ + { + "name": "service", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + }, + { + "name": "identifier", + "type": { + "gqlType": "String", + "isArray": false, + "modifier": null, + "pgAlias": "text", + "pgType": "text", + "subtype": null, + "typmod": null + } + } + ] + } + ], + "relations": { + "belongsTo": [ + { + "fieldName": "owner", + "isUnique": false, + "type": "BelongsTo", + "keys": [ + { + "name": "ownerId", + "type": { + "gqlType": "UUID", + "isArray": false, + "modifier": null, + "pgAlias": "uuid", + "pgType": "uuid", + "subtype": null, + "typmod": null + } + } + ], + "references": { + "name": "User" + } + } + ], + "has": [], + "hasMany": [], + "hasOne": [], + "manyToMany": [] + } + } + ] + } } diff --git a/graphql/query/__fixtures__/generate-fixtures.js b/graphql/query/__fixtures__/generate-fixtures.js index d2649a52f..561244b78 100644 --- a/graphql/query/__fixtures__/generate-fixtures.js +++ b/graphql/query/__fixtures__/generate-fixtures.js @@ -1,47 +1,33 @@ -const path = require('path'); -const fs = require('fs'); -const intro = require('introspectron'); -const builder = require('@constructive-io/graphql-query'); +import fs from 'fs'; +import path from 'path'; +import builder from '@launchql/query'; +import intro from 'introspectron'; function generateIntrospectionFixture() { - const inDir = path.resolve( - __dirname, - '../../../packages/introspectron/__fixtures__/intro-query-dbe.json' - ); - const outDir = path.resolve(__dirname, './api/introspection.json'); - fs.readFile(inDir, { encoding: 'utf8' }, (err, data) => { - if (err) return console.log(err); - const introspection = intro.parseGraphQuery(JSON.parse(data)); - fs.writeFile( - outDir, - JSON.stringify( - { ...introspection.queries, ...introspection.mutations }, - null, - 2 - ), - (err) => { - if (err) return console.log(err); - console.log('DONE'); - } - ); - }); + const inDir = path.resolve(__dirname, '../../../packages/introspectron/__fixtures__/intro-query-dbe.json'); + const outDir = path.resolve(__dirname, './api/introspection.json'); + fs.readFile(inDir, { encoding: 'utf8' }, (err, data) => { + if (err) return console.log(err); + const introspection = intro.parseGraphQuery(JSON.parse(data)); + fs.writeFile(outDir, JSON.stringify({ ...introspection.queries, ...introspection.mutations }, null, 2), (err) => { + if (err) return console.log(err); + console.log('DONE'); + }); + }); } function generateMetaObjectFixture() { - const inDir = path.resolve( - __dirname, - '../../__fixtures__/api/meta-schema.json' - ); - const outDir = path.resolve(__dirname, './api/meta-obj.json'); - fs.readFile(inDir, { encoding: 'utf8' }, (err, data) => { - if (err) return console.log(err); - const converted = builder.MetaObject.convertFromMetaSchema(JSON.parse(data)); - fs.writeFile(outDir, JSON.stringify(converted), (err) => { - if (err) return console.log(err); - console.log('DONE'); - }); - }); + const inDir = path.resolve(__dirname, '../../__fixtures__/api/meta-schema.json'); + const outDir = path.resolve(__dirname, './api/meta-obj.json'); + fs.readFile(inDir, { encoding: 'utf8' }, (err, data) => { + if (err) return console.log(err); + const converted = builder.MetaObject.convertFromMetaSchema(JSON.parse(data)); + fs.writeFile(outDir, JSON.stringify(converted), (err) => { + if (err) return console.log(err); + console.log('DONE'); + }); + }); } generateIntrospectionFixture(); -// generateMetaObjectFixture();/////////// +generateMetaObjectFixture(); diff --git a/graphql/query/__tests__/__snapshots__/builder.test.ts.snap b/graphql/query/__tests__/__snapshots__/builder.node.test.ts.snap similarity index 65% rename from graphql/query/__tests__/__snapshots__/builder.test.ts.snap rename to graphql/query/__tests__/__snapshots__/builder.node.test.ts.snap index 74352fe0c..b899ac931 100644 --- a/graphql/query/__tests__/__snapshots__/builder.test.ts.snap +++ b/graphql/query/__tests__/__snapshots__/builder.node.test.ts.snap @@ -1,12 +1,13 @@ // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`create with custom selection 1`] = ` -"mutation createActionMutation($id: UUID, $slug: String, $photo: JSON, $shareImage: JSON, $title: String, $titleObjectTemplate: String, $url: String, $description: String, $discoveryHeader: String, $discoveryDescription: String, $notificationText: String, $notificationObjectTemplate: String, $enableNotifications: Boolean, $enableNotificationsText: String, $search: FullText, $location: GeoJSON, $locationRadius: BigFloat, $timeRequired: IntervalInput, $startDate: Datetime, $endDate: Datetime, $approved: Boolean, $published: Boolean, $isPrivate: Boolean, $rewardAmount: BigFloat, $activityFeedText: String, $callToAction: String, $completedActionText: String, $alreadyCompletedActionText: String, $selfVerifiable: Boolean, $isRecurring: Boolean, $recurringInterval: IntervalInput, $oncePerObject: Boolean, $minimumGroupMembers: Int, $limitedToLocation: Boolean, $tags: [String], $groupId: UUID, $ownerId: UUID!, $objectTypeId: Int, $rewardId: UUID, $verifyRewardId: UUID, $photoUpload: Upload, $shareImageUpload: Upload) { +"mutation createActionMutation($id: UUID, $slug: String, $photo: JSON, $shareImage: JSON, $title: String, $titleObjectTemplate: String, $url: String, $description: String, $discoveryHeader: String, $discoveryDescription: String, $notificationText: String, $notificationObjectTemplate: String, $enableNotifications: Boolean, $enableNotificationsText: String, $search: FullText, $location: GeoJSON, $locationRadius: BigFloat, $timeRequired: [object Object], $startDate: Datetime, $endDate: Datetime, $approved: Boolean, $published: Boolean, $isPrivate: Boolean, $rewardAmount: BigFloat, $activityFeedText: String, $callToAction: String, $completedActionText: String, $alreadyCompletedActionText: String, $selfVerifiable: Boolean, $isRecurring: Boolean, $recurringInterval: [object Object], $oncePerObject: Boolean, $minimumGroupMembers: Int, $limitedToLocation: Boolean, $tags: [String], $groupId: UUID, $ownerId: UUID!, $objectTypeId: Int, $rewardId: UUID, $verifyRewardId: UUID, $photoUpload: Upload, $shareImageUpload: Upload) { createAction( input: {action: {id: $id, slug: $slug, photo: $photo, shareImage: $shareImage, title: $title, titleObjectTemplate: $titleObjectTemplate, url: $url, description: $description, discoveryHeader: $discoveryHeader, discoveryDescription: $discoveryDescription, notificationText: $notificationText, notificationObjectTemplate: $notificationObjectTemplate, enableNotifications: $enableNotifications, enableNotificationsText: $enableNotificationsText, search: $search, location: $location, locationRadius: $locationRadius, timeRequired: $timeRequired, startDate: $startDate, endDate: $endDate, approved: $approved, published: $published, isPrivate: $isPrivate, rewardAmount: $rewardAmount, activityFeedText: $activityFeedText, callToAction: $callToAction, completedActionText: $completedActionText, alreadyCompletedActionText: $alreadyCompletedActionText, selfVerifiable: $selfVerifiable, isRecurring: $isRecurring, recurringInterval: $recurringInterval, oncePerObject: $oncePerObject, minimumGroupMembers: $minimumGroupMembers, limitedToLocation: $limitedToLocation, tags: $tags, groupId: $groupId, ownerId: $ownerId, objectTypeId: $objectTypeId, rewardId: $rewardId, verifyRewardId: $verifyRewardId, photoUpload: $photoUpload, shareImageUpload: $shareImageUpload}} ) { action { id + name photo title } @@ -18,7 +19,7 @@ exports[`create with custom selection 1`] = ` exports[`create with custom selection 2`] = `"createActionMutation"`; exports[`create with default scalar selection 1`] = ` -"mutation createActionMutation($id: UUID, $slug: String, $photo: JSON, $shareImage: JSON, $title: String, $titleObjectTemplate: String, $url: String, $description: String, $discoveryHeader: String, $discoveryDescription: String, $notificationText: String, $notificationObjectTemplate: String, $enableNotifications: Boolean, $enableNotificationsText: String, $search: FullText, $location: GeoJSON, $locationRadius: BigFloat, $timeRequired: IntervalInput, $startDate: Datetime, $endDate: Datetime, $approved: Boolean, $published: Boolean, $isPrivate: Boolean, $rewardAmount: BigFloat, $activityFeedText: String, $callToAction: String, $completedActionText: String, $alreadyCompletedActionText: String, $selfVerifiable: Boolean, $isRecurring: Boolean, $recurringInterval: IntervalInput, $oncePerObject: Boolean, $minimumGroupMembers: Int, $limitedToLocation: Boolean, $tags: [String], $groupId: UUID, $ownerId: UUID!, $objectTypeId: Int, $rewardId: UUID, $verifyRewardId: UUID, $photoUpload: Upload, $shareImageUpload: Upload) { +"mutation createActionMutation($id: UUID, $slug: String, $photo: JSON, $shareImage: JSON, $title: String, $titleObjectTemplate: String, $url: String, $description: String, $discoveryHeader: String, $discoveryDescription: String, $notificationText: String, $notificationObjectTemplate: String, $enableNotifications: Boolean, $enableNotificationsText: String, $search: FullText, $location: GeoJSON, $locationRadius: BigFloat, $timeRequired: [object Object], $startDate: Datetime, $endDate: Datetime, $approved: Boolean, $published: Boolean, $isPrivate: Boolean, $rewardAmount: BigFloat, $activityFeedText: String, $callToAction: String, $completedActionText: String, $alreadyCompletedActionText: String, $selfVerifiable: Boolean, $isRecurring: Boolean, $recurringInterval: [object Object], $oncePerObject: Boolean, $minimumGroupMembers: Int, $limitedToLocation: Boolean, $tags: [String], $groupId: UUID, $ownerId: UUID!, $objectTypeId: Int, $rewardId: UUID, $verifyRewardId: UUID, $photoUpload: Upload, $shareImageUpload: Upload) { createAction( input: {action: {id: $id, slug: $slug, photo: $photo, shareImage: $shareImage, title: $title, titleObjectTemplate: $titleObjectTemplate, url: $url, description: $description, discoveryHeader: $discoveryHeader, discoveryDescription: $discoveryDescription, notificationText: $notificationText, notificationObjectTemplate: $notificationObjectTemplate, enableNotifications: $enableNotifications, enableNotificationsText: $enableNotificationsText, search: $search, location: $location, locationRadius: $locationRadius, timeRequired: $timeRequired, startDate: $startDate, endDate: $endDate, approved: $approved, published: $published, isPrivate: $isPrivate, rewardAmount: $rewardAmount, activityFeedText: $activityFeedText, callToAction: $callToAction, completedActionText: $completedActionText, alreadyCompletedActionText: $alreadyCompletedActionText, selfVerifiable: $selfVerifiable, isRecurring: $isRecurring, recurringInterval: $recurringInterval, oncePerObject: $oncePerObject, minimumGroupMembers: $minimumGroupMembers, limitedToLocation: $limitedToLocation, tags: $tags, groupId: $groupId, ownerId: $ownerId, objectTypeId: $objectTypeId, rewardId: $rewardId, verifyRewardId: $verifyRewardId, photoUpload: $photoUpload, shareImageUpload: $shareImageUpload}} ) { @@ -108,27 +109,74 @@ exports[`expands further selections of custom ast fields in nested selection 1`] condition: $condition filter: $filter orderBy: $orderBy - ) {totalCount, pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - }, nodes { - action { - id - location { - geojson - } - timeRequired { - days - hours - minutes - months - seconds - years + ) { + totalCount + pageInfo { + hasNextPage + hasPreviousPage + endCursor + startCursor + } + nodes { + action { + id + slug + photo + shareImage + title + titleObjectTemplate + url + description + discoveryHeader + discoveryDescription + notificationText + notificationObjectTemplate + enableNotifications + enableNotificationsText + search + location { + geojson + } + locationRadius + timeRequired { + days + hours + minutes + months + seconds + years + } + startDate + endDate + approved + published + isPrivate + rewardAmount + activityFeedText + callToAction + completedActionText + alreadyCompletedActionText + selfVerifiable + isRecurring + recurringInterval { + days + hours + minutes + months + seconds + years + } + oncePerObject + minimumGroupMembers + limitedToLocation + tags + createdBy + updatedBy + createdAt + updatedAt } } - }} + } } " `; @@ -137,11 +185,15 @@ exports[`expands further selections of custom ast fields in nested selection 2`] exports[`getAll 1`] = ` "query getActionsQueryAll { - actions {totalCount, nodes { - id - photo - title - }} + actions { + totalCount + nodes { + id + name + photo + title + } + } } " `; @@ -159,19 +211,24 @@ exports[`getMany edges 1`] = ` condition: $condition filter: $filter orderBy: $orderBy - ) {totalCount, pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - }, edges { - cursor - node { - id - photo - title + ) { + totalCount + pageInfo { + hasNextPage + hasPreviousPage + endCursor + startCursor + } + edges { + cursor + node { + id + name + photo + title + } } - }} + } } " `; @@ -189,68 +246,72 @@ exports[`getMany should select only scalar fields by default 1`] = ` condition: $condition filter: $filter orderBy: $orderBy - ) {totalCount, pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - }, nodes { - id - slug - photo - shareImage - title - titleObjectTemplate - url - description - discoveryHeader - discoveryDescription - notificationText - notificationObjectTemplate - enableNotifications - enableNotificationsText - search - location { - geojson - } - locationRadius - timeRequired { - days - hours - minutes - months - seconds - years + ) { + totalCount + pageInfo { + hasNextPage + hasPreviousPage + endCursor + startCursor } - startDate - endDate - approved - published - isPrivate - rewardAmount - activityFeedText - callToAction - completedActionText - alreadyCompletedActionText - selfVerifiable - isRecurring - recurringInterval { - days - hours - minutes - months - seconds - years + nodes { + id + slug + photo + shareImage + title + titleObjectTemplate + url + description + discoveryHeader + discoveryDescription + notificationText + notificationObjectTemplate + enableNotifications + enableNotificationsText + search + location { + geojson + } + locationRadius + timeRequired { + days + hours + minutes + months + seconds + years + } + startDate + endDate + approved + published + isPrivate + rewardAmount + activityFeedText + callToAction + completedActionText + alreadyCompletedActionText + selfVerifiable + isRecurring + recurringInterval { + days + hours + minutes + months + seconds + years + } + oncePerObject + minimumGroupMembers + limitedToLocation + tags + createdBy + updatedBy + createdAt + updatedAt } - oncePerObject - minimumGroupMembers - limitedToLocation - tags - createdBy - updatedBy - createdAt - updatedAt - }} + } } " `; @@ -268,16 +329,21 @@ exports[`getMany should whitelist selected fields 1`] = ` condition: $condition filter: $filter orderBy: $orderBy - ) {totalCount, pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - }, nodes { - id - photo - title - }} + ) { + totalCount + pageInfo { + hasNextPage + hasPreviousPage + endCursor + startCursor + } + nodes { + id + name + photo + title + } + } } " `; @@ -288,6 +354,7 @@ exports[`getOne 1`] = ` "query getActionQuery($id: UUID!) { action(id: $id) { id + name photo title } @@ -308,19 +375,23 @@ exports[`selects all scalar fields of junction table by default 1`] = ` condition: $condition filter: $filter orderBy: $orderBy - ) {totalCount, pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - }, nodes { - createdBy - updatedBy - createdAt - updatedAt - actionId - goalId - }} + ) { + totalCount + pageInfo { + hasNextPage + hasPreviousPage + endCursor + startCursor + } + nodes { + createdBy + updatedBy + createdAt + updatedAt + actionId + goalId + } + } } " `; @@ -336,16 +407,24 @@ exports[`selects belongsTo relation field 1`] = ` condition: $condition filter: $filter orderBy: $orderBy - ) {totalCount, pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - }, nodes { - owner { - id + ) { + totalCount + pageInfo { + hasNextPage + hasPreviousPage + endCursor + startCursor + } + nodes { + owner { + id + username + displayName + profilePicture + searchTsv + } } - }} + } } " `; @@ -363,32 +442,39 @@ exports[`selects relation field 1`] = ` condition: $condition filter: $filter orderBy: $orderBy - ) {totalCount, pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - }, nodes { - id - slug - photo - title - url - goals(first: 3) {totalCount, nodes { + ) { + totalCount + pageInfo { + hasNextPage + hasPreviousPage + endCursor + startCursor + } + nodes { id - name slug - shortName - icon - subHead - tags - search - createdBy - updatedBy - createdAt - updatedAt - }} - }} + photo + title + url + goals(first: 3) { + totalCount + nodes { + id + name + slug + shortName + icon + subHead + tags + search + createdBy + updatedBy + createdAt + updatedAt + } + } + } + } } " `; @@ -404,16 +490,21 @@ exports[`should select totalCount in subfields by default 1`] = ` condition: $condition filter: $filter orderBy: $orderBy - ) {totalCount, pageInfo { - hasNextPage - hasPreviousPage - endCursor - startCursor - }, nodes { - id - photo - title - }} + ) { + totalCount + pageInfo { + hasNextPage + hasPreviousPage + endCursor + startCursor + } + nodes { + id + name + photo + title + } + } } " `; @@ -421,12 +512,13 @@ exports[`should select totalCount in subfields by default 1`] = ` exports[`should select totalCount in subfields by default 2`] = `"getActionsQuery"`; exports[`update with custom selection 1`] = ` -"mutation updateActionMutation($id: UUID!, $slug: String, $photo: JSON, $shareImage: JSON, $title: String, $titleObjectTemplate: String, $url: String, $description: String, $discoveryHeader: String, $discoveryDescription: String, $notificationText: String, $notificationObjectTemplate: String, $enableNotifications: Boolean, $enableNotificationsText: String, $search: FullText, $location: GeoJSON, $locationRadius: BigFloat, $timeRequired: IntervalInput, $startDate: Datetime, $endDate: Datetime, $approved: Boolean, $published: Boolean, $isPrivate: Boolean, $rewardAmount: BigFloat, $activityFeedText: String, $callToAction: String, $completedActionText: String, $alreadyCompletedActionText: String, $selfVerifiable: Boolean, $isRecurring: Boolean, $recurringInterval: IntervalInput, $oncePerObject: Boolean, $minimumGroupMembers: Int, $limitedToLocation: Boolean, $tags: [String], $groupId: UUID, $ownerId: UUID, $objectTypeId: Int, $rewardId: UUID, $verifyRewardId: UUID, $photoUpload: Upload, $shareImageUpload: Upload) { +"mutation updateActionMutation($slug: String, $photo: JSON, $shareImage: JSON, $title: String, $titleObjectTemplate: String, $url: String, $description: String, $discoveryHeader: String, $discoveryDescription: String, $notificationText: String, $notificationObjectTemplate: String, $enableNotifications: Boolean, $enableNotificationsText: String, $search: FullText, $location: GeoJSON, $locationRadius: BigFloat, $timeRequired: [object Object], $startDate: Datetime, $endDate: Datetime, $approved: Boolean, $published: Boolean, $isPrivate: Boolean, $rewardAmount: BigFloat, $activityFeedText: String, $callToAction: String, $completedActionText: String, $alreadyCompletedActionText: String, $selfVerifiable: Boolean, $isRecurring: Boolean, $recurringInterval: [object Object], $oncePerObject: Boolean, $minimumGroupMembers: Int, $limitedToLocation: Boolean, $tags: [String], $groupId: UUID, $ownerId: UUID, $objectTypeId: Int, $rewardId: UUID, $verifyRewardId: UUID, $photoUpload: Upload, $shareImageUpload: Upload, $id: String!) { updateAction( input: {id: $id, patch: {slug: $slug, photo: $photo, shareImage: $shareImage, title: $title, titleObjectTemplate: $titleObjectTemplate, url: $url, description: $description, discoveryHeader: $discoveryHeader, discoveryDescription: $discoveryDescription, notificationText: $notificationText, notificationObjectTemplate: $notificationObjectTemplate, enableNotifications: $enableNotifications, enableNotificationsText: $enableNotificationsText, search: $search, location: $location, locationRadius: $locationRadius, timeRequired: $timeRequired, startDate: $startDate, endDate: $endDate, approved: $approved, published: $published, isPrivate: $isPrivate, rewardAmount: $rewardAmount, activityFeedText: $activityFeedText, callToAction: $callToAction, completedActionText: $completedActionText, alreadyCompletedActionText: $alreadyCompletedActionText, selfVerifiable: $selfVerifiable, isRecurring: $isRecurring, recurringInterval: $recurringInterval, oncePerObject: $oncePerObject, minimumGroupMembers: $minimumGroupMembers, limitedToLocation: $limitedToLocation, tags: $tags, groupId: $groupId, ownerId: $ownerId, objectTypeId: $objectTypeId, rewardId: $rewardId, verifyRewardId: $verifyRewardId, photoUpload: $photoUpload, shareImageUpload: $shareImageUpload}} ) { action { id + name photo title } @@ -438,7 +530,7 @@ exports[`update with custom selection 1`] = ` exports[`update with custom selection 2`] = `"updateActionMutation"`; exports[`update with default scalar selection 1`] = ` -"mutation updateActionMutation($id: UUID!, $slug: String, $photo: JSON, $shareImage: JSON, $title: String, $titleObjectTemplate: String, $url: String, $description: String, $discoveryHeader: String, $discoveryDescription: String, $notificationText: String, $notificationObjectTemplate: String, $enableNotifications: Boolean, $enableNotificationsText: String, $search: FullText, $location: GeoJSON, $locationRadius: BigFloat, $timeRequired: IntervalInput, $startDate: Datetime, $endDate: Datetime, $approved: Boolean, $published: Boolean, $isPrivate: Boolean, $rewardAmount: BigFloat, $activityFeedText: String, $callToAction: String, $completedActionText: String, $alreadyCompletedActionText: String, $selfVerifiable: Boolean, $isRecurring: Boolean, $recurringInterval: IntervalInput, $oncePerObject: Boolean, $minimumGroupMembers: Int, $limitedToLocation: Boolean, $tags: [String], $groupId: UUID, $ownerId: UUID, $objectTypeId: Int, $rewardId: UUID, $verifyRewardId: UUID, $photoUpload: Upload, $shareImageUpload: Upload) { +"mutation updateActionMutation($slug: String, $photo: JSON, $shareImage: JSON, $title: String, $titleObjectTemplate: String, $url: String, $description: String, $discoveryHeader: String, $discoveryDescription: String, $notificationText: String, $notificationObjectTemplate: String, $enableNotifications: Boolean, $enableNotificationsText: String, $search: FullText, $location: GeoJSON, $locationRadius: BigFloat, $timeRequired: [object Object], $startDate: Datetime, $endDate: Datetime, $approved: Boolean, $published: Boolean, $isPrivate: Boolean, $rewardAmount: BigFloat, $activityFeedText: String, $callToAction: String, $completedActionText: String, $alreadyCompletedActionText: String, $selfVerifiable: Boolean, $isRecurring: Boolean, $recurringInterval: [object Object], $oncePerObject: Boolean, $minimumGroupMembers: Int, $limitedToLocation: Boolean, $tags: [String], $groupId: UUID, $ownerId: UUID, $objectTypeId: Int, $rewardId: UUID, $verifyRewardId: UUID, $photoUpload: Upload, $shareImageUpload: Upload, $id: String!) { updateAction( input: {id: $id, patch: {slug: $slug, photo: $photo, shareImage: $shareImage, title: $title, titleObjectTemplate: $titleObjectTemplate, url: $url, description: $description, discoveryHeader: $discoveryHeader, discoveryDescription: $discoveryDescription, notificationText: $notificationText, notificationObjectTemplate: $notificationObjectTemplate, enableNotifications: $enableNotifications, enableNotificationsText: $enableNotificationsText, search: $search, location: $location, locationRadius: $locationRadius, timeRequired: $timeRequired, startDate: $startDate, endDate: $endDate, approved: $approved, published: $published, isPrivate: $isPrivate, rewardAmount: $rewardAmount, activityFeedText: $activityFeedText, callToAction: $callToAction, completedActionText: $completedActionText, alreadyCompletedActionText: $alreadyCompletedActionText, selfVerifiable: $selfVerifiable, isRecurring: $isRecurring, recurringInterval: $recurringInterval, oncePerObject: $oncePerObject, minimumGroupMembers: $minimumGroupMembers, limitedToLocation: $limitedToLocation, tags: $tags, groupId: $groupId, ownerId: $ownerId, objectTypeId: $objectTypeId, rewardId: $rewardId, verifyRewardId: $verifyRewardId, photoUpload: $photoUpload, shareImageUpload: $shareImageUpload}} ) { diff --git a/graphql/query/__tests__/__snapshots__/meta-object.test.ts.snap b/graphql/query/__tests__/__snapshots__/meta-object.node.test.ts.snap similarity index 100% rename from graphql/query/__tests__/__snapshots__/meta-object.test.ts.snap rename to graphql/query/__tests__/__snapshots__/meta-object.node.test.ts.snap diff --git a/graphql/query/__tests__/builder.test.ts b/graphql/query/__tests__/builder.node.test.ts similarity index 77% rename from graphql/query/__tests__/builder.test.ts rename to graphql/query/__tests__/builder.node.test.ts index 0e30aae52..b274a988a 100644 --- a/graphql/query/__tests__/builder.test.ts +++ b/graphql/query/__tests__/builder.node.test.ts @@ -1,13 +1,15 @@ -// @ts-nocheck import introspection from '../__fixtures__/api/introspection.json'; import metaObject from '../__fixtures__/api/meta-obj.json'; -import { QueryBuilder } from '../src'; +import { QueryBuilder } from '../src/query-builder'; + +const typedIntrospection = introspection as any; +const typedMetaObject = metaObject as any; describe('getMany', () => { it('should select only scalar fields by default', () => { const builder = new QueryBuilder({ - meta: metaObject, - introspection + meta: typedMetaObject, + introspection: typedIntrospection, }); const result = builder.query('Action').getMany().print(); @@ -23,8 +25,8 @@ describe('getMany', () => { it('should whitelist selected fields', () => { const builder = new QueryBuilder({ - meta: metaObject, - introspection + meta: typedMetaObject, + introspection: typedIntrospection, }); const result = builder @@ -38,19 +40,19 @@ describe('getMany', () => { actionResults: { select: { id: true, - actionId: true + actionId: true, }, variables: { first: 10, filter: { name: { - in: ['abc', 'def'] + in: ['abc', 'def'], }, - actionId: { equalTo: 'dc310161-7a42-4b93-6a56-9fa48adcad7e' } - } - } - } - } + actionId: { equalTo: 'dc310161-7a42-4b93-6a56-9fa48adcad7e' }, + }, + }, + }, + }, }) .print(); @@ -61,8 +63,8 @@ describe('getMany', () => { it('should select totalCount in subfields by default', () => { const builder = new QueryBuilder({ - meta: metaObject, - introspection + meta: typedMetaObject, + introspection: typedIntrospection, }); const result = builder @@ -76,19 +78,19 @@ it('should select totalCount in subfields by default', () => { actionResults: { select: { id: true, - actionId: true + actionId: true, }, variables: { first: 10, filter: { name: { - in: ['abc', 'def'] + in: ['abc', 'def'], }, - actionId: { equalTo: 'dc310161-7a42-4b93-6a56-9fa48adcad7e' } - } - } - } - } + actionId: { equalTo: 'dc310161-7a42-4b93-6a56-9fa48adcad7e' }, + }, + }, + }, + }, }) .print(); @@ -99,8 +101,8 @@ it('should select totalCount in subfields by default', () => { it('selects relation field', () => { const builder = new QueryBuilder({ - meta: metaObject, - introspection + meta: typedMetaObject, + introspection: typedIntrospection, }); const result = builder @@ -125,13 +127,13 @@ it('selects relation field', () => { createdBy: true, updatedBy: true, createdAt: true, - updatedAt: true + updatedAt: true, }, variables: { - first: 3 - } - } - } + first: 3, + }, + }, + }, }) .print(); @@ -141,8 +143,8 @@ it('selects relation field', () => { it('selects all scalar fields of junction table by default', () => { const builder = new QueryBuilder({ - meta: metaObject, - introspection + meta: typedMetaObject, + introspection: typedIntrospection, }); const result = builder.query('ActionGoal').getMany().print(); @@ -153,8 +155,8 @@ it('selects all scalar fields of junction table by default', () => { it('selects belongsTo relation field', () => { const builder = new QueryBuilder({ - meta: metaObject, - introspection + meta: typedMetaObject, + introspection: typedIntrospection, }); const result = builder @@ -164,10 +166,10 @@ it('selects belongsTo relation field', () => { owner: { select: { id: true, - type: true - } - } - } + type: true, + }, + }, + }, }) .print(); @@ -178,8 +180,8 @@ it('selects belongsTo relation field', () => { it('selects non-scalar custom types', () => { const builder = new QueryBuilder({ - meta: metaObject, - introspection + meta: typedMetaObject, + introspection: typedIntrospection, }); const result = builder @@ -189,8 +191,8 @@ it('selects non-scalar custom types', () => { id: true, name: true, location: true, // non-scalar custom type - timeRequired: true // non-scalar custom type - } + timeRequired: true, // non-scalar custom type + }, }) .print(); @@ -200,8 +202,8 @@ it('selects non-scalar custom types', () => { it('getMany edges', () => { const builder = new QueryBuilder({ - meta: metaObject, - introspection + meta: typedMetaObject, + introspection: typedIntrospection, }); const result = builder .query('Action') @@ -215,20 +217,20 @@ it('getMany edges', () => { actionResults: { select: { id: true, - actionId: true + actionId: true, }, variables: { first: 10, before: null, filter: { name: { - in: ['abc', 'def'] + in: ['abc', 'def'], }, - actionId: { equalTo: 'dc310161-7a42-4b93-6a56-9fa48adcad7e' } - } - } - } - } + actionId: { equalTo: 'dc310161-7a42-4b93-6a56-9fa48adcad7e' }, + }, + }, + }, + }, }) .print(); expect(result._hash).toMatchSnapshot(); @@ -237,8 +239,8 @@ it('getMany edges', () => { it('getOne', () => { const builder = new QueryBuilder({ - meta: metaObject, - introspection + meta: typedMetaObject, + introspection: typedIntrospection, }); const result = builder .query('Action') @@ -251,20 +253,20 @@ it('getOne', () => { actionResults: { select: { id: true, - actionId: true + actionId: true, }, variables: { first: 10, before: null, filter: { name: { - in: ['abc', 'def'] + in: ['abc', 'def'], }, - actionId: { equalTo: 'dc310161-7a42-4b93-6a56-9fa48adcad7e' } - } - } - } - } + actionId: { equalTo: 'dc310161-7a42-4b93-6a56-9fa48adcad7e' }, + }, + }, + }, + }, }) .print(); expect(result._hash).toMatchSnapshot(); @@ -273,8 +275,8 @@ it('getOne', () => { it('getAll', () => { const builder = new QueryBuilder({ - meta: metaObject, - introspection + meta: typedMetaObject, + introspection: typedIntrospection, }); const result = builder @@ -288,20 +290,20 @@ it('getAll', () => { actionResults: { select: { id: true, - actionId: true + actionId: true, }, variables: { first: 10, before: null, filter: { name: { - in: ['abc', 'def'] + in: ['abc', 'def'], }, - actionId: { equalTo: 'dc310161-7a42-4b93-6a56-9fa48adcad7e' } - } - } - } - } + actionId: { equalTo: 'dc310161-7a42-4b93-6a56-9fa48adcad7e' }, + }, + }, + }, + }, }) .print(); expect(result._hash).toMatchSnapshot(); @@ -310,8 +312,8 @@ it('getAll', () => { it('create with default scalar selection', () => { const builder = new QueryBuilder({ - meta: metaObject, - introspection + meta: typedMetaObject, + introspection: typedIntrospection, }); const result = builder.query('Action').create().print(); @@ -321,8 +323,8 @@ it('create with default scalar selection', () => { it('create with custom selection', () => { const builder = new QueryBuilder({ - meta: metaObject, - introspection + meta: typedMetaObject, + introspection: typedIntrospection, }); const result = builder .query('Action') @@ -331,8 +333,8 @@ it('create with custom selection', () => { id: true, name: true, photo: true, - title: true - } + title: true, + }, }) .print(); @@ -343,8 +345,8 @@ it('create with custom selection', () => { it('update with default scalar selection', () => { const builder = new QueryBuilder({ - meta: metaObject, - introspection + meta: typedMetaObject, + introspection: typedIntrospection, }); const result = builder.query('Action').update().print(); expect(result._hash).toMatchSnapshot(); @@ -353,8 +355,8 @@ it('update with default scalar selection', () => { it('update with custom selection', () => { const builder = new QueryBuilder({ - meta: metaObject, - introspection + meta: typedMetaObject, + introspection: typedIntrospection, }); const result = builder .query('Action') @@ -363,8 +365,8 @@ it('update with custom selection', () => { id: true, name: true, photo: true, - title: true - } + title: true, + }, }) .print(); expect(/(id)|(name)|(photo)|(title)/gm.test(result._hash)).toBe(true); @@ -374,8 +376,8 @@ it('update with custom selection', () => { it('delete', () => { const builder = new QueryBuilder({ - meta: metaObject, - introspection + meta: typedMetaObject, + introspection: typedIntrospection, }); const result = builder.query('Action').delete().print(); expect(result._hash).toMatchSnapshot(); @@ -384,8 +386,8 @@ it('delete', () => { it('expands further selections of custom ast fields in nested selection', () => { const builder = new QueryBuilder({ - meta: metaObject, - introspection + meta: typedMetaObject, + introspection: typedIntrospection, }); const result = builder @@ -396,10 +398,10 @@ it('expands further selections of custom ast fields in nested selection', () => select: { id: true, location: true, // custom ast - timeRequired: true // custom ast - } - } - } + timeRequired: true, // custom ast + }, + }, + }, }) .print(); diff --git a/graphql/query/__tests__/meta-object.test.ts b/graphql/query/__tests__/meta-object.node.test.ts similarity index 58% rename from graphql/query/__tests__/meta-object.test.ts rename to graphql/query/__tests__/meta-object.node.test.ts index acc438d59..fa91a7e89 100644 --- a/graphql/query/__tests__/meta-object.test.ts +++ b/graphql/query/__tests__/meta-object.node.test.ts @@ -1,14 +1,14 @@ import apiMetaSchema from '../__fixtures__/api/meta-schema.json'; -import { convertFromMetaSchema,validateMetaObject } from '../src/meta-object'; +import { convertFromMetaSchema, validateMetaObject } from '../src/meta-object'; describe('convertFromMetaSchema()', () => { it('should convert from meta schema to meta object format', () => { - const metaObj = convertFromMetaSchema(apiMetaSchema); + const metaObj = convertFromMetaSchema(apiMetaSchema as any); const validate = validateMetaObject(metaObj); expect(validate).toBe(true); }); it('matches snapshot', () => { - expect(convertFromMetaSchema(apiMetaSchema)).toMatchSnapshot(); + expect(convertFromMetaSchema(apiMetaSchema as any)).toMatchSnapshot(); }); }); diff --git a/graphql/query/src/ast.ts b/graphql/query/src/ast.ts index 89520667d..56d7af891 100644 --- a/graphql/query/src/ast.ts +++ b/graphql/query/src/ast.ts @@ -1,15 +1,46 @@ -// @ts-nocheck - import * as t from 'gql-ast'; +import type { + ArgumentNode, + DocumentNode, + FieldNode, + TypeNode, + ValueNode, + VariableDefinitionNode, +} from 'graphql'; import inflection from 'inflection'; -import { getCustomAst, isIntervalType } from './custom-ast'; - -const isObject = val => val !== null && typeof val === 'object'; +import { getCustomAst } from './custom-ast'; +import type { + ASTFunctionParams, + FieldSelection, + MutationASTParams, + NestedProperties, + ObjectArrayItem, + QueryProperty, +} from './types'; const NON_MUTABLE_PROPS = ['createdAt', 'createdBy', 'updatedAt', 'updatedBy']; -const objectToArray = (obj) => - Object.keys(obj).map((k) => ({ name: k, ...obj[k] })); + +const objectToArray = (obj: Record): ObjectArrayItem[] => + Object.keys(obj).map((k) => ({ + key: k, + name: obj[k].name || k, + type: obj[k].type, + isNotNull: obj[k].isNotNull, + isArray: obj[k].isArray, + isArrayNotNull: obj[k].isArrayNotNull, + properties: obj[k].properties, + })); + +interface CreateGqlMutationParams { + operationName: string; + mutationName: string; + selectArgs: ArgumentNode[]; + selections: FieldNode[]; + variableDefinitions: VariableDefinitionNode[]; + modelName: string; + useModel?: boolean; +} const createGqlMutation = ({ operationName, @@ -18,32 +49,32 @@ const createGqlMutation = ({ selections, variableDefinitions, modelName, - useModel = true -}) => { - const opSel = !modelName + useModel = true, +}: CreateGqlMutationParams): DocumentNode => { + const opSel: FieldNode[] = !modelName ? [ - t.field({ - name: operationName, - args: selectArgs, - selectionSet: t.selectionSet({ selections }) - }) - ] + t.field({ + name: operationName, + args: selectArgs, + selectionSet: t.selectionSet({ selections }), + }), + ] : [ - t.field({ - name: operationName, - args: selectArgs, - selectionSet: t.selectionSet({ - selections: useModel - ? [ - t.field({ - name: modelName, - selectionSet: t.selectionSet({ selections }) - }) - ] - : selections - }) - }) - ]; + t.field({ + name: operationName, + args: selectArgs, + selectionSet: t.selectionSet({ + selections: useModel + ? [ + t.field({ + name: modelName, + selectionSet: t.selectionSet({ selections }), + }), + ] + : selections, + }), + }), + ]; return t.document({ definitions: [ @@ -51,30 +82,35 @@ const createGqlMutation = ({ operation: 'mutation', name: mutationName, variableDefinitions, - selectionSet: t.selectionSet({ selections: opSel }) - }) - ] + selectionSet: t.selectionSet({ selections: opSel }), + }), + ], }); }; -export const getAll = ({ queryName, operationName, query, selection }) => { +export const getAll = ({ + queryName, + operationName, + query: _query, + selection, +}: ASTFunctionParams): DocumentNode => { const selections = getSelections(selection); - const opSel = [ + const opSel: FieldNode[] = [ t.field({ name: operationName, - selectionSet: t.objectValue({ - fields: [ + selectionSet: t.selectionSet({ + selections: [ t.field({ - name: 'totalCount' + name: 'totalCount', }), t.field({ name: 'nodes', - selectionSet: t.selectionSet({ selections }) - }) - ] - }) - }) + selectionSet: t.selectionSet({ selections }), + }), + ], + }), + }), ]; const ast = t.document({ @@ -82,21 +118,75 @@ export const getAll = ({ queryName, operationName, query, selection }) => { t.operationDefinition({ operation: 'query', name: queryName, - selectionSet: t.selectionSet({ selections: opSel }) - }) - ] + selectionSet: t.selectionSet({ selections: opSel }), + }), + ], + }); + + return ast; +}; + +export const getCount = ({ + queryName, + operationName, + query, +}: Omit): DocumentNode => { + const Singular = query.model; + const Filter = `${Singular}Filter`; + const Condition = `${Singular}Condition`; + + const variableDefinitions: VariableDefinitionNode[] = [ + t.variableDefinition({ + variable: t.variable({ name: 'condition' }), + type: t.namedType({ type: Condition }), + }), + t.variableDefinition({ + variable: t.variable({ name: 'filter' }), + type: t.namedType({ type: Filter }), + }), + ]; + + const args: ArgumentNode[] = [ + t.argument({ name: 'condition', value: t.variable({ name: 'condition' }) }), + t.argument({ name: 'filter', value: t.variable({ name: 'filter' }) }), + ]; + + // PostGraphile supports totalCount through connections + const opSel: FieldNode[] = [ + t.field({ + name: operationName, + args, + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: 'totalCount', + }), + ], + }), + }), + ]; + + const ast = t.document({ + definitions: [ + t.operationDefinition({ + operation: 'query', + name: queryName, + variableDefinitions, + selectionSet: t.selectionSet({ selections: opSel }), + }), + ], }); return ast; }; export const getMany = ({ - builder, // we can use props here to enable pagination, etc + builder, queryName, operationName, query, - selection -}) => { + selection, +}: ASTFunctionParams): DocumentNode => { const Singular = query.model; const Plural = operationName.charAt(0).toUpperCase() + operationName.slice(1); const Condition = `${Singular}Condition`; @@ -104,197 +194,130 @@ export const getMany = ({ const OrderBy = `${Plural}OrderBy`; const selections = getSelections(selection); + const variableDefinitions: VariableDefinitionNode[] = [ + t.variableDefinition({ + variable: t.variable({ name: 'first' }), + type: t.namedType({ type: 'Int' }), + }), + t.variableDefinition({ + variable: t.variable({ name: 'last' }), + type: t.namedType({ type: 'Int' }), + }), + t.variableDefinition({ + variable: t.variable({ name: 'after' }), + type: t.namedType({ type: 'Cursor' }), + }), + t.variableDefinition({ + variable: t.variable({ name: 'before' }), + type: t.namedType({ type: 'Cursor' }), + }), + t.variableDefinition({ + variable: t.variable({ name: 'offset' }), + type: t.namedType({ type: 'Int' }), + }), + t.variableDefinition({ + variable: t.variable({ name: 'condition' }), + type: t.namedType({ type: Condition }), + }), + t.variableDefinition({ + variable: t.variable({ name: 'filter' }), + type: t.namedType({ type: Filter }), + }), + t.variableDefinition({ + variable: t.variable({ name: 'orderBy' }), + type: t.listType({ + type: t.nonNullType({ type: t.namedType({ type: OrderBy }) }), + }), + }), + ]; + + const args: ArgumentNode[] = [ + t.argument({ name: 'first', value: t.variable({ name: 'first' }) }), + t.argument({ name: 'last', value: t.variable({ name: 'last' }) }), + t.argument({ name: 'offset', value: t.variable({ name: 'offset' }) }), + t.argument({ name: 'after', value: t.variable({ name: 'after' }) }), + t.argument({ name: 'before', value: t.variable({ name: 'before' }) }), + t.argument({ name: 'condition', value: t.variable({ name: 'condition' }) }), + t.argument({ name: 'filter', value: t.variable({ name: 'filter' }) }), + t.argument({ name: 'orderBy', value: t.variable({ name: 'orderBy' }) }), + ]; + + const pageInfoFields: FieldNode[] = [ + t.field({ name: 'hasNextPage' }), + t.field({ name: 'hasPreviousPage' }), + t.field({ name: 'endCursor' }), + t.field({ name: 'startCursor' }), + ]; + + const dataField: FieldNode = builder?._edges + ? t.field({ + name: 'edges', + selectionSet: t.selectionSet({ + selections: [ + t.field({ name: 'cursor' }), + t.field({ + name: 'node', + selectionSet: t.selectionSet({ selections }), + }), + ], + }), + }) + : t.field({ + name: 'nodes', + selectionSet: t.selectionSet({ selections }), + }); + + const connectionFields: FieldNode[] = [ + t.field({ name: 'totalCount' }), + t.field({ + name: 'pageInfo', + selectionSet: t.selectionSet({ selections: pageInfoFields }), + }), + dataField, + ]; + const ast = t.document({ definitions: [ t.operationDefinition({ operation: 'query', name: queryName, - variableDefinitions: [ - t.variableDefinition({ - variable: t.variable({ - name: 'first' - }), - type: t.namedType({ - type: 'Int' - }) - }), - t.variableDefinition({ - variable: t.variable({ - name: 'last' - }), - type: t.namedType({ - type: 'Int' - }) - }), - t.variableDefinition({ - variable: t.variable({ - name: 'after' - }), - type: t.namedType({ - type: 'Cursor' - }) - }), - t.variableDefinition({ - variable: t.variable({ - name: 'before' - }), - type: t.namedType({ - type: 'Cursor' - }) - }), - t.variableDefinition({ - variable: t.variable({ - name: 'offset' - }), - type: t.namedType({ - type: 'Int' - }) - }), - t.variableDefinition({ - variable: t.variable({ - name: 'condition' - }), - type: t.namedType({ - type: Condition - }) - }), - t.variableDefinition({ - variable: t.variable({ - name: 'filter' - }), - type: t.namedType({ - type: Filter - }) - }), - t.variableDefinition({ - variable: t.variable({ - name: 'orderBy' - }), - type: t.listType({ - type: t.nonNullType({ type: t.namedType({ type: OrderBy }) }) - }) - }) - ], + variableDefinitions, selectionSet: t.selectionSet({ selections: [ t.field({ name: operationName, - args: [ - t.argument({ - name: 'first', - value: t.variable({ - name: 'first' - }) - }), - t.argument({ - name: 'last', - value: t.variable({ - name: 'last' - }) - }), - t.argument({ - name: 'offset', - value: t.variable({ - name: 'offset' - }) - }), - t.argument({ - name: 'after', - value: t.variable({ - name: 'after' - }) - }), - t.argument({ - name: 'before', - value: t.variable({ - name: 'before' - }) - }), - t.argument({ - name: 'condition', - value: t.variable({ - name: 'condition' - }) - }), - t.argument({ - name: 'filter', - value: t.variable({ - name: 'filter' - }) - }), - t.argument({ - name: 'orderBy', - value: t.variable({ - name: 'orderBy' - }) - }) - ], - selectionSet: t.objectValue({ - fields: [ - t.field({ - name: 'totalCount' - }), - t.field({ - name: 'pageInfo', - selectionSet: t.selectionSet({ - selections: [ - t.field({ name: 'hasNextPage' }), - t.field({ name: 'hasPreviousPage' }), - t.field({ name: 'endCursor' }), - t.field({ name: 'startCursor' }) - ] - }) - }), - builder._edges - ? t.field({ - name: 'edges', - selectionSet: t.selectionSet({ - selections: [ - t.field({ name: 'cursor' }), - t.field({ - name: 'node', - selectionSet: t.selectionSet({ selections }) - }) - ] - }) - }) - : t.field({ - name: 'nodes', - selectionSet: t.selectionSet({ - selections - }) - }) - ] - }) - }) - ] - }) - }) - ] + args, + selectionSet: t.selectionSet({ selections: connectionFields }), + }), + ], + }), + }), + ], }); return ast; }; export const getOne = ({ - builder, // we can use props here to enable pagination, etc queryName, operationName, query, - selection -}) => { - const variableDefinitions = Object.keys(query.properties) - .map((key) => ({ name: key, ...query.properties[key] })) + selection, +}: ASTFunctionParams): DocumentNode => { + const variableDefinitions: VariableDefinitionNode[] = Object.keys( + query.properties + ) + .map((key) => ({ key, ...query.properties[key] })) .filter((field) => field.isNotNull) .map((field) => { const { - name: fieldName, + key: fieldName, type: fieldType, isNotNull, isArray, - isArrayNotNull + isArrayNotNull, } = field; - let type = t.namedType({ type: fieldType }); + let type: TypeNode = t.namedType({ type: fieldType }); if (isNotNull) type = t.nonNullType({ type }); if (isArray) { type = t.listType({ type }); @@ -302,29 +325,29 @@ export const getOne = ({ } return t.variableDefinition({ variable: t.variable({ name: fieldName }), - type + type, }); }); const props = objectToArray(query.properties); - const selectArgs = props + const selectArgs: ArgumentNode[] = props .filter((field) => field.isNotNull) .map((field) => { return t.argument({ name: field.name, - value: t.variable({ name: field.name }) + value: t.variable({ name: field.name }), }); }); const selections = getSelections(selection); - const opSel = [ + const opSel: FieldNode[] = [ t.field({ name: operationName, args: selectArgs, - selectionSet: t.selectionSet({ selections }) - }) + selectionSet: t.selectionSet({ selections }), + }), ]; const ast = t.document({ @@ -333,9 +356,9 @@ export const getOne = ({ operation: 'query', name: queryName, variableDefinitions, - selectionSet: t.selectionSet({ selections: opSel }) - }) - ] + selectionSet: t.selectionSet({ selections: opSel }), + }), + ], }); return ast; }; @@ -344,11 +367,10 @@ export const createOne = ({ mutationName, operationName, mutation, - selection -}) => { + selection, +}: MutationASTParams): DocumentNode => { if (!mutation.properties?.input?.properties) { - console.log('no input field for mutation for' + mutationName); - return; + throw new Error(`No input field for mutation: ${mutationName}`); } const modelName = inflection.camelize( @@ -356,17 +378,24 @@ export const createOne = ({ true ); + const inputProperties = mutation.properties.input + .properties as NestedProperties; + const modelProperties = inputProperties[modelName] as QueryProperty; + + if (!modelProperties.properties) { + throw new Error(`No properties found for model: ${modelName}`); + } + const allAttrs = objectToArray( - mutation.properties.input.properties[modelName].properties + modelProperties.properties as Record ); - const attrs = allAttrs.filter( (field) => !NON_MUTABLE_PROPS.includes(field.name) ); const variableDefinitions = getCreateVariablesAst(attrs); - const selectArgs = [ + const selectArgs: ArgumentNode[] = [ t.argument({ name: 'input', value: t.objectValue({ @@ -377,16 +406,14 @@ export const createOne = ({ fields: attrs.map((field) => t.objectField({ name: field.name, - value: t.variable({ - name: field.name - }) + value: t.variable({ name: field.name }), }) - ) - }) - }) - ] - }) - }) + ), + }), + }), + ], + }), + }), ]; const selections = selection @@ -399,7 +426,7 @@ export const createOne = ({ selectArgs, selections, variableDefinitions, - modelName + modelName, }); return ast; @@ -409,11 +436,10 @@ export const patchOne = ({ mutationName, operationName, mutation, - selection -}) => { + selection, +}: MutationASTParams): DocumentNode => { if (!mutation.properties?.input?.properties) { - console.log('no input field for mutation for' + mutationName); - return; + throw new Error(`No input field for mutation: ${mutationName}`); } const modelName = inflection.camelize( @@ -421,23 +447,25 @@ export const patchOne = ({ true ); - const allAttrs = objectToArray( - mutation.properties.input.properties['patch']?.properties || {} - ); + const inputProperties = mutation.properties.input + .properties as NestedProperties; + const patchProperties = inputProperties['patch'] as QueryProperty; + + const allAttrs = patchProperties?.properties + ? objectToArray(patchProperties.properties as Record) + : []; const patchAttrs = allAttrs.filter( (prop) => !NON_MUTABLE_PROPS.includes(prop.name) ); - const patchByAttrs = objectToArray( - mutation.properties.input.properties + inputProperties as Record ).filter((n) => n.name !== 'patch'); - const patchers = patchByAttrs.map((p) => p.name); const variableDefinitions = getUpdateVariablesAst(patchAttrs, patchers); - const selectArgs = [ + const selectArgs: ArgumentNode[] = [ t.argument({ name: 'input', value: t.objectValue({ @@ -445,7 +473,7 @@ export const patchOne = ({ ...patchByAttrs.map((field) => t.objectField({ name: field.name, - value: t.variable({ name: field.name }) + value: t.variable({ name: field.name }), }) ), t.objectField({ @@ -456,16 +484,14 @@ export const patchOne = ({ .map((field) => t.objectField({ name: field.name, - value: t.variable({ - name: field.name - }) + value: t.variable({ name: field.name }), }) - ) - }) - }) - ] - }) - }) + ), + }), + }), + ], + }), + }), ]; const selections = selection @@ -478,16 +504,19 @@ export const patchOne = ({ selectArgs, selections, variableDefinitions, - modelName + modelName, }); return ast; }; -export const deleteOne = ({ mutationName, operationName, mutation }) => { +export const deleteOne = ({ + mutationName, + operationName, + mutation, +}: Omit): DocumentNode => { if (!mutation.properties?.input?.properties) { - console.log('no input field for mutation for' + mutationName); - return; + throw new Error(`No input field for mutation: ${mutationName}`); } const modelName = inflection.camelize( @@ -495,44 +524,45 @@ export const deleteOne = ({ mutationName, operationName, mutation }) => { true ); - const deleteAttrs = objectToArray(mutation.properties.input.properties); - const variableDefinitions = deleteAttrs.map((field) => { - const { - name: fieldName, - type: fieldType, - isNotNull, - isArray, - isArrayNotNull - } = field; - let type = t.namedType({ type: fieldType }); - if (isNotNull) type = t.nonNullType({ type }); - if (isArray) { - type = t.listType({ type }); - // no need to check isArrayNotNull since we need this field for deletion - type = t.nonNullType({ type }); + const inputProperties = mutation.properties.input + .properties as NestedProperties; + const deleteAttrs = objectToArray( + inputProperties as Record + ); + + const variableDefinitions: VariableDefinitionNode[] = deleteAttrs.map( + (field) => { + const { name: fieldName, type: fieldType, isNotNull, isArray } = field; + let type: TypeNode = t.namedType({ type: fieldType }); + if (isNotNull) type = t.nonNullType({ type }); + if (isArray) { + type = t.listType({ type }); + // no need to check isArrayNotNull since we need this field for deletion + type = t.nonNullType({ type }); + } + return t.variableDefinition({ + variable: t.variable({ name: fieldName }), + type, + }); } - return t.variableDefinition({ - variable: t.variable({ name: fieldName }), - type - }); - }); + ); - const selectArgs = [ + const selectArgs: ArgumentNode[] = [ t.argument({ name: 'input', value: t.objectValue({ fields: deleteAttrs.map((f) => t.objectField({ name: f.name, - value: t.variable({ name: f.name }) + value: t.variable({ name: f.name }), }) - ) - }) - }) + ), + }), + }), ]; // so we can support column select grants plugin - const selections = [t.field({ name: 'clientMutationId' })]; + const selections: FieldNode[] = [t.field({ name: 'clientMutationId' })]; const ast = createGqlMutation({ operationName, mutationName, @@ -540,118 +570,108 @@ export const deleteOne = ({ mutationName, operationName, mutation }) => { selections, useModel: false, variableDefinitions, - modelName + modelName, }); return ast; }; -export function getSelections(selection = []) { - const selectionAst = (field) => { +export function getSelections(selection: FieldSelection[] = []): FieldNode[] { + const selectionAst = (field: string | FieldSelection): FieldNode => { return typeof field === 'string' - ? t.field({ - name: field - }) - : getCustomAst(field.fieldDefn); + ? t.field({ name: field }) + : getCustomAst(field.fieldDefn) || t.field({ name: field.name }); }; return selection - .map((selectionDefn) => { + .map((selectionDefn): FieldNode | null => { if (selectionDefn.isObject) { const { name, selection, variables = {}, isBelongTo } = selectionDefn; - return t.field({ - name, - args: Object.entries(variables).reduce((args, variable) => { + + const args: ArgumentNode[] = Object.entries(variables).reduce( + (acc: ArgumentNode[], variable) => { const [argName, argValue] = variable; const argAst = t.argument({ name: argName, - value: getValueAst(argValue) + value: getComplexValueAst(argValue), }); - args = argAst ? [...args, argAst] : args; - return args; - }, []), - selectionSet: isBelongTo - ? t.selectionSet({ - selections: selection.map((field) => selectionAst(field)) - }) - : t.objectValue({ - fields: [ - t.field({ - name: 'totalCount' - }), + return argAst ? [...acc, argAst] : acc; + }, + [] + ); + + const subSelections = + selection?.map((field) => selectionAst(field)) || []; + + const selectionSet = isBelongTo + ? t.selectionSet({ selections: subSelections }) + : t.selectionSet({ + selections: [ + t.field({ name: 'totalCount' }), t.field({ name: 'nodes', - selectionSet: t.selectionSet({ - selections: selection.map((field) => selectionAst(field)) - }) - }) - ] - }) + selectionSet: t.selectionSet({ selections: subSelections }), + }), + ], + }); + + return t.field({ + name, + args, + selectionSet, }); } else { - const { fieldDefn } = selectionDefn; - // Field is not found in model meta, do nothing - if (!fieldDefn) return null; - - return getCustomAst(fieldDefn); + return selectionAst(selectionDefn); } }) - .filter(Boolean); + .filter((node): node is FieldNode => node !== null); } -/** - * Get argument AST from a value - * @param {*} value - * @returns {Object} AST for the argument - */ -function getValueAst(value) { - if (value == null) { +function getComplexValueAst(value: unknown): ValueNode { + // Handle null + if (value === null) { return t.nullValue(); } + // Handle primitives + if (typeof value === 'boolean') { + return t.booleanValue({ value }); + } + if (typeof value === 'number') { - return t.intValue({ value }); + return t.intValue({ value: value.toString() }); } if (typeof value === 'string') { return t.stringValue({ value }); } - if (typeof value === 'boolean') { - return t.booleanValue({ value }); - } - + // Handle arrays if (Array.isArray(value)) { - return t.listValue({ values: value.map((v) => getValueAst(v)) }); + return t.listValue({ + values: value.map((item) => getComplexValueAst(item)), + }); } - if (isObject(value)) { + // Handle objects + if (typeof value === 'object' && value !== null) { + const obj = value as Record; return t.objectValue({ - fields: Object.entries(value).reduce((fields, entry) => { - const [objKey, objValue] = entry; - fields = [ - ...fields, - t.objectField({ - name: objKey, - value: getValueAst(objValue) - }) - ]; - return fields; - }, []) + fields: Object.entries(obj).map(([key, val]) => + t.objectField({ + name: key, + value: getComplexValueAst(val), + }) + ), }); } -} -const CustomInputTypes = { - interval: 'IntervalInput' -}; + throw new Error(`Unsupported value type: ${typeof value}`); +} -/** - * Get mutation variables AST from attributes array - * @param {Array} attrs - * @returns {Object} AST for the variables - */ -function getCreateVariablesAst(attrs) { +function getCreateVariablesAst( + attrs: ObjectArrayItem[] +): VariableDefinitionNode[] { return attrs.map((field) => { const { name: fieldName, @@ -659,17 +679,8 @@ function getCreateVariablesAst(attrs) { isNotNull, isArray, isArrayNotNull, - properties } = field; - - let type; - - if (properties == null) { - type = t.namedType({ type: fieldType }); - } else if (isIntervalType(properties)) { - type = t.namedType({ type: CustomInputTypes.interval }); - } - + let type: TypeNode = t.namedType({ type: fieldType }); if (isNotNull) type = t.nonNullType({ type }); if (isArray) { type = t.listType({ type }); @@ -677,40 +688,41 @@ function getCreateVariablesAst(attrs) { } return t.variableDefinition({ variable: t.variable({ name: fieldName }), - type + type, }); }); } -/** - * Get mutation variables AST from attributes array - * @param {Array} attrs - * @returns {Object} AST for the variables - */ -function getUpdateVariablesAst(attrs, patchers) { - return attrs.map((field) => { - const { - name: fieldName, - type: fieldType, - isNotNull, - isArray, - properties - } = field; - - let type; - - if (properties == null) { - type = t.namedType({ type: fieldType }); - } else if (isIntervalType(properties)) { - type = t.namedType({ type: CustomInputTypes.interval }); - } +function getUpdateVariablesAst( + attrs: ObjectArrayItem[], + patchers: string[] +): VariableDefinitionNode[] { + const patchVariables: VariableDefinitionNode[] = attrs + .filter((field) => !patchers.includes(field.name)) + .map((field) => { + const { + name: fieldName, + type: fieldType, + isArray, + isArrayNotNull, + } = field; + let type: TypeNode = t.namedType({ type: fieldType }); + if (isArray) { + type = t.listType({ type }); + if (isArrayNotNull) type = t.nonNullType({ type }); + } + return t.variableDefinition({ + variable: t.variable({ name: fieldName }), + type, + }); + }); - if (isNotNull) type = t.nonNullType({ type }); - if (isArray) type = t.listType({ type }); - if (patchers.includes(field.name)) type = t.nonNullType({ type }); + const patcherVariables: VariableDefinitionNode[] = patchers.map((patcher) => { return t.variableDefinition({ - variable: t.variable({ name: fieldName }), - type + variable: t.variable({ name: patcher }), + type: t.nonNullType({ type: t.namedType({ type: 'String' }) }), }); }); + + return [...patchVariables, ...patcherVariables]; } diff --git a/graphql/query/src/custom-ast.ts b/graphql/query/src/custom-ast.ts index 4e4b0f725..214c3f6df 100644 --- a/graphql/query/src/custom-ast.ts +++ b/graphql/query/src/custom-ast.ts @@ -1,8 +1,13 @@ -// @ts-nocheck - import * as t from 'gql-ast'; +import type { InlineFragmentNode } from 'graphql'; + +import type { CleanField, MetaField } from './types'; + +export function getCustomAst(fieldDefn?: MetaField): any { + if (!fieldDefn) { + return null; + } -export function getCustomAst(fieldDefn) { const { pgType } = fieldDefn.type; if (pgType === 'geometry') { return geometryAst(fieldDefn.name); @@ -13,20 +18,134 @@ export function getCustomAst(fieldDefn) { } return t.field({ - name: fieldDefn.name + name: fieldDefn.name, + }); +} + +/** + * Generate custom AST for CleanField type - handles GraphQL types that need subfield selections + */ +export function getCustomAstForCleanField(field: CleanField): any { + const { name, type } = field; + const { gqlType, pgType } = type; + + // Handle by GraphQL type first (this is what the error messages reference) + if (gqlType === 'GeometryPoint') { + return geometryPointAst(name); + } + + if (gqlType === 'Interval') { + return intervalAst(name); + } + + if (gqlType === 'GeometryGeometryCollection') { + return geometryCollectionAst(name); + } + + // Handle by pgType as fallback + if (pgType === 'geometry') { + return geometryAst(name); + } + + if (pgType === 'interval') { + return intervalAst(name); + } + + // Return simple field for scalar types + return t.field({ + name, + }); +} + +/** + * Check if a CleanField requires subfield selection based on its GraphQL type + */ +export function requiresSubfieldSelection(field: CleanField): boolean { + const { gqlType } = field.type; + + // Complex GraphQL types that require subfield selection + const complexTypes = [ + 'GeometryPoint', + 'Interval', + 'GeometryGeometryCollection', + 'GeoJSON', + ]; + + return complexTypes.includes(gqlType); +} + +/** + * Generate AST for GeometryPoint type + */ +export function geometryPointAst(name: string): any { + return t.field({ + name, + selectionSet: t.selectionSet({ + selections: toFieldArray(['x', 'y']), + }), + }); +} + +/** + * Generate AST for GeometryGeometryCollection type + */ +export function geometryCollectionAst(name: string): any { + // Manually create inline fragment since gql-ast doesn't support it + const inlineFragment: InlineFragmentNode = { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'GeometryPoint', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { + kind: 'Name', + value: 'x', + }, + }, + { + kind: 'Field', + name: { + kind: 'Name', + value: 'y', + }, + }, + ], + }, + }; + + return t.field({ + name, + selectionSet: t.selectionSet({ + selections: [ + t.field({ + name: 'geometries', + selectionSet: t.selectionSet({ + selections: [inlineFragment as any], // gql-ast limitation with inline fragments + }), + }), + ], + }), }); } -export function geometryAst(name) { +export function geometryAst(name: string): any { return t.field({ name, selectionSet: t.selectionSet({ - selections: toFieldArray(['geojson']) - }) + selections: toFieldArray(['geojson']), + }), }); } -export function intervalAst(name) { +export function intervalAst(name: string): any { return t.field({ name, selectionSet: t.selectionSet({ @@ -36,23 +155,18 @@ export function intervalAst(name) { 'minutes', 'months', 'seconds', - 'years' - ]) - }) + 'years', + ]), + }), }); } -function toFieldArray(strArr) { +function toFieldArray(strArr: string[]): any[] { return strArr.map((fieldName) => t.field({ name: fieldName })); } -export function isIntervalType(obj) { - return [ - 'days', - 'hours', - 'minutes', - 'months', - 'seconds', - 'years' - ].every((key) => obj.hasOwnProperty(key)); +export function isIntervalType(obj: any): boolean { + return ['days', 'hours', 'minutes', 'months', 'seconds', 'years'].every( + (key) => obj.hasOwnProperty(key) + ); } diff --git a/graphql/query/src/index.ts b/graphql/query/src/index.ts index bbae82d24..cc1dc096c 100644 --- a/graphql/query/src/index.ts +++ b/graphql/query/src/index.ts @@ -1,483 +1,3 @@ -// @ts-nocheck -import { print as gqlPrint } from 'graphql'; -import inflection from 'inflection'; - -import { createOne, deleteOne,getAll, getMany, getOne, patchOne } from './ast'; -import { validateMetaObject } from './meta-object'; +export { QueryBuilder } from './query-builder'; +export * from './types'; export * as MetaObject from './meta-object'; - -const isObject = val => val !== null && typeof val === 'object'; - -export class QueryBuilder { - constructor({ meta = {}, introspection }) { - this._introspection = introspection; - this._meta = meta; - this.clear(); - this.initModelMap(); - this.pickScalarFields = pickScalarFields.bind(this); - this.pickAllFields = pickAllFields.bind(this); - - const result = validateMetaObject(this._meta); - if (typeof result === 'object' && result.errors) { - throw new Error(`QueryBuilder: meta object is invalid:\n${result.message}`); - } - } - - /* - * Save all gql queries and mutations by model name for quicker lookup - */ - initModelMap() { - this._models = Object.keys(this._introspection).reduce((map, key) => { - const defn = this._introspection[key]; - map = { - ...map, - [defn.model]: { - ...map[defn.model], - ...{ [key]: defn } - } - }; - return map; - }, {}); - } - - clear() { - this._model = ''; - this._fields = []; - this._key = null; - this._queryName = ''; - this._ast = null; - this._edges = false; - } - - query(model) { - this.clear(); - this._model = model; - return this; - } - - _findQuery() { - // based on the op, finds the relevant GQL query - const queries = this._models[this._model]; - if (!queries) { - throw new Error('No queries found for ' + this._model); - } - - const matchQuery = Object.entries(queries).find( - ([_, defn]) => defn.qtype === this._op - ); - - if (!matchQuery) { - throw new Error('No query found for ' + this._model + ':' + this._op); - } - - const queryKey = matchQuery[0]; - return queryKey; - } - - _findMutation() { - // For mutation, there can be many defns that match the operation being requested - // .ie: deleteAction, deleteActionBySlug, deleteActionByName - const matchingDefns = Object.keys(this._introspection).reduce( - (arr, mutationKey) => { - const defn = this._introspection[mutationKey]; - if ( - defn.model === this._model && - defn.qtype === this._op && - defn.qtype === 'mutation' && - defn.mutationType === this._mutation - ) { - arr = [...arr, { defn, mutationKey }]; - } - return arr; - }, - [] - ); - - if (!matchingDefns.length === 0) { - throw new Error( - 'no mutation found for ' + this._model + ':' + this._mutation - ); - } - - // We only need deleteAction from all of [deleteAction, deleteActionBySlug, deleteActionByName] - const getInputName = (mutationType) => { - switch (mutationType) { - case 'delete': { - return `Delete${inflection.camelize(this._model)}Input`; - } - case 'create': { - return `Create${inflection.camelize(this._model)}Input`; - } - case 'patch': { - return `Update${inflection.camelize(this._model)}Input`; - } - default: - throw new Error('Unhandled mutation type' + mutationType); - } - }; - - const matchDefn = matchingDefns.find( - ({ defn }) => defn.properties.input.type === getInputName(this._mutation) - ); - - if (!matchDefn) { - throw new Error( - 'no mutation found for ' + this._model + ':' + this._mutation - ); - } - - return matchDefn.mutationKey; - } - - select(selection) { - const defn = this._introspection[this._key]; - - // If selection not given, pick only scalar fields - if (selection == null) { - this._select = this.pickScalarFields(null, defn); - return this; - } - - this._select = this.pickAllFields(selection, defn); - return this; - } - - edges(useEdges) { - this._edges = useEdges; - return this; - } - - getMany({ select } = {}) { - this._op = 'getMany'; - this._key = this._findQuery(); - - this.queryName( - inflection.camelize( - ['get', inflection.underscore(this._key), 'query'].join('_'), - true - ) - ); - - const defn = this._introspection[this._key]; - - this.select(select); - this._ast = getMany({ - builder: this, - queryName: this._queryName, - operationName: this._key, - query: defn, - selection: this._select - }); - - return this; - } - - all({ select } = {}) { - this._op = 'getMany'; - this._key = this._findQuery(); - - this.queryName( - inflection.camelize( - ['get', inflection.underscore(this._key), 'query', 'all'].join('_'), - true - ) - ); - - const defn = this._introspection[this._key]; - - this.select(select); - this._ast = getAll({ - builder: this, - queryName: this._queryName, - operationName: this._key, - query: defn, - selection: this._select - }); - - return this; - } - - getOne({ select } = {}) { - this._op = 'getOne'; - this._key = this._findQuery(); - - this.queryName( - inflection.camelize( - ['get', inflection.underscore(this._key), 'query'].join('_'), - true - ) - ); - - const defn = this._introspection[this._key]; - this.select(select); - this._ast = getOne({ - builder: this, - queryName: this._queryName, - operationName: this._key, - query: defn, - selection: this._select - }); - - return this; - } - - create({ select } = {}) { - this._op = 'mutation'; - this._mutation = 'create'; - this._key = this._findMutation(); - - this.queryName( - inflection.camelize( - [inflection.underscore(this._key), 'mutation'].join('_'), - true - ) - ); - - const defn = this._introspection[this._key]; - this.select(select); - this._ast = createOne({ - builder: this, - operationName: this._key, - mutationName: this._queryName, - mutation: defn, - selection: this._select - }); - - return this; - } - - delete({ select } = {}) { - this._op = 'mutation'; - this._mutation = 'delete'; - this._key = this._findMutation(); - - this.queryName( - inflection.camelize( - [inflection.underscore(this._key), 'mutation'].join('_'), - true - ) - ); - - const defn = this._introspection[this._key]; - - this.select(select); - this._ast = deleteOne({ - builder: this, - operationName: this._key, - mutationName: this._queryName, - mutation: defn, - selection: this._select - }); - - return this; - } - - update({ select } = {}) { - this._op = 'mutation'; - this._mutation = 'patch'; - this._key = this._findMutation(); - - this.queryName( - inflection.camelize( - [inflection.underscore(this._key), 'mutation'].join('_'), - true - ) - ); - - const defn = this._introspection[this._key]; - - this.select(select); - this._ast = patchOne({ - builder: this, - operationName: this._key, - mutationName: this._queryName, - mutation: defn, - selection: this._select - }); - - return this; - } - - queryName(name) { - this._queryName = name; - return this; - } - - print() { - this._hash = gqlPrint(this._ast); - return this; - } -} - -/** - * Pick scalar fields of a query definition - * @param {Object} defn Query definition - * @param {Object} meta Meta object containing info about table relations - * @returns {Array} - */ -function pickScalarFields(selection, defn) { - const model = defn.model; - const modelMeta = this._meta.tables.find((t) => t.name === model); - - const isInTableSchema = (fieldName) => - !!modelMeta.fields.find((field) => field.name === fieldName); - - const pickFrom = (modelSelection) => - modelSelection - .filter((fieldName) => { - // If not specified or not a valid selection list, allow all - if (selection == null || !Array.isArray(selection)) return true; - return selection.includes(fieldName); - }) - .filter( - (fieldName) => - !isRelationalField(fieldName, modelMeta) && isInTableSchema(fieldName) - ) - .map((fieldName) => ({ - name: fieldName, - isObject: false, - fieldDefn: modelMeta.fields.find((f) => f.name === fieldName) - })); - - // This is for inferring the sub-selection of a mutation query - // from a definition model .eg UserSetting, find its related queries in the introspection object, and pick its selection fields - if (defn.qtype === 'mutation') { - const relatedQuery = this._introspection[ - `${modelNameToGetMany(defn.model)}` - ]; - return pickFrom(relatedQuery.selection); - } - - return pickFrom(defn.selection); -} - -/** - * Pick scalar fields and sub-selection fields of a query definition - * @param {Object} selection Selection clause object - * @param {Object} defn Query definition - * @param {Object} meta Meta object containing info about table relations - * @returns {Array} - */ -function pickAllFields(selection, defn) { - const model = defn.model; - const modelMeta = this._meta.tables.find((t) => t.name === model); - const selectionEntries = Object.entries(selection); - let fields = []; - - const isWhiteListed = (selectValue) => { - return typeof selectValue === 'boolean' && selectValue; - }; - - for (const entry of selectionEntries) { - const [fieldName, fieldOptions] = entry; - // Case - // { - // goalResults: // fieldName - // { select: { id: true }, variables: { first: 100 } } // fieldOptions - // } - if (isObject(fieldOptions)) { - if (!isFieldInDefinition(fieldName, defn, modelMeta, this)) { - continue; - } - - const referencedForeignConstraint = modelMeta.foreignConstraints.find( - (constraint) => - constraint.fromKey.name === fieldName || - constraint.fromKey.alias === fieldName - ); - - const subFields = Object.keys(fieldOptions.select).filter((subField) => { - return ( - !isRelationalField(subField, modelMeta) && - isWhiteListed(fieldOptions.select[subField]) - ); - }); - - const isBelongTo = !!referencedForeignConstraint; - - const fieldSelection = { - name: fieldName, - isObject: true, - isBelongTo, - selection: subFields, - variables: fieldOptions.variables - }; - - // Need to further expand selection of object fields, - // but only non-graphql-builtin, non-relation fields - // .ie action { id location } - // location is non-scalar and non-relational, thus need to further expand into { x y ... } - if (isBelongTo) { - const getManyName = modelNameToGetMany( - referencedForeignConstraint.refTable - ); - const refDefn = this._introspection[getManyName]; - fieldSelection.selection = pickScalarFields.call( - this, - subFields, - refDefn - ); - } - - fields = [...fields, fieldSelection]; - } else { - // Case - // { - // userId: true // [fieldName, fieldOptions] - // } - if (isWhiteListed(fieldOptions)) { - fields = [ - ...fields, - { - name: fieldName, - isObject: false, - fieldDefn: modelMeta.fields.find((f) => f.name === fieldName) - } - ]; - } - } - } - - return fields; -} - -function isFieldInDefinition(fieldName, defn, modelMeta) { - const isReferenced = !!modelMeta.foreignConstraints.find( - (constraint) => - constraint.fromKey.name === fieldName || - constraint.fromKey.alias === fieldName - ); - - return ( - isReferenced || - defn.selection.some((selectionItem) => { - if (typeof selectionItem === 'string') { - return fieldName === selectionItem; - } - if (isObject(selectionItem)) { - return selectionItem.name === fieldName; - } - return false; - }) - ); -} - -// TODO: see if there is a possibility of supertyping table (a key is both a foreign and primary key) -// A relational field is a foreign key but not a primary key -function isRelationalField(fieldName, modelMeta) { - return ( - !modelMeta.primaryConstraints.find((field) => field.name === fieldName) && - !!modelMeta.foreignConstraints.find( - (constraint) => constraint.fromKey.name === fieldName - ) - ); -} - -// Get getMany op name from model -// ie. UserSetting => userSettings -function modelNameToGetMany(model) { - return inflection.camelize( - inflection.pluralize(inflection.underscore(model)), - true - ); -} diff --git a/graphql/query/src/meta-object/convert.ts b/graphql/query/src/meta-object/convert.ts index ca3931e1a..486fb829f 100644 --- a/graphql/query/src/meta-object/convert.ts +++ b/graphql/query/src/meta-object/convert.ts @@ -1,12 +1,85 @@ -// @ts-nocheck +import type { MetaFieldType } from '../types'; -export function convertFromMetaSchema(metaSchema) { +// Input schema types +interface MetaSchemaField { + name: string; + type: MetaFieldType; +} + +interface MetaSchemaConstraint { + fields: MetaSchemaField[]; +} + +interface MetaSchemaForeignConstraint { + fields: MetaSchemaField[]; + refFields: MetaSchemaField[]; + refTable: { name: string }; +} + +interface MetaSchemaBelongsTo { + keys: MetaSchemaField[]; + fieldName: string; +} + +interface MetaSchemaRelations { + belongsTo: MetaSchemaBelongsTo[]; +} + +interface MetaSchemaTable { + name: string; + fields: MetaSchemaField[]; + primaryKeyConstraints: MetaSchemaConstraint[]; + uniqueConstraints: MetaSchemaConstraint[]; + foreignKeyConstraints: MetaSchemaForeignConstraint[]; + relations: MetaSchemaRelations; +} + +interface MetaSchemaInput { + _meta: { + tables: MetaSchemaTable[]; + }; +} + +// Output types +interface ConvertedField { + name: string; + type: MetaFieldType; + alias?: string; +} + +interface ConvertedConstraint { + name: string; + type: MetaFieldType; + alias?: string; +} + +interface ConvertedForeignConstraint { + refTable: string; + fromKey: ConvertedField; + toKey: ConvertedField; +} + +interface ConvertedTable { + name: string; + fields: ConvertedField[]; + primaryConstraints: ConvertedConstraint[]; + uniqueConstraints: ConvertedConstraint[]; + foreignConstraints: ConvertedForeignConstraint[]; +} + +interface ConvertedMetaObject { + tables: ConvertedTable[]; +} + +export function convertFromMetaSchema( + metaSchema: MetaSchemaInput +): ConvertedMetaObject { const { - _meta: { tables } + _meta: { tables }, } = metaSchema; - const result = { - tables: [] + const result: ConvertedMetaObject = { + tables: [], }; for (const table of tables) { @@ -18,20 +91,25 @@ export function convertFromMetaSchema(metaSchema) { foreignConstraints: pickForeignConstraint( table.foreignKeyConstraints, table.relations - ) + ), }); } return result; } -function pickArrayConstraint(constraints) { +function pickArrayConstraint( + constraints: MetaSchemaConstraint[] +): ConvertedConstraint[] { if (constraints.length === 0) return []; const c = constraints[0]; - return c.fields.map((field) => pickField(field)); + return c.fields.map((field) => pickConstraintField(field)); } -function pickForeignConstraint(constraints, relations) { +function pickForeignConstraint( + constraints: MetaSchemaForeignConstraint[], + relations: MetaSchemaRelations +): ConvertedForeignConstraint[] { if (constraints.length === 0) return []; const { belongsTo } = relations; @@ -42,8 +120,8 @@ function pickForeignConstraint(constraints, relations) { const fromKey = pickField(fields[0]); const toKey = pickField(refFields[0]); - const matchingBelongsTo = belongsTo.find((c) => { - const field = pickField(c.keys[0]); + const matchingBelongsTo = belongsTo.find((belongsToItem) => { + const field = pickField(belongsToItem.keys[0]); return field.name === fromKey.name; }); @@ -55,14 +133,21 @@ function pickForeignConstraint(constraints, relations) { return { refTable: refTable.name, fromKey, - toKey + toKey, }; }); } -function pickField(field) { +function pickField(field: MetaSchemaField): ConvertedField { + return { + name: field.name, + type: field.type, + }; +} + +function pickConstraintField(field: MetaSchemaField): ConvertedConstraint { return { name: field.name, - type: field.type + type: field.type, }; } diff --git a/graphql/query/src/meta-object/format.json b/graphql/query/src/meta-object/format.json index b8cf3462d..b39ed1133 100644 --- a/graphql/query/src/meta-object/format.json +++ b/graphql/query/src/meta-object/format.json @@ -5,27 +5,44 @@ "definitions": { "field": { "type": "object", - "required": ["name", "type"], + "required": [ + "name", + "type" + ], "additionalProperties": true, "properties": { "name": { "type": "string", "default": "id", - "examples": ["id"] + "examples": [ + "id" + ] }, "type": { "type": "object", - "required": ["pgType", "gqlType"], + "required": [ + "pgType", + "gqlType" + ], "additionalProperties": true, "properties": { "gqlType": { - "type": ["string", "null"] + "type": [ + "string", + "null" + ] }, "pgType": { - "type": ["string", "null"] + "type": [ + "string", + "null" + ] }, "subtype": { - "type": ["string", "null"] + "type": [ + "string", + "null" + ] } } } @@ -41,19 +58,27 @@ "name": { "type": "string", "default": "User", - "examples": ["User"] + "examples": [ + "User" + ] }, "fields": { "type": "array", - "items": { "$ref": "#/definitions/field" } + "items": { + "$ref": "#/definitions/field" + } }, "primaryConstraints": { "type": "array", - "items": { "$ref": "#/definitions/field" } + "items": { + "$ref": "#/definitions/field" + } }, "uniqueConstraints": { "type": "array", - "items": { "$ref": "#/definitions/field" } + "items": { + "$ref": "#/definitions/field" + } }, "foreignConstraints": { "type": "array", @@ -63,21 +88,36 @@ "refTable": { "type": "string", "default": "User", - "examples": ["User"] + "examples": [ + "User" + ] + }, + "fromKey": { + "$ref": "#/definitions/field" }, - "fromKey": { "$ref": "#/definitions/field" }, - "toKey": { "$ref": "#/definitions/field" } + "toKey": { + "$ref": "#/definitions/field" + } }, - "required": ["refTable", "fromKey", "toKey"], + "required": [ + "refTable", + "fromKey", + "toKey" + ], "additionalProperties": false } } }, - "required": ["name", "fields"], + "required": [ + "name", + "fields" + ], "additionalProperties": false } } }, - "required": ["tables"], + "required": [ + "tables" + ], "additionalProperties": false -} +} \ No newline at end of file diff --git a/graphql/query/src/meta-object/validate.ts b/graphql/query/src/meta-object/validate.ts index 5fe229cee..33adaf835 100644 --- a/graphql/query/src/meta-object/validate.ts +++ b/graphql/query/src/meta-object/validate.ts @@ -10,6 +10,6 @@ export function validateMetaObject(obj: any) { return { errors: ajv.errors, - message: ajv.errorsText(ajv.errors, { separator: '\n' }) + message: ajv.errorsText(ajv.errors, { separator: '\n' }), }; } diff --git a/graphql/query/src/query-builder.ts b/graphql/query/src/query-builder.ts new file mode 100644 index 000000000..8c8f89495 --- /dev/null +++ b/graphql/query/src/query-builder.ts @@ -0,0 +1,584 @@ +import { DocumentNode, print as gqlPrint } from 'graphql'; +import inflection from 'inflection'; + +import { + createOne, + deleteOne, + getAll, + getCount, + getMany, + getOne, + patchOne, +} from './ast'; +import { validateMetaObject } from './meta-object'; +import type { + FieldSelection, + IntrospectionSchema, + MetaObject, + MetaTable, + MutationDefinition, + QueryBuilderOptions, + QueryBuilderResult, + QueryDefinition, + SelectionOptions, +} from './types'; + +export * as MetaObject from './meta-object'; + +const isObject = (val: any): val is object => + val !== null && typeof val === 'object'; + +export class QueryBuilder { + public _introspection: IntrospectionSchema; + public _meta: MetaObject; + private _models!: Record< + string, + Record + >; + private _model!: string; + private _fields!: unknown[]; + private _key!: string | null; + private _queryName!: string; + private _ast!: DocumentNode | null; + public _edges!: boolean; + private _op!: string; + private _mutation!: string; + private _select!: FieldSelection[]; + + constructor({ meta = {} as MetaObject, introspection }: QueryBuilderOptions) { + this._introspection = introspection; + this._meta = meta; + this.clear(); + this.initModelMap(); + this.pickScalarFields = pickScalarFields.bind(this); + this.pickAllFields = pickAllFields.bind(this); + + const result = validateMetaObject(this._meta); + if (typeof result === 'object' && result.errors) { + throw new Error( + `QueryBuilder: meta object is invalid:\n${result.message}` + ); + } + } + + /* + * Save all gql queries and mutations by model name for quicker lookup + */ + initModelMap(): void { + this._models = Object.keys(this._introspection).reduce( + (map, key) => { + const defn = this._introspection[key]; + map = { + ...map, + [defn.model]: { + ...map[defn.model], + ...{ [key]: defn }, + }, + }; + return map; + }, + {} as Record> + ); + } + + clear(): void { + this._model = ''; + this._fields = []; + this._key = null; + this._queryName = ''; + this._ast = null; + this._edges = false; + this._op = ''; + this._mutation = ''; + this._select = []; + } + + query(model: string): QueryBuilder { + this.clear(); + this._model = model; + return this; + } + + _findQuery(): string { + // based on the op, finds the relevant GQL query + const queries = this._models[this._model]; + if (!queries) { + throw new Error('No queries found for ' + this._model); + } + + const matchQuery = Object.entries(queries).find( + ([_, defn]) => defn.qtype === this._op + ); + + if (!matchQuery) { + throw new Error('No query found for ' + this._model + ':' + this._op); + } + + const queryKey = matchQuery[0]; + return queryKey; + } + + _findMutation(): string { + // For mutation, there can be many defns that match the operation being requested + // .ie: deleteAction, deleteActionBySlug, deleteActionByName + const matchingDefns = Object.keys(this._introspection).reduce( + (arr, mutationKey) => { + const defn = this._introspection[mutationKey]; + if ( + defn.model === this._model && + defn.qtype === this._op && + defn.qtype === 'mutation' && + (defn as MutationDefinition).mutationType === this._mutation + ) { + arr = [...arr, { defn, mutationKey }]; + } + return arr; + }, + [] as Array<{ + defn: QueryDefinition | MutationDefinition; + mutationKey: string; + }> + ); + + if (matchingDefns.length === 0) { + throw new Error( + 'no mutation found for ' + this._model + ':' + this._mutation + ); + } + + // We only need deleteAction from all of [deleteAction, deleteActionBySlug, deleteActionByName] + const getInputName = (mutationType: string): string => { + switch (mutationType) { + case 'delete': { + return `Delete${inflection.camelize(this._model)}Input`; + } + case 'create': { + return `Create${inflection.camelize(this._model)}Input`; + } + case 'patch': { + return `Update${inflection.camelize(this._model)}Input`; + } + default: + throw new Error('Unhandled mutation type' + mutationType); + } + }; + + const matchDefn = matchingDefns.find( + ({ defn }) => defn.properties.input.type === getInputName(this._mutation) + ); + + if (!matchDefn) { + throw new Error( + 'no mutation found for ' + this._model + ':' + this._mutation + ); + } + + return matchDefn.mutationKey; + } + + select(selection?: SelectionOptions | null): QueryBuilder { + const defn = this._introspection[this._key!]; + + // If selection not given, pick only scalar fields + if (selection == null) { + this._select = this.pickScalarFields(null, defn); + return this; + } + + this._select = this.pickAllFields(selection, defn); + return this; + } + + edges(useEdges: boolean): QueryBuilder { + this._edges = useEdges; + return this; + } + + getMany({ select }: { select?: SelectionOptions } = {}): QueryBuilder { + this._op = 'getMany'; + this._key = this._findQuery(); + + this.queryName( + inflection.camelize( + ['get', inflection.underscore(this._key), 'query'].join('_'), + true + ) + ); + + const defn = this._introspection[this._key]; + + this.select(select); + this._ast = getMany({ + builder: this, + queryName: this._queryName, + operationName: this._key, + query: defn, + selection: this._select, + }); + + return this; + } + + all({ select }: { select?: SelectionOptions } = {}): QueryBuilder { + this._op = 'getMany'; + this._key = this._findQuery(); + + this.queryName( + inflection.camelize( + ['get', inflection.underscore(this._key), 'query', 'all'].join('_'), + true + ) + ); + + const defn = this._introspection[this._key]; + + this.select(select); + this._ast = getAll({ + queryName: this._queryName, + operationName: this._key, + query: defn, + selection: this._select, + }); + + return this; + } + + count(): QueryBuilder { + this._op = 'getMany'; + this._key = this._findQuery(); + + this.queryName( + inflection.camelize( + ['get', inflection.underscore(this._key), 'count', 'query'].join('_'), + true + ) + ); + + const defn = this._introspection[this._key]; + + this._ast = getCount({ + queryName: this._queryName, + operationName: this._key, + query: defn, + }); + + return this; + } + + getOne({ select }: { select?: SelectionOptions } = {}): QueryBuilder { + this._op = 'getOne'; + this._key = this._findQuery(); + + this.queryName( + inflection.camelize( + ['get', inflection.underscore(this._key), 'query'].join('_'), + true + ) + ); + + const defn = this._introspection[this._key]; + this.select(select); + this._ast = getOne({ + builder: this, + queryName: this._queryName, + operationName: this._key, + query: defn, + selection: this._select, + }); + + return this; + } + + create({ select }: { select?: SelectionOptions } = {}): QueryBuilder { + this._op = 'mutation'; + this._mutation = 'create'; + this._key = this._findMutation(); + + this.queryName( + inflection.camelize( + [inflection.underscore(this._key), 'mutation'].join('_'), + true + ) + ); + + const defn = this._introspection[this._key] as MutationDefinition; + this.select(select); + this._ast = createOne({ + operationName: this._key, + mutationName: this._queryName, + mutation: defn, + selection: this._select, + }); + + return this; + } + + delete({ select }: { select?: SelectionOptions } = {}): QueryBuilder { + this._op = 'mutation'; + this._mutation = 'delete'; + this._key = this._findMutation(); + + this.queryName( + inflection.camelize( + [inflection.underscore(this._key), 'mutation'].join('_'), + true + ) + ); + + const defn = this._introspection[this._key] as MutationDefinition; + + this.select(select); + this._ast = deleteOne({ + operationName: this._key, + mutationName: this._queryName, + mutation: defn, + }); + + return this; + } + + update({ select }: { select?: SelectionOptions } = {}): QueryBuilder { + this._op = 'mutation'; + this._mutation = 'patch'; + this._key = this._findMutation(); + + this.queryName( + inflection.camelize( + [inflection.underscore(this._key), 'mutation'].join('_'), + true + ) + ); + + const defn = this._introspection[this._key] as MutationDefinition; + + this.select(select); + this._ast = patchOne({ + operationName: this._key, + mutationName: this._queryName, + mutation: defn, + selection: this._select, + }); + + return this; + } + + queryName(name: string): QueryBuilder { + this._queryName = name; + return this; + } + + print(): QueryBuilderResult { + if (!this._ast) { + throw new Error('No AST generated. Please call a query method first.'); + } + const _hash = gqlPrint(this._ast); + return { + _hash, + _queryName: this._queryName, + _ast: this._ast, + }; + } + + // Bind methods that will be called with different this context + pickScalarFields: ( + selection: SelectionOptions | null, + defn: QueryDefinition + ) => FieldSelection[]; + pickAllFields: ( + selection: SelectionOptions, + defn: QueryDefinition + ) => FieldSelection[]; +} + +/** + * Pick scalar fields of a query definition + * @param {Object} defn Query definition + * @param {Object} meta Meta object containing info about table relations + * @returns {Array} + */ +function pickScalarFields( + this: QueryBuilder, + selection: SelectionOptions | null, + defn: QueryDefinition +): FieldSelection[] { + const model = defn.model; + const modelMeta = this._meta.tables.find((t) => t.name === model); + + if (!modelMeta) { + throw new Error(`Model meta not found for ${model}`); + } + + const isInTableSchema = (fieldName: string): boolean => + !!modelMeta.fields.find((field) => field.name === fieldName); + + const pickFrom = (modelSelection: string[]): FieldSelection[] => + modelSelection + .filter((fieldName) => { + // If not specified or not a valid selection list, allow all + if (selection == null || !Array.isArray(selection)) return true; + return Object.keys(selection).includes(fieldName); + }) + .filter( + (fieldName) => + !isRelationalField(fieldName, modelMeta) && isInTableSchema(fieldName) + ) + .map((fieldName) => ({ + name: fieldName, + isObject: false, + fieldDefn: modelMeta.fields.find((f) => f.name === fieldName), + })); + + // This is for inferring the sub-selection of a mutation query + // from a definition model .eg UserSetting, find its related queries in the introspection object, and pick its selection fields + if (defn.qtype === 'mutation') { + const relatedQuery = + this._introspection[`${modelNameToGetMany(defn.model)}`]; + return pickFrom(relatedQuery.selection); + } + + return pickFrom(defn.selection); +} + +/** + * Pick scalar fields and sub-selection fields of a query definition + * @param {Object} selection Selection clause object + * @param {Object} defn Query definition + * @param {Object} meta Meta object containing info about table relations + * @returns {Array} + */ +function pickAllFields( + this: QueryBuilder, + selection: SelectionOptions, + defn: QueryDefinition +): FieldSelection[] { + const model = defn.model; + const modelMeta = this._meta.tables.find((t) => t.name === model); + + if (!modelMeta) { + throw new Error(`Model meta not found for ${model}`); + } + + const selectionEntries = Object.entries(selection); + let fields: FieldSelection[] = []; + + const isWhiteListed = (selectValue: any): selectValue is boolean => { + return typeof selectValue === 'boolean' && selectValue; + }; + + for (const entry of selectionEntries) { + const [fieldName, fieldOptions] = entry; + // Case + // { + // goalResults: // fieldName + // { select: { id: true }, variables: { first: 100 } } // fieldOptions + // } + if (isObject(fieldOptions)) { + if (!isFieldInDefinition(fieldName, defn, modelMeta)) { + continue; + } + + const referencedForeignConstraint = modelMeta.foreignConstraints.find( + (constraint) => + constraint.fromKey.name === fieldName || + constraint.fromKey.alias === fieldName + ); + + const subFields = Object.keys(fieldOptions.select).filter((subField) => { + return ( + !isRelationalField(subField, modelMeta) && + isWhiteListed(fieldOptions.select[subField]) + ); + }); + + const isBelongTo = !!referencedForeignConstraint; + + const fieldSelection: FieldSelection = { + name: fieldName, + isObject: true, + isBelongTo, + selection: subFields.map((name) => ({ name, isObject: false })), + variables: fieldOptions.variables, + }; + + // Need to further expand selection of object fields, + // but only non-graphql-builtin, non-relation fields + // .ie action { id location } + // location is non-scalar and non-relational, thus need to further expand into { x y ... } + if (isBelongTo) { + const getManyName = modelNameToGetMany( + referencedForeignConstraint.refTable + ); + const refDefn = this._introspection[getManyName]; + fieldSelection.selection = pickScalarFields.call( + this, + { [fieldName]: true }, + refDefn + ); + } + + fields = [...fields, fieldSelection]; + } else { + // Case + // { + // userId: true // [fieldName, fieldOptions] + // } + if (isWhiteListed(fieldOptions)) { + fields = [ + ...fields, + { + name: fieldName, + isObject: false, + fieldDefn: modelMeta.fields.find((f) => f.name === fieldName), + }, + ]; + } + } + } + + return fields; +} + +function isFieldInDefinition( + fieldName: string, + defn: QueryDefinition, + modelMeta: MetaTable +): boolean { + const isReferenced = !!modelMeta.foreignConstraints.find( + (constraint) => + constraint.fromKey.name === fieldName || + constraint.fromKey.alias === fieldName + ); + + return ( + isReferenced || + defn.selection.some((selectionItem) => { + if (typeof selectionItem === 'string') { + return fieldName === selectionItem; + } + if (isObject(selectionItem)) { + return (selectionItem as any).name === fieldName; + } + return false; + }) + ); +} + +// TODO: see if there is a possibility of supertyping table (a key is both a foreign and primary key) +// A relational field is a foreign key but not a primary key +function isRelationalField(fieldName: string, modelMeta: MetaTable): boolean { + return ( + !modelMeta.primaryConstraints.find((field) => field.name === fieldName) && + !!modelMeta.foreignConstraints.find( + (constraint) => constraint.fromKey.name === fieldName + ) + ); +} + +// Get getMany op name from model +// ie. UserSetting => userSettings +function modelNameToGetMany(model: string): string { + return inflection.camelize( + inflection.pluralize(inflection.underscore(model)), + true + ); +} diff --git a/graphql/query/src/types.ts b/graphql/query/src/types.ts new file mode 100644 index 000000000..0fdf61dde --- /dev/null +++ b/graphql/query/src/types.ts @@ -0,0 +1,212 @@ +import type { + DocumentNode, + FieldNode, + SelectionSetNode, + VariableDefinitionNode, +} from 'graphql'; + +// GraphQL AST types (re-export what we need from gql-ast) +export type ASTNode = + | DocumentNode + | FieldNode + | SelectionSetNode + | VariableDefinitionNode; + +// Nested property structure for complex mutation inputs +export interface NestedProperties { + [key: string]: QueryProperty | NestedProperties; +} + +// Base interfaces for query definitions +export interface QueryProperty { + name: string; + type: string; + isNotNull: boolean; + isArray: boolean; + isArrayNotNull: boolean; + properties?: NestedProperties; // For nested properties in mutations +} + +export interface QueryDefinition { + model: string; + qtype: 'getMany' | 'getOne' | 'mutation'; + mutationType?: 'create' | 'patch' | 'delete'; + selection: string[]; + properties: Record; +} + +export interface MutationDefinition extends QueryDefinition { + qtype: 'mutation'; + mutationType: 'create' | 'patch' | 'delete'; +} + +export interface IntrospectionSchema { + [key: string]: QueryDefinition | MutationDefinition; +} + +// Meta object interfaces with specific types +export interface MetaFieldType { + gqlType: string; + isArray: boolean; + modifier?: string | number | null; + pgAlias?: string | null; + pgType?: string | null; + subtype?: string | null; + typmod?: number | null; +} + +export interface MetaField { + name: string; + type: MetaFieldType; +} + +// Alias for compatibility with code migrated from other repos +export type CleanField = MetaField; + +export interface MetaConstraint { + name: string; + type: MetaFieldType; + alias?: string; +} + +export interface MetaForeignConstraint { + fromKey: MetaConstraint; + refTable: string; + toKey: MetaConstraint; +} + +export interface MetaTable { + name: string; + fields: MetaField[]; + primaryConstraints: MetaConstraint[]; + uniqueConstraints: MetaConstraint[]; + foreignConstraints: MetaForeignConstraint[]; +} + +export interface MetaObject { + tables: MetaTable[]; +} + +// GraphQL Variables - strictly typed +export type GraphQLVariableValue = string | number | boolean | null; + +export interface GraphQLVariables { + [key: string]: + | GraphQLVariableValue + | GraphQLVariableValue[] + | GraphQLVariables + | GraphQLVariables[]; +} + +// Selection interfaces with better typing +export interface FieldSelection { + name: string; + isObject: boolean; + fieldDefn?: MetaField; + selection?: FieldSelection[]; + variables?: GraphQLVariables; + isBelongTo?: boolean; +} + +export interface SelectionOptions { + [fieldName: string]: + | boolean + | { + select: Record; + variables?: GraphQLVariables; + }; +} + +// QueryBuilder class interface +export interface QueryBuilderInstance { + _introspection: IntrospectionSchema; + _meta: MetaObject; + _edges?: boolean; +} + +// AST function interfaces +export interface ASTFunctionParams { + queryName: string; + operationName: string; + query: QueryDefinition; + selection: FieldSelection[]; + builder?: QueryBuilderInstance; +} + +export interface MutationASTParams { + mutationName: string; + operationName: string; + mutation: MutationDefinition; + selection?: FieldSelection[]; +} + +// QueryBuilder interface +export interface QueryBuilderOptions { + meta: MetaObject; + introspection: IntrospectionSchema; +} + +export interface QueryBuilderResult { + _hash: string; + _queryName: string; + _ast: DocumentNode; +} + +// Public QueryBuilder interface +export interface IQueryBuilder { + query(model: string): IQueryBuilder; + getMany(options?: { select?: SelectionOptions }): IQueryBuilder; + getOne(options?: { select?: SelectionOptions }): IQueryBuilder; + all(options?: { select?: SelectionOptions }): IQueryBuilder; + count(): IQueryBuilder; + create(options?: { select?: SelectionOptions }): IQueryBuilder; + update(options?: { select?: SelectionOptions }): IQueryBuilder; + delete(options?: { select?: SelectionOptions }): IQueryBuilder; + edges(useEdges: boolean): IQueryBuilder; + print(): QueryBuilderResult; +} + +// Helper type for object array conversion +export interface ObjectArrayItem extends QueryProperty { + name: string; + key?: string; // For when we map with key instead of name +} + +// Type guards for runtime validation +export function isGraphQLVariableValue( + value: unknown +): value is GraphQLVariableValue { + return ( + value === null || + typeof value === 'string' || + typeof value === 'number' || + typeof value === 'boolean' + ); +} + +export function isGraphQLVariables(obj: unknown): obj is GraphQLVariables { + if (!obj || typeof obj !== 'object') return false; + + for (const [key, value] of Object.entries(obj)) { + if (typeof key !== 'string') return false; + + if (Array.isArray(value)) { + if ( + !value.every( + (item) => isGraphQLVariableValue(item) || isGraphQLVariables(item) + ) + ) { + return false; + } + } else if (!isGraphQLVariableValue(value) && !isGraphQLVariables(value)) { + return false; + } + } + + return true; +} + +// Utility type for ensuring strict typing +export type StrictRecord = Record & { + [P in PropertyKey]: P extends K ? V : never; +}; diff --git a/packages/cli/__tests__/codegen.test.ts b/packages/cli/__tests__/codegen.test.ts index e6e32ad67..43addb2d4 100644 --- a/packages/cli/__tests__/codegen.test.ts +++ b/packages/cli/__tests__/codegen.test.ts @@ -1,37 +1,13 @@ -import path from 'path' import type { ParsedArgs } from 'minimist' import codegenCommand from '../src/commands/codegen' -jest.mock('@constructive-io/graphql-codegen', () => { - const deepMerge = (a: any, b: any) => ({ - ...a, - ...b, - input: { ...(a?.input || {}), ...(b?.input || {}) }, - output: { ...(a?.output || {}), ...(b?.output || {}) }, - documents: { ...(a?.documents || {}), ...(b?.documents || {}) }, - features: { ...(a?.features || {}), ...(b?.features || {}) } - }) - return { - runCodegen: jest.fn(async () => ({ root: '/tmp/generated', typesFile: '', operationsDir: '', sdkFile: '' })), - defaultGraphQLCodegenOptions: { input: {}, output: { root: 'graphql/codegen/dist' }, documents: {}, features: { emitTypes: true, emitOperations: true, emitSdk: true } }, - mergeGraphQLCodegenOptions: deepMerge - } -}) - -jest.mock('@constructive-io/graphql-server', () => ({ - fetchEndpointSchemaSDL: jest.fn(async () => 'schema { query: Query } type Query { hello: String }') -})) - -jest.mock('fs', () => ({ - promises: { - readFile: jest.fn().mockResolvedValue(''), - writeFile: jest.fn().mockResolvedValue(undefined), - mkdir: jest.fn().mockResolvedValue(undefined) - } +jest.mock('child_process', () => ({ + spawnSync: jest.fn(() => ({ status: 0 })) })) describe('codegen command', () => { beforeEach(() => { + process.env.CONSTRUCTIVE_CODEGEN_BIN = '/fake/bin/graphql-codegen.js' jest.clearAllMocks() }) @@ -50,80 +26,55 @@ describe('codegen command', () => { spyExit.mockRestore() }) - it('fetches schema via endpoint, writes temp SDL, and runs codegen', async () => { - const { fetchEndpointSchemaSDL } = require('@constructive-io/graphql-server') - const { runCodegen } = require('@constructive-io/graphql-codegen') - const fs = require('fs').promises - const spyLog = jest.spyOn(console, 'log').mockImplementation(() => {}) + it('invokes graphql-codegen CLI with endpoint, out, auth, and flags', async () => { + const child = require('child_process') - const cwd = process.cwd() const argv: Partial = { endpoint: 'http://localhost:3000/graphql', - headerHost: 'meta8.localhost', auth: 'Bearer testtoken', - header: 'X-Test: 1', - out: 'graphql/codegen/dist' + out: 'graphql/codegen/dist', + v: true, + 'dry-run': true } await codegenCommand(argv, {} as any, {} as any) - expect(fetchEndpointSchemaSDL).toHaveBeenCalledWith('http://localhost:3000/graphql', expect.objectContaining({ headerHost: 'meta8.localhost', auth: 'Bearer testtoken', headers: expect.objectContaining({ 'X-Test': '1' }) })) - expect(fs.writeFile).toHaveBeenCalledWith(path.join(cwd, '.constructive-codegen-schema.graphql'), expect.any(String), 'utf8') - expect(runCodegen).toHaveBeenCalled() - // ensure it prints the output root location - expect(spyLog).toHaveBeenCalledWith(expect.stringContaining('/tmp/generated')) - - spyLog.mockRestore() + expect(child.spawnSync).toHaveBeenCalled() + const args = (child.spawnSync as jest.Mock).mock.calls[0][1] as string[] + expect(args).toEqual(expect.arrayContaining(['generate'])) + expect(args).toEqual(expect.arrayContaining(['-e', 'http://localhost:3000/graphql'])) + expect(args).toEqual(expect.arrayContaining(['-o', 'graphql/codegen/dist'])) + expect(args).toEqual(expect.arrayContaining(['-a', 'Bearer testtoken'])) + expect(args).toEqual(expect.arrayContaining(['--dry-run'])) + expect(args).toEqual(expect.arrayContaining(['-v'])) }) - it('uses local schema when --schema is provided and runs codegen', async () => { - const { fetchEndpointSchemaSDL } = require('@constructive-io/graphql-server') - const { runCodegen } = require('@constructive-io/graphql-codegen') - const spyLog = jest.spyOn(console, 'log').mockImplementation(() => {}) + it('passes config path and out directory through to CLI', async () => { + const child = require('child_process') - const schemaPath = path.join(process.cwd(), 'local-schema.graphql') const argv: Partial = { - schema: schemaPath, + config: '/tmp/codegen.json', out: 'graphql/codegen/dist' } await codegenCommand(argv, {} as any, {} as any) - expect(fetchEndpointSchemaSDL).not.toHaveBeenCalled() - expect(runCodegen).toHaveBeenCalled() - expect(spyLog).toHaveBeenCalledWith(expect.stringContaining('/tmp/generated')) - spyLog.mockRestore() + const args = (child.spawnSync as jest.Mock).mock.calls[0][1] as string[] + expect(args).toEqual(expect.arrayContaining(['-c', '/tmp/codegen.json'])) + expect(args).toEqual(expect.arrayContaining(['-o', 'graphql/codegen/dist'])) }) - it('loads config file and merges overrides', async () => { - const { runCodegen, mergeGraphQLCodegenOptions } = require('@constructive-io/graphql-codegen') - const fs = require('fs').promises - const spyLog = jest.spyOn(console, 'log').mockImplementation(() => {}) - - const cfg = { - input: { schema: 'from-config.graphql' }, - documents: { format: 'ts' }, - output: { root: 'custom-root' }, - features: { emitTypes: true, emitOperations: true, emitSdk: false } - } - ;(fs.readFile as jest.Mock).mockResolvedValueOnce(JSON.stringify(cfg)) + it('exits with non-zero when underlying CLI fails', async () => { + const child = require('child_process'); + (child.spawnSync as jest.Mock).mockReturnValueOnce({ status: 1 }) + const spyExit = jest.spyOn(process, 'exit').mockImplementation(((code?: number) => { throw new Error('exit:' + code) }) as any) const argv: Partial = { - config: '/tmp/codegen.json', - out: 'graphql/codegen/dist', - emitSdk: false + endpoint: 'http://localhost:3000/graphql', + out: 'graphql/codegen/dist' } - await codegenCommand(argv, {} as any, {} as any) - - expect(runCodegen).toHaveBeenCalled() - const call = (runCodegen as jest.Mock).mock.calls[0] - const options = call[0] - expect(options.input.schema).toBe('from-config.graphql') - expect(options.output.root).toBe('graphql/codegen/dist') - expect(options.documents.format).toBe('ts') - expect(options.features.emitSdk).toBe(false) - expect(spyLog).toHaveBeenCalledWith(expect.stringContaining('/tmp/generated')) - spyLog.mockRestore() + await expect(codegenCommand(argv, {} as any, {} as any)).rejects.toThrow('exit:1') + spyExit.mockRestore() }) }) diff --git a/packages/cli/src/commands/codegen.ts b/packages/cli/src/commands/codegen.ts index b3fd5a93a..1a5682add 100644 --- a/packages/cli/src/commands/codegen.ts +++ b/packages/cli/src/commands/codegen.ts @@ -1,10 +1,7 @@ import { CLIOptions, Inquirerer } from 'inquirerer' import { ParsedArgs } from 'minimist' -import { promises as fs } from 'fs' +import { spawnSync } from 'child_process' import { join } from 'path' -import yaml from 'js-yaml' -import { runCodegen, defaultGraphQLCodegenOptions, mergeGraphQLCodegenOptions, GraphQLCodegenOptions } from '@constructive-io/graphql-codegen' -import { fetchEndpointSchemaSDL } from '@constructive-io/graphql-server' const usage = ` Constructive GraphQL Codegen: @@ -13,39 +10,14 @@ Constructive GraphQL Codegen: Options: --help, -h Show this help message - --config Config file (json|yaml) - --schema Schema SDL file path - --endpoint GraphQL endpoint to fetch schema via introspection - --headerHost Optional Host header to send with endpoint requests - --auth Optional Authorization header value (e.g., "Bearer 123") - --header "Name: Value" Optional HTTP header; repeat to add multiple headers - --out Output root directory (default: graphql/codegen/dist) - --format Document format (default: gql) - --convention