-
Notifications
You must be signed in to change notification settings - Fork 70
/
ingestion-mapping.model.ts
73 lines (68 loc) · 1.82 KB
/
ingestion-mapping.model.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import {Entity, model, property} from '@loopback/repository';
import {ColumnMappings} from '../interfaces/column-mappings.interface';
@model({
name: 'ingestion_mapping',
description:
'This model represents a ingestion mapping, it maps the datasource to the record type',
})
export class IngestionMapping extends Entity {
@property({
type: 'string',
id: true,
generated: false,
required: true,
name: 'datasource_name',
description: 'The datasource name for the ingestion mapping',
})
dataSourceName: string;
@property({
type: 'string',
required: true,
name: 'record_type',
description: 'The record type for the ingestion mapping',
})
recordType: string;
@property({
type: 'string',
required: true,
name: 'primary_column',
description: 'The primary column for the ingestion mapping',
})
primaryColumn: string;
@property({
type: 'object',
required: false,
jsonSchema: {
type: 'object',
additionalProperties: {
type: 'object',
properties: {
typeConversion: {
type: 'object',
properties: {
expectedType: {type: 'string'},
dataStoreKey: {type: 'string'},
customHandler: {type: 'string'},
ConversionOptions: {type: 'object'},
},
},
dataStoreKey: {type: 'string'},
skip: {type: 'boolean'},
},
},
description:
'The column transformations for the ingestion mapping, refer to ColumnMappings interface',
},
name: 'column_transformations',
})
columnTransformations: ColumnMappings;
@property({
type: 'object',
required: false,
jsonSchema: {
type: 'object',
},
description: 'The permissions for the ingestion mapping',
})
permissions?: object;
}