977927af04
## Context We have recently added an event listener to create audit logs on objects update. However, we have only created the structure (relations on event standard objects) for Company, Person, Opportunity and custom objects. There is a larger effort in #4936 to refactor this. For now, we are disabling log auditing on all other objects ## How Add @IsNotAuditLogged() annotation on all standard objects except Company, Person, Opportunity
122 lines
4.8 KiB
TypeScript
122 lines
4.8 KiB
TypeScript
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
|
|
|
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
|
import { attachmentStandardFieldIds } 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 { CustomObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/custom-objects/custom.object-metadata';
|
|
import { DynamicRelationFieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/dynamic-field-metadata.interface';
|
|
import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator';
|
|
import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator';
|
|
import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator';
|
|
import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator';
|
|
import { ActivityObjectMetadata } from 'src/modules/activity/standard-objects/activity.object-metadata';
|
|
import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata';
|
|
import { CompanyObjectMetadata } from 'src/modules/company/standard-objects/company.object-metadata';
|
|
import { OpportunityObjectMetadata } from 'src/modules/opportunity/standard-objects/opportunity.object-metadata';
|
|
import { PersonObjectMetadata } from 'src/modules/person/standard-objects/person.object-metadata';
|
|
import { WorkspaceMemberObjectMetadata } from 'src/modules/workspace-member/standard-objects/workspace-member.object-metadata';
|
|
import { IsNotAuditLogged } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-not-audit-logged.decorator';
|
|
|
|
@ObjectMetadata({
|
|
standardId: standardObjectIds.attachment,
|
|
namePlural: 'attachments',
|
|
labelSingular: 'Attachment',
|
|
labelPlural: 'Attachments',
|
|
description: 'An attachment',
|
|
icon: 'IconFileImport',
|
|
})
|
|
@IsSystem()
|
|
@IsNotAuditLogged()
|
|
export class AttachmentObjectMetadata extends BaseObjectMetadata {
|
|
@FieldMetadata({
|
|
standardId: attachmentStandardFieldIds.name,
|
|
type: FieldMetadataType.TEXT,
|
|
label: 'Name',
|
|
description: 'Attachment name',
|
|
icon: 'IconFileUpload',
|
|
})
|
|
name: string;
|
|
|
|
@FieldMetadata({
|
|
standardId: attachmentStandardFieldIds.fullPath,
|
|
type: FieldMetadataType.TEXT,
|
|
label: 'Full path',
|
|
description: 'Attachment full path',
|
|
icon: 'IconLink',
|
|
})
|
|
fullPath: string;
|
|
|
|
@FieldMetadata({
|
|
standardId: attachmentStandardFieldIds.type,
|
|
type: FieldMetadataType.TEXT,
|
|
label: 'Type',
|
|
description: 'Attachment type',
|
|
icon: 'IconList',
|
|
})
|
|
type: string;
|
|
|
|
@FieldMetadata({
|
|
standardId: attachmentStandardFieldIds.author,
|
|
type: FieldMetadataType.RELATION,
|
|
label: 'Author',
|
|
description: 'Attachment author',
|
|
icon: 'IconCircleUser',
|
|
joinColumn: 'authorId',
|
|
})
|
|
author: Relation<WorkspaceMemberObjectMetadata>;
|
|
|
|
@FieldMetadata({
|
|
standardId: attachmentStandardFieldIds.activity,
|
|
type: FieldMetadataType.RELATION,
|
|
label: 'Activity',
|
|
description: 'Attachment activity',
|
|
icon: 'IconNotes',
|
|
joinColumn: 'activityId',
|
|
})
|
|
@IsNullable()
|
|
activity: Relation<ActivityObjectMetadata>;
|
|
|
|
@FieldMetadata({
|
|
standardId: attachmentStandardFieldIds.person,
|
|
type: FieldMetadataType.RELATION,
|
|
label: 'Person',
|
|
description: 'Attachment person',
|
|
icon: 'IconUser',
|
|
joinColumn: 'personId',
|
|
})
|
|
@IsNullable()
|
|
person: Relation<PersonObjectMetadata>;
|
|
|
|
@FieldMetadata({
|
|
standardId: attachmentStandardFieldIds.company,
|
|
type: FieldMetadataType.RELATION,
|
|
label: 'Company',
|
|
description: 'Attachment company',
|
|
icon: 'IconBuildingSkyscraper',
|
|
joinColumn: 'companyId',
|
|
})
|
|
@IsNullable()
|
|
company: Relation<CompanyObjectMetadata>;
|
|
|
|
@FieldMetadata({
|
|
standardId: attachmentStandardFieldIds.opportunity,
|
|
type: FieldMetadataType.RELATION,
|
|
label: 'Opportunity',
|
|
description: 'Attachment opportunity',
|
|
icon: 'IconBuildingSkyscraper',
|
|
joinColumn: 'opportunityId',
|
|
})
|
|
@IsNullable()
|
|
opportunity: Relation<OpportunityObjectMetadata>;
|
|
|
|
@DynamicRelationFieldMetadata((oppositeObjectMetadata) => ({
|
|
standardId: attachmentStandardFieldIds.custom,
|
|
name: oppositeObjectMetadata.nameSingular,
|
|
label: oppositeObjectMetadata.labelSingular,
|
|
description: `Attachment ${oppositeObjectMetadata.labelSingular}`,
|
|
joinColumn: `${oppositeObjectMetadata.nameSingular}Id`,
|
|
icon: 'IconBuildingSkyscraper',
|
|
}))
|
|
custom: Relation<CustomObjectMetadata>;
|
|
}
|