1 import * as Sequelize from 'sequelize'
3 import { VideoInstance } from '../video'
4 import { PodInstance } from '../pod'
6 import { RequestVideoEventType } from '../../../shared/models/request-scheduler.model'
8 export type RequestsVideoEventGrouped = {
11 type: RequestVideoEventType
18 export namespace RequestVideoEventMethods {
19 export type CountTotalRequestsCallback = (err: Error, total: number) => void
20 export type CountTotalRequests = (callback: CountTotalRequestsCallback) => void
22 export type ListWithLimitAndRandomCallback = (err: Error, requestsGrouped?: RequestsVideoEventGrouped) => void
23 export type ListWithLimitAndRandom = (limitPods: number, limitRequestsPerPod: number, callback: ListWithLimitAndRandomCallback) => void
25 export type RemoveByRequestIdsAndPodCallback = () => void
26 export type RemoveByRequestIdsAndPod = (ids: number[], podId: number, callback: RemoveByRequestIdsAndPodCallback) => void
28 export type RemoveAllCallback = () => void
29 export type RemoveAll = (callback: RemoveAllCallback) => void
32 export interface RequestVideoEventClass {
33 countTotalRequests: RequestVideoEventMethods.CountTotalRequests
34 listWithLimitAndRandom: RequestVideoEventMethods.ListWithLimitAndRandom
35 removeByRequestIdsAndPod: RequestVideoEventMethods.RemoveByRequestIdsAndPod
36 removeAll: RequestVideoEventMethods.RemoveAll
39 export interface RequestVideoEventAttributes {
40 type: RequestVideoEventType
44 export interface RequestVideoEventInstance extends RequestVideoEventClass, RequestVideoEventAttributes, Sequelize.Instance<RequestVideoEventAttributes> {
50 export interface RequestVideoEventModel extends RequestVideoEventClass, Sequelize.Model<RequestVideoEventInstance, RequestVideoEventAttributes> {}