]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/models/request/request-video-qadu-interface.ts
Don't cache torrent files
[github/Chocobozzz/PeerTube.git] / server / models / request / request-video-qadu-interface.ts
CommitLineData
e02643f3 1import * as Sequelize from 'sequelize'
6fcd19ba 2import * as Promise from 'bluebird'
e02643f3 3
6fcd19ba 4import { AbstractRequestClass, AbstractRequestToPodClass } from './abstract-request-interface'
fdbda9e3
C
5import { VideoInstance } from '../video/video-interface'
6import { PodInstance } from '../pod/pod-interface'
69818c93 7
ee9e7b61
C
8import { RequestVideoQaduType } from '../../../shared/models/request-scheduler.model'
9
69818c93
C
10export type RequestsVideoQaduGrouped = {
11 [ podId: number ]: {
12 request: RequestVideoQaduInstance
13 video: VideoInstance
14 pod: PodInstance
15 }
16}
17
e02643f3 18export 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 28export 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
35export interface RequestVideoQaduAttributes {
ee9e7b61 36 type: RequestVideoQaduType
e02643f3
C
37}
38
6fcd19ba
C
39export 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
47export interface RequestVideoQaduModel
48 extends RequestVideoQaduClass, Sequelize.Model<RequestVideoQaduInstance, RequestVideoQaduAttributes> {}