diff --git a/.vscode/up.sh b/.vscode/up.sh
index 1de7c5af3..35559d2bb 100755
--- a/.vscode/up.sh
+++ b/.vscode/up.sh
@@ -15,20 +15,4 @@ done
echo "Postgres is accepting connections!"
-docker-compose up -d twenty-hasura
-
-while ! curl -s http://localhost:8080/healthz > /dev/null ; do
- sleep 1
- echo "Waiting for Hasura to be ready..."
-done
-
-docker-compose up -d hasura-auth
-
-while ! curl -s http://localhost:4000/healthz > /dev/null ; do
- sleep 1
- echo "Waiting for Hasura Auth to be ready..."
-done
-
-docker-compose exec twenty-hasura hasura deploy
-
docker-compose up -d
diff --git a/docs/docs/dev-docs/getting-started/local-setup.mdx b/docs/docs/dev-docs/getting-started/local-setup.mdx
index 2d9e4346e..679d0c686 100644
--- a/docs/docs/dev-docs/getting-started/local-setup.mdx
+++ b/docs/docs/dev-docs/getting-started/local-setup.mdx
@@ -12,7 +12,6 @@ Welcome to Twenty documentation!
Twenty development stack is composed of 3 different layers
- front: our frontend React app
-- hasura: our graphql engine exposing our database and server
- server: our backend that contain endpoint, crm logic, scripts, jobs...
- storages: postgres
@@ -46,7 +45,6 @@ make up
Once this is completed you should have:
- front available on: http://localhost:3001
-- hasura available on: http://localhost:8080
- server available on: http://localhost:3000/health
- postgres: available on http://localhost:5432 that should contain `twenty` database
@@ -65,9 +63,3 @@ If you are using Docker install, make sure to ssh in the docker container during
Run tests: `make front-test`
Run coverage: `make front-coverage`
Run storybook: `make front-storybook`
-
-### Hasura development
-
-Open hasura console: `make hasura-console`
-Do your changes in hasura console on http://localhost:9695
-Commit your changes in git
\ No newline at end of file
diff --git a/front/codegen.js b/front/codegen.js
index 6fd08693e..65074cf74 100644
--- a/front/codegen.js
+++ b/front/codegen.js
@@ -1,7 +1,7 @@
module.exports = {
schema: [
{
- [process.env.HASURA_GRAPHQL_ENDPOINT]: {
+ 'http://localhost:3000/graphql': {
headers: {
'x-hasura-admin-secret': process.env.HASURA_GRAPHQL_ADMIN_SECRET,
},
diff --git a/front/package.json b/front/package.json
index 49b860966..4723abf38 100644
--- a/front/package.json
+++ b/front/package.json
@@ -32,7 +32,7 @@
"build-storybook": "storybook build -s public",
"coverage": "react-scripts test --coverage --watchAll",
"coverage-ci": "react-scripts test --coverage --watchAll=false",
- "graphql-generate": "REACT_APP_GRAPHQL_ADMIN_SECRET=$REACT_APP_GRAPHQL_ADMIN_SECRET graphql-codegen --config codegen.js"
+ "graphql-codegen": "REACT_APP_GRAPHQL_ADMIN_SECRET=$REACT_APP_GRAPHQL_ADMIN_SECRET graphql-codegen --config codegen.js"
},
"eslintConfig": {
"extends": [
diff --git a/front/src/__stories__/App.stories.tsx b/front/src/__stories__/App.stories.tsx
index 28a039fd3..2d96c9e52 100644
--- a/front/src/__stories__/App.stories.tsx
+++ b/front/src/__stories__/App.stories.tsx
@@ -49,7 +49,7 @@ const mocks = [
{
request: {
query: GET_PEOPLE,
- variables: { orderBy: [{ created_at: 'desc' }], where: {} },
+ variables: { orderBy: [{ createdAt: 'desc' }], where: {} },
},
result: {
data: {
diff --git a/front/src/apollo.tsx b/front/src/apollo.tsx
index 63349f509..2bbe68c90 100644
--- a/front/src/apollo.tsx
+++ b/front/src/apollo.tsx
@@ -11,7 +11,7 @@ import { onError } from '@apollo/client/link/error';
import { refreshAccessToken } from './services/auth/AuthService';
const apiLink = createHttpLink({
- uri: `${process.env.REACT_APP_API_URL}/v1/graphql`,
+ uri: `${process.env.REACT_APP_API_URL}`,
});
const withAuthHeadersLink = setContext((_, { headers }) => {
diff --git a/front/src/components/editable-cell/__stories__/EditableRelation.stories.tsx b/front/src/components/editable-cell/__stories__/EditableRelation.stories.tsx
index 6b8ca5b96..7d93c062a 100644
--- a/front/src/components/editable-cell/__stories__/EditableRelation.stories.tsx
+++ b/front/src/components/editable-cell/__stories__/EditableRelation.stories.tsx
@@ -11,6 +11,7 @@ import { MockedProvider } from '@apollo/client/testing';
import { SEARCH_COMPANY_QUERY } from '../../../services/api/search/search';
import styled from '@emotion/styled';
import { SearchConfigType } from '../../../interfaces/search/interface';
+import { QueryMode } from '../../../generated/graphql';
const component = {
title: 'editable-cell/EditableRelation',
@@ -41,7 +42,7 @@ const mocks = [
request: {
query: SEARCH_COMPANY_QUERY,
variables: {
- where: { name: { _ilike: '%%' } },
+ where: { name: { contains: '%%', mode: QueryMode.Insensitive } },
limit: 5,
},
},
@@ -92,7 +93,7 @@ EditableRelationStory.args = {
searchConfig: {
query: SEARCH_COMPANY_QUERY,
template: (searchInput: string) => ({
- name: { _ilike: `%${searchInput}%` },
+ name: { contains: `%${searchInput}%`, mode: QueryMode.Insensitive },
}),
resultMapper: (company) => ({
render: (company) => company.name,
diff --git a/front/src/components/table/table-header/__stories__/FilterDropdownButton.stories.tsx b/front/src/components/table/table-header/__stories__/FilterDropdownButton.stories.tsx
index 28f8251dc..06bc5f310 100644
--- a/front/src/components/table/table-header/__stories__/FilterDropdownButton.stories.tsx
+++ b/front/src/components/table/table-header/__stories__/FilterDropdownButton.stories.tsx
@@ -12,6 +12,7 @@ import {
SelectedFilterType,
} from '../../../../interfaces/filters/interface';
import { mockCompaniesData } from '../../../../pages/companies/__tests__/__data__/mock-data';
+import { QueryMode } from '../../../../generated/graphql';
const component = {
title: 'FilterDropdownButton',
@@ -28,7 +29,10 @@ const mocks = [
{
request: {
query: SEARCH_COMPANY_QUERY,
- variables: { where: { name: { _ilike: '%%' } }, limit: 5 },
+ variables: {
+ where: { name: { contains: '%%', mode: QueryMode.Insensitive } },
+ limit: 5,
+ },
},
result: {
data: {
@@ -39,7 +43,10 @@ const mocks = [
{
request: {
query: SEARCH_COMPANY_QUERY,
- variables: { where: { name: { _ilike: '%Airc%' } }, limit: 5 },
+ variables: {
+ where: { name: { contains: '%Airc%', mode: QueryMode.Insensitive } },
+ limit: 5,
+ },
},
result: {
data: {
diff --git a/front/src/components/table/table-header/__stories__/SortAndFilterBar.stories.tsx b/front/src/components/table/table-header/__stories__/SortAndFilterBar.stories.tsx
index 522f51777..480d30717 100644
--- a/front/src/components/table/table-header/__stories__/SortAndFilterBar.stories.tsx
+++ b/front/src/components/table/table-header/__stories__/SortAndFilterBar.stories.tsx
@@ -27,7 +27,7 @@ export const RegularSortAndFilterBar = ({
label: 'Is',
id: 'is',
whereTemplate: (person: Person) => {
- return { email: { _eq: person.email } };
+ return { email: { equals: person.email } };
},
},
key: 'test_filter',
diff --git a/front/src/components/table/table-header/__stories__/SortDropdownButton.stories.tsx b/front/src/components/table/table-header/__stories__/SortDropdownButton.stories.tsx
index a8b6dba8a..17427a835 100644
--- a/front/src/components/table/table-header/__stories__/SortDropdownButton.stories.tsx
+++ b/front/src/components/table/table-header/__stories__/SortDropdownButton.stories.tsx
@@ -2,7 +2,10 @@ import { ThemeProvider } from '@emotion/react';
import { lightTheme } from '../../../../layout/styles/themes';
import { SortDropdownButton } from '../SortDropdownButton';
import styled from '@emotion/styled';
-import { Order_By, People_Order_By } from '../../../../generated/graphql';
+import {
+ SortOrder as Order_By,
+ PersonOrderByWithRelationInput as People_Order_By,
+} from '../../../../generated/graphql';
import { SortType } from '../../../../interfaces/sorts/interface';
import {
TbBuilding,
@@ -52,7 +55,7 @@ const availableSorts = [
_type: 'default_sort',
},
{
- key: 'created_at',
+ key: 'createdAt',
label: 'Created at',
icon: ,
_type: 'default_sort',
diff --git a/front/src/components/table/table-header/helpers.ts b/front/src/components/table/table-header/helpers.ts
index 974aa0a7b..b80eedb16 100644
--- a/front/src/components/table/table-header/helpers.ts
+++ b/front/src/components/table/table-header/helpers.ts
@@ -1,4 +1,4 @@
-import { Order_By } from '../../../generated/graphql';
+import { SortOrder as Order_By } from '../../../generated/graphql';
import { BoolExpType } from '../../../interfaces/entities/generic.interface';
import {
FilterableFieldsType,
diff --git a/front/src/generated/graphql.tsx b/front/src/generated/graphql.tsx
index 728d1d6a4..0fe70ea73 100644
--- a/front/src/generated/graphql.tsx
+++ b/front/src/generated/graphql.tsx
@@ -13,5107 +13,3098 @@ export type Scalars = {
Boolean: boolean;
Int: number;
Float: number;
- bigint: any;
- bytea: any;
- citext: any;
- jsonb: any;
- numeric: any;
- timestamptz: any;
- uuid: any;
+ DateTime: any;
+ JSON: any;
};
-/** Boolean expression to compare columns of type "Boolean". All fields are combined with logical 'AND'. */
-export type Boolean_Comparison_Exp = {
- _eq?: InputMaybe;
- _gt?: InputMaybe;
- _gte?: InputMaybe;
- _in?: InputMaybe>;
- _is_null?: InputMaybe;
- _lt?: InputMaybe;
- _lte?: InputMaybe;
- _neq?: InputMaybe;
- _nin?: InputMaybe>;
-};
-
-/** Boolean expression to compare columns of type "Int". All fields are combined with logical 'AND'. */
-export type Int_Comparison_Exp = {
- _eq?: InputMaybe;
- _gt?: InputMaybe;
- _gte?: InputMaybe;
- _in?: InputMaybe>;
- _is_null?: InputMaybe;
- _lt?: InputMaybe;
- _lte?: InputMaybe;
- _neq?: InputMaybe;
- _nin?: InputMaybe>;
-};
-
-/** Boolean expression to compare columns of type "String". All fields are combined with logical 'AND'. */
-export type String_Comparison_Exp = {
- _eq?: InputMaybe;
- _gt?: InputMaybe;
- _gte?: InputMaybe;
- /** does the column match the given case-insensitive pattern */
- _ilike?: InputMaybe;
- _in?: InputMaybe>;
- /** does the column match the given POSIX regular expression, case insensitive */
- _iregex?: InputMaybe;
- _is_null?: InputMaybe;
- /** does the column match the given pattern */
- _like?: InputMaybe;
- _lt?: InputMaybe;
- _lte?: InputMaybe;
- _neq?: InputMaybe;
- /** does the column NOT match the given case-insensitive pattern */
- _nilike?: InputMaybe;
- _nin?: InputMaybe>;
- /** does the column NOT match the given POSIX regular expression, case insensitive */
- _niregex?: InputMaybe;
- /** does the column NOT match the given pattern */
- _nlike?: InputMaybe;
- /** does the column NOT match the given POSIX regular expression, case sensitive */
- _nregex?: InputMaybe;
- /** does the column NOT match the given SQL regular expression */
- _nsimilar?: InputMaybe;
- /** does the column match the given POSIX regular expression, case sensitive */
- _regex?: InputMaybe;
- /** does the column match the given SQL regular expression */
- _similar?: InputMaybe;
-};
-
-/** Oauth requests, inserted before redirecting to the provider's site. Don't modify its structure as Hasura Auth relies on it to function properly. */
-export type AuthProviderRequests = {
- __typename?: 'authProviderRequests';
- id: Scalars['uuid'];
- options?: Maybe;
-};
-
-
-/** Oauth requests, inserted before redirecting to the provider's site. Don't modify its structure as Hasura Auth relies on it to function properly. */
-export type AuthProviderRequestsOptionsArgs = {
- path?: InputMaybe;
-};
-
-/** aggregated selection of "auth.provider_requests" */
-export type AuthProviderRequests_Aggregate = {
- __typename?: 'authProviderRequests_aggregate';
- aggregate?: Maybe;
- nodes: Array;
-};
-
-/** aggregate fields of "auth.provider_requests" */
-export type AuthProviderRequests_Aggregate_Fields = {
- __typename?: 'authProviderRequests_aggregate_fields';
+export type AffectedRowsOutput = {
+ __typename?: 'AffectedRowsOutput';
count: Scalars['Int'];
- max?: Maybe;
- min?: Maybe;
};
-
-/** aggregate fields of "auth.provider_requests" */
-export type AuthProviderRequests_Aggregate_FieldsCountArgs = {
- columns?: InputMaybe>;
- distinct?: InputMaybe;
+export type AggregateCompany = {
+ __typename?: 'AggregateCompany';
+ _avg?: Maybe;
+ _count?: Maybe;
+ _max?: Maybe;
+ _min?: Maybe;
+ _sum?: Maybe;
};
-/** append existing jsonb value of filtered columns with new jsonb value */
-export type AuthProviderRequests_Append_Input = {
- options?: InputMaybe;
+export type AggregatePerson = {
+ __typename?: 'AggregatePerson';
+ _count?: Maybe;
+ _max?: Maybe;
+ _min?: Maybe;
};
-/** Boolean expression to filter rows from the table "auth.provider_requests". All fields are combined with a logical 'AND'. */
-export type AuthProviderRequests_Bool_Exp = {
- _and?: InputMaybe>;
- _not?: InputMaybe;
- _or?: InputMaybe>;
- id?: InputMaybe;
- options?: InputMaybe;
+export type AggregateUser = {
+ __typename?: 'AggregateUser';
+ _count?: Maybe;
+ _max?: Maybe;
+ _min?: Maybe;
};
-/** unique or primary key constraints on table "auth.provider_requests" */
-export enum AuthProviderRequests_Constraint {
- /** unique or primary key constraint on columns "id" */
- ProviderRequestsPkey = 'provider_requests_pkey'
-}
-
-/** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */
-export type AuthProviderRequests_Delete_At_Path_Input = {
- options?: InputMaybe>;
+export type AggregateWorkspace = {
+ __typename?: 'AggregateWorkspace';
+ _count?: Maybe;
+ _max?: Maybe;
+ _min?: Maybe;
};
-/** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */
-export type AuthProviderRequests_Delete_Elem_Input = {
- options?: InputMaybe;
+export type BoolFieldUpdateOperationsInput = {
+ set?: InputMaybe;
};
-/** delete key/value pair or string element. key/value pairs are matched based on their key value */
-export type AuthProviderRequests_Delete_Key_Input = {
- options?: InputMaybe;
+export type BoolFilter = {
+ equals?: InputMaybe;
+ not?: InputMaybe;
};
-/** input type for inserting data into table "auth.provider_requests" */
-export type AuthProviderRequests_Insert_Input = {
- id?: InputMaybe;
- options?: InputMaybe;
+export type BoolWithAggregatesFilter = {
+ _count?: InputMaybe;
+ _max?: InputMaybe;
+ _min?: InputMaybe;
+ equals?: InputMaybe;
+ not?: InputMaybe;
};
-/** aggregate max on columns */
-export type AuthProviderRequests_Max_Fields = {
- __typename?: 'authProviderRequests_max_fields';
- id?: Maybe;
-};
-
-/** aggregate min on columns */
-export type AuthProviderRequests_Min_Fields = {
- __typename?: 'authProviderRequests_min_fields';
- id?: Maybe;
-};
-
-/** response of any mutation on the table "auth.provider_requests" */
-export type AuthProviderRequests_Mutation_Response = {
- __typename?: 'authProviderRequests_mutation_response';
- /** number of rows affected by the mutation */
- affected_rows: Scalars['Int'];
- /** data from the rows affected by the mutation */
- returning: Array;
-};
-
-/** on_conflict condition type for table "auth.provider_requests" */
-export type AuthProviderRequests_On_Conflict = {
- constraint: AuthProviderRequests_Constraint;
- update_columns?: Array;
- where?: InputMaybe;
-};
-
-/** Ordering options when selecting data from "auth.provider_requests". */
-export type AuthProviderRequests_Order_By = {
- id?: InputMaybe;
- options?: InputMaybe;
-};
-
-/** primary key columns input for table: auth.provider_requests */
-export type AuthProviderRequests_Pk_Columns_Input = {
- id: Scalars['uuid'];
-};
-
-/** prepend existing jsonb value of filtered columns with new jsonb value */
-export type AuthProviderRequests_Prepend_Input = {
- options?: InputMaybe;
-};
-
-/** select columns of table "auth.provider_requests" */
-export enum AuthProviderRequests_Select_Column {
- /** column name */
- Id = 'id',
- /** column name */
- Options = 'options'
-}
-
-/** input type for updating data in table "auth.provider_requests" */
-export type AuthProviderRequests_Set_Input = {
- id?: InputMaybe;
- options?: InputMaybe;
-};
-
-/** Streaming cursor of the table "authProviderRequests" */
-export type AuthProviderRequests_Stream_Cursor_Input = {
- /** Stream column input with initial value */
- initial_value: AuthProviderRequests_Stream_Cursor_Value_Input;
- /** cursor ordering */
- ordering?: InputMaybe;
-};
-
-/** Initial value of the column from where the streaming should start */
-export type AuthProviderRequests_Stream_Cursor_Value_Input = {
- id?: InputMaybe;
- options?: InputMaybe;
-};
-
-/** update columns of table "auth.provider_requests" */
-export enum AuthProviderRequests_Update_Column {
- /** column name */
- Id = 'id',
- /** column name */
- Options = 'options'
-}
-
-export type AuthProviderRequests_Updates = {
- /** append existing jsonb value of filtered columns with new jsonb value */
- _append?: InputMaybe;
- /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */
- _delete_at_path?: InputMaybe;
- /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */
- _delete_elem?: InputMaybe;
- /** delete key/value pair or string element. key/value pairs are matched based on their key value */
- _delete_key?: InputMaybe;
- /** prepend existing jsonb value of filtered columns with new jsonb value */
- _prepend?: InputMaybe;
- /** sets the columns of the filtered rows to the given values */
- _set?: InputMaybe;
- /** filter the rows which have to be updated */
- where: AuthProviderRequests_Bool_Exp;
-};
-
-/** List of available Oauth providers. Don't modify its structure as Hasura Auth relies on it to function properly. */
-export type AuthProviders = {
- __typename?: 'authProviders';
+export type Company = {
+ __typename?: 'Company';
+ _count?: Maybe;
+ accountOwner?: Maybe;
+ accountOwnerId?: Maybe;
+ address: Scalars['String'];
+ createdAt: Scalars['DateTime'];
+ deletedAt?: Maybe;
+ domainName: Scalars['String'];
+ employees?: Maybe;
id: Scalars['String'];
- /** An array relationship */
- userProviders: Array;
- /** An aggregate relationship */
- userProviders_aggregate: AuthUserProviders_Aggregate;
+ name: Scalars['String'];
+ people: Array;
+ updatedAt: Scalars['DateTime'];
+ workspace: Workspace;
+ workspaceId: Scalars['String'];
};
-/** List of available Oauth providers. Don't modify its structure as Hasura Auth relies on it to function properly. */
-export type AuthProvidersUserProvidersArgs = {
- distinct_on?: InputMaybe>;
- limit?: InputMaybe;
- offset?: InputMaybe;
- order_by?: InputMaybe>;
- where?: InputMaybe;
+export type CompanyPeopleArgs = {
+ cursor?: InputMaybe;
+ distinct?: InputMaybe>;
+ orderBy?: InputMaybe>;
+ skip?: InputMaybe;
+ take?: InputMaybe;
+ where?: InputMaybe;
};
-
-/** List of available Oauth providers. Don't modify its structure as Hasura Auth relies on it to function properly. */
-export type AuthProvidersUserProviders_AggregateArgs = {
- distinct_on?: InputMaybe>;
- limit?: InputMaybe;
- offset?: InputMaybe;
- order_by?: InputMaybe>;
- where?: InputMaybe;
+export type CompanyAvgAggregate = {
+ __typename?: 'CompanyAvgAggregate';
+ employees?: Maybe;
};
-/** aggregated selection of "auth.providers" */
-export type AuthProviders_Aggregate = {
- __typename?: 'authProviders_aggregate';
- aggregate?: Maybe;
- nodes: Array;
+export type CompanyAvgOrderByAggregateInput = {
+ employees?: InputMaybe;
};
-/** aggregate fields of "auth.providers" */
-export type AuthProviders_Aggregate_Fields = {
- __typename?: 'authProviders_aggregate_fields';
- count: Scalars['Int'];
- max?: Maybe;
- min?: Maybe;
+export type CompanyCount = {
+ __typename?: 'CompanyCount';
+ people: Scalars['Int'];
};
-
-/** aggregate fields of "auth.providers" */
-export type AuthProviders_Aggregate_FieldsCountArgs = {
- columns?: InputMaybe>;
- distinct?: InputMaybe;
+export type CompanyCountAggregate = {
+ __typename?: 'CompanyCountAggregate';
+ _all: Scalars['Int'];
+ accountOwnerId: Scalars['Int'];
+ address: Scalars['Int'];
+ createdAt: Scalars['Int'];
+ deletedAt: Scalars['Int'];
+ domainName: Scalars['Int'];
+ employees: Scalars['Int'];
+ id: Scalars['Int'];
+ name: Scalars['Int'];
+ updatedAt: Scalars['Int'];
+ workspaceId: Scalars['Int'];
};
-/** Boolean expression to filter rows from the table "auth.providers". All fields are combined with a logical 'AND'. */
-export type AuthProviders_Bool_Exp = {
- _and?: InputMaybe>;
- _not?: InputMaybe;
- _or?: InputMaybe>;
- id?: InputMaybe;
- userProviders?: InputMaybe;
- userProviders_aggregate?: InputMaybe;
+export type CompanyCountOrderByAggregateInput = {
+ accountOwnerId?: InputMaybe;
+ address?: InputMaybe;
+ createdAt?: InputMaybe;
+ deletedAt?: InputMaybe;
+ domainName?: InputMaybe;
+ employees?: InputMaybe;
+ id?: InputMaybe;
+ name?: InputMaybe;
+ updatedAt?: InputMaybe;
+ workspaceId?: InputMaybe;
};
-/** unique or primary key constraints on table "auth.providers" */
-export enum AuthProviders_Constraint {
- /** unique or primary key constraint on columns "id" */
- ProvidersPkey = 'providers_pkey'
-}
-
-/** input type for inserting data into table "auth.providers" */
-export type AuthProviders_Insert_Input = {
- id?: InputMaybe;
- userProviders?: InputMaybe;
+export type CompanyCreateInput = {
+ accountOwner?: InputMaybe;
+ address: Scalars['String'];
+ createdAt?: InputMaybe;
+ deletedAt?: InputMaybe;
+ domainName: Scalars['String'];
+ employees?: InputMaybe;
+ id: Scalars['String'];
+ name: Scalars['String'];
+ people?: InputMaybe;
+ updatedAt?: InputMaybe;
+ workspace: WorkspaceCreateNestedOneWithoutCompaniesInput;
};
-/** aggregate max on columns */
-export type AuthProviders_Max_Fields = {
- __typename?: 'authProviders_max_fields';
+export type CompanyCreateManyAccountOwnerInput = {
+ address: Scalars['String'];
+ createdAt?: InputMaybe;
+ deletedAt?: InputMaybe;
+ domainName: Scalars['String'];
+ employees?: InputMaybe;
+ id: Scalars['String'];
+ name: Scalars['String'];
+ updatedAt?: InputMaybe;
+ workspaceId: Scalars['String'];
+};
+
+export type CompanyCreateManyAccountOwnerInputEnvelope = {
+ data: Array;
+ skipDuplicates?: InputMaybe;
+};
+
+export type CompanyCreateManyInput = {
+ accountOwnerId?: InputMaybe;
+ address: Scalars['String'];
+ createdAt?: InputMaybe;
+ deletedAt?: InputMaybe;
+ domainName: Scalars['String'];
+ employees?: InputMaybe;
+ id: Scalars['String'];
+ name: Scalars['String'];
+ updatedAt?: InputMaybe;
+ workspaceId: Scalars['String'];
+};
+
+export type CompanyCreateManyWorkspaceInput = {
+ accountOwnerId?: InputMaybe;
+ address: Scalars['String'];
+ createdAt?: InputMaybe;
+ deletedAt?: InputMaybe;
+ domainName: Scalars['String'];
+ employees?: InputMaybe;
+ id: Scalars['String'];
+ name: Scalars['String'];
+ updatedAt?: InputMaybe;
+};
+
+export type CompanyCreateManyWorkspaceInputEnvelope = {
+ data: Array;
+ skipDuplicates?: InputMaybe;
+};
+
+export type CompanyCreateNestedManyWithoutAccountOwnerInput = {
+ connect?: InputMaybe>;
+ connectOrCreate?: InputMaybe>;
+ create?: InputMaybe>;
+ createMany?: InputMaybe;
+};
+
+export type CompanyCreateNestedManyWithoutWorkspaceInput = {
+ connect?: InputMaybe>;
+ connectOrCreate?: InputMaybe>;
+ create?: InputMaybe>;
+ createMany?: InputMaybe;
+};
+
+export type CompanyCreateNestedOneWithoutPeopleInput = {
+ connect?: InputMaybe;
+ connectOrCreate?: InputMaybe;
+ create?: InputMaybe;
+};
+
+export type CompanyCreateOrConnectWithoutAccountOwnerInput = {
+ create: CompanyCreateWithoutAccountOwnerInput;
+ where: CompanyWhereUniqueInput;
+};
+
+export type CompanyCreateOrConnectWithoutPeopleInput = {
+ create: CompanyCreateWithoutPeopleInput;
+ where: CompanyWhereUniqueInput;
+};
+
+export type CompanyCreateOrConnectWithoutWorkspaceInput = {
+ create: CompanyCreateWithoutWorkspaceInput;
+ where: CompanyWhereUniqueInput;
+};
+
+export type CompanyCreateWithoutAccountOwnerInput = {
+ address: Scalars['String'];
+ createdAt?: InputMaybe;
+ deletedAt?: InputMaybe;
+ domainName: Scalars['String'];
+ employees?: InputMaybe;
+ id: Scalars['String'];
+ name: Scalars['String'];
+ people?: InputMaybe;
+ updatedAt?: InputMaybe;
+ workspace: WorkspaceCreateNestedOneWithoutCompaniesInput;
+};
+
+export type CompanyCreateWithoutPeopleInput = {
+ accountOwner?: InputMaybe;
+ address: Scalars['String'];
+ createdAt?: InputMaybe;
+ deletedAt?: InputMaybe;
+ domainName: Scalars['String'];
+ employees?: InputMaybe;
+ id: Scalars['String'];
+ name: Scalars['String'];
+ updatedAt?: InputMaybe;
+ workspace: WorkspaceCreateNestedOneWithoutCompaniesInput;
+};
+
+export type CompanyCreateWithoutWorkspaceInput = {
+ accountOwner?: InputMaybe;
+ address: Scalars['String'];
+ createdAt?: InputMaybe;
+ deletedAt?: InputMaybe;
+ domainName: Scalars['String'];
+ employees?: InputMaybe;
+ id: Scalars['String'];
+ name: Scalars['String'];
+ people?: InputMaybe;
+ updatedAt?: InputMaybe;
+};
+
+export type CompanyGroupBy = {
+ __typename?: 'CompanyGroupBy';
+ _avg?: Maybe;
+ _count?: Maybe;
+ _max?: Maybe;
+ _min?: Maybe;
+ _sum?: Maybe;
+ accountOwnerId?: Maybe;
+ address: Scalars['String'];
+ createdAt: Scalars['DateTime'];
+ deletedAt?: Maybe;
+ domainName: Scalars['String'];
+ employees?: Maybe;
+ id: Scalars['String'];
+ name: Scalars['String'];
+ updatedAt: Scalars['DateTime'];
+ workspaceId: Scalars['String'];
+};
+
+export type CompanyListRelationFilter = {
+ every?: InputMaybe;
+ none?: InputMaybe;
+ some?: InputMaybe;
+};
+
+export type CompanyMaxAggregate = {
+ __typename?: 'CompanyMaxAggregate';
+ accountOwnerId?: Maybe;
+ address?: Maybe;
+ createdAt?: Maybe;
+ deletedAt?: Maybe;
+ domainName?: Maybe;
+ employees?: Maybe;
id?: Maybe;
+ name?: Maybe;
+ updatedAt?: Maybe;
+ workspaceId?: Maybe;
};
-/** aggregate min on columns */
-export type AuthProviders_Min_Fields = {
- __typename?: 'authProviders_min_fields';
+export type CompanyMaxOrderByAggregateInput = {
+ accountOwnerId?: InputMaybe;
+ address?: InputMaybe;
+ createdAt?: InputMaybe;
+ deletedAt?: InputMaybe;
+ domainName?: InputMaybe;
+ employees?: InputMaybe;
+ id?: InputMaybe;
+ name?: InputMaybe;
+ updatedAt?: InputMaybe;
+ workspaceId?: InputMaybe;
+};
+
+export type CompanyMinAggregate = {
+ __typename?: 'CompanyMinAggregate';
+ accountOwnerId?: Maybe;
+ address?: Maybe;
+ createdAt?: Maybe;
+ deletedAt?: Maybe;
+ domainName?: Maybe;
+ employees?: Maybe;
id?: Maybe;
+ name?: Maybe;
+ updatedAt?: Maybe;
+ workspaceId?: Maybe;
};
-/** response of any mutation on the table "auth.providers" */
-export type AuthProviders_Mutation_Response = {
- __typename?: 'authProviders_mutation_response';
- /** number of rows affected by the mutation */
- affected_rows: Scalars['Int'];
- /** data from the rows affected by the mutation */
- returning: Array;
+export type CompanyMinOrderByAggregateInput = {
+ accountOwnerId?: InputMaybe;
+ address?: InputMaybe;
+ createdAt?: InputMaybe;
+ deletedAt?: InputMaybe;
+ domainName?: InputMaybe;
+ employees?: InputMaybe;
+ id?: InputMaybe;
+ name?: InputMaybe;
+ updatedAt?: InputMaybe;
+ workspaceId?: InputMaybe;
};
-/** input type for inserting object relation for remote table "auth.providers" */
-export type AuthProviders_Obj_Rel_Insert_Input = {
- data: AuthProviders_Insert_Input;
- /** upsert condition */
- on_conflict?: InputMaybe;
+export type CompanyOrderByRelationAggregateInput = {
+ _count?: InputMaybe;
};
-/** on_conflict condition type for table "auth.providers" */
-export type AuthProviders_On_Conflict = {
- constraint: AuthProviders_Constraint;
- update_columns?: Array;
- where?: InputMaybe;
+export type CompanyOrderByWithAggregationInput = {
+ _avg?: InputMaybe;
+ _count?: InputMaybe