Fix missing on delete cascade for relation (#11725)
Follow up from https://github.com/twentyhq/twenty/pull/10217 Adding onDelete action on Many_to_one sides
This commit is contained in:
@ -3,6 +3,7 @@ import { FieldMetadataType } from 'twenty-shared/types';
|
|||||||
|
|
||||||
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
||||||
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
||||||
|
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-on-delete-action.interface';
|
||||||
|
|
||||||
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
||||||
import { CustomWorkspaceEntity } from 'src/engine/twenty-orm/custom.workspace-entity';
|
import { CustomWorkspaceEntity } from 'src/engine/twenty-orm/custom.workspace-entity';
|
||||||
@ -69,6 +70,7 @@ export class AttachmentWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconCircleUser',
|
icon: 'IconCircleUser',
|
||||||
inverseSideTarget: () => WorkspaceMemberWorkspaceEntity,
|
inverseSideTarget: () => WorkspaceMemberWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'authoredAttachments',
|
inverseSideFieldKey: 'authoredAttachments',
|
||||||
|
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
author: Relation<WorkspaceMemberWorkspaceEntity> | null;
|
author: Relation<WorkspaceMemberWorkspaceEntity> | null;
|
||||||
@ -84,6 +86,7 @@ export class AttachmentWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconNotes',
|
icon: 'IconNotes',
|
||||||
inverseSideTarget: () => TaskWorkspaceEntity,
|
inverseSideTarget: () => TaskWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'attachments',
|
inverseSideFieldKey: 'attachments',
|
||||||
|
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
task: Relation<TaskWorkspaceEntity> | null;
|
task: Relation<TaskWorkspaceEntity> | null;
|
||||||
@ -99,6 +102,7 @@ export class AttachmentWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconNotes',
|
icon: 'IconNotes',
|
||||||
inverseSideTarget: () => NoteWorkspaceEntity,
|
inverseSideTarget: () => NoteWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'attachments',
|
inverseSideFieldKey: 'attachments',
|
||||||
|
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
note: Relation<NoteWorkspaceEntity> | null;
|
note: Relation<NoteWorkspaceEntity> | null;
|
||||||
@ -114,6 +118,7 @@ export class AttachmentWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconUser',
|
icon: 'IconUser',
|
||||||
inverseSideTarget: () => PersonWorkspaceEntity,
|
inverseSideTarget: () => PersonWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'attachments',
|
inverseSideFieldKey: 'attachments',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
person: Relation<PersonWorkspaceEntity> | null;
|
person: Relation<PersonWorkspaceEntity> | null;
|
||||||
@ -129,6 +134,7 @@ export class AttachmentWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconBuildingSkyscraper',
|
icon: 'IconBuildingSkyscraper',
|
||||||
inverseSideTarget: () => CompanyWorkspaceEntity,
|
inverseSideTarget: () => CompanyWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'attachments',
|
inverseSideFieldKey: 'attachments',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
company: Relation<CompanyWorkspaceEntity> | null;
|
company: Relation<CompanyWorkspaceEntity> | null;
|
||||||
@ -144,6 +150,7 @@ export class AttachmentWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconBuildingSkyscraper',
|
icon: 'IconBuildingSkyscraper',
|
||||||
inverseSideTarget: () => OpportunityWorkspaceEntity,
|
inverseSideTarget: () => OpportunityWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'attachments',
|
inverseSideFieldKey: 'attachments',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
opportunity: Relation<OpportunityWorkspaceEntity> | null;
|
opportunity: Relation<OpportunityWorkspaceEntity> | null;
|
||||||
@ -163,6 +170,7 @@ export class AttachmentWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
}),
|
}),
|
||||||
inverseSideTarget: () => CustomWorkspaceEntity,
|
inverseSideTarget: () => CustomWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'attachments',
|
inverseSideFieldKey: 'attachments',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
custom: Relation<CustomWorkspaceEntity>;
|
custom: Relation<CustomWorkspaceEntity>;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import { FieldMetadataType } from 'twenty-shared/types';
|
|||||||
|
|
||||||
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
||||||
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
||||||
|
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-on-delete-action.interface';
|
||||||
|
|
||||||
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
||||||
import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator';
|
import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator';
|
||||||
@ -45,6 +46,7 @@ export class BlocklistWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconCircleUser',
|
icon: 'IconCircleUser',
|
||||||
inverseSideTarget: () => WorkspaceMemberWorkspaceEntity,
|
inverseSideTarget: () => WorkspaceMemberWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'blocklist',
|
inverseSideFieldKey: 'blocklist',
|
||||||
|
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||||
})
|
})
|
||||||
workspaceMember: Relation<WorkspaceMemberWorkspaceEntity>;
|
workspaceMember: Relation<WorkspaceMemberWorkspaceEntity>;
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import { FieldMetadataType } from 'twenty-shared/types';
|
|||||||
|
|
||||||
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
||||||
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
||||||
|
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-on-delete-action.interface';
|
||||||
|
|
||||||
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
||||||
import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator';
|
import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator';
|
||||||
@ -57,6 +58,7 @@ export class CalendarChannelEventAssociationWorkspaceEntity extends BaseWorkspac
|
|||||||
icon: 'IconCalendar',
|
icon: 'IconCalendar',
|
||||||
inverseSideTarget: () => CalendarChannelWorkspaceEntity,
|
inverseSideTarget: () => CalendarChannelWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'calendarChannelEventAssociations',
|
inverseSideFieldKey: 'calendarChannelEventAssociations',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
calendarChannel: Relation<CalendarChannelWorkspaceEntity>;
|
calendarChannel: Relation<CalendarChannelWorkspaceEntity>;
|
||||||
|
|
||||||
@ -72,6 +74,7 @@ export class CalendarChannelEventAssociationWorkspaceEntity extends BaseWorkspac
|
|||||||
icon: 'IconCalendar',
|
icon: 'IconCalendar',
|
||||||
inverseSideTarget: () => CalendarEventWorkspaceEntity,
|
inverseSideTarget: () => CalendarEventWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'calendarChannelEventAssociations',
|
inverseSideFieldKey: 'calendarChannelEventAssociations',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
calendarEvent: Relation<CalendarEventWorkspaceEntity>;
|
calendarEvent: Relation<CalendarEventWorkspaceEntity>;
|
||||||
|
|
||||||
|
|||||||
@ -307,6 +307,7 @@ export class CalendarChannelWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconUserCircle',
|
icon: 'IconUserCircle',
|
||||||
inverseSideTarget: () => ConnectedAccountWorkspaceEntity,
|
inverseSideTarget: () => ConnectedAccountWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'calendarChannels',
|
inverseSideFieldKey: 'calendarChannels',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
connectedAccount: Relation<ConnectedAccountWorkspaceEntity>;
|
connectedAccount: Relation<ConnectedAccountWorkspaceEntity>;
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import { FieldMetadataType } from 'twenty-shared/types';
|
|||||||
|
|
||||||
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
||||||
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
||||||
|
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-on-delete-action.interface';
|
||||||
|
|
||||||
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
||||||
import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator';
|
import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator';
|
||||||
@ -111,6 +112,7 @@ export class CalendarEventParticipantWorkspaceEntity extends BaseWorkspaceEntity
|
|||||||
icon: 'IconCalendar',
|
icon: 'IconCalendar',
|
||||||
inverseSideTarget: () => CalendarEventWorkspaceEntity,
|
inverseSideTarget: () => CalendarEventWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'calendarEventParticipants',
|
inverseSideFieldKey: 'calendarEventParticipants',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
calendarEvent: Relation<CalendarEventWorkspaceEntity>;
|
calendarEvent: Relation<CalendarEventWorkspaceEntity>;
|
||||||
|
|
||||||
@ -125,6 +127,7 @@ export class CalendarEventParticipantWorkspaceEntity extends BaseWorkspaceEntity
|
|||||||
icon: 'IconUser',
|
icon: 'IconUser',
|
||||||
inverseSideTarget: () => PersonWorkspaceEntity,
|
inverseSideTarget: () => PersonWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'calendarEventParticipants',
|
inverseSideFieldKey: 'calendarEventParticipants',
|
||||||
|
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
person: Relation<PersonWorkspaceEntity> | null;
|
person: Relation<PersonWorkspaceEntity> | null;
|
||||||
@ -140,6 +143,7 @@ export class CalendarEventParticipantWorkspaceEntity extends BaseWorkspaceEntity
|
|||||||
icon: 'IconUser',
|
icon: 'IconUser',
|
||||||
inverseSideTarget: () => WorkspaceMemberWorkspaceEntity,
|
inverseSideTarget: () => WorkspaceMemberWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'calendarEventParticipants',
|
inverseSideFieldKey: 'calendarEventParticipants',
|
||||||
|
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
workspaceMember: Relation<WorkspaceMemberWorkspaceEntity> | null;
|
workspaceMember: Relation<WorkspaceMemberWorkspaceEntity> | null;
|
||||||
|
|||||||
@ -117,6 +117,7 @@ export class ConnectedAccountWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconUserCircle',
|
icon: 'IconUserCircle',
|
||||||
inverseSideTarget: () => WorkspaceMemberWorkspaceEntity,
|
inverseSideTarget: () => WorkspaceMemberWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'connectedAccounts',
|
inverseSideFieldKey: 'connectedAccounts',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
accountOwner: Relation<WorkspaceMemberWorkspaceEntity>;
|
accountOwner: Relation<WorkspaceMemberWorkspaceEntity>;
|
||||||
|
|
||||||
|
|||||||
@ -61,6 +61,7 @@ export class FavoriteWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconCircleUser',
|
icon: 'IconCircleUser',
|
||||||
inverseSideFieldKey: 'favorites',
|
inverseSideFieldKey: 'favorites',
|
||||||
inverseSideTarget: () => WorkspaceMemberWorkspaceEntity,
|
inverseSideTarget: () => WorkspaceMemberWorkspaceEntity,
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
forWorkspaceMember: Relation<WorkspaceMemberWorkspaceEntity>;
|
forWorkspaceMember: Relation<WorkspaceMemberWorkspaceEntity>;
|
||||||
@ -76,6 +77,7 @@ export class FavoriteWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconUser',
|
icon: 'IconUser',
|
||||||
inverseSideTarget: () => PersonWorkspaceEntity,
|
inverseSideTarget: () => PersonWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'favorites',
|
inverseSideFieldKey: 'favorites',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
person: Relation<PersonWorkspaceEntity> | null;
|
person: Relation<PersonWorkspaceEntity> | null;
|
||||||
@ -91,6 +93,7 @@ export class FavoriteWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconBuildingSkyscraper',
|
icon: 'IconBuildingSkyscraper',
|
||||||
inverseSideTarget: () => CompanyWorkspaceEntity,
|
inverseSideTarget: () => CompanyWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'favorites',
|
inverseSideFieldKey: 'favorites',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
company: Relation<CompanyWorkspaceEntity> | null;
|
company: Relation<CompanyWorkspaceEntity> | null;
|
||||||
@ -106,6 +109,7 @@ export class FavoriteWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconFolder',
|
icon: 'IconFolder',
|
||||||
inverseSideTarget: () => FavoriteFolderWorkspaceEntity,
|
inverseSideTarget: () => FavoriteFolderWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'favorites',
|
inverseSideFieldKey: 'favorites',
|
||||||
|
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
favoriteFolder: Relation<FavoriteFolderWorkspaceEntity> | null;
|
favoriteFolder: Relation<FavoriteFolderWorkspaceEntity> | null;
|
||||||
@ -121,6 +125,7 @@ export class FavoriteWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconTargetArrow',
|
icon: 'IconTargetArrow',
|
||||||
inverseSideTarget: () => OpportunityWorkspaceEntity,
|
inverseSideTarget: () => OpportunityWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'favorites',
|
inverseSideFieldKey: 'favorites',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
opportunity: Relation<OpportunityWorkspaceEntity> | null;
|
opportunity: Relation<OpportunityWorkspaceEntity> | null;
|
||||||
@ -136,6 +141,7 @@ export class FavoriteWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconSettingsAutomation',
|
icon: 'IconSettingsAutomation',
|
||||||
inverseSideTarget: () => WorkflowWorkspaceEntity,
|
inverseSideTarget: () => WorkflowWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'favorites',
|
inverseSideFieldKey: 'favorites',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
workflow: Relation<WorkflowWorkspaceEntity> | null;
|
workflow: Relation<WorkflowWorkspaceEntity> | null;
|
||||||
@ -151,6 +157,7 @@ export class FavoriteWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconSettingsAutomation',
|
icon: 'IconSettingsAutomation',
|
||||||
inverseSideTarget: () => WorkflowVersionWorkspaceEntity,
|
inverseSideTarget: () => WorkflowVersionWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'favorites',
|
inverseSideFieldKey: 'favorites',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
workflowVersion: Relation<WorkflowVersionWorkspaceEntity> | null;
|
workflowVersion: Relation<WorkflowVersionWorkspaceEntity> | null;
|
||||||
@ -166,6 +173,7 @@ export class FavoriteWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconSettingsAutomation',
|
icon: 'IconSettingsAutomation',
|
||||||
inverseSideTarget: () => WorkflowRunWorkspaceEntity,
|
inverseSideTarget: () => WorkflowRunWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'favorites',
|
inverseSideFieldKey: 'favorites',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
workflowRun: Relation<WorkflowRunWorkspaceEntity> | null;
|
workflowRun: Relation<WorkflowRunWorkspaceEntity> | null;
|
||||||
@ -181,6 +189,7 @@ export class FavoriteWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconCheckbox',
|
icon: 'IconCheckbox',
|
||||||
inverseSideTarget: () => TaskWorkspaceEntity,
|
inverseSideTarget: () => TaskWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'favorites',
|
inverseSideFieldKey: 'favorites',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
task: Relation<TaskWorkspaceEntity> | null;
|
task: Relation<TaskWorkspaceEntity> | null;
|
||||||
@ -196,6 +205,7 @@ export class FavoriteWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconNotes',
|
icon: 'IconNotes',
|
||||||
inverseSideTarget: () => NoteWorkspaceEntity,
|
inverseSideTarget: () => NoteWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'favorites',
|
inverseSideFieldKey: 'favorites',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
note: Relation<NoteWorkspaceEntity> | null;
|
note: Relation<NoteWorkspaceEntity> | null;
|
||||||
@ -231,6 +241,7 @@ export class FavoriteWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
}),
|
}),
|
||||||
inverseSideTarget: () => CustomWorkspaceEntity,
|
inverseSideTarget: () => CustomWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'favorites',
|
inverseSideFieldKey: 'favorites',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
custom: Relation<CustomWorkspaceEntity>;
|
custom: Relation<CustomWorkspaceEntity>;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import { FieldMetadataType } from 'twenty-shared/types';
|
|||||||
|
|
||||||
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
||||||
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
||||||
|
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-on-delete-action.interface';
|
||||||
|
|
||||||
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
||||||
import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator';
|
import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator';
|
||||||
@ -93,6 +94,7 @@ export class MessageChannelMessageAssociationWorkspaceEntity extends BaseWorkspa
|
|||||||
icon: 'IconHash',
|
icon: 'IconHash',
|
||||||
inverseSideTarget: () => MessageChannelWorkspaceEntity,
|
inverseSideTarget: () => MessageChannelWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'messageChannelMessageAssociations',
|
inverseSideFieldKey: 'messageChannelMessageAssociations',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
messageChannel: Relation<MessageChannelWorkspaceEntity> | null;
|
messageChannel: Relation<MessageChannelWorkspaceEntity> | null;
|
||||||
@ -108,6 +110,7 @@ export class MessageChannelMessageAssociationWorkspaceEntity extends BaseWorkspa
|
|||||||
icon: 'IconHash',
|
icon: 'IconHash',
|
||||||
inverseSideTarget: () => MessageWorkspaceEntity,
|
inverseSideTarget: () => MessageWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'messageChannelMessageAssociations',
|
inverseSideFieldKey: 'messageChannelMessageAssociations',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
message: Relation<MessageWorkspaceEntity> | null;
|
message: Relation<MessageWorkspaceEntity> | null;
|
||||||
|
|||||||
@ -359,6 +359,7 @@ export class MessageChannelWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconUserCircle',
|
icon: 'IconUserCircle',
|
||||||
inverseSideTarget: () => ConnectedAccountWorkspaceEntity,
|
inverseSideTarget: () => ConnectedAccountWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'messageChannels',
|
inverseSideFieldKey: 'messageChannels',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
connectedAccount: Relation<ConnectedAccountWorkspaceEntity>;
|
connectedAccount: Relation<ConnectedAccountWorkspaceEntity>;
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import { Relation } from 'typeorm';
|
|||||||
import { FieldMetadataType } from 'twenty-shared/types';
|
import { FieldMetadataType } from 'twenty-shared/types';
|
||||||
|
|
||||||
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
||||||
|
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-on-delete-action.interface';
|
||||||
|
|
||||||
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
||||||
import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator';
|
import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator';
|
||||||
@ -44,6 +45,7 @@ export class MessageFolderWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconMessage',
|
icon: 'IconMessage',
|
||||||
inverseSideTarget: () => MessageChannelWorkspaceEntity,
|
inverseSideTarget: () => MessageChannelWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'messageFolders',
|
inverseSideFieldKey: 'messageFolders',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
messageChannel: Relation<MessageChannelWorkspaceEntity>;
|
messageChannel: Relation<MessageChannelWorkspaceEntity>;
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import { FieldMetadataType } from 'twenty-shared/types';
|
|||||||
|
|
||||||
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
||||||
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
||||||
|
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-on-delete-action.interface';
|
||||||
|
|
||||||
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
||||||
import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator';
|
import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator';
|
||||||
@ -73,6 +74,7 @@ export class MessageParticipantWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconMessage',
|
icon: 'IconMessage',
|
||||||
inverseSideTarget: () => MessageWorkspaceEntity,
|
inverseSideTarget: () => MessageWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'messageParticipants',
|
inverseSideFieldKey: 'messageParticipants',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
message: Relation<MessageWorkspaceEntity>;
|
message: Relation<MessageWorkspaceEntity>;
|
||||||
|
|
||||||
@ -87,6 +89,7 @@ export class MessageParticipantWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconUser',
|
icon: 'IconUser',
|
||||||
inverseSideTarget: () => PersonWorkspaceEntity,
|
inverseSideTarget: () => PersonWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'messageParticipants',
|
inverseSideFieldKey: 'messageParticipants',
|
||||||
|
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
person: Relation<PersonWorkspaceEntity> | null;
|
person: Relation<PersonWorkspaceEntity> | null;
|
||||||
@ -102,6 +105,7 @@ export class MessageParticipantWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconCircleUser',
|
icon: 'IconCircleUser',
|
||||||
inverseSideTarget: () => WorkspaceMemberWorkspaceEntity,
|
inverseSideTarget: () => WorkspaceMemberWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'messageParticipants',
|
inverseSideFieldKey: 'messageParticipants',
|
||||||
|
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
workspaceMember: Relation<WorkspaceMemberWorkspaceEntity> | null;
|
workspaceMember: Relation<WorkspaceMemberWorkspaceEntity> | null;
|
||||||
|
|||||||
@ -2,6 +2,7 @@ import { msg } from '@lingui/core/macro';
|
|||||||
|
|
||||||
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
||||||
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
||||||
|
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-on-delete-action.interface';
|
||||||
|
|
||||||
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
||||||
import { CustomWorkspaceEntity } from 'src/engine/twenty-orm/custom.workspace-entity';
|
import { CustomWorkspaceEntity } from 'src/engine/twenty-orm/custom.workspace-entity';
|
||||||
@ -37,6 +38,7 @@ export class NoteTargetWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconNotes',
|
icon: 'IconNotes',
|
||||||
inverseSideTarget: () => NoteWorkspaceEntity,
|
inverseSideTarget: () => NoteWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'noteTargets',
|
inverseSideFieldKey: 'noteTargets',
|
||||||
|
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
note: Relation<NoteWorkspaceEntity> | null;
|
note: Relation<NoteWorkspaceEntity> | null;
|
||||||
@ -52,6 +54,7 @@ export class NoteTargetWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconUser',
|
icon: 'IconUser',
|
||||||
inverseSideTarget: () => PersonWorkspaceEntity,
|
inverseSideTarget: () => PersonWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'noteTargets',
|
inverseSideFieldKey: 'noteTargets',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
person: Relation<PersonWorkspaceEntity> | null;
|
person: Relation<PersonWorkspaceEntity> | null;
|
||||||
@ -67,6 +70,7 @@ export class NoteTargetWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconBuildingSkyscraper',
|
icon: 'IconBuildingSkyscraper',
|
||||||
inverseSideTarget: () => CompanyWorkspaceEntity,
|
inverseSideTarget: () => CompanyWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'noteTargets',
|
inverseSideFieldKey: 'noteTargets',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
company: Relation<CompanyWorkspaceEntity> | null;
|
company: Relation<CompanyWorkspaceEntity> | null;
|
||||||
@ -82,6 +86,7 @@ export class NoteTargetWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconTargetArrow',
|
icon: 'IconTargetArrow',
|
||||||
inverseSideTarget: () => OpportunityWorkspaceEntity,
|
inverseSideTarget: () => OpportunityWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'noteTargets',
|
inverseSideFieldKey: 'noteTargets',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
opportunity: Relation<OpportunityWorkspaceEntity> | null;
|
opportunity: Relation<OpportunityWorkspaceEntity> | null;
|
||||||
@ -101,6 +106,7 @@ export class NoteTargetWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
}),
|
}),
|
||||||
inverseSideTarget: () => CustomWorkspaceEntity,
|
inverseSideTarget: () => CustomWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'noteTargets',
|
inverseSideFieldKey: 'noteTargets',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
custom: Relation<CustomWorkspaceEntity>;
|
custom: Relation<CustomWorkspaceEntity>;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -185,6 +185,7 @@ export class PersonWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconBuildingSkyscraper',
|
icon: 'IconBuildingSkyscraper',
|
||||||
inverseSideTarget: () => CompanyWorkspaceEntity,
|
inverseSideTarget: () => CompanyWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'people',
|
inverseSideFieldKey: 'people',
|
||||||
|
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
company: Relation<CompanyWorkspaceEntity> | null;
|
company: Relation<CompanyWorkspaceEntity> | null;
|
||||||
|
|||||||
@ -2,6 +2,7 @@ import { msg } from '@lingui/core/macro';
|
|||||||
|
|
||||||
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
||||||
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
||||||
|
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-on-delete-action.interface';
|
||||||
|
|
||||||
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
||||||
import { CustomWorkspaceEntity } from 'src/engine/twenty-orm/custom.workspace-entity';
|
import { CustomWorkspaceEntity } from 'src/engine/twenty-orm/custom.workspace-entity';
|
||||||
@ -37,6 +38,7 @@ export class TaskTargetWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconCheckbox',
|
icon: 'IconCheckbox',
|
||||||
inverseSideTarget: () => TaskWorkspaceEntity,
|
inverseSideTarget: () => TaskWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'taskTargets',
|
inverseSideFieldKey: 'taskTargets',
|
||||||
|
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
task: Relation<TaskWorkspaceEntity> | null;
|
task: Relation<TaskWorkspaceEntity> | null;
|
||||||
@ -52,6 +54,7 @@ export class TaskTargetWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconUser',
|
icon: 'IconUser',
|
||||||
inverseSideTarget: () => PersonWorkspaceEntity,
|
inverseSideTarget: () => PersonWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'taskTargets',
|
inverseSideFieldKey: 'taskTargets',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
person: Relation<PersonWorkspaceEntity> | null;
|
person: Relation<PersonWorkspaceEntity> | null;
|
||||||
@ -67,6 +70,7 @@ export class TaskTargetWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconBuildingSkyscraper',
|
icon: 'IconBuildingSkyscraper',
|
||||||
inverseSideTarget: () => CompanyWorkspaceEntity,
|
inverseSideTarget: () => CompanyWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'taskTargets',
|
inverseSideFieldKey: 'taskTargets',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
company: Relation<CompanyWorkspaceEntity> | null;
|
company: Relation<CompanyWorkspaceEntity> | null;
|
||||||
@ -82,6 +86,7 @@ export class TaskTargetWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconTargetArrow',
|
icon: 'IconTargetArrow',
|
||||||
inverseSideTarget: () => OpportunityWorkspaceEntity,
|
inverseSideTarget: () => OpportunityWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'taskTargets',
|
inverseSideFieldKey: 'taskTargets',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
opportunity: Relation<OpportunityWorkspaceEntity> | null;
|
opportunity: Relation<OpportunityWorkspaceEntity> | null;
|
||||||
@ -101,6 +106,7 @@ export class TaskTargetWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
}),
|
}),
|
||||||
inverseSideTarget: () => CustomWorkspaceEntity,
|
inverseSideTarget: () => CustomWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'taskTargets',
|
inverseSideFieldKey: 'taskTargets',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
custom: Relation<CustomWorkspaceEntity>;
|
custom: Relation<CustomWorkspaceEntity>;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import { FieldMetadataType } from 'twenty-shared/types';
|
|||||||
|
|
||||||
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
||||||
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
||||||
|
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-on-delete-action.interface';
|
||||||
|
|
||||||
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
||||||
import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator';
|
import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator';
|
||||||
@ -92,6 +93,7 @@ export class AuditLogWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconCircleUser',
|
icon: 'IconCircleUser',
|
||||||
inverseSideTarget: () => WorkspaceMemberWorkspaceEntity,
|
inverseSideTarget: () => WorkspaceMemberWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'auditLogs',
|
inverseSideFieldKey: 'auditLogs',
|
||||||
|
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
workspaceMember: Relation<WorkspaceMemberWorkspaceEntity> | null;
|
workspaceMember: Relation<WorkspaceMemberWorkspaceEntity> | null;
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import { FieldMetadataType } from 'twenty-shared/types';
|
|||||||
|
|
||||||
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
||||||
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
||||||
|
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-on-delete-action.interface';
|
||||||
|
|
||||||
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
||||||
import { CustomWorkspaceEntity } from 'src/engine/twenty-orm/custom.workspace-entity';
|
import { CustomWorkspaceEntity } from 'src/engine/twenty-orm/custom.workspace-entity';
|
||||||
@ -106,6 +107,7 @@ export class TimelineActivityWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconCircleUser',
|
icon: 'IconCircleUser',
|
||||||
inverseSideTarget: () => WorkspaceMemberWorkspaceEntity,
|
inverseSideTarget: () => WorkspaceMemberWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'timelineActivities',
|
inverseSideFieldKey: 'timelineActivities',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
workspaceMember: Relation<WorkspaceMemberWorkspaceEntity> | null;
|
workspaceMember: Relation<WorkspaceMemberWorkspaceEntity> | null;
|
||||||
@ -121,6 +123,7 @@ export class TimelineActivityWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconUser',
|
icon: 'IconUser',
|
||||||
inverseSideTarget: () => PersonWorkspaceEntity,
|
inverseSideTarget: () => PersonWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'timelineActivities',
|
inverseSideFieldKey: 'timelineActivities',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
person: Relation<PersonWorkspaceEntity> | null;
|
person: Relation<PersonWorkspaceEntity> | null;
|
||||||
@ -136,6 +139,7 @@ export class TimelineActivityWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconBuildingSkyscraper',
|
icon: 'IconBuildingSkyscraper',
|
||||||
inverseSideTarget: () => CompanyWorkspaceEntity,
|
inverseSideTarget: () => CompanyWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'timelineActivities',
|
inverseSideFieldKey: 'timelineActivities',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
company: Relation<CompanyWorkspaceEntity> | null;
|
company: Relation<CompanyWorkspaceEntity> | null;
|
||||||
@ -151,6 +155,7 @@ export class TimelineActivityWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconTargetArrow',
|
icon: 'IconTargetArrow',
|
||||||
inverseSideTarget: () => OpportunityWorkspaceEntity,
|
inverseSideTarget: () => OpportunityWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'timelineActivities',
|
inverseSideFieldKey: 'timelineActivities',
|
||||||
|
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
opportunity: Relation<OpportunityWorkspaceEntity> | null;
|
opportunity: Relation<OpportunityWorkspaceEntity> | null;
|
||||||
@ -166,6 +171,7 @@ export class TimelineActivityWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconTargetArrow',
|
icon: 'IconTargetArrow',
|
||||||
inverseSideTarget: () => NoteWorkspaceEntity,
|
inverseSideTarget: () => NoteWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'timelineActivities',
|
inverseSideFieldKey: 'timelineActivities',
|
||||||
|
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
note: Relation<NoteWorkspaceEntity> | null;
|
note: Relation<NoteWorkspaceEntity> | null;
|
||||||
@ -181,6 +187,7 @@ export class TimelineActivityWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconTargetArrow',
|
icon: 'IconTargetArrow',
|
||||||
inverseSideTarget: () => TaskWorkspaceEntity,
|
inverseSideTarget: () => TaskWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'timelineActivities',
|
inverseSideFieldKey: 'timelineActivities',
|
||||||
|
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
task: Relation<TaskWorkspaceEntity> | null;
|
task: Relation<TaskWorkspaceEntity> | null;
|
||||||
@ -196,6 +203,7 @@ export class TimelineActivityWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconTargetArrow',
|
icon: 'IconTargetArrow',
|
||||||
inverseSideTarget: () => WorkflowWorkspaceEntity,
|
inverseSideTarget: () => WorkflowWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'timelineActivities',
|
inverseSideFieldKey: 'timelineActivities',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
workflow: Relation<WorkflowWorkspaceEntity> | null;
|
workflow: Relation<WorkflowWorkspaceEntity> | null;
|
||||||
@ -211,6 +219,7 @@ export class TimelineActivityWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconTargetArrow',
|
icon: 'IconTargetArrow',
|
||||||
inverseSideTarget: () => WorkflowVersionWorkspaceEntity,
|
inverseSideTarget: () => WorkflowVersionWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'timelineActivities',
|
inverseSideFieldKey: 'timelineActivities',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
workflowVersion: Relation<WorkflowVersionWorkspaceEntity> | null;
|
workflowVersion: Relation<WorkflowVersionWorkspaceEntity> | null;
|
||||||
@ -226,6 +235,7 @@ export class TimelineActivityWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconTargetArrow',
|
icon: 'IconTargetArrow',
|
||||||
inverseSideTarget: () => WorkflowRunWorkspaceEntity,
|
inverseSideTarget: () => WorkflowRunWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'timelineActivities',
|
inverseSideFieldKey: 'timelineActivities',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
workflowRun: Relation<WorkflowRunWorkspaceEntity> | null;
|
workflowRun: Relation<WorkflowRunWorkspaceEntity> | null;
|
||||||
@ -245,6 +255,7 @@ export class TimelineActivityWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
}),
|
}),
|
||||||
inverseSideTarget: () => CustomWorkspaceEntity,
|
inverseSideTarget: () => CustomWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'timelineActivities',
|
inverseSideFieldKey: 'timelineActivities',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
custom: Relation<CustomWorkspaceEntity>;
|
custom: Relation<CustomWorkspaceEntity>;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import { FieldMetadataType } from 'twenty-shared/types';
|
|||||||
|
|
||||||
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
||||||
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
||||||
|
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-on-delete-action.interface';
|
||||||
|
|
||||||
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
||||||
import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator';
|
import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator';
|
||||||
@ -45,6 +46,7 @@ export class WorkflowEventListenerWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconSettingsAutomation',
|
icon: 'IconSettingsAutomation',
|
||||||
inverseSideTarget: () => WorkflowWorkspaceEntity,
|
inverseSideTarget: () => WorkflowWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'eventListeners',
|
inverseSideFieldKey: 'eventListeners',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
workflow: Relation<WorkflowWorkspaceEntity>;
|
workflow: Relation<WorkflowWorkspaceEntity>;
|
||||||
|
|||||||
@ -169,6 +169,7 @@ export class WorkflowRunWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconVersions',
|
icon: 'IconVersions',
|
||||||
inverseSideTarget: () => WorkflowVersionWorkspaceEntity,
|
inverseSideTarget: () => WorkflowVersionWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'runs',
|
inverseSideFieldKey: 'runs',
|
||||||
|
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||||
})
|
})
|
||||||
workflowVersion: Relation<WorkflowVersionWorkspaceEntity>;
|
workflowVersion: Relation<WorkflowVersionWorkspaceEntity>;
|
||||||
|
|
||||||
@ -183,6 +184,7 @@ export class WorkflowRunWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconSettingsAutomation',
|
icon: 'IconSettingsAutomation',
|
||||||
inverseSideTarget: () => WorkflowWorkspaceEntity,
|
inverseSideTarget: () => WorkflowWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'runs',
|
inverseSideFieldKey: 'runs',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
workflow: Relation<WorkflowWorkspaceEntity>;
|
workflow: Relation<WorkflowWorkspaceEntity>;
|
||||||
|
|
||||||
|
|||||||
@ -127,6 +127,7 @@ export class WorkflowVersionWorkspaceEntity extends BaseWorkspaceEntity {
|
|||||||
icon: 'IconSettingsAutomation',
|
icon: 'IconSettingsAutomation',
|
||||||
inverseSideTarget: () => WorkflowWorkspaceEntity,
|
inverseSideTarget: () => WorkflowWorkspaceEntity,
|
||||||
inverseSideFieldKey: 'versions',
|
inverseSideFieldKey: 'versions',
|
||||||
|
onDelete: RelationOnDeleteAction.CASCADE,
|
||||||
})
|
})
|
||||||
@WorkspaceIsNullable()
|
@WorkspaceIsNullable()
|
||||||
workflow: Relation<WorkflowWorkspaceEntity>;
|
workflow: Relation<WorkflowWorkspaceEntity>;
|
||||||
|
|||||||
Reference in New Issue
Block a user