From adb3add6bc727aee7429910ff764771a949cab73 Mon Sep 17 00:00:00 2001 From: Maksim Sitnikov Date: Tue, 30 Jul 2024 23:03:17 +0300 Subject: [PATCH] Add operations --- api/db.ts | 2 ++ ...20240730135215_add_job_operations_table.ts | 17 +++++++++++++++ src/db/models/new/job-operation/index.ts | 21 +++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 src/db/migrations/20240730135215_add_job_operations_table.ts create mode 100644 src/db/models/new/job-operation/index.ts diff --git a/api/db.ts b/api/db.ts index c9ab0d8b..ed82aa5f 100644 --- a/api/db.ts +++ b/api/db.ts @@ -36,6 +36,8 @@ export { EmbeddingSecretModelColumn, } from '../src/db/models/new/embedding-secret'; +export {JobOperationModel, JobOperationColumn} from '../src/db/models/new/job-operation'; + export {ColorPaletteModel, ColorPaletteModelColumn} from '../src/db/models/new/color-palette'; export { diff --git a/src/db/migrations/20240730135215_add_job_operations_table.ts b/src/db/migrations/20240730135215_add_job_operations_table.ts new file mode 100644 index 00000000..ac689a65 --- /dev/null +++ b/src/db/migrations/20240730135215_add_job_operations_table.ts @@ -0,0 +1,17 @@ +import type {Knex} from 'knex'; + +export async function up(knex: Knex): Promise { + return knex.raw(` + CREATE TABLE job_operations ( + operation_id BIGINT DEFAULT get_id() PRIMARY KEY, + current_job_id VARCHAR(255), + meta JSONB NOT NULL DEFAULT '{}'::jsonb + ); + `); +} + +export async function down(knex: Knex): Promise { + return knex.raw(` + DROP TABLE job_operations; + `); +} diff --git a/src/db/models/new/job-operation/index.ts b/src/db/models/new/job-operation/index.ts new file mode 100644 index 00000000..ea4fdc52 --- /dev/null +++ b/src/db/models/new/job-operation/index.ts @@ -0,0 +1,21 @@ +import {Model} from '../../..'; + +export const JobOperationColumn = { + OperationId: 'operationId', + CurrentJobId: 'currentJobId', + Meta: 'meta', +} as const; + +export class JobOperationModel extends Model { + static get tableName() { + return 'job_operations'; + } + + static get idColumn() { + return JobOperationColumn.OperationId; + } + + [JobOperationColumn.OperationId]!: string; + [JobOperationColumn.CurrentJobId]!: Nullable; + [JobOperationColumn.Meta]!: Record; +}