Remove Favorite and FavoriteFolder from workspace schema (#19536)
## Summary - Removes all workspace schema definitions for `Favorite` and `FavoriteFolder` entities, which have been fully migrated to `NavigationMenuItems` - Deletes 26 standalone files including workspace entities, NestJS modules, services, listeners, jobs, standard application builders (field metadata, views, view fields, view field groups, indexes, page layouts), mocks, and integration tests - Cleans up ~40 modified files: removes `favorites` relation from 10 workspace entities and their field metadata utils, removes entries from all builder maps, shared constants (`STANDARD_OBJECTS`, `CoreObjectNameSingular`, `DEFAULT_RELATIONS_OBJECTS_STANDARD_IDS`), SDK default relations, AI tool filtering, and standard object icons
This commit is contained in:
-2
@@ -9,7 +9,6 @@ import {
|
||||
import { type FieldTypeAndNameMetadata } from 'src/engine/workspace-manager/utils/get-ts-vector-column-expression.util';
|
||||
import { type EntityRelation } from 'src/engine/workspace-manager/workspace-migration/types/entity-relation.interface';
|
||||
import { type AttachmentWorkspaceEntity } from 'src/modules/attachment/standard-objects/attachment.workspace-entity';
|
||||
import { type FavoriteWorkspaceEntity } from 'src/modules/favorite/standard-objects/favorite.workspace-entity';
|
||||
import { type NoteTargetWorkspaceEntity } from 'src/modules/note/standard-objects/note-target.workspace-entity';
|
||||
import { type OpportunityWorkspaceEntity } from 'src/modules/opportunity/standard-objects/opportunity.workspace-entity';
|
||||
import { type PersonWorkspaceEntity } from 'src/modules/person/standard-objects/person.workspace-entity';
|
||||
@@ -55,7 +54,6 @@ export class CompanyWorkspaceEntity {
|
||||
taskTargets: EntityRelation<TaskTargetWorkspaceEntity[]>;
|
||||
noteTargets: EntityRelation<NoteTargetWorkspaceEntity[]>;
|
||||
opportunities: EntityRelation<OpportunityWorkspaceEntity[]>;
|
||||
favorites: EntityRelation<FavoriteWorkspaceEntity[]>;
|
||||
attachments: EntityRelation<AttachmentWorkspaceEntity[]>;
|
||||
timelineActivities: EntityRelation<TimelineActivityWorkspaceEntity[]>;
|
||||
}
|
||||
|
||||
-2
@@ -4,7 +4,6 @@ import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity
|
||||
import { type FieldTypeAndNameMetadata } from 'src/engine/workspace-manager/utils/get-ts-vector-column-expression.util';
|
||||
import { type EntityRelation } from 'src/engine/workspace-manager/workspace-migration/types/entity-relation.interface';
|
||||
import { type AttachmentWorkspaceEntity } from 'src/modules/attachment/standard-objects/attachment.workspace-entity';
|
||||
import { type FavoriteWorkspaceEntity } from 'src/modules/favorite/standard-objects/favorite.workspace-entity';
|
||||
import { type TimelineActivityWorkspaceEntity } from 'src/modules/timeline/standard-objects/timeline-activity.workspace-entity';
|
||||
|
||||
const TITLE_FIELD_NAME = 'title';
|
||||
@@ -20,7 +19,6 @@ export class DashboardWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
createdBy: ActorMetadata;
|
||||
updatedBy: ActorMetadata;
|
||||
timelineActivities: EntityRelation<TimelineActivityWorkspaceEntity[]>;
|
||||
favorites: EntityRelation<FavoriteWorkspaceEntity[]>;
|
||||
attachments: EntityRelation<AttachmentWorkspaceEntity[]>;
|
||||
searchVector: string;
|
||||
}
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
|
||||
import { TwentyORMModule } from 'src/engine/twenty-orm/twenty-orm.module';
|
||||
import { FavoriteFolderDeletionListener } from 'src/modules/favorite-folder/listeners/favorite-folder.listener';
|
||||
|
||||
@Module({
|
||||
imports: [TwentyORMModule],
|
||||
providers: [FavoriteFolderDeletionListener],
|
||||
})
|
||||
export class FavoriteFolderModule {}
|
||||
-43
@@ -1,43 +0,0 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { type ObjectRecordDeleteEvent } from 'twenty-shared/database-events';
|
||||
|
||||
import { OnDatabaseBatchEvent } from 'src/engine/api/graphql/graphql-query-runner/decorators/on-database-batch-event.decorator';
|
||||
import { DatabaseEventAction } from 'src/engine/api/graphql/graphql-query-runner/enums/database-event-action';
|
||||
import { GlobalWorkspaceOrmManager } from 'src/engine/twenty-orm/global-workspace-datasource/global-workspace-orm.manager';
|
||||
import { buildSystemAuthContext } from 'src/engine/twenty-orm/utils/build-system-auth-context.util';
|
||||
import { WorkspaceEventBatch } from 'src/engine/workspace-event-emitter/types/workspace-event-batch.type';
|
||||
import { type FavoriteFolderWorkspaceEntity } from 'src/modules/favorite-folder/standard-objects/favorite-folder.workspace-entity';
|
||||
import { type FavoriteWorkspaceEntity } from 'src/modules/favorite/standard-objects/favorite.workspace-entity';
|
||||
|
||||
@Injectable()
|
||||
export class FavoriteFolderDeletionListener {
|
||||
constructor(
|
||||
private readonly globalWorkspaceOrmManager: GlobalWorkspaceOrmManager,
|
||||
) {}
|
||||
|
||||
@OnDatabaseBatchEvent('favoriteFolder', DatabaseEventAction.DELETED)
|
||||
async handleDelete(
|
||||
payload: WorkspaceEventBatch<
|
||||
ObjectRecordDeleteEvent<FavoriteFolderWorkspaceEntity>
|
||||
>,
|
||||
) {
|
||||
const workspaceId = payload.workspaceId;
|
||||
const authContext = buildSystemAuthContext(workspaceId);
|
||||
|
||||
await this.globalWorkspaceOrmManager.executeInWorkspaceContext(async () => {
|
||||
for (const eventPayload of payload.events) {
|
||||
const favoriteRepository =
|
||||
await this.globalWorkspaceOrmManager.getRepository<FavoriteWorkspaceEntity>(
|
||||
workspaceId,
|
||||
'favorite',
|
||||
);
|
||||
|
||||
await favoriteRepository.update(
|
||||
{ favoriteFolderId: eventPayload.recordId },
|
||||
{ deletedAt: new Date().toISOString() },
|
||||
);
|
||||
}
|
||||
}, authContext);
|
||||
}
|
||||
}
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
import { FieldMetadataType } from 'twenty-shared/types';
|
||||
|
||||
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
||||
import { type FieldTypeAndNameMetadata } from 'src/engine/workspace-manager/utils/get-ts-vector-column-expression.util';
|
||||
import { type EntityRelation } from 'src/engine/workspace-manager/workspace-migration/types/entity-relation.interface';
|
||||
import { type FavoriteWorkspaceEntity } from 'src/modules/favorite/standard-objects/favorite.workspace-entity';
|
||||
|
||||
const NAME_FIELD_NAME = 'name';
|
||||
|
||||
export const SEARCH_FIELDS_FOR_FAVORITE_FOLDER: FieldTypeAndNameMetadata[] = [
|
||||
{ name: NAME_FIELD_NAME, type: FieldMetadataType.TEXT },
|
||||
];
|
||||
|
||||
export class FavoriteFolderWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
position: number;
|
||||
name: string | null;
|
||||
favorites: EntityRelation<FavoriteWorkspaceEntity[]>;
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
export const FAVORITE_DELETION_BATCH_SIZE = 100;
|
||||
@@ -1,21 +0,0 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
|
||||
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { FavoriteDeletionJob } from 'src/modules/favorite/jobs/favorite-deletion.job';
|
||||
import { FavoriteDeletionListener } from 'src/modules/favorite/listeners/favorite-deletion.listener';
|
||||
import { FavoriteDeletionService } from 'src/modules/favorite/services/favorite-deletion.service';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
TypeOrmModule.forFeature([ObjectMetadataEntity, FieldMetadataEntity]),
|
||||
],
|
||||
providers: [
|
||||
FavoriteDeletionService,
|
||||
FavoriteDeletionListener,
|
||||
FavoriteDeletionJob,
|
||||
],
|
||||
exports: [],
|
||||
})
|
||||
export class FavoriteModule {}
|
||||
@@ -1,29 +0,0 @@
|
||||
import { Scope } from '@nestjs/common';
|
||||
|
||||
import { Process } from 'src/engine/core-modules/message-queue/decorators/process.decorator';
|
||||
import { Processor } from 'src/engine/core-modules/message-queue/decorators/processor.decorator';
|
||||
import { MessageQueue } from 'src/engine/core-modules/message-queue/message-queue.constants';
|
||||
import { FavoriteDeletionService } from 'src/modules/favorite/services/favorite-deletion.service';
|
||||
|
||||
export type FavoriteDeletionJobData = {
|
||||
workspaceId: string;
|
||||
deletedRecordIds: string[];
|
||||
};
|
||||
|
||||
@Processor({
|
||||
queueName: MessageQueue.deleteCascadeQueue,
|
||||
scope: Scope.REQUEST,
|
||||
})
|
||||
export class FavoriteDeletionJob {
|
||||
constructor(
|
||||
private readonly favoriteDeletionService: FavoriteDeletionService,
|
||||
) {}
|
||||
|
||||
@Process(FavoriteDeletionJob.name)
|
||||
async handle(data: FavoriteDeletionJobData): Promise<void> {
|
||||
await this.favoriteDeletionService.deleteFavoritesForDeletedRecords(
|
||||
data.deletedRecordIds,
|
||||
data.workspaceId,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { type ObjectRecordDeleteEvent } from 'twenty-shared/database-events';
|
||||
|
||||
import { OnDatabaseBatchEvent } from 'src/engine/api/graphql/graphql-query-runner/decorators/on-database-batch-event.decorator';
|
||||
import { DatabaseEventAction } from 'src/engine/api/graphql/graphql-query-runner/enums/database-event-action';
|
||||
import { InjectMessageQueue } from 'src/engine/core-modules/message-queue/decorators/message-queue.decorator';
|
||||
import { MessageQueue } from 'src/engine/core-modules/message-queue/message-queue.constants';
|
||||
import { MessageQueueService } from 'src/engine/core-modules/message-queue/services/message-queue.service';
|
||||
import { WorkspaceEventBatch } from 'src/engine/workspace-event-emitter/types/workspace-event-batch.type';
|
||||
import {
|
||||
FavoriteDeletionJob,
|
||||
type FavoriteDeletionJobData,
|
||||
} from 'src/modules/favorite/jobs/favorite-deletion.job';
|
||||
|
||||
@Injectable()
|
||||
export class FavoriteDeletionListener {
|
||||
constructor(
|
||||
@InjectMessageQueue(MessageQueue.deleteCascadeQueue)
|
||||
private readonly messageQueueService: MessageQueueService,
|
||||
) {}
|
||||
|
||||
@OnDatabaseBatchEvent('*', DatabaseEventAction.DELETED)
|
||||
async handleDeletedEvent(
|
||||
payload: WorkspaceEventBatch<ObjectRecordDeleteEvent>,
|
||||
) {
|
||||
const deletedRecordIds = payload.events.map(({ recordId }) => recordId);
|
||||
|
||||
await this.messageQueueService.add<FavoriteDeletionJobData>(
|
||||
FavoriteDeletionJob.name,
|
||||
{
|
||||
workspaceId: payload.workspaceId,
|
||||
deletedRecordIds,
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,92 +0,0 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
|
||||
import { FieldMetadataType } from 'twenty-shared/types';
|
||||
import { In, Repository } from 'typeorm';
|
||||
|
||||
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { GlobalWorkspaceOrmManager } from 'src/engine/twenty-orm/global-workspace-datasource/global-workspace-orm.manager';
|
||||
import { buildSystemAuthContext } from 'src/engine/twenty-orm/utils/build-system-auth-context.util';
|
||||
import { FAVORITE_DELETION_BATCH_SIZE } from 'src/modules/favorite/constants/favorite-deletion-batch-size';
|
||||
import { type FavoriteWorkspaceEntity } from 'src/modules/favorite/standard-objects/favorite.workspace-entity';
|
||||
|
||||
@Injectable()
|
||||
export class FavoriteDeletionService {
|
||||
constructor(
|
||||
@InjectRepository(ObjectMetadataEntity)
|
||||
private readonly objectMetadataRepository: Repository<ObjectMetadataEntity>,
|
||||
|
||||
@InjectRepository(FieldMetadataEntity)
|
||||
private readonly fieldMetadataRepository: Repository<FieldMetadataEntity>,
|
||||
private readonly globalWorkspaceOrmManager: GlobalWorkspaceOrmManager,
|
||||
) {}
|
||||
|
||||
async deleteFavoritesForDeletedRecords(
|
||||
deletedRecordIds: string[],
|
||||
workspaceId: string,
|
||||
): Promise<void> {
|
||||
const authContext = buildSystemAuthContext(workspaceId);
|
||||
|
||||
await this.globalWorkspaceOrmManager.executeInWorkspaceContext(async () => {
|
||||
const favoriteRepository =
|
||||
await this.globalWorkspaceOrmManager.getRepository<FavoriteWorkspaceEntity>(
|
||||
workspaceId,
|
||||
'favorite',
|
||||
);
|
||||
|
||||
const favoriteObjectMetadata =
|
||||
await this.objectMetadataRepository.findOne({
|
||||
where: {
|
||||
nameSingular: 'favorite',
|
||||
workspaceId,
|
||||
},
|
||||
});
|
||||
|
||||
if (!favoriteObjectMetadata) {
|
||||
throw new Error('Favorite object metadata not found');
|
||||
}
|
||||
|
||||
const favoriteFields = await this.fieldMetadataRepository.find({
|
||||
where: {
|
||||
objectMetadataId: favoriteObjectMetadata.id,
|
||||
type: FieldMetadataType.RELATION,
|
||||
},
|
||||
});
|
||||
|
||||
const favoritesToDelete = await favoriteRepository.find({
|
||||
select: {
|
||||
id: true,
|
||||
},
|
||||
where: favoriteFields.map((field) => ({
|
||||
[`${field.name}Id`]: In(deletedRecordIds),
|
||||
})),
|
||||
withDeleted: true,
|
||||
});
|
||||
|
||||
if (favoritesToDelete.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
const favoriteIdsToDelete = favoritesToDelete.map(
|
||||
(favorite) => favorite.id,
|
||||
);
|
||||
|
||||
const batches: string[][] = [];
|
||||
|
||||
for (
|
||||
let i = 0;
|
||||
i < favoriteIdsToDelete.length;
|
||||
i += FAVORITE_DELETION_BATCH_SIZE
|
||||
) {
|
||||
batches.push(
|
||||
favoriteIdsToDelete.slice(i, i + FAVORITE_DELETION_BATCH_SIZE),
|
||||
);
|
||||
}
|
||||
|
||||
for (const batch of batches) {
|
||||
await favoriteRepository.delete(batch);
|
||||
}
|
||||
}, authContext);
|
||||
}
|
||||
}
|
||||
-42
@@ -1,42 +0,0 @@
|
||||
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
||||
import { type CustomWorkspaceEntity } from 'src/engine/twenty-orm/custom.workspace-entity';
|
||||
import { type EntityRelation } from 'src/engine/workspace-manager/workspace-migration/types/entity-relation.interface';
|
||||
import { type CompanyWorkspaceEntity } from 'src/modules/company/standard-objects/company.workspace-entity';
|
||||
import { type DashboardWorkspaceEntity } from 'src/modules/dashboard/standard-objects/dashboard.workspace-entity';
|
||||
import { type FavoriteFolderWorkspaceEntity } from 'src/modules/favorite-folder/standard-objects/favorite-folder.workspace-entity';
|
||||
import { type NoteWorkspaceEntity } from 'src/modules/note/standard-objects/note.workspace-entity';
|
||||
import { type OpportunityWorkspaceEntity } from 'src/modules/opportunity/standard-objects/opportunity.workspace-entity';
|
||||
import { type PersonWorkspaceEntity } from 'src/modules/person/standard-objects/person.workspace-entity';
|
||||
import { type TaskWorkspaceEntity } from 'src/modules/task/standard-objects/task.workspace-entity';
|
||||
import { type WorkflowRunWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow-run.workspace-entity';
|
||||
import { type WorkflowVersionWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow-version.workspace-entity';
|
||||
import { type WorkflowWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow.workspace-entity';
|
||||
import { type WorkspaceMemberWorkspaceEntity } from 'src/modules/workspace-member/standard-objects/workspace-member.workspace-entity';
|
||||
|
||||
export class FavoriteWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
position: number;
|
||||
forWorkspaceMember: EntityRelation<WorkspaceMemberWorkspaceEntity>;
|
||||
forWorkspaceMemberId: string;
|
||||
person: EntityRelation<PersonWorkspaceEntity> | null;
|
||||
personId: string;
|
||||
company: EntityRelation<CompanyWorkspaceEntity> | null;
|
||||
companyId: string;
|
||||
favoriteFolder: EntityRelation<FavoriteFolderWorkspaceEntity> | null;
|
||||
favoriteFolderId: string;
|
||||
opportunity: EntityRelation<OpportunityWorkspaceEntity> | null;
|
||||
opportunityId: string;
|
||||
workflow: EntityRelation<WorkflowWorkspaceEntity> | null;
|
||||
workflowId: string;
|
||||
workflowVersion: EntityRelation<WorkflowVersionWorkspaceEntity> | null;
|
||||
workflowVersionId: string;
|
||||
workflowRun: EntityRelation<WorkflowRunWorkspaceEntity> | null;
|
||||
workflowRunId: string;
|
||||
task: EntityRelation<TaskWorkspaceEntity> | null;
|
||||
taskId: string;
|
||||
note: EntityRelation<NoteWorkspaceEntity> | null;
|
||||
noteId: string;
|
||||
dashboard: EntityRelation<DashboardWorkspaceEntity> | null;
|
||||
dashboardId: string;
|
||||
viewId: string;
|
||||
custom: EntityRelation<CustomWorkspaceEntity>;
|
||||
}
|
||||
@@ -2,8 +2,6 @@ import { Module } from '@nestjs/common';
|
||||
|
||||
import { CalendarModule } from 'src/modules/calendar/calendar.module';
|
||||
import { ConnectedAccountModule } from 'src/modules/connected-account/connected-account.module';
|
||||
import { FavoriteFolderModule } from 'src/modules/favorite-folder/favorite-folder.module';
|
||||
import { FavoriteModule } from 'src/modules/favorite/favorite.module';
|
||||
import { MessagingModule } from 'src/modules/messaging/messaging.module';
|
||||
import { WorkflowModule } from 'src/modules/workflow/workflow.module';
|
||||
import { WorkspaceMemberModule } from 'src/modules/workspace-member/workspace-member.module';
|
||||
@@ -14,8 +12,6 @@ import { WorkspaceMemberModule } from 'src/modules/workspace-member/workspace-me
|
||||
CalendarModule,
|
||||
ConnectedAccountModule,
|
||||
WorkflowModule,
|
||||
FavoriteFolderModule,
|
||||
FavoriteModule,
|
||||
WorkspaceMemberModule,
|
||||
],
|
||||
providers: [],
|
||||
|
||||
@@ -8,7 +8,6 @@ import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity
|
||||
import { type FieldTypeAndNameMetadata } from 'src/engine/workspace-manager/utils/get-ts-vector-column-expression.util';
|
||||
import { type EntityRelation } from 'src/engine/workspace-manager/workspace-migration/types/entity-relation.interface';
|
||||
import { type AttachmentWorkspaceEntity } from 'src/modules/attachment/standard-objects/attachment.workspace-entity';
|
||||
import { type FavoriteWorkspaceEntity } from 'src/modules/favorite/standard-objects/favorite.workspace-entity';
|
||||
import { type NoteTargetWorkspaceEntity } from 'src/modules/note/standard-objects/note-target.workspace-entity';
|
||||
import { type TimelineActivityWorkspaceEntity } from 'src/modules/timeline/standard-objects/timeline-activity.workspace-entity';
|
||||
|
||||
@@ -29,6 +28,5 @@ export class NoteWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
noteTargets: EntityRelation<NoteTargetWorkspaceEntity[]>;
|
||||
attachments: EntityRelation<AttachmentWorkspaceEntity[]>;
|
||||
timelineActivities: EntityRelation<TimelineActivityWorkspaceEntity[]>;
|
||||
favorites: EntityRelation<FavoriteWorkspaceEntity[]>;
|
||||
searchVector: string;
|
||||
}
|
||||
|
||||
-2
@@ -9,7 +9,6 @@ import { type FieldTypeAndNameMetadata } from 'src/engine/workspace-manager/util
|
||||
import { type EntityRelation } from 'src/engine/workspace-manager/workspace-migration/types/entity-relation.interface';
|
||||
import { type AttachmentWorkspaceEntity } from 'src/modules/attachment/standard-objects/attachment.workspace-entity';
|
||||
import { type CompanyWorkspaceEntity } from 'src/modules/company/standard-objects/company.workspace-entity';
|
||||
import { type FavoriteWorkspaceEntity } from 'src/modules/favorite/standard-objects/favorite.workspace-entity';
|
||||
import { type NoteTargetWorkspaceEntity } from 'src/modules/note/standard-objects/note-target.workspace-entity';
|
||||
import { type PersonWorkspaceEntity } from 'src/modules/person/standard-objects/person.workspace-entity';
|
||||
import { type TaskTargetWorkspaceEntity } from 'src/modules/task/standard-objects/task-target.workspace-entity';
|
||||
@@ -34,7 +33,6 @@ export class OpportunityWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
pointOfContactId: string | null;
|
||||
company: EntityRelation<CompanyWorkspaceEntity> | null;
|
||||
companyId: string | null;
|
||||
favorites: EntityRelation<FavoriteWorkspaceEntity[]>;
|
||||
taskTargets: EntityRelation<TaskTargetWorkspaceEntity[]>;
|
||||
noteTargets: EntityRelation<NoteTargetWorkspaceEntity[]>;
|
||||
attachments: EntityRelation<AttachmentWorkspaceEntity[]>;
|
||||
|
||||
@@ -14,7 +14,6 @@ import { type EntityRelation } from 'src/engine/workspace-manager/workspace-migr
|
||||
import { type AttachmentWorkspaceEntity } from 'src/modules/attachment/standard-objects/attachment.workspace-entity';
|
||||
import { type CalendarEventParticipantWorkspaceEntity } from 'src/modules/calendar/common/standard-objects/calendar-event-participant.workspace-entity';
|
||||
import { type CompanyWorkspaceEntity } from 'src/modules/company/standard-objects/company.workspace-entity';
|
||||
import { type FavoriteWorkspaceEntity } from 'src/modules/favorite/standard-objects/favorite.workspace-entity';
|
||||
import { type MessageParticipantWorkspaceEntity } from 'src/modules/messaging/common/standard-objects/message-participant.workspace-entity';
|
||||
import { type NoteTargetWorkspaceEntity } from 'src/modules/note/standard-objects/note-target.workspace-entity';
|
||||
import { type OpportunityWorkspaceEntity } from 'src/modules/opportunity/standard-objects/opportunity.workspace-entity';
|
||||
@@ -54,7 +53,6 @@ export class PersonWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
pointOfContactForOpportunities: EntityRelation<OpportunityWorkspaceEntity[]>;
|
||||
taskTargets: EntityRelation<TaskTargetWorkspaceEntity[]>;
|
||||
noteTargets: EntityRelation<NoteTargetWorkspaceEntity[]>;
|
||||
favorites: EntityRelation<FavoriteWorkspaceEntity[]>;
|
||||
attachments: EntityRelation<AttachmentWorkspaceEntity[]>;
|
||||
messageParticipants: EntityRelation<MessageParticipantWorkspaceEntity[]>;
|
||||
calendarEventParticipants: EntityRelation<
|
||||
|
||||
@@ -8,7 +8,6 @@ import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity
|
||||
import { type FieldTypeAndNameMetadata } from 'src/engine/workspace-manager/utils/get-ts-vector-column-expression.util';
|
||||
import { type EntityRelation } from 'src/engine/workspace-manager/workspace-migration/types/entity-relation.interface';
|
||||
import { type AttachmentWorkspaceEntity } from 'src/modules/attachment/standard-objects/attachment.workspace-entity';
|
||||
import { type FavoriteWorkspaceEntity } from 'src/modules/favorite/standard-objects/favorite.workspace-entity';
|
||||
import { type TaskTargetWorkspaceEntity } from 'src/modules/task/standard-objects/task-target.workspace-entity';
|
||||
import { type TimelineActivityWorkspaceEntity } from 'src/modules/timeline/standard-objects/timeline-activity.workspace-entity';
|
||||
import { type WorkspaceMemberWorkspaceEntity } from 'src/modules/workspace-member/standard-objects/workspace-member.workspace-entity';
|
||||
@@ -34,6 +33,5 @@ export class TaskWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
assignee: EntityRelation<WorkspaceMemberWorkspaceEntity> | null;
|
||||
assigneeId: string | null;
|
||||
timelineActivities: EntityRelation<TimelineActivityWorkspaceEntity[]>;
|
||||
favorites: EntityRelation<FavoriteWorkspaceEntity[]>;
|
||||
searchVector: string;
|
||||
}
|
||||
|
||||
-2
@@ -6,7 +6,6 @@ import { type WorkflowRunStepInfos } from 'twenty-shared/workflow';
|
||||
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
||||
import { type FieldTypeAndNameMetadata } from 'src/engine/workspace-manager/utils/get-ts-vector-column-expression.util';
|
||||
import { type EntityRelation } from 'src/engine/workspace-manager/workspace-migration/types/entity-relation.interface';
|
||||
import { type FavoriteWorkspaceEntity } from 'src/modules/favorite/standard-objects/favorite.workspace-entity';
|
||||
import { type TimelineActivityWorkspaceEntity } from 'src/modules/timeline/standard-objects/timeline-activity.workspace-entity';
|
||||
import { type WorkflowVersionWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow-version.workspace-entity';
|
||||
import { type WorkflowWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow.workspace-entity';
|
||||
@@ -73,6 +72,5 @@ export class WorkflowRunWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
workflowVersionId: string;
|
||||
workflow: EntityRelation<WorkflowWorkspaceEntity>;
|
||||
workflowId: string;
|
||||
favorites: EntityRelation<FavoriteWorkspaceEntity[]>;
|
||||
timelineActivities: EntityRelation<TimelineActivityWorkspaceEntity[]>;
|
||||
}
|
||||
|
||||
-2
@@ -3,7 +3,6 @@ import { FieldMetadataType } from 'twenty-shared/types';
|
||||
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
||||
import { type FieldTypeAndNameMetadata } from 'src/engine/workspace-manager/utils/get-ts-vector-column-expression.util';
|
||||
import { type EntityRelation } from 'src/engine/workspace-manager/workspace-migration/types/entity-relation.interface';
|
||||
import { type FavoriteWorkspaceEntity } from 'src/modules/favorite/standard-objects/favorite.workspace-entity';
|
||||
import { type TimelineActivityWorkspaceEntity } from 'src/modules/timeline/standard-objects/timeline-activity.workspace-entity';
|
||||
import { type WorkflowRunWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow-run.workspace-entity';
|
||||
import { type WorkflowWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow.workspace-entity';
|
||||
@@ -33,6 +32,5 @@ export class WorkflowVersionWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
workflow: EntityRelation<WorkflowWorkspaceEntity>;
|
||||
workflowId: string;
|
||||
runs: EntityRelation<WorkflowRunWorkspaceEntity>;
|
||||
favorites: EntityRelation<FavoriteWorkspaceEntity[]>;
|
||||
timelineActivities: EntityRelation<TimelineActivityWorkspaceEntity[]>;
|
||||
}
|
||||
|
||||
-2
@@ -4,7 +4,6 @@ import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity
|
||||
import { type FieldTypeAndNameMetadata } from 'src/engine/workspace-manager/utils/get-ts-vector-column-expression.util';
|
||||
import { type EntityRelation } from 'src/engine/workspace-manager/workspace-migration/types/entity-relation.interface';
|
||||
import { type AttachmentWorkspaceEntity } from 'src/modules/attachment/standard-objects/attachment.workspace-entity';
|
||||
import { type FavoriteWorkspaceEntity } from 'src/modules/favorite/standard-objects/favorite.workspace-entity';
|
||||
import { type TimelineActivityWorkspaceEntity } from 'src/modules/timeline/standard-objects/timeline-activity.workspace-entity';
|
||||
import { type WorkflowAutomatedTriggerWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow-automated-trigger.workspace-entity';
|
||||
import { type WorkflowRunWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow-run.workspace-entity';
|
||||
@@ -31,7 +30,6 @@ export class WorkflowWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
versions: EntityRelation<WorkflowVersionWorkspaceEntity[]>;
|
||||
runs: EntityRelation<WorkflowRunWorkspaceEntity[]>;
|
||||
automatedTriggers: EntityRelation<WorkflowAutomatedTriggerWorkspaceEntity[]>;
|
||||
favorites: EntityRelation<FavoriteWorkspaceEntity[]>;
|
||||
timelineActivities: EntityRelation<TimelineActivityWorkspaceEntity[]>;
|
||||
attachments: EntityRelation<AttachmentWorkspaceEntity[]>;
|
||||
createdBy: ActorMetadata;
|
||||
|
||||
-2
@@ -11,7 +11,6 @@ import { type BlocklistWorkspaceEntity } from 'src/modules/blocklist/standard-ob
|
||||
import { type CalendarEventParticipantWorkspaceEntity } from 'src/modules/calendar/common/standard-objects/calendar-event-participant.workspace-entity';
|
||||
import { type CompanyWorkspaceEntity } from 'src/modules/company/standard-objects/company.workspace-entity';
|
||||
import { type ConnectedAccountWorkspaceEntity } from 'src/modules/connected-account/standard-objects/connected-account.workspace-entity';
|
||||
import { type FavoriteWorkspaceEntity } from 'src/modules/favorite/standard-objects/favorite.workspace-entity';
|
||||
import { type MessageParticipantWorkspaceEntity } from 'src/modules/messaging/common/standard-objects/message-participant.workspace-entity';
|
||||
import { type OpportunityWorkspaceEntity } from 'src/modules/opportunity/standard-objects/opportunity.workspace-entity';
|
||||
import { type TaskWorkspaceEntity } from 'src/modules/task/standard-objects/task.workspace-entity';
|
||||
@@ -75,7 +74,6 @@ export class WorkspaceMemberWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
dateFormat: string;
|
||||
timeFormat: string;
|
||||
assignedTasks: Relation<TaskWorkspaceEntity[]>;
|
||||
favorites: Relation<FavoriteWorkspaceEntity[]>;
|
||||
accountOwnerForCompanies: Relation<CompanyWorkspaceEntity[]>;
|
||||
authoredAttachments: Relation<AttachmentWorkspaceEntity[]>;
|
||||
connectedAccounts: Relation<ConnectedAccountWorkspaceEntity[]>;
|
||||
|
||||
Reference in New Issue
Block a user