]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/models/request-video-qadu-interface.ts
Type functions
[github/Chocobozzz/PeerTube.git] / server / models / request-video-qadu-interface.ts
index 6fe34ee9127ebd149a175f4da77b6ea4b310f6ee..04de7f159f85b1fe3fc8655a415b1b2de480934c 100644 (file)
@@ -1,10 +1,28 @@
 import * as Sequelize from 'sequelize'
 
+import { VideoInstance } from './video-interface'
+import { PodInstance } from './pod-interface'
+
+export type RequestsVideoQaduGrouped = {
+  [ podId: number ]: {
+    request: RequestVideoQaduInstance
+    video: VideoInstance
+    pod: PodInstance
+  }
+}
+
 export namespace RequestVideoQaduMethods {
-  export type CountTotalRequests = (callback) => void
-  export type ListWithLimitAndRandom = (limitPods, limitRequestsPerPod, callback) => void
-  export type RemoveByRequestIdsAndPod = (ids, podId, callback) => void
-  export type RemoveAll = (callback) => void
+  export type CountTotalRequestsCallback = (err: Error, total: number) => void
+  export type CountTotalRequests = (callback: CountTotalRequestsCallback) => void
+
+  export type ListWithLimitAndRandomCallback = (err: Error, requestsGrouped?: RequestsVideoQaduGrouped) => void
+  export type ListWithLimitAndRandom = (limitPods: number, limitRequestsPerPod: number, callback: ListWithLimitAndRandomCallback) => void
+
+  export type RemoveByRequestIdsAndPodCallback = () => void
+  export type RemoveByRequestIdsAndPod = (ids: number[], podId: number, callback: RemoveByRequestIdsAndPodCallback) => void
+
+  export type RemoveAllCallback = () => void
+  export type RemoveAll = (callback: RemoveAllCallback) => void
 }
 
 export interface RequestVideoQaduClass {
@@ -18,8 +36,11 @@ export interface RequestVideoQaduAttributes {
   type: string
 }
 
-export interface RequestVideoQaduInstance extends Sequelize.Instance<RequestVideoQaduAttributes> {
+export interface RequestVideoQaduInstance extends RequestVideoQaduClass, RequestVideoQaduAttributes, Sequelize.Instance<RequestVideoQaduAttributes> {
   id: number
+
+  Pod: PodInstance
+  Video: VideoInstance
 }
 
 export interface RequestVideoQaduModel extends RequestVideoQaduClass, Sequelize.Model<RequestVideoQaduInstance, RequestVideoQaduAttributes> {}