import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity'; import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity'; import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator'; import { WorkspaceField } from 'src/engine/twenty-orm/decorators/workspace-field.decorator'; import { WorkspaceIsNotAuditLogged } from 'src/engine/twenty-orm/decorators/workspace-is-not-audit-logged.decorator'; import { WorkspaceIsNullable } from 'src/engine/twenty-orm/decorators/workspace-is-nullable.decorator'; import { WorkspaceIsSystem } from 'src/engine/twenty-orm/decorators/workspace-is-system.decorator'; import { WEBHOOK_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; @WorkspaceEntity({ standardId: STANDARD_OBJECT_IDS.webhook, namePlural: 'webhooks', labelSingular: 'Webhook', labelPlural: 'Webhooks', description: 'A webhook', icon: 'IconRobot', labelIdentifierStandardId: WEBHOOK_STANDARD_FIELD_IDS.targetUrl, }) @WorkspaceIsNotAuditLogged() @WorkspaceIsSystem() export class WebhookWorkspaceEntity extends BaseWorkspaceEntity { @WorkspaceField({ standardId: WEBHOOK_STANDARD_FIELD_IDS.targetUrl, type: FieldMetadataType.TEXT, label: 'Target Url', description: 'Webhook target url', icon: 'IconLink', }) targetUrl: string; @WorkspaceField({ standardId: WEBHOOK_STANDARD_FIELD_IDS.operation, type: FieldMetadataType.TEXT, label: 'Operation', description: 'Webhook operation', icon: 'IconCheckbox', }) operation: string; @WorkspaceField({ standardId: WEBHOOK_STANDARD_FIELD_IDS.description, type: FieldMetadataType.TEXT, label: 'Description', description: undefined, icon: 'IconInfo', }) @WorkspaceIsNullable() description: string; }