|
import Base from './base.js'; |
|
import Flow from './flow.js'; |
|
import ExecutionStep from './execution-step.js'; |
|
import Telemetry from '../helpers/telemetry/index.js'; |
|
|
|
class Execution extends Base { |
|
static tableName = 'executions'; |
|
|
|
static jsonSchema = { |
|
type: 'object', |
|
|
|
properties: { |
|
id: { type: 'string', format: 'uuid' }, |
|
flowId: { type: 'string', format: 'uuid' }, |
|
testRun: { type: 'boolean', default: false }, |
|
internalId: { type: 'string' }, |
|
deletedAt: { type: 'string' }, |
|
createdAt: { type: 'string' }, |
|
updatedAt: { type: 'string' }, |
|
}, |
|
}; |
|
|
|
static relationMappings = () => ({ |
|
flow: { |
|
relation: Base.BelongsToOneRelation, |
|
modelClass: Flow, |
|
join: { |
|
from: 'executions.flow_id', |
|
to: 'flows.id', |
|
}, |
|
}, |
|
executionSteps: { |
|
relation: Base.HasManyRelation, |
|
modelClass: ExecutionStep, |
|
join: { |
|
from: 'executions.id', |
|
to: 'execution_steps.execution_id', |
|
}, |
|
}, |
|
}); |
|
|
|
async $afterInsert(queryContext) { |
|
await super.$afterInsert(queryContext); |
|
Telemetry.executionCreated(this); |
|
} |
|
} |
|
|
|
export default Execution; |
|
|