1 import * as Bluebird from 'bluebird'
2 import * as Sequelize from 'sequelize'
3 import { Job as FormattedJob, JobCategory, JobState } from '../../../shared/models/job.model'
4 import { ResultList } from '../../../shared/models/result-list.model'
6 export namespace JobMethods {
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> >
10 export type ToFormattedJSON = (this: JobInstance) => FormattedJob
13 export interface JobClass {
14 listWithLimitByCategory: JobMethods.ListWithLimitByCategory
15 listForApi: JobMethods.ListForApi,
18 export interface JobAttributes {
25 export interface JobInstance extends JobClass, JobAttributes, Sequelize.Instance<JobAttributes> {
30 toFormattedJSON: JobMethods.ToFormattedJSON
33 export interface JobModel extends JobClass, Sequelize.Model<JobInstance, JobAttributes> {}