46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
|
import { VideoConstant } from '../videos'
|
||
|
import { RunnerJobPayload } from './runner-job-payload.model'
|
||
|
import { RunnerJobPrivatePayload } from './runner-job-private-payload.model'
|
||
|
import { RunnerJobState } from './runner-job-state.model'
|
||
|
import { RunnerJobType } from './runner-job-type.type'
|
||
|
|
||
|
export interface RunnerJob <T extends RunnerJobPayload = RunnerJobPayload> {
|
||
|
uuid: string
|
||
|
|
||
|
type: RunnerJobType
|
||
|
|
||
|
state: VideoConstant<RunnerJobState>
|
||
|
|
||
|
payload: T
|
||
|
|
||
|
failures: number
|
||
|
error: string | null
|
||
|
|
||
|
progress: number
|
||
|
priority: number
|
||
|
|
||
|
startedAt: Date | string
|
||
|
createdAt: Date | string
|
||
|
updatedAt: Date | string
|
||
|
finishedAt: Date | string
|
||
|
|
||
|
parent?: {
|
||
|
type: RunnerJobType
|
||
|
state: VideoConstant<RunnerJobState>
|
||
|
uuid: string
|
||
|
}
|
||
|
|
||
|
// If associated to a runner
|
||
|
runner?: {
|
||
|
id: number
|
||
|
name: string
|
||
|
|
||
|
description: string
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// eslint-disable-next-line max-len
|
||
|
export interface RunnerJobAdmin <T extends RunnerJobPayload = RunnerJobPayload, U extends RunnerJobPrivatePayload = RunnerJobPrivatePayload> extends RunnerJob<T> {
|
||
|
privatePayload: U
|
||
|
}
|