import { Op, QueryTypes, Transaction } from 'sequelize'
import { AllowNull, BelongsTo, Column, CreatedAt, Default, ForeignKey, IsInt, Model, Table, Unique, UpdatedAt } from 'sequelize-typescript'
-import { AttributesOnly } from '@shared/core-utils'
+import { AttributesOnly } from '@shared/typescript-utils'
import { VideoModel } from './video'
export type VideoJobInfoColumnType = 'pendingMove' | 'pendingTranscode'
return pendingMove
}
+
+ static async abortAllTasks (videoUUID: string, column: VideoJobInfoColumnType): Promise<void> {
+ const options = { type: QueryTypes.UPDATE as QueryTypes.UPDATE, bind: { videoUUID } }
+
+ await VideoJobInfoModel.sequelize.query(`
+ UPDATE
+ "videoJobInfo"
+ SET
+ "${column}" = 0,
+ "updatedAt" = NOW()
+ FROM "video"
+ WHERE
+ "video"."id" = "videoJobInfo"."videoId" AND "video"."uuid" = $videoUUID
+ `, options)
+ }
}