1 import * as Sequelize from 'sequelize'
2 import * as Promise from 'bluebird'
4 import { AbstractRequestClass, AbstractRequestToPodClass } from './abstract-request-interface'
5 import { VideoInstance } from '../video/video-interface'
6 import { PodInstance } from '../pod/pod-interface'
8 import { RequestVideoQaduType } from '../../../shared/models/request-scheduler.model'
10 export type RequestsVideoQaduGrouped = {
12 request: RequestVideoQaduInstance
18 export namespace RequestVideoQaduMethods {
19 export type CountTotalRequests = () => Promise<number>
21 export type ListWithLimitAndRandom = (limitPods: number, limitRequestsPerPod: number) => Promise<RequestsVideoQaduGrouped>
23 export type RemoveByRequestIdsAndPod = (ids: number[], podId: number) => Promise<number>
25 export type RemoveAll = () => Promise<void>
28 export interface RequestVideoQaduClass extends AbstractRequestClass<RequestsVideoQaduGrouped>, AbstractRequestToPodClass {
29 countTotalRequests: RequestVideoQaduMethods.CountTotalRequests
30 listWithLimitAndRandom: RequestVideoQaduMethods.ListWithLimitAndRandom
31 removeByRequestIdsAndPod: RequestVideoQaduMethods.RemoveByRequestIdsAndPod
32 removeAll: RequestVideoQaduMethods.RemoveAll
35 export interface RequestVideoQaduAttributes {
36 type: RequestVideoQaduType
39 export interface RequestVideoQaduInstance
40 extends RequestVideoQaduClass, RequestVideoQaduAttributes, Sequelize.Instance<RequestVideoQaduAttributes> {
47 export interface RequestVideoQaduModel
48 extends RequestVideoQaduClass, Sequelize.Model<RequestVideoQaduInstance, RequestVideoQaduAttributes> {}