79 lines
1.3 KiB
TypeScript
79 lines
1.3 KiB
TypeScript
|
interface Base {
|
||
|
_id?: string,
|
||
|
_rev?: string,
|
||
|
}
|
||
|
|
||
|
export interface TableSchema {
|
||
|
[key: string]: {
|
||
|
// TODO: replace with field types enum when done
|
||
|
type: string,
|
||
|
fieldName?: string,
|
||
|
name: string,
|
||
|
constraints?: {
|
||
|
type?: string,
|
||
|
email?: boolean,
|
||
|
inclusion?: string[],
|
||
|
length?: {
|
||
|
minimum?: string | number,
|
||
|
maximum?: string | number,
|
||
|
},
|
||
|
presence?: boolean,
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
export interface Table extends Base {
|
||
|
type?: string,
|
||
|
views?: {},
|
||
|
name?: string,
|
||
|
primary?: string[],
|
||
|
schema: TableSchema,
|
||
|
primaryDisplay?: string,
|
||
|
sourceId?: string,
|
||
|
}
|
||
|
|
||
|
export interface Row extends Base {
|
||
|
type?: string,
|
||
|
tableId: string,
|
||
|
[key: string]: any,
|
||
|
}
|
||
|
|
||
|
interface JsonSchemaField {
|
||
|
properties: {
|
||
|
[key: string]: {
|
||
|
type: string,
|
||
|
title: string,
|
||
|
customType?: string,
|
||
|
},
|
||
|
},
|
||
|
required?: string[],
|
||
|
}
|
||
|
|
||
|
export interface AutomationStep {
|
||
|
description: string,
|
||
|
event?: string,
|
||
|
icon: string,
|
||
|
id: string,
|
||
|
inputs: {
|
||
|
[key: string]: any,
|
||
|
},
|
||
|
name: string,
|
||
|
schema: {
|
||
|
inputs: JsonSchemaField,
|
||
|
outputs: JsonSchemaField,
|
||
|
},
|
||
|
stepId: string,
|
||
|
tagline: string,
|
||
|
type: string,
|
||
|
}
|
||
|
|
||
|
export interface Automation extends Base {
|
||
|
name: string,
|
||
|
type: string,
|
||
|
appId?: string,
|
||
|
definition: {
|
||
|
steps: AutomationStep[],
|
||
|
trigger?: AutomationStep,
|
||
|
},
|
||
|
}
|