From 85caed34631b60fab53c81b2772c5809cfec156a Mon Sep 17 00:00:00 2001 From: bosiraphael <71827178+bosiraphael@users.noreply.github.com> Date: Thu, 4 Apr 2024 14:00:10 +0200 Subject: [PATCH] 4702 rename calendareventattendee to calendareventparticipant (#4761) Closes #4702 --- .../src/generated-metadata/gql.ts | 4 +- .../src/generated-metadata/graphql.ts | 10 +- .../twenty-front/src/generated/graphql.tsx | 109 ++++++------------ .../calendar/components/CalendarEventRow.tsx | 12 +- .../calendar/hooks/useCalendarEvents.ts | 2 +- .../timelineCalendarEventAttendeeFragment.ts | 13 --- .../timelineCalendarEventFragment.ts | 8 +- ...imelineCalendarEventParticipantFragment.ts | 13 +++ .../calendar/types/CalendarEvent.ts | 2 +- .../auth/graphql/mutations/renewToken.ts | 4 +- .../src/modules/auth/services/AuthService.ts | 2 +- .../accounts/SettingsAccountsCalendars.tsx | 2 +- .../src/testing/mock-data/calendar.ts | 2 +- .../src/testing/mock-data/metadata.ts | 10 +- ...imeline-calendar-event-participant.dto.ts} | 4 +- .../dtos/timeline-calendar-event.dto.ts | 6 +- .../timeline-calendar-event.service.ts | 80 +++++++------ .../field-metadata/field-metadata.entity.ts | 1 - .../metadata-to-repository.mapping.ts | 4 +- .../constants/standard-field-ids.ts | 8 +- .../constants/standard-object-ids.ts | 2 +- .../standard-objects/index.ts | 4 +- ... calendar-event-participant.repository.ts} | 89 +++++++------- .../repositories/calendar-event.repository.ts | 4 +- .../calendar-event-participant.module.ts} | 8 +- .../calendar-event-participant.service.ts} | 54 ++++----- .../google-calendar-full-sync.module.ts | 8 +- .../google-calendar-full-sync.service.ts | 34 +++--- ...ndar-event-participant.object-metadata.ts} | 40 +++---- .../calendar-event.object-metadata.ts | 12 +- .../modules/calendar/types/calendar-event.ts | 16 +-- .../format-google-calendar-event.util.ts | 16 +-- ...-companies-and-contacts-creation.module.ts | 8 +- .../create-company-and-contact.service.ts | 20 ++-- .../person.object-metadata.ts | 12 +- .../workspace-member.object-metadata.ts | 12 +- 36 files changed, 305 insertions(+), 330 deletions(-) delete mode 100644 packages/twenty-front/src/modules/activities/calendar/queries/fragments/timelineCalendarEventAttendeeFragment.ts create mode 100644 packages/twenty-front/src/modules/activities/calendar/queries/fragments/timelineCalendarEventParticipantFragment.ts rename packages/twenty-server/src/engine/core-modules/calendar/dtos/{timeline-calendar-event-attendee.dto.ts => timeline-calendar-event-participant.dto.ts} (78%) rename packages/twenty-server/src/modules/calendar/repositories/{calendar-event-attendee.repository.ts => calendar-event-participant.repository.ts} (56%) rename packages/twenty-server/src/modules/calendar/services/{calendar-event-attendee/calendar-event-attendee.module.ts => calendar-event-participant/calendar-event-participant.module.ts} (71%) rename packages/twenty-server/src/modules/calendar/services/{calendar-event-attendee/calendar-event-attendee.service.ts => calendar-event-participant/calendar-event-participant.service.ts} (63%) rename packages/twenty-server/src/modules/calendar/standard-objects/{calendar-event-attendee.object-metadata.ts => calendar-event-participant.object-metadata.ts} (70%) diff --git a/packages/twenty-front/src/generated-metadata/gql.ts b/packages/twenty-front/src/generated-metadata/gql.ts index 9055155f5..840ffe31a 100644 --- a/packages/twenty-front/src/generated-metadata/gql.ts +++ b/packages/twenty-front/src/generated-metadata/gql.ts @@ -20,7 +20,7 @@ const documents = { "\n mutation UpdateOneObjectMetadataItem(\n $idToUpdate: ID!\n $updatePayload: UpdateObjectInput!\n ) {\n updateOneObject(input: { id: $idToUpdate, update: $updatePayload }) {\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 labelIdentifierFieldMetadataId\n imageIdentifierFieldMetadataId\n }\n }\n": types.UpdateOneObjectMetadataItemDocument, "\n mutation DeleteOneObjectMetadataItem($idToDelete: ID!) {\n deleteOneObject(input: { id: $idToDelete }) {\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 labelIdentifierFieldMetadataId\n imageIdentifierFieldMetadataId\n }\n }\n": types.DeleteOneObjectMetadataItemDocument, "\n mutation DeleteOneFieldMetadataItem($idToDelete: ID!) {\n deleteOneField(input: { id: $idToDelete }) {\n id\n type\n name\n label\n description\n icon\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n": types.DeleteOneFieldMetadataItemDocument, - "\n query ObjectMetadataItems(\n $objectFilter: objectFilter\n $fieldFilter: fieldFilter\n ) {\n objects(paging: { first: 1000 }, filter: $objectFilter) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isRemote\n isActive\n isSystem\n createdAt\n updatedAt\n labelIdentifierFieldMetadataId\n imageIdentifierFieldMetadataId\n fields(paging: { first: 1000 }, filter: $fieldFilter) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n isCustom\n isActive\n isSystem\n isNullable\n createdAt\n updatedAt\n fromRelationMetadata {\n id\n relationType\n toObjectMetadata {\n id\n dataSourceId\n nameSingular\n namePlural\n isSystem\n }\n toFieldMetadataId\n }\n toRelationMetadata {\n id\n relationType\n fromObjectMetadata {\n id\n dataSourceId\n nameSingular\n namePlural\n isSystem\n }\n fromFieldMetadataId\n }\n defaultValue\n options\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n": types.ObjectMetadataItemsDocument, + "\n query ObjectMetadataItems(\n $objectFilter: objectFilter\n $fieldFilter: fieldFilter\n ) {\n objects(paging: { first: 1000 }, filter: $objectFilter) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isRemote\n isActive\n isSystem\n createdAt\n updatedAt\n labelIdentifierFieldMetadataId\n imageIdentifierFieldMetadataId\n fields(paging: { first: 1000 }, filter: $fieldFilter) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n isCustom\n isActive\n isSystem\n isNullable\n createdAt\n updatedAt\n fromRelationMetadata {\n id\n relationType\n toObjectMetadata {\n id\n dataSourceId\n nameSingular\n namePlural\n isSystem\n }\n toFieldMetadataId\n }\n toRelationMetadata {\n id\n relationType\n fromObjectMetadata {\n id\n dataSourceId\n nameSingular\n namePlural\n isSystem\n }\n fromFieldMetadataId\n }\n defaultValue\n options\n relationDefinition {\n direction\n sourceObjectMetadata {\n id\n nameSingular\n namePlural\n }\n sourceFieldMetadata {\n id\n name\n }\n targetObjectMetadata {\n id\n nameSingular\n namePlural\n }\n targetFieldMetadata {\n id\n name\n }\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n": types.ObjectMetadataItemsDocument, }; /** @@ -68,7 +68,7 @@ export function graphql(source: "\n mutation DeleteOneFieldMetadataItem($idToDe /** * 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 ObjectMetadataItems(\n $objectFilter: objectFilter\n $fieldFilter: fieldFilter\n ) {\n objects(paging: { first: 1000 }, filter: $objectFilter) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isRemote\n isActive\n isSystem\n createdAt\n updatedAt\n labelIdentifierFieldMetadataId\n imageIdentifierFieldMetadataId\n fields(paging: { first: 1000 }, filter: $fieldFilter) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n isCustom\n isActive\n isSystem\n isNullable\n createdAt\n updatedAt\n fromRelationMetadata {\n id\n relationType\n toObjectMetadata {\n id\n dataSourceId\n nameSingular\n namePlural\n isSystem\n }\n toFieldMetadataId\n }\n toRelationMetadata {\n id\n relationType\n fromObjectMetadata {\n id\n dataSourceId\n nameSingular\n namePlural\n isSystem\n }\n fromFieldMetadataId\n }\n defaultValue\n options\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n"): (typeof documents)["\n query ObjectMetadataItems(\n $objectFilter: objectFilter\n $fieldFilter: fieldFilter\n ) {\n objects(paging: { first: 1000 }, filter: $objectFilter) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isRemote\n isActive\n isSystem\n createdAt\n updatedAt\n labelIdentifierFieldMetadataId\n imageIdentifierFieldMetadataId\n fields(paging: { first: 1000 }, filter: $fieldFilter) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n isCustom\n isActive\n isSystem\n isNullable\n createdAt\n updatedAt\n fromRelationMetadata {\n id\n relationType\n toObjectMetadata {\n id\n dataSourceId\n nameSingular\n namePlural\n isSystem\n }\n toFieldMetadataId\n }\n toRelationMetadata {\n id\n relationType\n fromObjectMetadata {\n id\n dataSourceId\n nameSingular\n namePlural\n isSystem\n }\n fromFieldMetadataId\n }\n defaultValue\n options\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n"]; +export function graphql(source: "\n query ObjectMetadataItems(\n $objectFilter: objectFilter\n $fieldFilter: fieldFilter\n ) {\n objects(paging: { first: 1000 }, filter: $objectFilter) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isRemote\n isActive\n isSystem\n createdAt\n updatedAt\n labelIdentifierFieldMetadataId\n imageIdentifierFieldMetadataId\n fields(paging: { first: 1000 }, filter: $fieldFilter) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n isCustom\n isActive\n isSystem\n isNullable\n createdAt\n updatedAt\n fromRelationMetadata {\n id\n relationType\n toObjectMetadata {\n id\n dataSourceId\n nameSingular\n namePlural\n isSystem\n }\n toFieldMetadataId\n }\n toRelationMetadata {\n id\n relationType\n fromObjectMetadata {\n id\n dataSourceId\n nameSingular\n namePlural\n isSystem\n }\n fromFieldMetadataId\n }\n defaultValue\n options\n relationDefinition {\n direction\n sourceObjectMetadata {\n id\n nameSingular\n namePlural\n }\n sourceFieldMetadata {\n id\n name\n }\n targetObjectMetadata {\n id\n nameSingular\n namePlural\n }\n targetFieldMetadata {\n id\n name\n }\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n"): (typeof documents)["\n query ObjectMetadataItems(\n $objectFilter: objectFilter\n $fieldFilter: fieldFilter\n ) {\n objects(paging: { first: 1000 }, filter: $objectFilter) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isRemote\n isActive\n isSystem\n createdAt\n updatedAt\n labelIdentifierFieldMetadataId\n imageIdentifierFieldMetadataId\n fields(paging: { first: 1000 }, filter: $fieldFilter) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n isCustom\n isActive\n isSystem\n isNullable\n createdAt\n updatedAt\n fromRelationMetadata {\n id\n relationType\n toObjectMetadata {\n id\n dataSourceId\n nameSingular\n namePlural\n isSystem\n }\n toFieldMetadataId\n }\n toRelationMetadata {\n id\n relationType\n fromObjectMetadata {\n id\n dataSourceId\n nameSingular\n namePlural\n isSystem\n }\n fromFieldMetadataId\n }\n defaultValue\n options\n relationDefinition {\n direction\n sourceObjectMetadata {\n id\n nameSingular\n namePlural\n }\n sourceFieldMetadata {\n id\n name\n }\n targetObjectMetadata {\n id\n nameSingular\n namePlural\n }\n targetFieldMetadata {\n id\n name\n }\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n"]; export function graphql(source: string) { return (documents as any)[source] ?? {}; diff --git a/packages/twenty-front/src/generated-metadata/graphql.ts b/packages/twenty-front/src/generated-metadata/graphql.ts index dd956ae60..7437da939 100644 --- a/packages/twenty-front/src/generated-metadata/graphql.ts +++ b/packages/twenty-front/src/generated-metadata/graphql.ts @@ -861,7 +861,6 @@ export type Telemetry = { export type TimelineCalendarEvent = { __typename?: 'TimelineCalendarEvent'; - attendees: Array; conferenceLink: LinkMetadata; conferenceSolution: Scalars['String']['output']; description: Scalars['String']['output']; @@ -870,13 +869,14 @@ export type TimelineCalendarEvent = { isCanceled: Scalars['Boolean']['output']; isFullDay: Scalars['Boolean']['output']; location: Scalars['String']['output']; + participants: Array; startsAt: Scalars['DateTime']['output']; title: Scalars['String']['output']; visibility: TimelineCalendarEventVisibility; }; -export type TimelineCalendarEventAttendee = { - __typename?: 'TimelineCalendarEventAttendee'; +export type TimelineCalendarEventParticipant = { + __typename?: 'TimelineCalendarEventParticipant'; avatarUrl: Scalars['String']['output']; displayName: Scalars['String']['output']; firstName: Scalars['String']['output']; @@ -1262,7 +1262,7 @@ export type ObjectMetadataItemsQueryVariables = Exact<{ }>; -export type ObjectMetadataItemsQuery = { __typename?: 'Query', objects: { __typename?: 'ObjectConnection', 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, isRemote: boolean, isActive: boolean, isSystem: boolean, createdAt: any, updatedAt: any, labelIdentifierFieldMetadataId?: string | null, imageIdentifierFieldMetadataId?: string | null, fields: { __typename?: 'ObjectFieldsConnection', edges: Array<{ __typename?: 'fieldEdge', node: { __typename?: 'field', id: string, type: FieldMetadataType, name: string, label: string, description?: string | null, icon?: string | null, isCustom?: boolean | null, isActive?: boolean | null, isSystem?: boolean | null, isNullable?: boolean | null, createdAt: any, updatedAt: any, defaultValue?: any | null, options?: any | null, fromRelationMetadata?: { __typename?: 'relation', id: string, relationType: RelationMetadataType, toFieldMetadataId: string, toObjectMetadata: { __typename?: 'object', id: string, dataSourceId: string, nameSingular: string, namePlural: string, isSystem: boolean } } | null, toRelationMetadata?: { __typename?: 'relation', id: string, relationType: RelationMetadataType, fromFieldMetadataId: string, fromObjectMetadata: { __typename?: 'object', id: string, dataSourceId: string, nameSingular: string, namePlural: string, isSystem: boolean } } | null } }>, 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 ObjectMetadataItemsQuery = { __typename?: 'Query', objects: { __typename?: 'ObjectConnection', 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, isRemote: boolean, isActive: boolean, isSystem: boolean, createdAt: any, updatedAt: any, labelIdentifierFieldMetadataId?: string | null, imageIdentifierFieldMetadataId?: string | null, fields: { __typename?: 'ObjectFieldsConnection', edges: Array<{ __typename?: 'fieldEdge', node: { __typename?: 'field', id: string, type: FieldMetadataType, name: string, label: string, description?: string | null, icon?: string | null, isCustom?: boolean | null, isActive?: boolean | null, isSystem?: boolean | null, isNullable?: boolean | null, createdAt: any, updatedAt: any, defaultValue?: any | null, options?: any | null, fromRelationMetadata?: { __typename?: 'relation', id: string, relationType: RelationMetadataType, toFieldMetadataId: string, toObjectMetadata: { __typename?: 'object', id: string, dataSourceId: string, nameSingular: string, namePlural: string, isSystem: boolean } } | null, toRelationMetadata?: { __typename?: 'relation', id: string, relationType: RelationMetadataType, fromFieldMetadataId: string, fromObjectMetadata: { __typename?: 'object', id: string, dataSourceId: string, nameSingular: string, namePlural: string, isSystem: boolean } } | null, relationDefinition?: { __typename?: 'RelationDefinition', direction: RelationDefinitionType, sourceObjectMetadata: { __typename?: 'object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'field', id: string, name: string }, targetObjectMetadata: { __typename?: 'object', id: string, nameSingular: string, namePlural: string }, targetFieldMetadata: { __typename?: 'field', id: string, name: string } } | null } }>, 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 CreateOneObjectMetadataItemDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateOneObjectMetadataItem"},"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"}},{"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":"labelIdentifierFieldMetadataId"}},{"kind":"Field","name":{"kind":"Name","value":"imageIdentifierFieldMetadataId"}}]}}]}}]} as unknown as DocumentNode; @@ -1272,4 +1272,4 @@ export const UpdateOneFieldMetadataItemDocument = {"kind":"Document","definition export const UpdateOneObjectMetadataItemDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateOneObjectMetadataItem"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"idToUpdate"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"updatePayload"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UpdateObjectInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateOneObject"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"idToUpdate"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"update"},"value":{"kind":"Variable","name":{"kind":"Name","value":"updatePayload"}}}]}}],"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":"labelIdentifierFieldMetadataId"}},{"kind":"Field","name":{"kind":"Name","value":"imageIdentifierFieldMetadataId"}}]}}]}}]} as unknown as DocumentNode; export const DeleteOneObjectMetadataItemDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"DeleteOneObjectMetadataItem"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"idToDelete"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"deleteOneObject"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"idToDelete"}}}]}}],"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":"labelIdentifierFieldMetadataId"}},{"kind":"Field","name":{"kind":"Name","value":"imageIdentifierFieldMetadataId"}}]}}]}}]} as unknown as DocumentNode; export const DeleteOneFieldMetadataItemDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"DeleteOneFieldMetadataItem"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"idToDelete"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"deleteOneField"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"idToDelete"}}}]}}],"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":"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 ObjectMetadataItemsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ObjectMetadataItems"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"objectFilter"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"objectFilter"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldFilter"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"fieldFilter"}}}],"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":"1000"}}]}},{"kind":"Argument","name":{"kind":"Name","value":"filter"},"value":{"kind":"Variable","name":{"kind":"Name","value":"objectFilter"}}}],"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":"isRemote"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"isSystem"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"labelIdentifierFieldMetadataId"}},{"kind":"Field","name":{"kind":"Name","value":"imageIdentifierFieldMetadataId"}},{"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":"1000"}}]}},{"kind":"Argument","name":{"kind":"Name","value":"filter"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldFilter"}}}],"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":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"isSystem"}},{"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":"fromRelationMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"relationType"}},{"kind":"Field","name":{"kind":"Name","value":"toObjectMetadata"},"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":"isSystem"}}]}},{"kind":"Field","name":{"kind":"Name","value":"toFieldMetadataId"}}]}},{"kind":"Field","name":{"kind":"Name","value":"toRelationMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"relationType"}},{"kind":"Field","name":{"kind":"Name","value":"fromObjectMetadata"},"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":"isSystem"}}]}},{"kind":"Field","name":{"kind":"Name","value":"fromFieldMetadataId"}}]}},{"kind":"Field","name":{"kind":"Name","value":"defaultValue"}},{"kind":"Field","name":{"kind":"Name","value":"options"}}]}}]}},{"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":"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"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ObjectMetadataItemsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ObjectMetadataItems"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"objectFilter"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"objectFilter"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldFilter"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"fieldFilter"}}}],"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":"1000"}}]}},{"kind":"Argument","name":{"kind":"Name","value":"filter"},"value":{"kind":"Variable","name":{"kind":"Name","value":"objectFilter"}}}],"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":"isRemote"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"isSystem"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"labelIdentifierFieldMetadataId"}},{"kind":"Field","name":{"kind":"Name","value":"imageIdentifierFieldMetadataId"}},{"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":"1000"}}]}},{"kind":"Argument","name":{"kind":"Name","value":"filter"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldFilter"}}}],"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":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"isSystem"}},{"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":"fromRelationMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"relationType"}},{"kind":"Field","name":{"kind":"Name","value":"toObjectMetadata"},"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":"isSystem"}}]}},{"kind":"Field","name":{"kind":"Name","value":"toFieldMetadataId"}}]}},{"kind":"Field","name":{"kind":"Name","value":"toRelationMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"relationType"}},{"kind":"Field","name":{"kind":"Name","value":"fromObjectMetadata"},"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":"isSystem"}}]}},{"kind":"Field","name":{"kind":"Name","value":"fromFieldMetadataId"}}]}},{"kind":"Field","name":{"kind":"Name","value":"defaultValue"}},{"kind":"Field","name":{"kind":"Name","value":"options"}},{"kind":"Field","name":{"kind":"Name","value":"relationDefinition"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"direction"}},{"kind":"Field","name":{"kind":"Name","value":"sourceObjectMetadata"},"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":"sourceFieldMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"targetObjectMetadata"},"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":"targetFieldMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}}]}}]}}]}},{"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":"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"}}]}}]}}]}}]} as unknown as DocumentNode; \ No newline at end of file diff --git a/packages/twenty-front/src/generated/graphql.tsx b/packages/twenty-front/src/generated/graphql.tsx index b1f91e56f..df4b60b77 100644 --- a/packages/twenty-front/src/generated/graphql.tsx +++ b/packages/twenty-front/src/generated/graphql.tsx @@ -34,6 +34,23 @@ export type ApiKeyToken = { token: Scalars['String']; }; +export type AppToken = { + __typename?: 'AppToken'; + createdAt: Scalars['DateTime']; + expiresAt: Scalars['DateTime']; + id: Scalars['ID']; + type: Scalars['String']; + updatedAt: Scalars['DateTime']; +}; + +export type AppTokenEdge = { + __typename?: 'AppTokenEdge'; + /** Cursor for this node. */ + cursor: Scalars['ConnectionCursor']; + /** The node containing the AppToken */ + node: AppToken; +}; + export type AuthProviders = { __typename?: 'AuthProviders'; google: Scalars['Boolean']; @@ -110,12 +127,6 @@ export type ClientConfig = { telemetry: Telemetry; }; -export type CreateRemoteServerInput = { - foreignDataWrapperOptions: Scalars['JSON']; - foreignDataWrapperType: Scalars['String']; - userMappingOptions?: InputMaybe; -}; - export type CursorPaging = { /** Paginate after opaque cursor */ after?: InputMaybe; @@ -271,12 +282,10 @@ export type Mutation = { authorizeApp: AuthorizeApp; challenge: LoginToken; checkoutSession: SessionEntity; + createOneAppToken: AppToken; createOneObject: Object; - createOneRefreshToken: RefreshToken; - createOneRemoteServer: RemoteServer; deleteCurrentWorkspace: Workspace; deleteOneObject: Object; - deleteOneRemoteServer: RemoteServer; deleteUser: User; emailPasswordResetLink: EmailPasswordResetLink; generateApiKeyToken: ApiKeyToken; @@ -321,21 +330,11 @@ export type MutationCheckoutSessionArgs = { }; -export type MutationCreateOneRemoteServerArgs = { - input: CreateRemoteServerInput; -}; - - export type MutationDeleteOneObjectArgs = { input: DeleteOneObjectInput; }; -export type MutationDeleteOneRemoteServerArgs = { - input: RemoteServerIdInput; -}; - - export type MutationEmailPasswordResetLinkArgs = { email: Scalars['String']; }; @@ -358,7 +357,7 @@ export type MutationImpersonateArgs = { export type MutationRenewTokenArgs = { - refreshToken: Scalars['String']; + appToken: Scalars['String']; }; @@ -463,8 +462,6 @@ export type Query = { currentUser: User; currentWorkspace: Workspace; exchangeAuthorizationCode: ExchangeAuthCode; - findManyRemoteServersByType: Array; - findOneRemoteServerById: RemoteServer; findWorkspaceFromInviteHash: Workspace; getProductPrices: ProductPricesEntity; getTimelineCalendarEventsFromCompanyId: TimelineCalendarEventsWithTotal; @@ -498,16 +495,6 @@ export type QueryExchangeAuthorizationCodeArgs = { }; -export type QueryFindManyRemoteServersByTypeArgs = { - input: RemoteServerTypeInput; -}; - - -export type QueryFindOneRemoteServerByIdArgs = { - input: RemoteServerIdInput; -}; - - export type QueryFindWorkspaceFromInviteHashArgs = { inviteHash: Scalars['String']; }; @@ -550,22 +537,6 @@ export type QueryValidatePasswordResetTokenArgs = { passwordResetToken: Scalars['String']; }; -export type RefreshToken = { - __typename?: 'RefreshToken'; - createdAt: Scalars['DateTime']; - expiresAt: Scalars['DateTime']; - id: Scalars['ID']; - updatedAt: Scalars['DateTime']; -}; - -export type RefreshTokenEdge = { - __typename?: 'RefreshTokenEdge'; - /** Cursor for this node. */ - cursor: Scalars['ConnectionCursor']; - /** The node containing the RefreshToken */ - node: RefreshToken; -}; - export type RelationConnection = { __typename?: 'RelationConnection'; /** Array of edges. */ @@ -620,14 +591,6 @@ export type RemoteServer = { updatedAt: Scalars['DateTime']; }; -export type RemoteServerIdInput = { - /** The id of the record. */ - id: Scalars['ID']; -}; - -export type RemoteServerTypeInput = { - foreignDataWrapperType: Scalars['String']; -}; export type RemoteTable = { __typename?: 'RemoteTable'; name: Scalars['String']; @@ -677,7 +640,6 @@ export type Telemetry = { export type TimelineCalendarEvent = { __typename?: 'TimelineCalendarEvent'; - attendees: Array; conferenceLink: LinkMetadata; conferenceSolution: Scalars['String']; description: Scalars['String']; @@ -686,13 +648,14 @@ export type TimelineCalendarEvent = { isCanceled: Scalars['Boolean']; isFullDay: Scalars['Boolean']; location: Scalars['String']; + participants: Array; startsAt: Scalars['DateTime']; title: Scalars['String']; visibility: TimelineCalendarEventVisibility; }; -export type TimelineCalendarEventAttendee = { - __typename?: 'TimelineCalendarEventAttendee'; +export type TimelineCalendarEventParticipant = { + __typename?: 'TimelineCalendarEventParticipant'; avatarUrl: Scalars['String']; displayName: Scalars['String']; firstName: Scalars['String']; @@ -972,11 +935,11 @@ export type RelationEdge = { node: Relation; }; -export type TimelineCalendarEventAttendeeFragmentFragment = { __typename?: 'TimelineCalendarEventAttendee', personId?: string | null, workspaceMemberId?: string | null, firstName: string, lastName: string, displayName: string, avatarUrl: string, handle: string }; +export type TimelineCalendarEventFragmentFragment = { __typename?: 'TimelineCalendarEvent', id: string, title: string, description: string, location: string, startsAt: string, endsAt: string, isFullDay: boolean, visibility: TimelineCalendarEventVisibility, participants: Array<{ __typename?: 'TimelineCalendarEventParticipant', personId?: string | null, workspaceMemberId?: string | null, firstName: string, lastName: string, displayName: string, avatarUrl: string, handle: string }> }; -export type TimelineCalendarEventFragmentFragment = { __typename?: 'TimelineCalendarEvent', id: string, title: string, description: string, location: string, startsAt: string, endsAt: string, isFullDay: boolean, visibility: TimelineCalendarEventVisibility, attendees: Array<{ __typename?: 'TimelineCalendarEventAttendee', personId?: string | null, workspaceMemberId?: string | null, firstName: string, lastName: string, displayName: string, avatarUrl: string, handle: string }> }; +export type TimelineCalendarEventParticipantFragmentFragment = { __typename?: 'TimelineCalendarEventParticipant', personId?: string | null, workspaceMemberId?: string | null, firstName: string, lastName: string, displayName: string, avatarUrl: string, handle: string }; -export type TimelineCalendarEventsWithTotalFragmentFragment = { __typename?: 'TimelineCalendarEventsWithTotal', totalNumberOfCalendarEvents: number, timelineCalendarEvents: Array<{ __typename?: 'TimelineCalendarEvent', id: string, title: string, description: string, location: string, startsAt: string, endsAt: string, isFullDay: boolean, visibility: TimelineCalendarEventVisibility, attendees: Array<{ __typename?: 'TimelineCalendarEventAttendee', personId?: string | null, workspaceMemberId?: string | null, firstName: string, lastName: string, displayName: string, avatarUrl: string, handle: string }> }> }; +export type TimelineCalendarEventsWithTotalFragmentFragment = { __typename?: 'TimelineCalendarEventsWithTotal', totalNumberOfCalendarEvents: number, timelineCalendarEvents: Array<{ __typename?: 'TimelineCalendarEvent', id: string, title: string, description: string, location: string, startsAt: string, endsAt: string, isFullDay: boolean, visibility: TimelineCalendarEventVisibility, participants: Array<{ __typename?: 'TimelineCalendarEventParticipant', personId?: string | null, workspaceMemberId?: string | null, firstName: string, lastName: string, displayName: string, avatarUrl: string, handle: string }> }> }; export type GetTimelineCalendarEventsFromCompanyIdQueryVariables = Exact<{ companyId: Scalars['ID']; @@ -985,7 +948,7 @@ export type GetTimelineCalendarEventsFromCompanyIdQueryVariables = Exact<{ }>; -export type GetTimelineCalendarEventsFromCompanyIdQuery = { __typename?: 'Query', getTimelineCalendarEventsFromCompanyId: { __typename?: 'TimelineCalendarEventsWithTotal', totalNumberOfCalendarEvents: number, timelineCalendarEvents: Array<{ __typename?: 'TimelineCalendarEvent', id: string, title: string, description: string, location: string, startsAt: string, endsAt: string, isFullDay: boolean, visibility: TimelineCalendarEventVisibility, attendees: Array<{ __typename?: 'TimelineCalendarEventAttendee', personId?: string | null, workspaceMemberId?: string | null, firstName: string, lastName: string, displayName: string, avatarUrl: string, handle: string }> }> } }; +export type GetTimelineCalendarEventsFromCompanyIdQuery = { __typename?: 'Query', getTimelineCalendarEventsFromCompanyId: { __typename?: 'TimelineCalendarEventsWithTotal', totalNumberOfCalendarEvents: number, timelineCalendarEvents: Array<{ __typename?: 'TimelineCalendarEvent', id: string, title: string, description: string, location: string, startsAt: string, endsAt: string, isFullDay: boolean, visibility: TimelineCalendarEventVisibility, participants: Array<{ __typename?: 'TimelineCalendarEventParticipant', personId?: string | null, workspaceMemberId?: string | null, firstName: string, lastName: string, displayName: string, avatarUrl: string, handle: string }> }> } }; export type GetTimelineCalendarEventsFromPersonIdQueryVariables = Exact<{ personId: Scalars['ID']; @@ -994,7 +957,7 @@ export type GetTimelineCalendarEventsFromPersonIdQueryVariables = Exact<{ }>; -export type GetTimelineCalendarEventsFromPersonIdQuery = { __typename?: 'Query', getTimelineCalendarEventsFromPersonId: { __typename?: 'TimelineCalendarEventsWithTotal', totalNumberOfCalendarEvents: number, timelineCalendarEvents: Array<{ __typename?: 'TimelineCalendarEvent', id: string, title: string, description: string, location: string, startsAt: string, endsAt: string, isFullDay: boolean, visibility: TimelineCalendarEventVisibility, attendees: Array<{ __typename?: 'TimelineCalendarEventAttendee', personId?: string | null, workspaceMemberId?: string | null, firstName: string, lastName: string, displayName: string, avatarUrl: string, handle: string }> }> } }; +export type GetTimelineCalendarEventsFromPersonIdQuery = { __typename?: 'Query', getTimelineCalendarEventsFromPersonId: { __typename?: 'TimelineCalendarEventsWithTotal', totalNumberOfCalendarEvents: number, timelineCalendarEvents: Array<{ __typename?: 'TimelineCalendarEvent', id: string, title: string, description: string, location: string, startsAt: string, endsAt: string, isFullDay: boolean, visibility: TimelineCalendarEventVisibility, participants: Array<{ __typename?: 'TimelineCalendarEventParticipant', personId?: string | null, workspaceMemberId?: string | null, firstName: string, lastName: string, displayName: string, avatarUrl: string, handle: string }> }> } }; export type ParticipantFragmentFragment = { __typename?: 'TimelineThreadParticipant', personId?: string | null, workspaceMemberId?: string | null, firstName: string, lastName: string, displayName: string, avatarUrl: string, handle: string }; @@ -1085,7 +1048,7 @@ export type ImpersonateMutationVariables = Exact<{ export type ImpersonateMutation = { __typename?: 'Mutation', impersonate: { __typename?: 'Verify', user: { __typename?: 'User', id: string, firstName: string, lastName: string, email: string, canImpersonate: boolean, supportUserHash?: string | null, workspaceMember?: { __typename?: 'WorkspaceMember', id: string, colorScheme: string, avatarUrl?: string | null, locale: string, name: { __typename?: 'FullName', firstName: string, lastName: string } } | null, defaultWorkspace: { __typename?: 'Workspace', id: string, displayName?: string | null, logo?: string | null, domainName?: string | null, inviteHash?: string | null, allowImpersonation: boolean, subscriptionStatus: string, activationStatus: string, featureFlags?: Array<{ __typename?: 'FeatureFlag', id: string, key: string, value: boolean, workspaceId: string }> | null }, workspaces: Array<{ __typename?: 'UserWorkspace', workspace?: { __typename?: 'Workspace', id: string, logo?: string | null, displayName?: string | null, domainName?: string | null } | null }> }, tokens: { __typename?: 'AuthTokenPair', accessToken: { __typename?: 'AuthToken', token: string, expiresAt: string }, refreshToken: { __typename?: 'AuthToken', token: string, expiresAt: string } } } }; export type RenewTokenMutationVariables = Exact<{ - refreshToken: Scalars['String']; + appToken: Scalars['String']; }>; @@ -1229,8 +1192,8 @@ export type GetWorkspaceFromInviteHashQueryVariables = Exact<{ export type GetWorkspaceFromInviteHashQuery = { __typename?: 'Query', findWorkspaceFromInviteHash: { __typename?: 'Workspace', id: string, displayName?: string | null, logo?: string | null, allowImpersonation: boolean } }; -export const TimelineCalendarEventAttendeeFragmentFragmentDoc = gql` - fragment TimelineCalendarEventAttendeeFragment on TimelineCalendarEventAttendee { +export const TimelineCalendarEventParticipantFragmentFragmentDoc = gql` + fragment TimelineCalendarEventParticipantFragment on TimelineCalendarEventParticipant { personId workspaceMemberId firstName @@ -1250,11 +1213,11 @@ export const TimelineCalendarEventFragmentFragmentDoc = gql` endsAt isFullDay visibility - attendees { - ...TimelineCalendarEventAttendeeFragment + participants { + ...TimelineCalendarEventParticipantFragment } } - ${TimelineCalendarEventAttendeeFragmentFragmentDoc}`; + ${TimelineCalendarEventParticipantFragmentFragmentDoc}`; export const TimelineCalendarEventsWithTotalFragmentFragmentDoc = gql` fragment TimelineCalendarEventsWithTotalFragment on TimelineCalendarEventsWithTotal { totalNumberOfCalendarEvents @@ -1811,8 +1774,8 @@ export type ImpersonateMutationHookResult = ReturnType; export type ImpersonateMutationOptions = Apollo.BaseMutationOptions; export const RenewTokenDocument = gql` - mutation RenewToken($refreshToken: String!) { - renewToken(refreshToken: $refreshToken) { + mutation RenewToken($appToken: String!) { + renewToken(appToken: $appToken) { tokens { ...AuthTokensFragment } @@ -1834,7 +1797,7 @@ export type RenewTokenMutationFn = Apollo.MutationFunction workspaceMemberId === currentWorkspaceMember?.id, ); const showTitle = calendarEvent.visibility === 'SHARE_EVERYTHING'; @@ -154,19 +154,19 @@ export const CalendarEventRow = ({ )} - {!!calendarEvent.attendees?.length && ( + {!!calendarEvent.participants?.length && ( ( + avatars={calendarEvent.participants.map((participant) => ( ))} diff --git a/packages/twenty-front/src/modules/activities/calendar/hooks/useCalendarEvents.ts b/packages/twenty-front/src/modules/activities/calendar/hooks/useCalendarEvents.ts index 1f10163fb..5f2e63381 100644 --- a/packages/twenty-front/src/modules/activities/calendar/hooks/useCalendarEvents.ts +++ b/packages/twenty-front/src/modules/activities/calendar/hooks/useCalendarEvents.ts @@ -10,7 +10,7 @@ import { sortDesc } from '~/utils/sort'; type CalendarEventGeneric = Omit< CalendarEvent, - 'attendees' | 'externalCreatedAt' + 'participants' | 'externalCreatedAt' >; export const useCalendarEvents = ( diff --git a/packages/twenty-front/src/modules/activities/calendar/queries/fragments/timelineCalendarEventAttendeeFragment.ts b/packages/twenty-front/src/modules/activities/calendar/queries/fragments/timelineCalendarEventAttendeeFragment.ts deleted file mode 100644 index 5cc1e46f3..000000000 --- a/packages/twenty-front/src/modules/activities/calendar/queries/fragments/timelineCalendarEventAttendeeFragment.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { gql } from '@apollo/client'; - -export const timelineCalendarEventAttendeeFragment = gql` - fragment TimelineCalendarEventAttendeeFragment on TimelineCalendarEventAttendee { - personId - workspaceMemberId - firstName - lastName - displayName - avatarUrl - handle - } -`; diff --git a/packages/twenty-front/src/modules/activities/calendar/queries/fragments/timelineCalendarEventFragment.ts b/packages/twenty-front/src/modules/activities/calendar/queries/fragments/timelineCalendarEventFragment.ts index 634b7d5c2..d98c7bcf8 100644 --- a/packages/twenty-front/src/modules/activities/calendar/queries/fragments/timelineCalendarEventFragment.ts +++ b/packages/twenty-front/src/modules/activities/calendar/queries/fragments/timelineCalendarEventFragment.ts @@ -1,6 +1,6 @@ import { gql } from '@apollo/client'; -import { timelineCalendarEventAttendeeFragment } from '@/activities/calendar/queries/fragments/timelineCalendarEventAttendeeFragment'; +import { timelineCalendarEventParticipantFragment } from '@/activities/calendar/queries/fragments/timelineCalendarEventParticipantFragment'; export const timelineCalendarEventFragment = gql` fragment TimelineCalendarEventFragment on TimelineCalendarEvent { @@ -12,9 +12,9 @@ export const timelineCalendarEventFragment = gql` endsAt isFullDay visibility - attendees { - ...TimelineCalendarEventAttendeeFragment + participants { + ...TimelineCalendarEventParticipantFragment } } - ${timelineCalendarEventAttendeeFragment} + ${timelineCalendarEventParticipantFragment} `; diff --git a/packages/twenty-front/src/modules/activities/calendar/queries/fragments/timelineCalendarEventParticipantFragment.ts b/packages/twenty-front/src/modules/activities/calendar/queries/fragments/timelineCalendarEventParticipantFragment.ts new file mode 100644 index 000000000..7a48eea69 --- /dev/null +++ b/packages/twenty-front/src/modules/activities/calendar/queries/fragments/timelineCalendarEventParticipantFragment.ts @@ -0,0 +1,13 @@ +import { gql } from '@apollo/client'; + +export const timelineCalendarEventParticipantFragment = gql` + fragment TimelineCalendarEventParticipantFragment on TimelineCalendarEventParticipant { + personId + workspaceMemberId + firstName + lastName + displayName + avatarUrl + handle + } +`; diff --git a/packages/twenty-front/src/modules/activities/calendar/types/CalendarEvent.ts b/packages/twenty-front/src/modules/activities/calendar/types/CalendarEvent.ts index fd5b5329e..01ec2c2d5 100644 --- a/packages/twenty-front/src/modules/activities/calendar/types/CalendarEvent.ts +++ b/packages/twenty-front/src/modules/activities/calendar/types/CalendarEvent.ts @@ -14,7 +14,7 @@ export type CalendarEvent = { startsAt: string; title?: string; visibility: 'METADATA' | 'SHARE_EVERYTHING'; - attendees?: { + participants?: { displayName: string; workspaceMemberId?: string; }[]; diff --git a/packages/twenty-front/src/modules/auth/graphql/mutations/renewToken.ts b/packages/twenty-front/src/modules/auth/graphql/mutations/renewToken.ts index 6e7048faf..46bf00ffe 100644 --- a/packages/twenty-front/src/modules/auth/graphql/mutations/renewToken.ts +++ b/packages/twenty-front/src/modules/auth/graphql/mutations/renewToken.ts @@ -1,8 +1,8 @@ import { gql } from '@apollo/client'; export const RENEW_TOKEN = gql` - mutation RenewToken($refreshToken: String!) { - renewToken(refreshToken: $refreshToken) { + mutation RenewToken($appToken: String!) { + renewToken(appToken: $appToken) { tokens { ...AuthTokensFragment } diff --git a/packages/twenty-front/src/modules/auth/services/AuthService.ts b/packages/twenty-front/src/modules/auth/services/AuthService.ts index 91ddbe186..27a59a2e4 100644 --- a/packages/twenty-front/src/modules/auth/services/AuthService.ts +++ b/packages/twenty-front/src/modules/auth/services/AuthService.ts @@ -42,7 +42,7 @@ const renewTokenMutation = async ( >({ mutation: RenewTokenDocument, variables: { - refreshToken: refreshToken, + appToken: refreshToken, }, fetchPolicy: 'network-only', }); diff --git a/packages/twenty-front/src/pages/settings/accounts/SettingsAccountsCalendars.tsx b/packages/twenty-front/src/pages/settings/accounts/SettingsAccountsCalendars.tsx index be966acf5..1090c9880 100644 --- a/packages/twenty-front/src/pages/settings/accounts/SettingsAccountsCalendars.tsx +++ b/packages/twenty-front/src/pages/settings/accounts/SettingsAccountsCalendars.tsx @@ -51,7 +51,7 @@ export const SettingsAccountsCalendars = () => { const exampleDayTime = startOfDay(exampleStartDate).getTime(); const exampleCalendarEvent: TimelineCalendarEvent = { id: '', - attendees: [ + participants: [ { firstName: currentWorkspaceMember?.name.firstName || '', lastName: currentWorkspaceMember?.name.lastName || '', diff --git a/packages/twenty-front/src/testing/mock-data/calendar.ts b/packages/twenty-front/src/testing/mock-data/calendar.ts index e0d671b6a..7e115ddac 100644 --- a/packages/twenty-front/src/testing/mock-data/calendar.ts +++ b/packages/twenty-front/src/testing/mock-data/calendar.ts @@ -10,7 +10,7 @@ export const mockedCalendarEvents: CalendarEvent[] = [ isFullDay: false, startsAt: addDays(new Date().setHours(10, 0), 1).toISOString(), visibility: 'METADATA', - attendees: [ + participants: [ { displayName: 'John Doe', workspaceMemberId: 'john-doe' }, { displayName: 'Jane Doe', workspaceMemberId: 'jane-doe' }, { displayName: 'Tim Apple', workspaceMemberId: 'tim-apple' }, diff --git a/packages/twenty-front/src/testing/mock-data/metadata.ts b/packages/twenty-front/src/testing/mock-data/metadata.ts index 6166af8ea..caa9c53f0 100644 --- a/packages/twenty-front/src/testing/mock-data/metadata.ts +++ b/packages/twenty-front/src/testing/mock-data/metadata.ts @@ -1443,9 +1443,9 @@ const mockedCalendarEventsMetadata = { __typename: 'field', id: '07880d2d-4f08-458f-be0b-876402d2a769', type: 'RELATION', - name: 'eventAttendees', - label: 'Event Attendees', - description: 'Event Attendees', + name: 'eventParticipants', + label: 'Event Participants', + description: 'Event Participants', icon: 'IconUserCircle', isCustom: false, isActive: true, @@ -1465,8 +1465,8 @@ const mockedCalendarEventsMetadata = { __typename: 'object', id: '4adb1b1a-9643-4d1c-a2a0-b1b02ae192ad', dataSourceId: 'fa94b810-e848-490c-a5f7-24a1ee5bfaa6', - nameSingular: 'calendarEventAttendee', - namePlural: 'calendarEventAttendees', + nameSingular: 'calendarEventParticipant', + namePlural: 'calendarEventParticipants', isSystem: true, }, }, diff --git a/packages/twenty-server/src/engine/core-modules/calendar/dtos/timeline-calendar-event-attendee.dto.ts b/packages/twenty-server/src/engine/core-modules/calendar/dtos/timeline-calendar-event-participant.dto.ts similarity index 78% rename from packages/twenty-server/src/engine/core-modules/calendar/dtos/timeline-calendar-event-attendee.dto.ts rename to packages/twenty-server/src/engine/core-modules/calendar/dtos/timeline-calendar-event-participant.dto.ts index 1b5082b22..eecb27198 100644 --- a/packages/twenty-server/src/engine/core-modules/calendar/dtos/timeline-calendar-event-attendee.dto.ts +++ b/packages/twenty-server/src/engine/core-modules/calendar/dtos/timeline-calendar-event-participant.dto.ts @@ -1,7 +1,7 @@ import { ObjectType, Field, ID } from '@nestjs/graphql'; -@ObjectType('TimelineCalendarEventAttendee') -export class TimelineCalendarEventAttendee { +@ObjectType('TimelineCalendarEventParticipant') +export class TimelineCalendarEventParticipant { @Field(() => ID, { nullable: true }) personId: string; diff --git a/packages/twenty-server/src/engine/core-modules/calendar/dtos/timeline-calendar-event.dto.ts b/packages/twenty-server/src/engine/core-modules/calendar/dtos/timeline-calendar-event.dto.ts index 124d04d02..ea692d9ae 100644 --- a/packages/twenty-server/src/engine/core-modules/calendar/dtos/timeline-calendar-event.dto.ts +++ b/packages/twenty-server/src/engine/core-modules/calendar/dtos/timeline-calendar-event.dto.ts @@ -1,6 +1,6 @@ import { ObjectType, ID, Field, registerEnumType } from '@nestjs/graphql'; -import { TimelineCalendarEventAttendee } from 'src/engine/core-modules/calendar/dtos/timeline-calendar-event-attendee.dto'; +import { TimelineCalendarEventParticipant } from 'src/engine/core-modules/calendar/dtos/timeline-calendar-event-participant.dto'; export enum TimelineCalendarEventVisibility { METADATA = 'METADATA', @@ -53,8 +53,8 @@ export class TimelineCalendarEvent { @Field(() => LinkMetadata) conferenceLink: LinkMetadata; - @Field(() => [TimelineCalendarEventAttendee]) - attendees: TimelineCalendarEventAttendee[]; + @Field(() => [TimelineCalendarEventParticipant]) + participants: TimelineCalendarEventParticipant[]; @Field(() => TimelineCalendarEventVisibility) visibility: TimelineCalendarEventVisibility; diff --git a/packages/twenty-server/src/engine/core-modules/calendar/timeline-calendar-event.service.ts b/packages/twenty-server/src/engine/core-modules/calendar/timeline-calendar-event.service.ts index 63e725e3c..283fd3325 100644 --- a/packages/twenty-server/src/engine/core-modules/calendar/timeline-calendar-event.service.ts +++ b/packages/twenty-server/src/engine/core-modules/calendar/timeline-calendar-event.service.ts @@ -3,7 +3,7 @@ import { Injectable } from '@nestjs/common'; import groupBy from 'lodash.groupby'; import { TIMELINE_CALENDAR_EVENTS_DEFAULT_PAGE_SIZE } from 'src/engine/core-modules/calendar/constants/calendar.constants'; -import { TimelineCalendarEventAttendee } from 'src/engine/core-modules/calendar/dtos/timeline-calendar-event-attendee.dto'; +import { TimelineCalendarEventParticipant } from 'src/engine/core-modules/calendar/dtos/timeline-calendar-event-participant.dto'; import { TimelineCalendarEvent, TimelineCalendarEventVisibility, @@ -11,10 +11,10 @@ import { import { TimelineCalendarEventsWithTotal } from 'src/engine/core-modules/calendar/dtos/timeline-calendar-events-with-total.dto'; import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; import { ObjectRecord } from 'src/engine/workspace-manager/workspace-sync-metadata/types/object-record'; -import { CalendarEventAttendeeObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-attendee.object-metadata'; +import { CalendarEventParticipantObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-participant.object-metadata'; -type TimelineCalendarEventAttendeeWithPersonInformation = - ObjectRecord & { +type TimelineCalendarEventParticipantWithPersonInformation = + ObjectRecord & { personFirstName: string; personLastName: string; personAvatarUrl: string; @@ -40,18 +40,18 @@ export class TimelineCalendarEventService { const dataSourceSchema = this.workspaceDataSourceService.getSchemaName(workspaceId); - const calendarEvents: Omit[] = + const calendarEvents: Omit[] = await this.workspaceDataSourceService.executeRawQuery( `SELECT "calendarEvent".* FROM ${dataSourceSchema}."calendarEvent" "calendarEvent" LEFT JOIN - ${dataSourceSchema}."calendarEventAttendee" "calendarEventAttendee" ON "calendarEvent".id = "calendarEventAttendee"."calendarEventId" + ${dataSourceSchema}."calendarEventParticipant" "calendarEventParticipant" ON "calendarEvent".id = "calendarEventParticipant"."calendarEventId" LEFT JOIN - ${dataSourceSchema}."person" "person" ON "calendarEventAttendee"."personId" = "person".id + ${dataSourceSchema}."person" "person" ON "calendarEventParticipant"."personId" = "person".id WHERE - "calendarEventAttendee"."personId" = ANY($1) + "calendarEventParticipant"."personId" = ANY($1) GROUP BY "calendarEvent".id ORDER BY @@ -69,10 +69,10 @@ export class TimelineCalendarEventService { }; } - const calendarEventAttendees: TimelineCalendarEventAttendeeWithPersonInformation[] = + const calendarEventParticipants: TimelineCalendarEventParticipantWithPersonInformation[] = await this.workspaceDataSourceService.executeRawQuery( `SELECT - "calendarEventAttendee".*, + "calendarEventParticipant".*, "person"."nameFirstName" as "personFirstName", "person"."nameLastName" as "personLastName", "person"."avatarUrl" as "personAvatarUrl", @@ -80,46 +80,52 @@ export class TimelineCalendarEventService { "workspaceMember"."nameLastName" as "workspaceMemberLastName", "workspaceMember"."avatarUrl" as "workspaceMemberAvatarUrl" FROM - ${dataSourceSchema}."calendarEventAttendee" "calendarEventAttendee" + ${dataSourceSchema}."calendarEventParticipant" "calendarEventParticipant" LEFT JOIN - ${dataSourceSchema}."person" "person" ON "calendarEventAttendee"."personId" = "person".id + ${dataSourceSchema}."person" "person" ON "calendarEventParticipant"."personId" = "person".id LEFT JOIN - ${dataSourceSchema}."workspaceMember" "workspaceMember" ON "calendarEventAttendee"."workspaceMemberId" = "workspaceMember".id + ${dataSourceSchema}."workspaceMember" "workspaceMember" ON "calendarEventParticipant"."workspaceMemberId" = "workspaceMember".id WHERE - "calendarEventAttendee"."calendarEventId" = ANY($1)`, + "calendarEventParticipant"."calendarEventId" = ANY($1)`, [calendarEvents.map((event) => event.id)], workspaceId, ); - const formattedCalendarEventAttendees: TimelineCalendarEventAttendee[] = - calendarEventAttendees.map((attendee) => { + const formattedCalendarEventParticipants: TimelineCalendarEventParticipant[] = + calendarEventParticipants.map((participant) => { const firstName = - attendee.personFirstName || attendee.workspaceMemberFirstName || ''; + participant.personFirstName || + participant.workspaceMemberFirstName || + ''; const lastName = - attendee.personLastName || attendee.workspaceMemberLastName || ''; + participant.personLastName || + participant.workspaceMemberLastName || + ''; const displayName = - firstName || attendee.displayName || attendee.handle; + firstName || participant.displayName || participant.handle; const avatarUrl = - attendee.personAvatarUrl || attendee.workspaceMemberAvatarUrl || ''; + participant.personAvatarUrl || + participant.workspaceMemberAvatarUrl || + ''; return { - calendarEventId: attendee.calendarEventId, - personId: attendee.personId, - workspaceMemberId: attendee.workspaceMemberId, + calendarEventId: participant.calendarEventId, + personId: participant.personId, + workspaceMemberId: participant.workspaceMemberId, firstName, lastName, displayName, avatarUrl, - handle: attendee.handle, + handle: participant.handle, }; }); - const calendarEventAttendeesByEventId: { - [calendarEventId: string]: TimelineCalendarEventAttendee[]; - } = groupBy(formattedCalendarEventAttendees, 'calendarEventId'); + const calendarEventParticipantsByEventId: { + [calendarEventId: string]: TimelineCalendarEventParticipant[]; + } = groupBy(formattedCalendarEventParticipants, 'calendarEventId'); const totalNumberOfCalendarEvents: { count: number }[] = await this.workspaceDataSourceService.executeRawQuery( @@ -127,46 +133,46 @@ export class TimelineCalendarEventService { SELECT COUNT(DISTINCT "calendarEventId") FROM - ${dataSourceSchema}."calendarEventAttendee" "calendarEventAttendee" + ${dataSourceSchema}."calendarEventParticipant" "calendarEventParticipant" WHERE - "calendarEventAttendee"."personId" = ANY($1) + "calendarEventParticipant"."personId" = ANY($1) `, [personIds], workspaceId, ); const timelineCalendarEvents = calendarEvents.map((event) => { - const attendees = calendarEventAttendeesByEventId[event.id] || []; + const participants = calendarEventParticipantsByEventId[event.id] || []; return { ...event, - attendees, + participants, }; }); - const calendarEventIdsWithWorkspaceMemberInAttendees = + const calendarEventIdsWithWorkspaceMemberInParticipants = await this.workspaceDataSourceService.executeRawQuery( ` SELECT "calendarEventId" FROM - ${dataSourceSchema}."calendarEventAttendee" "calendarEventAttendee" + ${dataSourceSchema}."calendarEventParticipant" "calendarEventParticipant" WHERE - "calendarEventAttendee"."workspaceMemberId" = $1 + "calendarEventParticipant"."workspaceMemberId" = $1 `, [workspaceMemberId], workspaceId, ); - const calendarEventIdsWithWorkspaceMemberInAttendeesFormatted = - calendarEventIdsWithWorkspaceMemberInAttendees.map( + const calendarEventIdsWithWorkspaceMemberInParticipantsFormatted = + calendarEventIdsWithWorkspaceMemberInParticipants.map( (event: { calendarEventId: string }) => event.calendarEventId, ); const calendarEventIdsToFetchVisibilityFor = timelineCalendarEvents .filter( (event) => - !calendarEventIdsWithWorkspaceMemberInAttendeesFormatted.includes( + !calendarEventIdsWithWorkspaceMemberInParticipantsFormatted.includes( event.id, ), ) diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata.entity.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata.entity.ts index ff01d5533..e21f98fc4 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata.entity.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata.entity.ts @@ -37,7 +37,6 @@ export enum FieldMetadataType { RELATION = 'RELATION', POSITION = 'POSITION', ADDRESS = 'ADDRESS', - JSON = 'JSON', RAW_JSON = 'RAW_JSON', } diff --git a/packages/twenty-server/src/engine/object-metadata-repository/metadata-to-repository.mapping.ts b/packages/twenty-server/src/engine/object-metadata-repository/metadata-to-repository.mapping.ts index 427b432f2..33d7685e9 100644 --- a/packages/twenty-server/src/engine/object-metadata-repository/metadata-to-repository.mapping.ts +++ b/packages/twenty-server/src/engine/object-metadata-repository/metadata-to-repository.mapping.ts @@ -1,6 +1,6 @@ import { CalendarChannelEventAssociationRepository } from 'src/modules/calendar/repositories/calendar-channel-event-association.repository'; import { CalendarChannelRepository } from 'src/modules/calendar/repositories/calendar-channel.repository'; -import { CalendarEventAttendeeRepository } from 'src/modules/calendar/repositories/calendar-event-attendee.repository'; +import { CalendarEventParticipantRepository } from 'src/modules/calendar/repositories/calendar-event-participant.repository'; import { CalendarEventRepository } from 'src/modules/calendar/repositories/calendar-event.repository'; import { CompanyRepository } from 'src/modules/company/repositories/company.repository'; import { BlocklistRepository } from 'src/modules/connected-account/repositories/blocklist.repository'; @@ -19,7 +19,7 @@ export const metadataToRepositoryMapping = { CalendarChannelEventAssociationObjectMetadata: CalendarChannelEventAssociationRepository, CalendarChannelObjectMetadata: CalendarChannelRepository, - CalendarEventAttendeeObjectMetadata: CalendarEventAttendeeRepository, + CalendarEventParticipantObjectMetadata: CalendarEventParticipantRepository, CalendarEventObjectMetadata: CalendarEventRepository, CompanyObjectMetadata: CompanyRepository, ConnectedAccountObjectMetadata: ConnectedAccountRepository, diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids.ts index af7ba6cb5..5f6bb8227 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids.ts @@ -72,7 +72,7 @@ export const calendarChannelStandardFieldIds = { calendarChannelEventAssociations: '20202020-afb0-4a9f-979f-2d5087d71d09', }; -export const calendarEventAttendeeStandardFieldIds = { +export const calendarEventParticipantStandardFieldIds = { calendarEvent: '20202020-fe3a-401c-b889-af4f4657a861', handle: '20202020-8692-4580-8210-9e09cbd031a7', displayName: '20202020-ee1e-4f9f-8ac1-5c0b2f69691e', @@ -97,7 +97,7 @@ export const calendarEventStandardFieldIds = { conferenceLink: '20202020-35da-43ef-9ca0-e936e9dc237b', recurringEventExternalId: '20202020-4b96-43d0-8156-4c7a9717635c', calendarChannelEventAssociations: '20202020-bdf8-4572-a2cc-ecbb6bcc3a02', - eventAttendees: '20202020-e07e-4ccb-88f5-6f3d00458eec', + eventParticipants: '20202020-e07e-4ccb-88f5-6f3d00458eec', }; export const commentStandardFieldIds = { @@ -232,7 +232,7 @@ export const personStandardFieldIds = { favorites: '20202020-4073-4117-9cf1-203bcdc91cbd', attachments: '20202020-cd97-451f-87fa-bcb789bdbf3a', messageParticipants: '20202020-498e-4c61-8158-fa04f0638334', - calendarEventAttendees: '20202020-52ee-45e9-a702-b64b3753e3a9', + calendarEventParticipants: '20202020-52ee-45e9-a702-b64b3753e3a9', events: '20202020-a43e-4873-9c23-e522de906ce5', }; @@ -293,7 +293,7 @@ export const workspaceMemberStandardFieldIds = { connectedAccounts: '20202020-e322-4bde-a525-727079b4a100', messageParticipants: '20202020-8f99-48bc-a5eb-edd33dd54188', blocklist: '20202020-6cb2-4161-9f29-a4b7f1283859', - calendarEventAttendees: '20202020-0dbc-4841-9ce1-3e793b5b3512', + calendarEventParticipants: '20202020-0dbc-4841-9ce1-3e793b5b3512', events: '20202020-e15b-47b8-94fe-8200e3c66615', }; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids.ts index 4c9ba5844..7af744af5 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids.ts @@ -13,7 +13,7 @@ export const standardObjectIds = { blocklist: '20202020-0408-4f38-b8a8-4d5e3e26e24d', calendarChannelEventAssociation: '20202020-491b-4aaa-9825-afd1bae6ae00', calendarChannel: '20202020-e8f2-40e1-a39c-c0e0039c5034', - calendarEventAttendee: '20202020-a1c3-47a6-9732-27e5b1e8436d', + calendarEventParticipant: '20202020-a1c3-47a6-9732-27e5b1e8436d', calendarEvent: '20202020-8f1d-4eef-9f85-0d1965e27221', comment: '20202020-435f-4de9-89b5-97e32233bf5f', company: '20202020-b374-4779-a561-80086cb2e17f', diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/standard-objects/index.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/standard-objects/index.ts index b9aaec347..f0eba612c 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/standard-objects/index.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/standard-objects/index.ts @@ -5,7 +5,7 @@ import { AttachmentObjectMetadata } from 'src/modules/attachment/standard-object import { BlocklistObjectMetadata } from 'src/modules/connected-account/standard-objects/blocklist.object-metadata'; import { CalendarEventObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event.object-metadata'; import { CalendarChannelObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-channel.object-metadata'; -import { CalendarEventAttendeeObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-attendee.object-metadata'; +import { CalendarEventParticipantObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-participant.object-metadata'; import { CommentObjectMetadata } from 'src/modules/activity/standard-objects/comment.object-metadata'; import { CompanyObjectMetadata } from 'src/modules/company/standard-objects/company.object-metadata'; import { ConnectedAccountObjectMetadata } from 'src/modules/connected-account/standard-objects/connected-account.object-metadata'; @@ -53,5 +53,5 @@ export const standardObjectMetadataDefinitions = [ CalendarEventObjectMetadata, CalendarChannelObjectMetadata, CalendarChannelEventAssociationObjectMetadata, - CalendarEventAttendeeObjectMetadata, + CalendarEventParticipantObjectMetadata, ]; diff --git a/packages/twenty-server/src/modules/calendar/repositories/calendar-event-attendee.repository.ts b/packages/twenty-server/src/modules/calendar/repositories/calendar-event-participant.repository.ts similarity index 56% rename from packages/twenty-server/src/modules/calendar/repositories/calendar-event-attendee.repository.ts rename to packages/twenty-server/src/modules/calendar/repositories/calendar-event-participant.repository.ts index 60fabbdea..5e5437ba5 100644 --- a/packages/twenty-server/src/modules/calendar/repositories/calendar-event-attendee.repository.ts +++ b/packages/twenty-server/src/modules/calendar/repositories/calendar-event-participant.repository.ts @@ -5,25 +5,25 @@ import differenceWith from 'lodash.differencewith'; import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; import { ObjectRecord } from 'src/engine/workspace-manager/workspace-sync-metadata/types/object-record'; -import { CalendarEventAttendeeObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-attendee.object-metadata'; +import { CalendarEventParticipantObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-participant.object-metadata'; import { getFlattenedValuesAndValuesStringForBatchRawQuery } from 'src/modules/calendar/utils/getFlattenedValuesAndValuesStringForBatchRawQuery.util'; import { - CalendarEventAttendee, - CalendarEventAttendeeWithId, + CalendarEventParticipant, + CalendarEventParticipantWithId, } from 'src/modules/calendar/types/calendar-event'; @Injectable() -export class CalendarEventAttendeeRepository { +export class CalendarEventParticipantRepository { constructor( private readonly workspaceDataSourceService: WorkspaceDataSourceService, ) {} public async getByIds( - calendarEventAttendeeIds: string[], + calendarEventParticipantIds: string[], workspaceId: string, transactionManager?: EntityManager, - ): Promise[]> { - if (calendarEventAttendeeIds.length === 0) { + ): Promise[]> { + if (calendarEventParticipantIds.length === 0) { return []; } @@ -31,8 +31,8 @@ export class CalendarEventAttendeeRepository { this.workspaceDataSourceService.getSchemaName(workspaceId); return await this.workspaceDataSourceService.executeRawQuery( - `SELECT * FROM ${dataSourceSchema}."calendarEventAttendee" WHERE "id" = ANY($1)`, - [calendarEventAttendeeIds], + `SELECT * FROM ${dataSourceSchema}."calendarEventParticipant" WHERE "id" = ANY($1)`, + [calendarEventParticipantIds], workspaceId, transactionManager, ); @@ -42,7 +42,7 @@ export class CalendarEventAttendeeRepository { calendarEventIds: string[], workspaceId: string, transactionManager?: EntityManager, - ): Promise[]> { + ): Promise[]> { if (calendarEventIds.length === 0) { return []; } @@ -51,7 +51,7 @@ export class CalendarEventAttendeeRepository { this.workspaceDataSourceService.getSchemaName(workspaceId); return await this.workspaceDataSourceService.executeRawQuery( - `SELECT * FROM ${dataSourceSchema}."calendarEventAttendee" WHERE "calendarEventId" = ANY($1)`, + `SELECT * FROM ${dataSourceSchema}."calendarEventParticipant" WHERE "calendarEventId" = ANY($1)`, [calendarEventIds], workspaceId, transactionManager, @@ -59,11 +59,11 @@ export class CalendarEventAttendeeRepository { } public async deleteByIds( - calendarEventAttendeeIds: string[], + calendarEventParticipantIds: string[], workspaceId: string, transactionManager?: EntityManager, ): Promise { - if (calendarEventAttendeeIds.length === 0) { + if (calendarEventParticipantIds.length === 0) { return; } @@ -71,20 +71,20 @@ export class CalendarEventAttendeeRepository { this.workspaceDataSourceService.getSchemaName(workspaceId); await this.workspaceDataSourceService.executeRawQuery( - `DELETE FROM ${dataSourceSchema}."calendarEventAttendee" WHERE "id" = ANY($1)`, - [calendarEventAttendeeIds], + `DELETE FROM ${dataSourceSchema}."calendarEventParticipant" WHERE "id" = ANY($1)`, + [calendarEventParticipantIds], workspaceId, transactionManager, ); } - public async updateCalendarEventAttendees( - calendarEventAttendees: CalendarEventAttendee[], + public async updateCalendarEventParticipants( + calendarEventParticipants: CalendarEventParticipant[], iCalUIDCalendarEventIdMap: Map, workspaceId: string, transactionManager?: EntityManager, ): Promise { - if (calendarEventAttendees.length === 0) { + if (calendarEventParticipants.length === 0) { return; } @@ -93,33 +93,36 @@ export class CalendarEventAttendeeRepository { const calendarEventIds = Array.from(iCalUIDCalendarEventIdMap.values()); - const existingCalendarEventAttendees = await this.getByCalendarEventIds( + const existingCalendarEventParticipants = await this.getByCalendarEventIds( calendarEventIds, workspaceId, transactionManager, ); - const calendarEventAttendeesToDelete = differenceWith( - existingCalendarEventAttendees, - calendarEventAttendees, - (existingCalendarEventAttendee, calendarEventAttendee) => - existingCalendarEventAttendee.handle === calendarEventAttendee.handle, + const calendarEventParticipantsToDelete = differenceWith( + existingCalendarEventParticipants, + calendarEventParticipants, + (existingCalendarEventParticipant, calendarEventParticipant) => + existingCalendarEventParticipant.handle === + calendarEventParticipant.handle, ); await this.deleteByIds( - calendarEventAttendeesToDelete.map( - (calendarEventAttendee) => calendarEventAttendee.id, + calendarEventParticipantsToDelete.map( + (calendarEventParticipant) => calendarEventParticipant.id, ), workspaceId, transactionManager, ); - const values = calendarEventAttendees.map((calendarEventAttendee) => ({ - ...calendarEventAttendee, - calendarEventId: iCalUIDCalendarEventIdMap.get( - calendarEventAttendee.iCalUID, - ), - })); + const values = calendarEventParticipants.map( + (calendarEventParticipant) => ({ + ...calendarEventParticipant, + calendarEventId: iCalUIDCalendarEventIdMap.get( + calendarEventParticipant.iCalUID, + ), + }), + ); const { flattenedValues, valuesString } = getFlattenedValuesAndValuesStringForBatchRawQuery(values, { @@ -127,17 +130,17 @@ export class CalendarEventAttendeeRepository { handle: 'text', displayName: 'text', isOrganizer: 'boolean', - responseStatus: `${dataSourceSchema}."calendarEventAttendee_responsestatus_enum"`, + responseStatus: `${dataSourceSchema}."calendarEventParticipant_responsestatus_enum"`, }); await this.workspaceDataSourceService.executeRawQuery( - `UPDATE ${dataSourceSchema}."calendarEventAttendee" AS "calendarEventAttendee" + `UPDATE ${dataSourceSchema}."calendarEventParticipant" AS "calendarEventParticipant" SET "displayName" = "newValues"."displayName", "isOrganizer" = "newValues"."isOrganizer", "responseStatus" = "newValues"."responseStatus" FROM (VALUES ${valuesString}) AS "newValues"("calendarEventId", "handle", "displayName", "isOrganizer", "responseStatus") - WHERE "calendarEventAttendee"."handle" = "newValues"."handle" - AND "calendarEventAttendee"."calendarEventId" = "newValues"."calendarEventId"`, + WHERE "calendarEventParticipant"."handle" = "newValues"."handle" + AND "calendarEventParticipant"."calendarEventId" = "newValues"."calendarEventId"`, flattenedValues, workspaceId, transactionManager, @@ -147,7 +150,7 @@ export class CalendarEventAttendeeRepository { public async getWithoutPersonIdAndWorkspaceMemberId( workspaceId: string, transactionManager?: EntityManager, - ): Promise { + ): Promise { if (!workspaceId) { throw new Error('WorkspaceId is required'); } @@ -155,17 +158,17 @@ export class CalendarEventAttendeeRepository { const dataSourceSchema = this.workspaceDataSourceService.getSchemaName(workspaceId); - const calendarEventAttendees: CalendarEventAttendeeWithId[] = + const calendarEventParticipants: CalendarEventParticipantWithId[] = await this.workspaceDataSourceService.executeRawQuery( - `SELECT "calendarEventAttendee".* - FROM ${dataSourceSchema}."calendarEventAttendee" AS "calendarEventAttendee" - WHERE "calendarEventAttendee"."personId" IS NULL - AND "calendarEventAttendee"."workspaceMemberId" IS NULL`, + `SELECT "calendarEventParticipant".* + FROM ${dataSourceSchema}."calendarEventParticipant" AS "calendarEventParticipant" + WHERE "calendarEventParticipant"."personId" IS NULL + AND "calendarEventParticipant"."workspaceMemberId" IS NULL`, [], workspaceId, transactionManager, ); - return calendarEventAttendees; + return calendarEventParticipants; } } diff --git a/packages/twenty-server/src/modules/calendar/repositories/calendar-event.repository.ts b/packages/twenty-server/src/modules/calendar/repositories/calendar-event.repository.ts index cf8b22949..6f70ff19e 100644 --- a/packages/twenty-server/src/modules/calendar/repositories/calendar-event.repository.ts +++ b/packages/twenty-server/src/modules/calendar/repositories/calendar-event.repository.ts @@ -7,7 +7,7 @@ import { ObjectRecord } from 'src/engine/workspace-manager/workspace-sync-metada import { CalendarEventObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event.object-metadata'; import { getFlattenedValuesAndValuesStringForBatchRawQuery } from 'src/modules/calendar/utils/getFlattenedValuesAndValuesStringForBatchRawQuery.util'; import { CalendarEvent } from 'src/modules/calendar/types/calendar-event'; -import { CalendarEventAttendeeObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-attendee.object-metadata'; +import { CalendarEventParticipantObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-participant.object-metadata'; @Injectable() export class CalendarEventRepository { @@ -60,7 +60,7 @@ export class CalendarEventRepository { offset: number, workspaceId: string, transactionManager?: EntityManager, - ): Promise[]> { + ): Promise[]> { const dataSourceSchema = this.workspaceDataSourceService.getSchemaName(workspaceId); diff --git a/packages/twenty-server/src/modules/calendar/services/calendar-event-attendee/calendar-event-attendee.module.ts b/packages/twenty-server/src/modules/calendar/services/calendar-event-participant/calendar-event-participant.module.ts similarity index 71% rename from packages/twenty-server/src/modules/calendar/services/calendar-event-attendee/calendar-event-attendee.module.ts rename to packages/twenty-server/src/modules/calendar/services/calendar-event-participant/calendar-event-participant.module.ts index 64385028f..785826ff1 100644 --- a/packages/twenty-server/src/modules/calendar/services/calendar-event-attendee/calendar-event-attendee.module.ts +++ b/packages/twenty-server/src/modules/calendar/services/calendar-event-participant/calendar-event-participant.module.ts @@ -2,7 +2,7 @@ import { Module } from '@nestjs/common'; import { ObjectMetadataRepositoryModule } from 'src/engine/object-metadata-repository/object-metadata-repository.module'; import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; -import { CalendarEventAttendeeService } from 'src/modules/calendar/services/calendar-event-attendee/calendar-event-attendee.service'; +import { CalendarEventParticipantService } from 'src/modules/calendar/services/calendar-event-participant/calendar-event-participant.service'; import { AddPersonIdAndWorkspaceMemberIdModule } from 'src/modules/connected-account/services/add-person-id-and-workspace-member-id/add-person-id-and-workspace-member-id.module'; import { PersonObjectMetadata } from 'src/modules/person/standard-objects/person.object-metadata'; @@ -12,7 +12,7 @@ import { PersonObjectMetadata } from 'src/modules/person/standard-objects/person ObjectMetadataRepositoryModule.forFeature([PersonObjectMetadata]), AddPersonIdAndWorkspaceMemberIdModule, ], - providers: [CalendarEventAttendeeService], - exports: [CalendarEventAttendeeService], + providers: [CalendarEventParticipantService], + exports: [CalendarEventParticipantService], }) -export class CalendarEventAttendeeModule {} +export class CalendarEventParticipantModule {} diff --git a/packages/twenty-server/src/modules/calendar/services/calendar-event-attendee/calendar-event-attendee.service.ts b/packages/twenty-server/src/modules/calendar/services/calendar-event-participant/calendar-event-participant.service.ts similarity index 63% rename from packages/twenty-server/src/modules/calendar/services/calendar-event-attendee/calendar-event-attendee.service.ts rename to packages/twenty-server/src/modules/calendar/services/calendar-event-participant/calendar-event-participant.service.ts index 6a5c0f3e2..c840eea8c 100644 --- a/packages/twenty-server/src/modules/calendar/services/calendar-event-attendee/calendar-event-attendee.service.ts +++ b/packages/twenty-server/src/modules/calendar/services/calendar-event-participant/calendar-event-participant.service.ts @@ -8,13 +8,13 @@ import { PersonObjectMetadata } from 'src/modules/person/standard-objects/person import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; import { getFlattenedValuesAndValuesStringForBatchRawQuery } from 'src/modules/calendar/utils/getFlattenedValuesAndValuesStringForBatchRawQuery.util'; import { - CalendarEventAttendee, - CalendarEventAttendeeWithId, + CalendarEventParticipant, + CalendarEventParticipantWithId, } from 'src/modules/calendar/types/calendar-event'; import { AddPersonIdAndWorkspaceMemberIdService } from 'src/modules/connected-account/services/add-person-id-and-workspace-member-id/add-person-id-and-workspace-member-id.service'; @Injectable() -export class CalendarEventAttendeeService { +export class CalendarEventParticipantService { constructor( private readonly workspaceDataSourceService: WorkspaceDataSourceService, @InjectObjectMetadataRepository(PersonObjectMetadata) @@ -22,36 +22,38 @@ export class CalendarEventAttendeeService { private readonly addPersonIdAndWorkspaceMemberIdService: AddPersonIdAndWorkspaceMemberIdService, ) {} - public async updateCalendarEventAttendeesAfterContactCreation( - attendees: CalendarEventAttendeeWithId[], + public async updateCalendarEventParticipantsAfterContactCreation( + participants: CalendarEventParticipantWithId[], workspaceId: string, transactionManager?: EntityManager, ): Promise { - if (!attendees) return; + if (!participants) return; const dataSourceSchema = this.workspaceDataSourceService.getSchemaName(workspaceId); - const handles = attendees.map((attendee) => attendee.handle); + const handles = participants.map((participant) => participant.handle); - const attendeePersonIds = await this.personRepository.getByEmails( + const participantPersonIds = await this.personRepository.getByEmails( handles, workspaceId, transactionManager, ); - const calendarEventAttendeesToUpdate = attendees.map((attendee) => ({ - id: attendee.id, - personId: attendeePersonIds.find( - (e: { id: string; email: string }) => e.email === attendee.handle, - )?.id, - })); + const calendarEventParticipantsToUpdate = participants.map( + (participant) => ({ + id: participant.id, + personId: participantPersonIds.find( + (e: { id: string; email: string }) => e.email === participant.handle, + )?.id, + }), + ); - if (calendarEventAttendeesToUpdate.length === 0) return; + if (calendarEventParticipantsToUpdate.length === 0) return; const { flattenedValues, valuesString } = getFlattenedValuesAndValuesStringForBatchRawQuery( - calendarEventAttendeesToUpdate, + calendarEventParticipantsToUpdate, { id: 'uuid', personId: 'uuid', @@ -59,50 +61,50 @@ export class CalendarEventAttendeeService { ); await this.workspaceDataSourceService.executeRawQuery( - `UPDATE ${dataSourceSchema}."calendarEventAttendee" AS "calendarEventAttendee" SET "personId" = "data"."personId" + `UPDATE ${dataSourceSchema}."calendarEventParticipant" AS "calendarEventParticipant" SET "personId" = "data"."personId" FROM (VALUES ${valuesString}) AS "data"("id", "personId") - WHERE "calendarEventAttendee"."id" = "data"."id"`, + WHERE "calendarEventParticipant"."id" = "data"."id"`, flattenedValues, workspaceId, transactionManager, ); } - public async saveCalendarEventAttendees( - calendarEventAttendees: CalendarEventAttendee[], + public async saveCalendarEventParticipants( + calendarEventParticipants: CalendarEventParticipant[], workspaceId: string, transactionManager?: EntityManager, ): Promise { - if (calendarEventAttendees.length === 0) { + if (calendarEventParticipants.length === 0) { return; } const dataSourceSchema = this.workspaceDataSourceService.getSchemaName(workspaceId); - const calendarEventAttendeesToSave = + const calendarEventParticipantsToSave = await this.addPersonIdAndWorkspaceMemberIdService.addPersonIdAndWorkspaceMemberId( - calendarEventAttendees, + calendarEventParticipants, workspaceId, transactionManager, ); const { flattenedValues, valuesString } = getFlattenedValuesAndValuesStringForBatchRawQuery( - calendarEventAttendeesToSave, + calendarEventParticipantsToSave, { calendarEventId: 'uuid', handle: 'text', displayName: 'text', isOrganizer: 'boolean', - responseStatus: `${dataSourceSchema}."calendarEventAttendee_responsestatus_enum"`, + responseStatus: `${dataSourceSchema}."calendarEventParticipant_responsestatus_enum"`, personId: 'uuid', workspaceMemberId: 'uuid', }, ); await this.workspaceDataSourceService.executeRawQuery( - `INSERT INTO ${dataSourceSchema}."calendarEventAttendee" ("calendarEventId", "handle", "displayName", "isOrganizer", "responseStatus", "personId", "workspaceMemberId") VALUES ${valuesString}`, + `INSERT INTO ${dataSourceSchema}."calendarEventParticipant" ("calendarEventId", "handle", "displayName", "isOrganizer", "responseStatus", "personId", "workspaceMemberId") VALUES ${valuesString}`, flattenedValues, workspaceId, transactionManager, diff --git a/packages/twenty-server/src/modules/calendar/services/google-calendar-full-sync.module.ts b/packages/twenty-server/src/modules/calendar/services/google-calendar-full-sync.module.ts index 6b65263ed..32c5f0ea9 100644 --- a/packages/twenty-server/src/modules/calendar/services/google-calendar-full-sync.module.ts +++ b/packages/twenty-server/src/modules/calendar/services/google-calendar-full-sync.module.ts @@ -4,12 +4,12 @@ import { TypeOrmModule } from '@nestjs/typeorm'; import { FeatureFlagEntity } from 'src/engine/core-modules/feature-flag/feature-flag.entity'; import { ObjectMetadataRepositoryModule } from 'src/engine/object-metadata-repository/object-metadata-repository.module'; import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; -import { CalendarEventAttendeeModule } from 'src/modules/calendar/services/calendar-event-attendee/calendar-event-attendee.module'; +import { CalendarEventParticipantModule } from 'src/modules/calendar/services/calendar-event-participant/calendar-event-participant.module'; import { GoogleCalendarFullSyncService } from 'src/modules/calendar/services/google-calendar-full-sync.service'; import { CalendarProvidersModule } from 'src/modules/calendar/services/providers/calendar-providers.module'; import { CalendarChannelEventAssociationObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-channel-event-association.object-metadata'; import { CalendarChannelObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-channel.object-metadata'; -import { CalendarEventAttendeeObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-attendee.object-metadata'; +import { CalendarEventParticipantObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-participant.object-metadata'; import { CalendarEventObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event.object-metadata'; import { BlocklistObjectMetadata } from 'src/modules/connected-account/standard-objects/blocklist.object-metadata'; import { ConnectedAccountObjectMetadata } from 'src/modules/connected-account/standard-objects/connected-account.object-metadata'; @@ -24,12 +24,12 @@ import { WorkspaceMemberObjectMetadata } from 'src/modules/workspace-member/stan CalendarEventObjectMetadata, CalendarChannelObjectMetadata, CalendarChannelEventAssociationObjectMetadata, - CalendarEventAttendeeObjectMetadata, + CalendarEventParticipantObjectMetadata, BlocklistObjectMetadata, PersonObjectMetadata, WorkspaceMemberObjectMetadata, ]), - CalendarEventAttendeeModule, + CalendarEventParticipantModule, TypeOrmModule.forFeature([FeatureFlagEntity], 'core'), WorkspaceDataSourceModule, ], diff --git a/packages/twenty-server/src/modules/calendar/services/google-calendar-full-sync.service.ts b/packages/twenty-server/src/modules/calendar/services/google-calendar-full-sync.service.ts index 1d7313726..d845a39da 100644 --- a/packages/twenty-server/src/modules/calendar/services/google-calendar-full-sync.service.ts +++ b/packages/twenty-server/src/modules/calendar/services/google-calendar-full-sync.service.ts @@ -20,15 +20,15 @@ import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/work import { CalendarEventRepository } from 'src/modules/calendar/repositories/calendar-event.repository'; import { formatGoogleCalendarEvent } from 'src/modules/calendar/utils/format-google-calendar-event.util'; import { GoogleCalendarFullSyncJobData } from 'src/modules/calendar/jobs/google-calendar-full-sync.job'; -import { CalendarEventAttendeeRepository } from 'src/modules/calendar/repositories/calendar-event-attendee.repository'; +import { CalendarEventParticipantRepository } from 'src/modules/calendar/repositories/calendar-event-participant.repository'; import { ConnectedAccountObjectMetadata } from 'src/modules/connected-account/standard-objects/connected-account.object-metadata'; import { InjectObjectMetadataRepository } from 'src/engine/object-metadata-repository/object-metadata-repository.decorator'; import { CalendarEventObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event.object-metadata'; import { CalendarChannelObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-channel.object-metadata'; import { CalendarChannelEventAssociationObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-channel-event-association.object-metadata'; -import { CalendarEventAttendeeObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-attendee.object-metadata'; +import { CalendarEventParticipantObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-participant.object-metadata'; import { BlocklistObjectMetadata } from 'src/modules/connected-account/standard-objects/blocklist.object-metadata'; -import { CalendarEventAttendeeService } from 'src/modules/calendar/services/calendar-event-attendee/calendar-event-attendee.service'; +import { CalendarEventParticipantService } from 'src/modules/calendar/services/calendar-event-participant/calendar-event-participant.service'; @Injectable() export class GoogleCalendarFullSyncService { @@ -48,15 +48,15 @@ export class GoogleCalendarFullSyncService { CalendarChannelEventAssociationObjectMetadata, ) private readonly calendarChannelEventAssociationRepository: CalendarChannelEventAssociationRepository, - @InjectObjectMetadataRepository(CalendarEventAttendeeObjectMetadata) - private readonly calendarEventAttendeesRepository: CalendarEventAttendeeRepository, + @InjectObjectMetadataRepository(CalendarEventParticipantObjectMetadata) + private readonly calendarEventParticipantsRepository: CalendarEventParticipantRepository, @InjectObjectMetadataRepository(BlocklistObjectMetadata) private readonly blocklistRepository: BlocklistRepository, @InjectRepository(FeatureFlagEntity, 'core') private readonly featureFlagRepository: Repository, private readonly workspaceDataSourceService: WorkspaceDataSourceService, private readonly eventEmitter: EventEmitter2, - private readonly calendarEventAttendeesService: CalendarEventAttendeeService, + private readonly calendarEventParticipantsService: CalendarEventParticipantService, ) {} public async startGoogleCalendarFullSync( @@ -197,10 +197,12 @@ export class GoogleCalendarFullSyncService { }), ); - const attendeesToSave = eventsToSave.flatMap((event) => event.attendees); + const participantsToSave = eventsToSave.flatMap( + (event) => event.participants, + ); - const attendeesToUpdate = eventsToUpdate.flatMap( - (event) => event.attendees, + const participantsToUpdate = eventsToUpdate.flatMap( + (event) => event.participants, ); const iCalUIDCalendarEventIdMap = @@ -267,8 +269,8 @@ export class GoogleCalendarFullSyncService { startTime = Date.now(); - await this.calendarEventAttendeesService.saveCalendarEventAttendees( - attendeesToSave, + await this.calendarEventParticipantsService.saveCalendarEventParticipants( + participantsToSave, workspaceId, transactionManager, ); @@ -276,15 +278,15 @@ export class GoogleCalendarFullSyncService { endTime = Date.now(); this.logger.log( - `google calendar full-sync for workspace ${workspaceId} and account ${connectedAccountId}: saving attendees in ${ + `google calendar full-sync for workspace ${workspaceId} and account ${connectedAccountId}: saving participants in ${ endTime - startTime }ms.`, ); startTime = Date.now(); - await this.calendarEventAttendeesRepository.updateCalendarEventAttendees( - attendeesToUpdate, + await this.calendarEventParticipantsRepository.updateCalendarEventParticipants( + participantsToUpdate, iCalUIDCalendarEventIdMap, workspaceId, transactionManager, @@ -293,14 +295,14 @@ export class GoogleCalendarFullSyncService { endTime = Date.now(); this.logger.log( - `google calendar full-sync for workspace ${workspaceId} and account ${connectedAccountId}: updating attendees in ${ + `google calendar full-sync for workspace ${workspaceId} and account ${connectedAccountId}: updating participants in ${ endTime - startTime }ms.`, ); }); if (calendarChannel.isContactAutoCreationEnabled) { - const contactsToCreate = attendeesToSave; + const contactsToCreate = participantsToSave; this.eventEmitter.emit(`createContacts`, { workspaceId, diff --git a/packages/twenty-server/src/modules/calendar/standard-objects/calendar-event-attendee.object-metadata.ts b/packages/twenty-server/src/modules/calendar/standard-objects/calendar-event-participant.object-metadata.ts similarity index 70% rename from packages/twenty-server/src/modules/calendar/standard-objects/calendar-event-attendee.object-metadata.ts rename to packages/twenty-server/src/modules/calendar/standard-objects/calendar-event-participant.object-metadata.ts index bc9ed11a3..7de170d9f 100644 --- a/packages/twenty-server/src/modules/calendar/standard-objects/calendar-event-attendee.object-metadata.ts +++ b/packages/twenty-server/src/modules/calendar/standard-objects/calendar-event-participant.object-metadata.ts @@ -1,5 +1,5 @@ import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity'; -import { calendarEventAttendeeStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { calendarEventParticipantStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; import { Gate } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/gate.decorator'; @@ -11,7 +11,7 @@ import { CalendarEventObjectMetadata } from 'src/modules/calendar/standard-objec import { PersonObjectMetadata } from 'src/modules/person/standard-objects/person.object-metadata'; import { WorkspaceMemberObjectMetadata } from 'src/modules/workspace-member/standard-objects/workspace-member.object-metadata'; -export enum CalendarEventAttendeeResponseStatus { +export enum CalendarEventParticipantResponseStatus { NEEDS_ACTION = 'NEEDS_ACTION', DECLINED = 'DECLINED', TENTATIVE = 'TENTATIVE', @@ -19,20 +19,20 @@ export enum CalendarEventAttendeeResponseStatus { } @ObjectMetadata({ - standardId: standardObjectIds.calendarEventAttendee, - namePlural: 'calendarEventAttendees', - labelSingular: 'Calendar event attendee', - labelPlural: 'Calendar event attendees', - description: 'Calendar event attendees', + standardId: standardObjectIds.calendarEventParticipant, + namePlural: 'calendarEventParticipants', + labelSingular: 'Calendar event participant', + labelPlural: 'Calendar event participants', + description: 'Calendar event participants', icon: 'IconCalendar', }) @IsSystem() @Gate({ featureFlag: 'IS_CALENDAR_ENABLED', }) -export class CalendarEventAttendeeObjectMetadata extends BaseObjectMetadata { +export class CalendarEventParticipantObjectMetadata extends BaseObjectMetadata { @FieldMetadata({ - standardId: calendarEventAttendeeStandardFieldIds.calendarEvent, + standardId: calendarEventParticipantStandardFieldIds.calendarEvent, type: FieldMetadataType.RELATION, label: 'Event ID', description: 'Event ID', @@ -42,7 +42,7 @@ export class CalendarEventAttendeeObjectMetadata extends BaseObjectMetadata { calendarEvent: CalendarEventObjectMetadata; @FieldMetadata({ - standardId: calendarEventAttendeeStandardFieldIds.handle, + standardId: calendarEventParticipantStandardFieldIds.handle, type: FieldMetadataType.TEXT, label: 'Handle', description: 'Handle', @@ -51,7 +51,7 @@ export class CalendarEventAttendeeObjectMetadata extends BaseObjectMetadata { handle: string; @FieldMetadata({ - standardId: calendarEventAttendeeStandardFieldIds.displayName, + standardId: calendarEventParticipantStandardFieldIds.displayName, type: FieldMetadataType.TEXT, label: 'Display Name', description: 'Display Name', @@ -60,7 +60,7 @@ export class CalendarEventAttendeeObjectMetadata extends BaseObjectMetadata { displayName: string; @FieldMetadata({ - standardId: calendarEventAttendeeStandardFieldIds.isOrganizer, + standardId: calendarEventParticipantStandardFieldIds.isOrganizer, type: FieldMetadataType.BOOLEAN, label: 'Is Organizer', description: 'Is Organizer', @@ -70,43 +70,43 @@ export class CalendarEventAttendeeObjectMetadata extends BaseObjectMetadata { isOrganizer: boolean; @FieldMetadata({ - standardId: calendarEventAttendeeStandardFieldIds.responseStatus, + standardId: calendarEventParticipantStandardFieldIds.responseStatus, type: FieldMetadataType.SELECT, label: 'Response Status', description: 'Response Status', icon: 'IconUser', options: [ { - value: CalendarEventAttendeeResponseStatus.NEEDS_ACTION, + value: CalendarEventParticipantResponseStatus.NEEDS_ACTION, label: 'Needs Action', position: 0, color: 'orange', }, { - value: CalendarEventAttendeeResponseStatus.DECLINED, + value: CalendarEventParticipantResponseStatus.DECLINED, label: 'Declined', position: 1, color: 'red', }, { - value: CalendarEventAttendeeResponseStatus.TENTATIVE, + value: CalendarEventParticipantResponseStatus.TENTATIVE, label: 'Tentative', position: 2, color: 'yellow', }, { - value: CalendarEventAttendeeResponseStatus.ACCEPTED, + value: CalendarEventParticipantResponseStatus.ACCEPTED, label: 'Accepted', position: 3, color: 'green', }, ], - defaultValue: `'${CalendarEventAttendeeResponseStatus.NEEDS_ACTION}'`, + defaultValue: `'${CalendarEventParticipantResponseStatus.NEEDS_ACTION}'`, }) responseStatus: string; @FieldMetadata({ - standardId: calendarEventAttendeeStandardFieldIds.person, + standardId: calendarEventParticipantStandardFieldIds.person, type: FieldMetadataType.RELATION, label: 'Person', description: 'Person', @@ -117,7 +117,7 @@ export class CalendarEventAttendeeObjectMetadata extends BaseObjectMetadata { person: PersonObjectMetadata; @FieldMetadata({ - standardId: calendarEventAttendeeStandardFieldIds.workspaceMember, + standardId: calendarEventParticipantStandardFieldIds.workspaceMember, type: FieldMetadataType.RELATION, label: 'Workspace Member', description: 'Workspace Member', diff --git a/packages/twenty-server/src/modules/calendar/standard-objects/calendar-event.object-metadata.ts b/packages/twenty-server/src/modules/calendar/standard-objects/calendar-event.object-metadata.ts index a940157f4..95382121d 100644 --- a/packages/twenty-server/src/modules/calendar/standard-objects/calendar-event.object-metadata.ts +++ b/packages/twenty-server/src/modules/calendar/standard-objects/calendar-event.object-metadata.ts @@ -11,7 +11,7 @@ import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/d import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; import { CalendarChannelEventAssociationObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-channel-event-association.object-metadata'; -import { CalendarEventAttendeeObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-attendee.object-metadata'; +import { CalendarEventParticipantObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-participant.object-metadata'; import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; import { calendarEventStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; @@ -171,16 +171,16 @@ export class CalendarEventObjectMetadata extends BaseObjectMetadata { calendarChannelEventAssociations: CalendarChannelEventAssociationObjectMetadata[]; @FieldMetadata({ - standardId: calendarEventStandardFieldIds.eventAttendees, + standardId: calendarEventStandardFieldIds.eventParticipants, type: FieldMetadataType.RELATION, - label: 'Event Attendees', - description: 'Event Attendees', + label: 'Event Participants', + description: 'Event Participants', icon: 'IconUserCircle', }) @RelationMetadata({ type: RelationMetadataType.ONE_TO_MANY, - inverseSideTarget: () => CalendarEventAttendeeObjectMetadata, + inverseSideTarget: () => CalendarEventParticipantObjectMetadata, onDelete: RelationOnDeleteAction.CASCADE, }) - eventAttendees: CalendarEventAttendeeObjectMetadata[]; + eventParticipants: CalendarEventParticipantObjectMetadata[]; } diff --git a/packages/twenty-server/src/modules/calendar/types/calendar-event.ts b/packages/twenty-server/src/modules/calendar/types/calendar-event.ts index 6b8a9363a..21a7f8433 100644 --- a/packages/twenty-server/src/modules/calendar/types/calendar-event.ts +++ b/packages/twenty-server/src/modules/calendar/types/calendar-event.ts @@ -1,4 +1,4 @@ -import { CalendarEventAttendeeObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-attendee.object-metadata'; +import { CalendarEventParticipantObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-participant.object-metadata'; import { CalendarEventObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event.object-metadata'; import { ObjectRecord } from 'src/engine/workspace-manager/workspace-sync-metadata/types/object-record'; @@ -7,16 +7,16 @@ export type CalendarEvent = Omit< | 'createdAt' | 'updatedAt' | 'calendarChannelEventAssociations' - | 'calendarEventAttendees' - | 'eventAttendees' + | 'calendarEventParticipants' + | 'eventParticipants' | 'conferenceLink' > & { conferenceLinkLabel: string; conferenceLinkUrl: string; }; -export type CalendarEventAttendee = Omit< - ObjectRecord, +export type CalendarEventParticipant = Omit< + ObjectRecord, | 'id' | 'createdAt' | 'updatedAt' @@ -29,11 +29,11 @@ export type CalendarEventAttendee = Omit< iCalUID: string; }; -export type CalendarEventWithAttendees = CalendarEvent & { +export type CalendarEventWithParticipants = CalendarEvent & { externalId: string; - attendees: CalendarEventAttendee[]; + participants: CalendarEventParticipant[]; }; -export type CalendarEventAttendeeWithId = CalendarEventAttendee & { +export type CalendarEventParticipantWithId = CalendarEventParticipant & { id: string; }; diff --git a/packages/twenty-server/src/modules/calendar/utils/format-google-calendar-event.util.ts b/packages/twenty-server/src/modules/calendar/utils/format-google-calendar-event.util.ts index f23fc9ac7..0d96e7819 100644 --- a/packages/twenty-server/src/modules/calendar/utils/format-google-calendar-event.util.ts +++ b/packages/twenty-server/src/modules/calendar/utils/format-google-calendar-event.util.ts @@ -1,24 +1,24 @@ import { calendar_v3 } from 'googleapis'; import { v4 } from 'uuid'; -import { CalendarEventWithAttendees } from 'src/modules/calendar/types/calendar-event'; -import { CalendarEventAttendeeResponseStatus } from 'src/modules/calendar/standard-objects/calendar-event-attendee.object-metadata'; +import { CalendarEventParticipantResponseStatus } from 'src/modules/calendar/standard-objects/calendar-event-participant.object-metadata'; +import { CalendarEventWithParticipants } from 'src/modules/calendar/types/calendar-event'; export const formatGoogleCalendarEvent = ( event: calendar_v3.Schema$Event, -): CalendarEventWithAttendees => { +): CalendarEventWithParticipants => { const id = v4(); const formatResponseStatus = (status: string | null | undefined) => { switch (status) { case 'accepted': - return CalendarEventAttendeeResponseStatus.ACCEPTED; + return CalendarEventParticipantResponseStatus.ACCEPTED; case 'declined': - return CalendarEventAttendeeResponseStatus.DECLINED; + return CalendarEventParticipantResponseStatus.DECLINED; case 'tentative': - return CalendarEventAttendeeResponseStatus.TENTATIVE; + return CalendarEventParticipantResponseStatus.TENTATIVE; default: - return CalendarEventAttendeeResponseStatus.NEEDS_ACTION; + return CalendarEventParticipantResponseStatus.NEEDS_ACTION; } }; @@ -40,7 +40,7 @@ export const formatGoogleCalendarEvent = ( conferenceLinkLabel: event.conferenceData?.entryPoints?.[0]?.uri ?? '', conferenceLinkUrl: event.conferenceData?.entryPoints?.[0]?.uri ?? '', recurringEventExternalId: event.recurringEventId ?? '', - attendees: + participants: event.attendees?.map((attendee) => ({ calendarEventId: id, iCalUID: event.iCalUID ?? '', diff --git a/packages/twenty-server/src/modules/connected-account/auto-companies-and-contacts-creation/auto-companies-and-contacts-creation.module.ts b/packages/twenty-server/src/modules/connected-account/auto-companies-and-contacts-creation/auto-companies-and-contacts-creation.module.ts index fa6206a39..64a5d5b3e 100644 --- a/packages/twenty-server/src/modules/connected-account/auto-companies-and-contacts-creation/auto-companies-and-contacts-creation.module.ts +++ b/packages/twenty-server/src/modules/connected-account/auto-companies-and-contacts-creation/auto-companies-and-contacts-creation.module.ts @@ -9,8 +9,8 @@ import { WorkspaceMemberObjectMetadata } from 'src/modules/workspace-member/stan import { MessageParticipantModule } from 'src/modules/messaging/services/message-participant/message-participant.module'; import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; import { CreateCompanyAndContactListener } from 'src/modules/connected-account/auto-companies-and-contacts-creation/listeners/create-company-and-contact.listener'; -import { CalendarEventAttendeeObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-attendee.object-metadata'; -import { CalendarEventAttendeeModule } from 'src/modules/calendar/services/calendar-event-attendee/calendar-event-attendee.module'; +import { CalendarEventParticipantObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-participant.object-metadata'; +import { CalendarEventParticipantModule } from 'src/modules/calendar/services/calendar-event-participant/calendar-event-participant.module'; @Module({ imports: [ @@ -19,11 +19,11 @@ import { CalendarEventAttendeeModule } from 'src/modules/calendar/services/calen ObjectMetadataRepositoryModule.forFeature([ PersonObjectMetadata, WorkspaceMemberObjectMetadata, - CalendarEventAttendeeObjectMetadata, + CalendarEventParticipantObjectMetadata, ]), MessageParticipantModule, WorkspaceDataSourceModule, - CalendarEventAttendeeModule, + CalendarEventParticipantModule, ], providers: [CreateCompanyAndContactService, CreateCompanyAndContactListener], exports: [CreateCompanyAndContactService], diff --git a/packages/twenty-server/src/modules/connected-account/auto-companies-and-contacts-creation/services/create-company-and-contact.service.ts b/packages/twenty-server/src/modules/connected-account/auto-companies-and-contacts-creation/services/create-company-and-contact.service.ts index cfce5432e..09a4bc473 100644 --- a/packages/twenty-server/src/modules/connected-account/auto-companies-and-contacts-creation/services/create-company-and-contact.service.ts +++ b/packages/twenty-server/src/modules/connected-account/auto-companies-and-contacts-creation/services/create-company-and-contact.service.ts @@ -18,9 +18,9 @@ import { MessageParticipantRepository } from 'src/modules/messaging/repositories import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; import { MessageParticipantService } from 'src/modules/messaging/services/message-participant/message-participant.service'; import { MessageParticipantObjectMetadata } from 'src/modules/messaging/standard-objects/message-participant.object-metadata'; -import { CalendarEventAttendeeService } from 'src/modules/calendar/services/calendar-event-attendee/calendar-event-attendee.service'; -import { CalendarEventAttendeeRepository } from 'src/modules/calendar/repositories/calendar-event-attendee.repository'; -import { CalendarEventAttendeeObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-attendee.object-metadata'; +import { CalendarEventParticipantService } from 'src/modules/calendar/services/calendar-event-participant/calendar-event-participant.service'; +import { CalendarEventParticipantRepository } from 'src/modules/calendar/repositories/calendar-event-participant.repository'; +import { CalendarEventParticipantObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-participant.object-metadata'; import { filterOutContactsFromCompanyOrWorkspace } from 'src/modules/connected-account/auto-companies-and-contacts-creation/utils/filter-out-contacts-from-company-or-workspace.util'; @Injectable() @@ -36,9 +36,9 @@ export class CreateCompanyAndContactService { private readonly messageParticipantRepository: MessageParticipantRepository, private readonly workspaceDataSourceService: WorkspaceDataSourceService, private readonly messageParticipantService: MessageParticipantService, - @InjectObjectMetadataRepository(CalendarEventAttendeeObjectMetadata) - private readonly calendarEventAttendeeRepository: CalendarEventAttendeeRepository, - private readonly calendarEventAttendeeService: CalendarEventAttendeeService, + @InjectObjectMetadataRepository(CalendarEventParticipantObjectMetadata) + private readonly calendarEventParticipantRepository: CalendarEventParticipantRepository, + private readonly calendarEventParticipantService: CalendarEventParticipantService, ) {} async createCompaniesAndContacts( @@ -162,14 +162,14 @@ export class CreateCompanyAndContactService { transactionManager, ); - const calendarEventAttendeesWithoutPersonIdAndWorkspaceMemberId = - await this.calendarEventAttendeeRepository.getWithoutPersonIdAndWorkspaceMemberId( + const calendarEventParticipantsWithoutPersonIdAndWorkspaceMemberId = + await this.calendarEventParticipantRepository.getWithoutPersonIdAndWorkspaceMemberId( workspaceId, transactionManager, ); - await this.calendarEventAttendeeService.updateCalendarEventAttendeesAfterContactCreation( - calendarEventAttendeesWithoutPersonIdAndWorkspaceMemberId, + await this.calendarEventParticipantService.updateCalendarEventParticipantsAfterContactCreation( + calendarEventParticipantsWithoutPersonIdAndWorkspaceMemberId, workspaceId, transactionManager, ); diff --git a/packages/twenty-server/src/modules/person/standard-objects/person.object-metadata.ts b/packages/twenty-server/src/modules/person/standard-objects/person.object-metadata.ts index afed4319a..fdb851383 100644 --- a/packages/twenty-server/src/modules/person/standard-objects/person.object-metadata.ts +++ b/packages/twenty-server/src/modules/person/standard-objects/person.object-metadata.ts @@ -16,7 +16,7 @@ import { RelationMetadata } from 'src/engine/workspace-manager/workspace-sync-me import { ActivityTargetObjectMetadata } from 'src/modules/activity/standard-objects/activity-target.object-metadata'; import { AttachmentObjectMetadata } from 'src/modules/attachment/standard-objects/attachment.object-metadata'; import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { CalendarEventAttendeeObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-attendee.object-metadata'; +import { CalendarEventParticipantObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-participant.object-metadata'; import { CompanyObjectMetadata } from 'src/modules/company/standard-objects/company.object-metadata'; import { FavoriteObjectMetadata } from 'src/modules/favorite/standard-objects/favorite.object-metadata'; import { MessageParticipantObjectMetadata } from 'src/modules/messaging/standard-objects/message-participant.object-metadata'; @@ -206,22 +206,22 @@ export class PersonObjectMetadata extends BaseObjectMetadata { messageParticipants: MessageParticipantObjectMetadata[]; @FieldMetadata({ - standardId: personStandardFieldIds.calendarEventAttendees, + standardId: personStandardFieldIds.calendarEventParticipants, type: FieldMetadataType.RELATION, - label: 'Calendar Event Attendees', - description: 'Calendar Event Attendees', + label: 'Calendar Event Participants', + description: 'Calendar Event Participants', icon: 'IconCalendar', }) @RelationMetadata({ type: RelationMetadataType.ONE_TO_MANY, - inverseSideTarget: () => CalendarEventAttendeeObjectMetadata, + inverseSideTarget: () => CalendarEventParticipantObjectMetadata, onDelete: RelationOnDeleteAction.SET_NULL, }) @Gate({ featureFlag: 'IS_CALENDAR_ENABLED', }) @IsSystem() - calendarEventAttendees: CalendarEventAttendeeObjectMetadata[]; + calendarEventParticipants: CalendarEventParticipantObjectMetadata[]; @FieldMetadata({ standardId: personStandardFieldIds.events, diff --git a/packages/twenty-server/src/modules/workspace-member/standard-objects/workspace-member.object-metadata.ts b/packages/twenty-server/src/modules/workspace-member/standard-objects/workspace-member.object-metadata.ts index 036bc2f6c..0839dbee9 100644 --- a/packages/twenty-server/src/modules/workspace-member/standard-objects/workspace-member.object-metadata.ts +++ b/packages/twenty-server/src/modules/workspace-member/standard-objects/workspace-member.object-metadata.ts @@ -15,7 +15,7 @@ import { ActivityObjectMetadata } from 'src/modules/activity/standard-objects/ac import { AttachmentObjectMetadata } from 'src/modules/attachment/standard-objects/attachment.object-metadata'; import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; import { BlocklistObjectMetadata } from 'src/modules/connected-account/standard-objects/blocklist.object-metadata'; -import { CalendarEventAttendeeObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-attendee.object-metadata'; +import { CalendarEventParticipantObjectMetadata } from 'src/modules/calendar/standard-objects/calendar-event-participant.object-metadata'; import { CommentObjectMetadata } from 'src/modules/activity/standard-objects/comment.object-metadata'; import { CompanyObjectMetadata } from 'src/modules/company/standard-objects/company.object-metadata'; import { ConnectedAccountObjectMetadata } from 'src/modules/connected-account/standard-objects/connected-account.object-metadata'; @@ -226,22 +226,22 @@ export class WorkspaceMemberObjectMetadata extends BaseObjectMetadata { blocklist: BlocklistObjectMetadata[]; @FieldMetadata({ - standardId: workspaceMemberStandardFieldIds.calendarEventAttendees, + standardId: workspaceMemberStandardFieldIds.calendarEventParticipants, type: FieldMetadataType.RELATION, - label: 'Calendar Event Attendees', - description: 'Calendar Event Attendees', + label: 'Calendar Event Participants', + description: 'Calendar Event Participants', icon: 'IconCalendar', }) @RelationMetadata({ type: RelationMetadataType.ONE_TO_MANY, - inverseSideTarget: () => CalendarEventAttendeeObjectMetadata, + inverseSideTarget: () => CalendarEventParticipantObjectMetadata, inverseSideFieldKey: 'workspaceMember', onDelete: RelationOnDeleteAction.SET_NULL, }) @Gate({ featureFlag: 'IS_CALENDAR_ENABLED', }) - calendarEventAttendees: CalendarEventAttendeeObjectMetadata[]; + calendarEventParticipants: CalendarEventParticipantObjectMetadata[]; @FieldMetadata({ standardId: workspaceMemberStandardFieldIds.events,