Implement soft delete on standards and custom objects. This is a temporary solution, when we drop `pg_graphql` we should rely on the `softDelete` functions of TypeORM. --------- Co-authored-by: Félix Malfait <felix.malfait@gmail.com> Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
51 lines
1.7 KiB
TypeScript
51 lines
1.7 KiB
TypeScript
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
|
import { WorkspaceField } from 'src/engine/twenty-orm/decorators/workspace-field.decorator';
|
|
import { WorkspaceIsNullable } from 'src/engine/twenty-orm/decorators/workspace-is-nullable.decorator';
|
|
import { WorkspaceIsPrimaryField } from 'src/engine/twenty-orm/decorators/workspace-is-primary-field.decorator';
|
|
import { WorkspaceIsSystem } from 'src/engine/twenty-orm/decorators/workspace-is-system.decorator';
|
|
import { BASE_OBJECT_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
|
|
|
export abstract class BaseWorkspaceEntity {
|
|
@WorkspaceField({
|
|
standardId: BASE_OBJECT_STANDARD_FIELD_IDS.id,
|
|
type: FieldMetadataType.UUID,
|
|
label: 'Id',
|
|
description: 'Id',
|
|
defaultValue: 'uuid',
|
|
icon: 'Icon123',
|
|
})
|
|
@WorkspaceIsPrimaryField()
|
|
@WorkspaceIsSystem()
|
|
id: string;
|
|
|
|
@WorkspaceField({
|
|
standardId: BASE_OBJECT_STANDARD_FIELD_IDS.createdAt,
|
|
type: FieldMetadataType.DATE_TIME,
|
|
label: 'Creation date',
|
|
description: 'Creation date',
|
|
icon: 'IconCalendar',
|
|
defaultValue: 'now',
|
|
})
|
|
createdAt: string;
|
|
|
|
@WorkspaceField({
|
|
standardId: BASE_OBJECT_STANDARD_FIELD_IDS.updatedAt,
|
|
type: FieldMetadataType.DATE_TIME,
|
|
label: 'Last update',
|
|
description: 'Last time the record was changed',
|
|
icon: 'IconCalendarClock',
|
|
defaultValue: 'now',
|
|
})
|
|
updatedAt: string;
|
|
|
|
@WorkspaceField({
|
|
standardId: BASE_OBJECT_STANDARD_FIELD_IDS.deletedAt,
|
|
type: FieldMetadataType.DATE_TIME,
|
|
label: 'Deleted at',
|
|
description: 'Date when the record was deleted',
|
|
icon: 'IconCalendarMinus',
|
|
})
|
|
@WorkspaceIsNullable()
|
|
deletedAt?: string | null;
|
|
}
|