diff --git a/front/src/generated-metadata/gql.ts b/front/src/generated-metadata/gql.ts index 825de8ba6..9f43f156b 100644 --- a/front/src/generated-metadata/gql.ts +++ b/front/src/generated-metadata/gql.ts @@ -14,8 +14,8 @@ import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/ */ const documents = { "\n mutation CreateOneObject($input: CreateOneObjectInput!) {\n createOneObject(input: $input) {\n id\n }\n }\n": types.CreateOneObjectDocument, - "\n mutation CreateOneField($input: CreateOneFieldInput!) {\n createOneField(input: $input) {\n id\n type\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n": types.CreateOneFieldDocument, - "\n query Objects {\n objects(paging: { first: 100 }) {\n edges {\n node {\n id\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 100 }) {\n edges {\n node {\n id\n type\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n": types.ObjectsDocument, + "\n mutation CreateOneField($input: CreateOneFieldInput!) {\n createOneField(input: $input) {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n": types.CreateOneFieldDocument, + "\n query Objects {\n objects(paging: { first: 100 }) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 100 }) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n": types.ObjectsDocument, }; /** @@ -39,11 +39,11 @@ export function graphql(source: "\n mutation CreateOneObject($input: CreateOneO /** * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function graphql(source: "\n mutation CreateOneField($input: CreateOneFieldInput!) {\n createOneField(input: $input) {\n id\n type\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n"): (typeof documents)["\n mutation CreateOneField($input: CreateOneFieldInput!) {\n createOneField(input: $input) {\n id\n type\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n"]; +export function graphql(source: "\n mutation CreateOneField($input: CreateOneFieldInput!) {\n createOneField(input: $input) {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n"): (typeof documents)["\n mutation CreateOneField($input: CreateOneFieldInput!) {\n createOneField(input: $input) {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n"]; /** * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function graphql(source: "\n query Objects {\n objects(paging: { first: 100 }) {\n edges {\n node {\n id\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 100 }) {\n edges {\n node {\n id\n type\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n"): (typeof documents)["\n query Objects {\n objects(paging: { first: 100 }) {\n edges {\n node {\n id\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 100 }) {\n edges {\n node {\n id\n type\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n"]; +export function graphql(source: "\n query Objects {\n objects(paging: { first: 100 }) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 100 }) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n"): (typeof documents)["\n query Objects {\n objects(paging: { first: 100 }) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 100 }) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n"]; export function graphql(source: string) { return (documents as any)[source] ?? {}; diff --git a/front/src/generated-metadata/graphql.ts b/front/src/generated-metadata/graphql.ts index e028d40df..58d78627a 100644 --- a/front/src/generated-metadata/graphql.ts +++ b/front/src/generated-metadata/graphql.ts @@ -171,12 +171,9 @@ export type Company = { export type CreateFieldInput = { description?: InputMaybe; icon?: InputMaybe; - labelPlural?: InputMaybe; - labelSingular: Scalars['String']['input']; - namePlural?: InputMaybe; - nameSingular: Scalars['String']['input']; + label: Scalars['String']['input']; + name: Scalars['String']['input']; objectId: Scalars['String']['input']; - placeholder?: InputMaybe; type: Scalars['String']['input']; }; @@ -381,6 +378,16 @@ export type CursorPaging = { last?: InputMaybe; }; +export type DeleteOneFieldInput = { + /** The id of the record to delete. */ + id: Scalars['ID']['input']; +}; + +export type DeleteOneObjectInput = { + /** The id of the record to delete. */ + id: Scalars['ID']['input']; +}; + export type Favorite = { __typename?: 'Favorite'; company?: Maybe; @@ -403,10 +410,29 @@ export type FieldConnection = { totalCount: Scalars['Int']['output']; }; +export type FieldDeleteResponse = { + __typename?: 'FieldDeleteResponse'; + createdAt?: Maybe; + description?: Maybe; + icon?: Maybe; + id?: Maybe; + isActive?: Maybe; + isCustom?: Maybe; + isNullable?: Maybe; + label?: Maybe; + name?: Maybe; + /** @deprecated Use label name instead */ + placeholder?: Maybe; + type?: Maybe; + updatedAt?: Maybe; +}; + export type Mutation = { __typename?: 'Mutation'; createOneField: Field; createOneObject: Object; + deleteOneField: FieldDeleteResponse; + deleteOneObject: ObjectDeleteResponse; updateOneField: Field; updateOneObject: Object; }; @@ -422,6 +448,16 @@ export type MutationCreateOneObjectArgs = { }; +export type MutationDeleteOneFieldArgs = { + input: DeleteOneFieldInput; +}; + + +export type MutationDeleteOneObjectArgs = { + input: DeleteOneObjectInput; +}; + + export type MutationUpdateOneFieldArgs = { input: UpdateOneFieldInput; }; @@ -441,6 +477,22 @@ export type ObjectConnection = { totalCount: Scalars['Int']['output']; }; +export type ObjectDeleteResponse = { + __typename?: 'ObjectDeleteResponse'; + createdAt?: Maybe; + dataSourceId?: Maybe; + description?: Maybe; + icon?: Maybe; + id?: Maybe; + isActive?: Maybe; + isCustom?: Maybe; + labelPlural?: Maybe; + labelSingular?: Maybe; + namePlural?: Maybe; + nameSingular?: Maybe; + updatedAt?: Maybe; +}; + export type ObjectFieldsConnection = { __typename?: 'ObjectFieldsConnection'; /** Array of edges. */ @@ -582,11 +634,8 @@ export type UpdateFieldInput = { description?: InputMaybe; icon?: InputMaybe; isActive?: InputMaybe; - labelPlural?: InputMaybe; - labelSingular?: InputMaybe; - namePlural?: InputMaybe; - nameSingular?: InputMaybe; - placeholder?: InputMaybe; + label: Scalars['String']['input']; + name: Scalars['String']['input']; }; export type UpdateObjectInput = { @@ -767,10 +816,9 @@ export type Field = { isActive: Scalars['Boolean']['output']; isCustom: Scalars['Boolean']['output']; isNullable: Scalars['Boolean']['output']; - labelPlural: Scalars['String']['output']; - labelSingular: Scalars['String']['output']; - namePlural: Scalars['String']['output']; - nameSingular: Scalars['String']['output']; + label: Scalars['String']['output']; + name: Scalars['String']['output']; + /** @deprecated Use label name instead */ placeholder?: Maybe; type: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; @@ -826,14 +874,14 @@ export type CreateOneFieldMutationVariables = Exact<{ }>; -export type CreateOneFieldMutation = { __typename?: 'Mutation', createOneField: { __typename?: 'field', id: string, type: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, placeholder?: string | null, isCustom: boolean, isActive: boolean, isNullable: boolean, createdAt: any, updatedAt: any } }; +export type CreateOneFieldMutation = { __typename?: 'Mutation', createOneField: { __typename?: 'field', id: string, type: string, name: string, label: string, description?: string | null, icon?: string | null, placeholder?: string | null, isCustom: boolean, isActive: boolean, isNullable: boolean, createdAt: any, updatedAt: any } }; export type ObjectsQueryVariables = Exact<{ [key: string]: never; }>; -export type ObjectsQuery = { __typename?: 'Query', objects: { __typename?: 'ObjectConnection', totalCount: number, edges: Array<{ __typename?: 'objectEdge', node: { __typename?: 'object', id: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isActive: boolean, createdAt: any, updatedAt: any, fields: { __typename?: 'ObjectFieldsConnection', totalCount: number, edges: Array<{ __typename?: 'fieldEdge', node: { __typename?: 'field', id: string, type: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, placeholder?: string | null, isCustom: boolean, isActive: boolean, isNullable: boolean, createdAt: any, updatedAt: any } }>, pageInfo: { __typename?: 'PageInfo', hasNextPage?: boolean | null, hasPreviousPage?: boolean | null, startCursor?: any | null, endCursor?: any | null } } } }>, pageInfo: { __typename?: 'PageInfo', hasNextPage?: boolean | null, hasPreviousPage?: boolean | null, startCursor?: any | null, endCursor?: any | null } } }; +export type ObjectsQuery = { __typename?: 'Query', objects: { __typename?: 'ObjectConnection', totalCount: number, edges: Array<{ __typename?: 'objectEdge', node: { __typename?: 'object', id: string, dataSourceId: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isActive: boolean, createdAt: any, updatedAt: any, fields: { __typename?: 'ObjectFieldsConnection', totalCount: number, edges: Array<{ __typename?: 'fieldEdge', node: { __typename?: 'field', id: string, type: string, name: string, label: string, description?: string | null, icon?: string | null, placeholder?: string | null, isCustom: boolean, isActive: boolean, isNullable: boolean, createdAt: any, updatedAt: any } }>, pageInfo: { __typename?: 'PageInfo', hasNextPage?: boolean | null, hasPreviousPage?: boolean | null, startCursor?: any | null, endCursor?: any | null } } } }>, pageInfo: { __typename?: 'PageInfo', hasNextPage?: boolean | null, hasPreviousPage?: boolean | null, startCursor?: any | null, endCursor?: any | null } } }; export const CreateOneObjectDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateOneObject"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"CreateOneObjectInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createOneObject"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}}]}}]} as unknown as DocumentNode; -export const CreateOneFieldDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateOneField"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"CreateOneFieldInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createOneField"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"nameSingular"}},{"kind":"Field","name":{"kind":"Name","value":"namePlural"}},{"kind":"Field","name":{"kind":"Name","value":"labelSingular"}},{"kind":"Field","name":{"kind":"Name","value":"labelPlural"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"placeholder"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"isNullable"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode; -export const ObjectsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"Objects"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"objects"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"paging"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"100"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"nameSingular"}},{"kind":"Field","name":{"kind":"Name","value":"namePlural"}},{"kind":"Field","name":{"kind":"Name","value":"labelSingular"}},{"kind":"Field","name":{"kind":"Name","value":"labelPlural"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"fields"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"paging"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"100"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"nameSingular"}},{"kind":"Field","name":{"kind":"Name","value":"namePlural"}},{"kind":"Field","name":{"kind":"Name","value":"labelSingular"}},{"kind":"Field","name":{"kind":"Name","value":"labelPlural"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"placeholder"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"isNullable"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}},{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}}]}},{"kind":"Field","name":{"kind":"Name","value":"totalCount"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}},{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}}]}},{"kind":"Field","name":{"kind":"Name","value":"totalCount"}}]}}]}}]} as unknown as DocumentNode; \ No newline at end of file +export const CreateOneFieldDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateOneField"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"CreateOneFieldInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createOneField"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"placeholder"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"isNullable"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode; +export const ObjectsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"Objects"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"objects"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"paging"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"100"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"dataSourceId"}},{"kind":"Field","name":{"kind":"Name","value":"nameSingular"}},{"kind":"Field","name":{"kind":"Name","value":"namePlural"}},{"kind":"Field","name":{"kind":"Name","value":"labelSingular"}},{"kind":"Field","name":{"kind":"Name","value":"labelPlural"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"fields"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"paging"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"100"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"placeholder"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"isNullable"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}},{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}}]}},{"kind":"Field","name":{"kind":"Name","value":"totalCount"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}},{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}}]}},{"kind":"Field","name":{"kind":"Name","value":"totalCount"}}]}}]}}]} as unknown as DocumentNode; \ No newline at end of file diff --git a/front/src/generated/graphql.tsx b/front/src/generated/graphql.tsx index 9120f03bd..b47700e4c 100644 --- a/front/src/generated/graphql.tsx +++ b/front/src/generated/graphql.tsx @@ -1298,6 +1298,23 @@ export type FieldConnection = { totalCount: Scalars['Int']; }; +export type FieldDeleteResponse = { + __typename?: 'FieldDeleteResponse'; + createdAt?: Maybe; + description?: Maybe; + icon?: Maybe; + id?: Maybe; + isActive?: Maybe; + isCustom?: Maybe; + isNullable?: Maybe; + label?: Maybe; + name?: Maybe; + /** @deprecated Use label name instead */ + placeholder?: Maybe; + type?: Maybe; + updatedAt?: Maybe; +}; + export enum FileFolder { Attachment = 'Attachment', PersonPicture = 'PersonPicture', @@ -1848,6 +1865,22 @@ export type ObjectConnection = { totalCount: Scalars['Int']; }; +export type ObjectDeleteResponse = { + __typename?: 'ObjectDeleteResponse'; + createdAt?: Maybe; + dataSourceId?: Maybe; + description?: Maybe; + icon?: Maybe; + id?: Maybe; + isActive?: Maybe; + isCustom?: Maybe; + labelPlural?: Maybe; + labelSingular?: Maybe; + namePlural?: Maybe; + nameSingular?: Maybe; + updatedAt?: Maybe; +}; + export type ObjectFieldsConnection = { __typename?: 'ObjectFieldsConnection'; /** Array of edges. */ @@ -3540,10 +3573,9 @@ export type Field = { isActive: Scalars['Boolean']; isCustom: Scalars['Boolean']; isNullable: Scalars['Boolean']; - labelPlural: Scalars['String']; - labelSingular: Scalars['String']; - namePlural: Scalars['String']; - nameSingular: Scalars['String']; + label: Scalars['String']; + name: Scalars['String']; + /** @deprecated Use label name instead */ placeholder?: Maybe; type: Scalars['String']; updatedAt: Scalars['DateTime']; diff --git a/front/src/modules/metadata/graphql/mutations.ts b/front/src/modules/metadata/graphql/mutations.ts index ff541cef9..f267adcbf 100644 --- a/front/src/modules/metadata/graphql/mutations.ts +++ b/front/src/modules/metadata/graphql/mutations.ts @@ -13,10 +13,8 @@ export const CREATE_ONE_FIELD = gql` createOneField(input: $input) { id type - nameSingular - namePlural - labelSingular - labelPlural + name + label description icon placeholder diff --git a/front/src/modules/metadata/graphql/queries.ts b/front/src/modules/metadata/graphql/queries.ts index 84e6259b4..a019f6dc9 100644 --- a/front/src/modules/metadata/graphql/queries.ts +++ b/front/src/modules/metadata/graphql/queries.ts @@ -22,10 +22,8 @@ export const GET_ALL_OBJECTS = gql` node { id type - nameSingular - namePlural - labelSingular - labelPlural + name + label description icon placeholder diff --git a/front/src/modules/metadata/hooks/useSeedCustomObjectsTemp.ts b/front/src/modules/metadata/hooks/useSeedCustomObjectsTemp.ts index 9a80ced86..416429bb8 100644 --- a/front/src/modules/metadata/hooks/useSeedCustomObjectsTemp.ts +++ b/front/src/modules/metadata/hooks/useSeedCustomObjectsTemp.ts @@ -45,13 +45,10 @@ export const useSeedCustomObjectsTemp = () => { input: { field: { objectId: supplierObjectId, - labelSingular: 'Name', - nameSingular: 'name', + label: 'Name', + name: 'name', type: 'text', description: 'Name', - labelPlural: 'Names', - namePlural: 'names', - placeholder: 'Name', icon: 'IconBuilding', }, }, @@ -67,13 +64,10 @@ export const useSeedCustomObjectsTemp = () => { input: { field: { objectId: supplierObjectId, - labelSingular: 'City', - nameSingular: 'city', + label: 'City', + name: 'city', type: 'text', description: 'City', - labelPlural: 'Cities', - namePlural: 'cities', - placeholder: 'City', icon: 'IconMap', }, }, diff --git a/front/src/modules/metadata/utils/generateFindManyCustomObjectsQuery.ts b/front/src/modules/metadata/utils/generateFindManyCustomObjectsQuery.ts index b1308f127..9fb0941dd 100644 --- a/front/src/modules/metadata/utils/generateFindManyCustomObjectsQuery.ts +++ b/front/src/modules/metadata/utils/generateFindManyCustomObjectsQuery.ts @@ -15,9 +15,7 @@ export const generateFindManyCustomObjectsQuery = ({ edges { node { id - ${metadataObject.fields - .map((field) => field.nameSingular) - .join('\n')} + ${metadataObject.fields.map((field) => field.name).join('\n')} } cursor } diff --git a/server/src/metadata/field-metadata/dtos/create-field.input.ts b/server/src/metadata/field-metadata/dtos/create-field.input.ts index 6631f6a92..7a1155097 100644 --- a/server/src/metadata/field-metadata/dtos/create-field.input.ts +++ b/server/src/metadata/field-metadata/dtos/create-field.input.ts @@ -13,22 +13,12 @@ export class CreateFieldInput { @IsString() @IsNotEmpty() @Field() - nameSingular: string; - - @IsString() - @IsOptional() - @Field({ nullable: true }) - namePlural?: string; + name: string; @IsString() @IsNotEmpty() @Field() - labelSingular: string; - - @IsString() - @IsOptional() - @Field({ nullable: true }) - labelPlural?: string; + label: string; // Todo: use a type enum and share with typeorm entity @IsEnum([ diff --git a/server/src/metadata/field-metadata/dtos/update-field.input.ts b/server/src/metadata/field-metadata/dtos/update-field.input.ts index d48d6f313..767b5459a 100644 --- a/server/src/metadata/field-metadata/dtos/update-field.input.ts +++ b/server/src/metadata/field-metadata/dtos/update-field.input.ts @@ -1,28 +1,18 @@ import { Field, InputType } from '@nestjs/graphql'; -import { IsBoolean, IsOptional, IsString } from 'class-validator'; +import { IsBoolean, IsNotEmpty, IsOptional, IsString } from 'class-validator'; @InputType() export class UpdateFieldInput { @IsString() - @IsOptional() - @Field({ nullable: true }) - nameSingular?: string; + @IsNotEmpty() + @Field() + name: string; @IsString() - @IsOptional() - @Field({ nullable: true }) - namePlural?: string; - - @IsString() - @IsOptional() - @Field({ nullable: true }) - labelSingular?: string; - - @IsString() - @IsOptional() - @Field({ nullable: true }) - labelPlural?: string; + @IsNotEmpty() + @Field() + label: string; @IsString() @IsOptional() diff --git a/server/src/metadata/field-metadata/field-metadata.auto-resolver-opts.ts b/server/src/metadata/field-metadata/field-metadata.auto-resolver-opts.ts index 3b657842f..66f3c53da 100644 --- a/server/src/metadata/field-metadata/field-metadata.auto-resolver-opts.ts +++ b/server/src/metadata/field-metadata/field-metadata.auto-resolver-opts.ts @@ -38,7 +38,7 @@ export const fieldMetadataAutoResolverOpts: AutoResolverOpts< update: { many: { disabled: true }, }, - delete: { disabled: true }, + delete: { many: { disabled: true } }, guards: [JwtAuthGuard], }, ]; diff --git a/server/src/metadata/field-metadata/field-metadata.entity.ts b/server/src/metadata/field-metadata/field-metadata.entity.ts index 7f5c603c9..9bf9e94e9 100644 --- a/server/src/metadata/field-metadata/field-metadata.entity.ts +++ b/server/src/metadata/field-metadata/field-metadata.entity.ts @@ -51,20 +51,12 @@ export class FieldMetadata { type: string; @Field() - @Column({ nullable: false, name: 'name_singular' }) - nameSingular: string; + @Column({ nullable: false }) + name: string; @Field() - @Column({ nullable: true, name: 'name_plural' }) - namePlural: string; - - @Field() - @Column({ nullable: false, name: 'label_singular' }) - labelSingular: string; - - @Field() - @Column({ nullable: true, name: 'label_plural' }) - labelPlural: string; + @Column({ nullable: false }) + label: string; @Column({ nullable: false, name: 'target_column_map', type: 'jsonb' }) targetColumnMap: FieldMetadataTargetColumnMap; diff --git a/server/src/metadata/field-metadata/services/field-metadata.service.ts b/server/src/metadata/field-metadata/services/field-metadata.service.ts index 061022505..051adce36 100644 --- a/server/src/metadata/field-metadata/services/field-metadata.service.ts +++ b/server/src/metadata/field-metadata/services/field-metadata.service.ts @@ -44,8 +44,7 @@ export class FieldMetadataService extends TypeOrmQueryService { const fieldAlreadyExists = await this.fieldMetadataRepository.findOne({ where: { - nameSingular: record.nameSingular, - namePlural: record.namePlural, + name: record.name, objectId: record.objectId, workspaceId: record.workspaceId, }, diff --git a/server/src/metadata/metadata.datasource.ts b/server/src/metadata/metadata.datasource.ts index a80ab8725..6960dc150 100644 --- a/server/src/metadata/metadata.datasource.ts +++ b/server/src/metadata/metadata.datasource.ts @@ -10,6 +10,7 @@ import { AddTargetColumnMap1696409050890 } from './migrations/1696409050890-add- import { MetadataNameLabelRefactoring1697126636202 } from './migrations/1697126636202-MetadataNameLabelRefactoring'; import { RemoveFieldMetadataPlaceholder1697471445015 } from './migrations/1697471445015-removeFieldMetadataPlaceholder'; import { AddSoftDelete1697474804403 } from './migrations/1697474804403-addSoftDelete'; +import { RemoveSingularPluralFromFieldLabelAndName1697534910933 } from './migrations/1697534910933-removeSingularPluralFromFieldLabelAndName'; config(); @@ -31,6 +32,7 @@ export const typeORMMetadataModuleOptions: TypeOrmModuleOptions = { MetadataNameLabelRefactoring1697126636202, RemoveFieldMetadataPlaceholder1697471445015, AddSoftDelete1697474804403, + RemoveSingularPluralFromFieldLabelAndName1697534910933, ], }; diff --git a/server/src/metadata/migration-runner/migration-runner.service.ts b/server/src/metadata/migration-runner/migration-runner.service.ts index 2bf4cb3df..45a7b340b 100644 --- a/server/src/metadata/migration-runner/migration-runner.service.ts +++ b/server/src/metadata/migration-runner/migration-runner.service.ts @@ -116,17 +116,17 @@ export class MigrationRunnerService { default: 'public.uuid_generate_v4()', }, { - name: 'created_at', + name: 'createdAt', type: 'timestamp', default: 'now()', }, { - name: 'updated_at', + name: 'updatedAt', type: 'timestamp', default: 'now()', }, { - name: 'deleted_at', + name: 'deletedAt', type: 'timestamp', isNullable: true, }, diff --git a/server/src/metadata/migrations/1697534910933-removeSingularPluralFromFieldLabelAndName.ts b/server/src/metadata/migrations/1697534910933-removeSingularPluralFromFieldLabelAndName.ts new file mode 100644 index 000000000..e8a351513 --- /dev/null +++ b/server/src/metadata/migrations/1697534910933-removeSingularPluralFromFieldLabelAndName.ts @@ -0,0 +1,49 @@ +import { MigrationInterface, QueryRunner } from 'typeorm'; + +export class RemoveSingularPluralFromFieldLabelAndName1697534910933 + implements MigrationInterface +{ + name = 'RemoveSingularPluralFromFieldLabelAndName1697534910933'; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `ALTER TABLE "metadata"."field_metadata" DROP COLUMN "name_singular"`, + ); + await queryRunner.query( + `ALTER TABLE "metadata"."field_metadata" DROP COLUMN "name_plural"`, + ); + await queryRunner.query( + `ALTER TABLE "metadata"."field_metadata" DROP COLUMN "label_singular"`, + ); + await queryRunner.query( + `ALTER TABLE "metadata"."field_metadata" DROP COLUMN "label_plural"`, + ); + await queryRunner.query( + `ALTER TABLE "metadata"."field_metadata" ADD "name" character varying NOT NULL`, + ); + await queryRunner.query( + `ALTER TABLE "metadata"."field_metadata" ADD "label" character varying NOT NULL`, + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `ALTER TABLE "metadata"."field_metadata" DROP COLUMN "label"`, + ); + await queryRunner.query( + `ALTER TABLE "metadata"."field_metadata" DROP COLUMN "name"`, + ); + await queryRunner.query( + `ALTER TABLE "metadata"."field_metadata" ADD "label_plural" character varying`, + ); + await queryRunner.query( + `ALTER TABLE "metadata"."field_metadata" ADD "label_singular" character varying NOT NULL`, + ); + await queryRunner.query( + `ALTER TABLE "metadata"."field_metadata" ADD "name_plural" character varying`, + ); + await queryRunner.query( + `ALTER TABLE "metadata"."field_metadata" ADD "name_singular" character varying NOT NULL`, + ); + } +} diff --git a/server/src/metadata/object-metadata/hooks/before-create-one-object.hook.ts b/server/src/metadata/object-metadata/hooks/before-create-one-object.hook.ts index 34cd63375..d3b2d79bb 100644 --- a/server/src/metadata/object-metadata/hooks/before-create-one-object.hook.ts +++ b/server/src/metadata/object-metadata/hooks/before-create-one-object.hook.ts @@ -30,7 +30,7 @@ export class BeforeCreateOneObject ); instance.input.dataSourceId = lastDataSourceMetadata.id; - instance.input.targetTableName = instance.input.nameSingular; + instance.input.targetTableName = instance.input.namePlural; instance.input.workspaceId = workspaceId; instance.input.isActive = false; instance.input.isCustom = true; diff --git a/server/src/metadata/object-metadata/object-metadata.auto-resolver-opts.ts b/server/src/metadata/object-metadata/object-metadata.auto-resolver-opts.ts index 863badd96..dd0477c50 100644 --- a/server/src/metadata/object-metadata/object-metadata.auto-resolver-opts.ts +++ b/server/src/metadata/object-metadata/object-metadata.auto-resolver-opts.ts @@ -38,6 +38,7 @@ export const objectMetadataAutoResolverOpts: AutoResolverOpts< update: { many: { disabled: true }, }, + delete: { many: { disabled: true } }, guards: [JwtAuthGuard], }, ]; diff --git a/server/src/tenant/entity-resolver/pg-graphql/__tests__/pg-graphql-query-builder.spec.ts b/server/src/tenant/entity-resolver/pg-graphql/__tests__/pg-graphql-query-builder.spec.ts index 2b1703305..e2a64f1a0 100644 --- a/server/src/tenant/entity-resolver/pg-graphql/__tests__/pg-graphql-query-builder.spec.ts +++ b/server/src/tenant/entity-resolver/pg-graphql/__tests__/pg-graphql-query-builder.spec.ts @@ -36,19 +36,19 @@ describe('PGGraphQLQueryBuilder', () => { beforeEach(() => { const fields = [ { - nameSingular: 'name', + name: 'name', targetColumnMap: { value: 'column_name', } as FieldMetadataTargetColumnMap, }, { - nameSingular: 'age', + name: 'age', targetColumnMap: { value: 'column_age', } as FieldMetadataTargetColumnMap, }, { - nameSingular: 'complexField', + name: 'complexField', targetColumnMap: { subField1: 'column_subField1', subField2: 'column_subField2', diff --git a/server/src/tenant/entity-resolver/utils/__tests__/convert-arguments.spec.ts b/server/src/tenant/entity-resolver/utils/__tests__/convert-arguments.spec.ts index 918b5df65..ff73354c0 100644 --- a/server/src/tenant/entity-resolver/utils/__tests__/convert-arguments.spec.ts +++ b/server/src/tenant/entity-resolver/utils/__tests__/convert-arguments.spec.ts @@ -10,21 +10,21 @@ describe('convertArguments', () => { beforeEach(() => { fields = [ { - nameSingular: 'firstName', + name: 'firstName', targetColumnMap: { value: 'column_1randomFirstNameKey', } as FieldMetadataTargetColumnMap, type: 'text', }, { - nameSingular: 'age', + name: 'age', targetColumnMap: { value: 'column_randomAgeKey', } as FieldMetadataTargetColumnMap, type: 'text', }, { - nameSingular: 'website', + name: 'website', targetColumnMap: { link: 'column_randomLinkKey', text: 'column_randomTex7Key', diff --git a/server/src/tenant/entity-resolver/utils/__tests__/convert-fields-to-graphql.spec.ts b/server/src/tenant/entity-resolver/utils/__tests__/convert-fields-to-graphql.spec.ts index ba65b1559..bb75195dd 100644 --- a/server/src/tenant/entity-resolver/utils/__tests__/convert-fields-to-graphql.spec.ts +++ b/server/src/tenant/entity-resolver/utils/__tests__/convert-fields-to-graphql.spec.ts @@ -12,13 +12,13 @@ describe('convertFieldsToGraphQL', () => { beforeEach(() => { fields = [ { - nameSingular: 'simpleField', + name: 'simpleField', targetColumnMap: { value: 'column_RANDOMSTRING1', } as FieldMetadataTargetColumnMap, }, { - nameSingular: 'complexField', + name: 'complexField', targetColumnMap: { link: 'column_RANDOMSTRING2', text: 'column_RANDOMSTRING3', @@ -74,7 +74,7 @@ describe('convertFieldsToGraphQL', () => { test('should handle empty targetColumnMap gracefully', () => { const emptyField = { - nameSingular: 'emptyField', + name: 'emptyField', targetColumnMap: {}, } as FieldMetadata; diff --git a/server/src/tenant/entity-resolver/utils/__tests__/get-fields-aliases.spec.ts b/server/src/tenant/entity-resolver/utils/__tests__/get-fields-aliases.spec.ts index 7b7b114a6..d9a2de30a 100644 --- a/server/src/tenant/entity-resolver/utils/__tests__/get-fields-aliases.spec.ts +++ b/server/src/tenant/entity-resolver/utils/__tests__/get-fields-aliases.spec.ts @@ -11,15 +11,13 @@ describe('getFieldAliases', () => { // Setup sample field metadata fields = [ { - nameSingular: 'singleValueField', - namePlural: 'singleValueFields', + name: 'singleValueField', targetColumnMap: { value: 'column_singleValue', } as FieldMetadataTargetColumnMap, }, { - nameSingular: 'multipleValuesField', - namePlural: 'multipleValuesFields', + name: 'multipleValuesField', targetColumnMap: { link: 'column_value1', text: 'column_value2', @@ -47,8 +45,7 @@ describe('getFieldAliases', () => { const fieldsWithEmptyMap = [ ...fields, { - nameSingular: 'emptyField', - namePlural: 'emptyFields', + name: 'emptyField', targetColumnMap: {} as FieldMetadataTargetColumnMap, }, ] as FieldMetadata[]; diff --git a/server/src/tenant/entity-resolver/utils/convert-arguments.util.ts b/server/src/tenant/entity-resolver/utils/convert-arguments.util.ts index dcff7a7b1..f98149631 100644 --- a/server/src/tenant/entity-resolver/utils/convert-arguments.util.ts +++ b/server/src/tenant/entity-resolver/utils/convert-arguments.util.ts @@ -4,8 +4,7 @@ import { FieldMetadata } from 'src/metadata/field-metadata/field-metadata.entity export const convertArguments = (args: any, fields: FieldMetadata[]): any => { const fieldsMap = new Map( - // TODO: Handle plural for fields when we add relations - fields.map((metadata) => [metadata.nameSingular, metadata]), + fields.map((metadata) => [metadata.name, metadata]), ); if (Array.isArray(args)) { diff --git a/server/src/tenant/entity-resolver/utils/convert-fields-to-graphql.util.ts b/server/src/tenant/entity-resolver/utils/convert-fields-to-graphql.util.ts index 3ebeb405f..71a98f9ad 100644 --- a/server/src/tenant/entity-resolver/utils/convert-fields-to-graphql.util.ts +++ b/server/src/tenant/entity-resolver/utils/convert-fields-to-graphql.util.ts @@ -8,8 +8,7 @@ export const convertFieldsToGraphQL = ( acc = '', ) => { const fieldsMap = new Map( - // TODO: Handle plural for fields when we add relations - fields.map((metadata) => [metadata.nameSingular, metadata]), + fields.map((metadata) => [metadata.name, metadata]), ); for (const [key, value] of Object.entries(select)) { @@ -29,9 +28,7 @@ export const convertFieldsToGraphQL = ( // Otherwise it means it's a special type with multiple values, so we need fetch all fields fieldAlias = ` ${entries - .map( - ([key, value]) => `___${metadata.nameSingular}_${key}: ${value}`, - ) + .map(([key, value]) => `___${metadata.name}_${key}: ${value}`) .join('\n')} `; } diff --git a/server/src/tenant/entity-resolver/utils/get-fields-aliases.util.ts b/server/src/tenant/entity-resolver/utils/get-fields-aliases.util.ts index fa78c5df7..668f70bc2 100644 --- a/server/src/tenant/entity-resolver/utils/get-fields-aliases.util.ts +++ b/server/src/tenant/entity-resolver/utils/get-fields-aliases.util.ts @@ -7,8 +7,7 @@ export const getFieldAliases = (fields: FieldMetadata[]) => { if (values.length === 1) { return { ...acc, - // TODO: Handle plural for fields when we add relations - [column.nameSingular]: values[0], + [column.name]: values[0], }; } else { return { diff --git a/server/src/tenant/schema-builder/utils/__tests__/generate-create-input-type.spec.ts b/server/src/tenant/schema-builder/utils/__tests__/generate-create-input-type.spec.ts index 46760d0e5..714385584 100644 --- a/server/src/tenant/schema-builder/utils/__tests__/generate-create-input-type.spec.ts +++ b/server/src/tenant/schema-builder/utils/__tests__/generate-create-input-type.spec.ts @@ -30,12 +30,12 @@ describe('generateCreateInputType', () => { test('should generate fields with correct types and descriptions', () => { const columns = [ { - nameSingular: 'firstName', + name: 'firstName', type: 'text', isNullable: false, }, { - nameSingular: 'age', + name: 'age', type: 'number', isNullable: true, }, diff --git a/server/src/tenant/schema-builder/utils/__tests__/generate-object-type.spec.ts b/server/src/tenant/schema-builder/utils/__tests__/generate-object-type.spec.ts index 4af89f41a..808282267 100644 --- a/server/src/tenant/schema-builder/utils/__tests__/generate-object-type.spec.ts +++ b/server/src/tenant/schema-builder/utils/__tests__/generate-object-type.spec.ts @@ -46,12 +46,12 @@ describe('generateObjectType', () => { test('should generate fields based on provided columns', () => { const columns = [ { - nameSingular: 'firstName', + name: 'firstName', type: 'text', isNullable: false, }, { - nameSingular: 'age', + name: 'age', type: 'number', isNullable: true, }, diff --git a/server/src/tenant/schema-builder/utils/__tests__/generate-udpate-input-type.spec.ts b/server/src/tenant/schema-builder/utils/__tests__/generate-udpate-input-type.spec.ts index e78ad60ce..24672393e 100644 --- a/server/src/tenant/schema-builder/utils/__tests__/generate-udpate-input-type.spec.ts +++ b/server/src/tenant/schema-builder/utils/__tests__/generate-udpate-input-type.spec.ts @@ -29,12 +29,12 @@ describe('generateUpdateInputType', () => { test('should generate fields with correct types and descriptions', () => { const columns = [ { - nameSingular: 'firstName', + name: 'firstName', type: 'text', isNullable: true, }, { - nameSingular: 'age', + name: 'age', type: 'number', isNullable: true, }, diff --git a/server/src/tenant/schema-builder/utils/__tests__/map-column-type-to-graphql-type.spec.ts b/server/src/tenant/schema-builder/utils/__tests__/map-column-type-to-graphql-type.spec.ts index b9aa7eeba..2868778b3 100644 --- a/server/src/tenant/schema-builder/utils/__tests__/map-column-type-to-graphql-type.spec.ts +++ b/server/src/tenant/schema-builder/utils/__tests__/map-column-type-to-graphql-type.spec.ts @@ -40,7 +40,7 @@ describe('mapColumnTypeToGraphQLType', () => { test('should create a GraphQLEnumType for enum fields', () => { const column = new FieldMetadata(); column.type = 'enum'; - column.nameSingular = 'Status'; + column.name = 'Status'; column.enums = ['ACTIVE', 'INACTIVE']; const result = mapColumnTypeToGraphQLType(column); diff --git a/server/src/tenant/schema-builder/utils/generate-create-input-type.util.ts b/server/src/tenant/schema-builder/utils/generate-create-input-type.util.ts index 6fe2a7534..8c8ffc8af 100644 --- a/server/src/tenant/schema-builder/utils/generate-create-input-type.util.ts +++ b/server/src/tenant/schema-builder/utils/generate-create-input-type.util.ts @@ -22,7 +22,7 @@ export const generateCreateInputType = ( columns.forEach((column) => { const graphqlType = mapColumnTypeToGraphQLType(column, true); - fields[column.nameSingular] = { + fields[column.name] = { type: !column.isNullable ? new GraphQLNonNull(graphqlType) : graphqlType, }; }); diff --git a/server/src/tenant/schema-builder/utils/generate-object-type.util.ts b/server/src/tenant/schema-builder/utils/generate-object-type.util.ts index 07cdb672e..f9192e9bd 100644 --- a/server/src/tenant/schema-builder/utils/generate-object-type.util.ts +++ b/server/src/tenant/schema-builder/utils/generate-object-type.util.ts @@ -33,7 +33,7 @@ export const generateObjectType = ( columns.forEach((column) => { const graphqlType = mapColumnTypeToGraphQLType(column); - fields[column.nameSingular] = { + fields[column.name] = { type: !column.isNullable ? new GraphQLNonNull(graphqlType) : graphqlType, }; }); diff --git a/server/src/tenant/schema-builder/utils/generate-update-input-type.util.ts b/server/src/tenant/schema-builder/utils/generate-update-input-type.util.ts index 874b4eac6..808c679e6 100644 --- a/server/src/tenant/schema-builder/utils/generate-update-input-type.util.ts +++ b/server/src/tenant/schema-builder/utils/generate-update-input-type.util.ts @@ -22,7 +22,7 @@ export const generateUpdateInputType = ( columns.forEach((column) => { const graphqlType = mapColumnTypeToGraphQLType(column, true); // No GraphQLNonNull wrapping here, so all fields are optional - fields[column.nameSingular] = { + fields[column.name] = { type: graphqlType, }; }); diff --git a/server/src/tenant/schema-builder/utils/map-column-type-to-graphql-type.util.ts b/server/src/tenant/schema-builder/utils/map-column-type-to-graphql-type.util.ts index 1523ffdad..6cd1e0328 100644 --- a/server/src/tenant/schema-builder/utils/map-column-type-to-graphql-type.util.ts +++ b/server/src/tenant/schema-builder/utils/map-column-type-to-graphql-type.util.ts @@ -65,7 +65,7 @@ export const mapColumnTypeToGraphQLType = ( return GraphQLInt; case 'enum': { if (column.enums && column.enums.length > 0) { - const enumName = `${pascalCase(column.nameSingular)}Enum`; + const enumName = `${pascalCase(column.name)}Enum`; return new GraphQLEnumType({ name: enumName,