Skip to content

Commit d5e9bab

Browse files
committed
🏷️ add additional properties to integration entity
1 parent 4e357a9 commit d5e9bab

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

src/models/integration-entity.model.ts

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,32 @@ export type IntegrationEntity = {
44
source: string;
55
};
66

7-
export type LabeledIntegrationEntity = IntegrationEntity & {
7+
export type LabeledIntegrationEntity<
8+
T extends IntegrationEntityType | unknown = unknown,
9+
> = {
10+
id: string;
11+
type: T;
12+
source: string;
813
label: string;
14+
additionalProperties?: T extends keyof AdditionalProperties
15+
? AdditionalProperties[T]
16+
: unknown;
17+
};
18+
19+
type AdditionalProperties = {
20+
[IntegrationEntityType.DEALS]: {
21+
isOpen?: boolean;
22+
};
23+
[IntegrationEntityType.CONTACTS]?: never;
24+
[IntegrationEntityType.COMPANIES]?: never;
25+
[IntegrationEntityType.TICKETS]?: never;
26+
[IntegrationEntityType.LEADS]?: never;
27+
[IntegrationEntityType.ACCOUNTS]?: never;
28+
[IntegrationEntityType.OPPORTUNITIES]?: never;
29+
[IntegrationEntityType.CASES]?: never;
30+
[IntegrationEntityType.CONTACTS_FOLDER]?: never;
31+
[IntegrationEntityType.USERS]?: never;
32+
[IntegrationEntityType.TASKS]?: never;
933
};
1034

1135
export type LoggedIntegrationEntity = IntegrationEntity & {

0 commit comments

Comments
 (0)