]>
Commit | Line | Data |
---|---|---|
e02643f3 | 1 | import * as Sequelize from 'sequelize' |
6fcd19ba | 2 | import * as Promise from 'bluebird' |
e02643f3 | 3 | |
6fcd19ba | 4 | import { AbstractRequestClass } from './abstract-request-interface' |
fdbda9e3 | 5 | import { PodInstance, PodAttributes } from '../pod/pod-interface' |
ee9e7b61 | 6 | import { RequestEndpoint } from '../../../shared/models/request-scheduler.model' |
69818c93 C |
7 | |
8 | export type RequestsGrouped = { | |
9 | [ podId: number ]: { | |
10 | request: RequestInstance, | |
11 | pod: PodInstance | |
12 | }[] | |
13 | } | |
e02643f3 C |
14 | |
15 | export namespace RequestMethods { | |
6fcd19ba | 16 | export type CountTotalRequests = () => Promise<number> |
69818c93 | 17 | |
6fcd19ba | 18 | export type ListWithLimitAndRandom = (limitPods: number, limitRequestsPerPod: number) => Promise<RequestsGrouped> |
69818c93 | 19 | |
6fcd19ba | 20 | export type RemoveWithEmptyTo = () => Promise<number> |
69818c93 | 21 | |
6fcd19ba | 22 | export type RemoveAll = () => Promise<void> |
e02643f3 C |
23 | } |
24 | ||
6fcd19ba | 25 | export interface RequestClass extends AbstractRequestClass<RequestsGrouped> { |
e02643f3 C |
26 | countTotalRequests: RequestMethods.CountTotalRequests |
27 | listWithLimitAndRandom: RequestMethods.ListWithLimitAndRandom | |
28 | removeWithEmptyTo: RequestMethods.RemoveWithEmptyTo | |
29 | removeAll: RequestMethods.RemoveAll | |
30 | } | |
31 | ||
32 | export interface RequestAttributes { | |
33 | request: object | |
ee9e7b61 | 34 | endpoint: RequestEndpoint |
e02643f3 C |
35 | } |
36 | ||
69818c93 | 37 | export interface RequestInstance extends RequestClass, RequestAttributes, Sequelize.Instance<RequestAttributes> { |
e02643f3 C |
38 | id: number |
39 | createdAt: Date | |
40 | updatedAt: Date | |
41 | ||
42 | setPods: Sequelize.HasManySetAssociationsMixin<PodAttributes, number> | |
69818c93 | 43 | Pods: PodInstance[] |
e02643f3 C |
44 | } |
45 | ||
46 | export interface RequestModel extends RequestClass, Sequelize.Model<RequestInstance, RequestAttributes> {} |