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