]>
Commit | Line | Data |
---|---|---|
e02643f3 | 1 | import * as Sequelize from 'sequelize' |
6fcd19ba | 2 | import * as Promise from 'bluebird' |
e02643f3 | 3 | |
6fcd19ba | 4 | import { AbstractRequestClass, AbstractRequestToPodClass } from './abstract-request-interface' |
fdbda9e3 C |
5 | import { VideoInstance } from '../video/video-interface' |
6 | import { PodInstance } from '../pod/pod-interface' | |
69818c93 | 7 | |
ee9e7b61 C |
8 | import { RequestVideoQaduType } from '../../../shared/models/request-scheduler.model' |
9 | ||
69818c93 C |
10 | export type RequestsVideoQaduGrouped = { |
11 | [ podId: number ]: { | |
12 | request: RequestVideoQaduInstance | |
13 | video: VideoInstance | |
14 | pod: PodInstance | |
15 | } | |
16 | } | |
17 | ||
e02643f3 | 18 | export namespace RequestVideoQaduMethods { |
6fcd19ba | 19 | export type CountTotalRequests = () => Promise<number> |
69818c93 | 20 | |
6fcd19ba | 21 | export type ListWithLimitAndRandom = (limitPods: number, limitRequestsPerPod: number) => Promise<RequestsVideoQaduGrouped> |
69818c93 | 22 | |
6fcd19ba | 23 | export type RemoveByRequestIdsAndPod = (ids: number[], podId: number) => Promise<number> |
69818c93 | 24 | |
6fcd19ba | 25 | export type RemoveAll = () => Promise<void> |
e02643f3 C |
26 | } |
27 | ||
6fcd19ba | 28 | export interface RequestVideoQaduClass extends AbstractRequestClass<RequestsVideoQaduGrouped>, AbstractRequestToPodClass { |
e02643f3 C |
29 | countTotalRequests: RequestVideoQaduMethods.CountTotalRequests |
30 | listWithLimitAndRandom: RequestVideoQaduMethods.ListWithLimitAndRandom | |
31 | removeByRequestIdsAndPod: RequestVideoQaduMethods.RemoveByRequestIdsAndPod | |
32 | removeAll: RequestVideoQaduMethods.RemoveAll | |
33 | } | |
34 | ||
35 | export interface RequestVideoQaduAttributes { | |
ee9e7b61 | 36 | type: RequestVideoQaduType |
e02643f3 C |
37 | } |
38 | ||
6fcd19ba C |
39 | export interface RequestVideoQaduInstance |
40 | extends RequestVideoQaduClass, RequestVideoQaduAttributes, Sequelize.Instance<RequestVideoQaduAttributes> { | |
e02643f3 | 41 | id: number |
69818c93 C |
42 | |
43 | Pod: PodInstance | |
44 | Video: VideoInstance | |
e02643f3 C |
45 | } |
46 | ||
6fcd19ba C |
47 | export interface RequestVideoQaduModel |
48 | extends RequestVideoQaduClass, Sequelize.Model<RequestVideoQaduInstance, RequestVideoQaduAttributes> {} |