]>
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 { RequestVideoEventType } from '../../../shared/models/request-scheduler.model' |
9 | ||
69818c93 C |
10 | export type RequestsVideoEventGrouped = { |
11 | [ podId: number ]: { | |
12 | id: number | |
ee9e7b61 | 13 | type: RequestVideoEventType |
69818c93 C |
14 | count: number |
15 | video: VideoInstance | |
16 | pod: PodInstance | |
17 | }[] | |
18 | } | |
19 | ||
e02643f3 | 20 | export namespace RequestVideoEventMethods { |
6fcd19ba | 21 | export type CountTotalRequests = () => Promise<number> |
69818c93 | 22 | |
6fcd19ba | 23 | export type ListWithLimitAndRandom = (limitPods: number, limitRequestsPerPod: number) => Promise<RequestsVideoEventGrouped> |
69818c93 | 24 | |
6fcd19ba | 25 | export type RemoveByRequestIdsAndPod = (ids: number[], podId: number) => Promise<number> |
69818c93 | 26 | |
6fcd19ba | 27 | export type RemoveAll = () => Promise<void> |
e02643f3 C |
28 | } |
29 | ||
6fcd19ba | 30 | export interface RequestVideoEventClass extends AbstractRequestClass<RequestsVideoEventGrouped>, AbstractRequestToPodClass { |
e02643f3 C |
31 | countTotalRequests: RequestVideoEventMethods.CountTotalRequests |
32 | listWithLimitAndRandom: RequestVideoEventMethods.ListWithLimitAndRandom | |
33 | removeByRequestIdsAndPod: RequestVideoEventMethods.RemoveByRequestIdsAndPod | |
34 | removeAll: RequestVideoEventMethods.RemoveAll | |
35 | } | |
36 | ||
37 | export interface RequestVideoEventAttributes { | |
ee9e7b61 | 38 | type: RequestVideoEventType |
e02643f3 C |
39 | count: number |
40 | } | |
41 | ||
6fcd19ba C |
42 | export interface RequestVideoEventInstance |
43 | extends RequestVideoEventClass, RequestVideoEventAttributes, Sequelize.Instance<RequestVideoEventAttributes> { | |
e02643f3 | 44 | id: number |
69818c93 C |
45 | |
46 | Video: VideoInstance | |
e02643f3 C |
47 | } |
48 | ||
6fcd19ba C |
49 | export interface RequestVideoEventModel |
50 | extends RequestVideoEventClass, Sequelize.Model<RequestVideoEventInstance, RequestVideoEventAttributes> {} |