feat: Create execution step model

This commit is contained in:
Faruk AYDIN
2022-02-19 13:16:39 +03:00
committed by Ömer Faruk Aydın
parent 82e1f345d4
commit b6494ea1c4
2 changed files with 57 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
import { Knex } from 'knex';
export async function up(knex: Knex): Promise<void> {
return knex.schema.createTable('execution_steps', (table) => {
table.increments('id');
table.integer('execution_id').references('id').inTable('executions');
table.integer('step_id').references('id').inTable('steps');
table.string('status');
table.text('data_in');
table.text('data_out');
table.timestamps(true, true);
});
}
export async function down(knex: Knex): Promise<void> {
return knex.schema.dropTable('execution_steps');
}

View File

@@ -0,0 +1,39 @@
import Base from './base';
import Execution from './execution';
class ExecutionStep extends Base {
id!: string;
executionId!: number;
stepId!: number;
dataIn!: any;
dataOut!: any;
status: string;
static tableName = 'execution_steps';
static jsonSchema = {
type: 'object',
properties: {
id: { type: 'string' },
executionId: { type: 'integer' },
stepId: { type: 'integer' },
dataIn: { type: 'object' },
dataOut: { type: 'object' },
status: { type: 'string', enum: ['success', 'failure'] },
},
};
static relationMappings = () => ({
execution: {
relation: Base.BelongsToOneRelation,
modelClass: Execution,
join: {
from: 'execution_steps.execution_id',
to: 'executions.id',
},
},
});
}
export default ExecutionStep;