]>
Commit | Line | Data |
---|---|---|
5cd80545 | 1 | import * as Bluebird from 'bluebird' |
e02643f3 | 2 | import * as Sequelize from 'sequelize' |
5cd80545 C |
3 | import { Job as FormattedJob, JobCategory, JobState } from '../../../shared/models/job.model' |
4 | import { ResultList } from '../../../shared/models/result-list.model' | |
ee9e7b61 | 5 | |
e02643f3 | 6 | export namespace JobMethods { |
5cd80545 C |
7 | export type ListWithLimitByCategory = (limit: number, state: JobState, category: JobCategory) => Bluebird<JobInstance[]> |
8 | export type ListForApi = (start: number, count: number, sort: string) => Bluebird< ResultList<JobInstance> > | |
9 | ||
10 | export type ToFormattedJSON = (this: JobInstance) => FormattedJob | |
e02643f3 C |
11 | } |
12 | ||
13 | export interface JobClass { | |
e4f97bab | 14 | listWithLimitByCategory: JobMethods.ListWithLimitByCategory |
5cd80545 | 15 | listForApi: JobMethods.ListForApi, |
e02643f3 C |
16 | } |
17 | ||
18 | export interface JobAttributes { | |
ee9e7b61 | 19 | state: JobState |
5cd80545 | 20 | category: JobCategory |
e02643f3 | 21 | handlerName: string |
571389d4 | 22 | handlerInputData: any |
e02643f3 C |
23 | } |
24 | ||
25 | export interface JobInstance extends JobClass, JobAttributes, Sequelize.Instance<JobAttributes> { | |
26 | id: number | |
27 | createdAt: Date | |
28 | updatedAt: Date | |
5cd80545 C |
29 | |
30 | toFormattedJSON: JobMethods.ToFormattedJSON | |
e02643f3 C |
31 | } |
32 | ||
33 | export interface JobModel extends JobClass, Sequelize.Model<JobInstance, JobAttributes> {} |