1 import * as Sequelize from 'sequelize'
3 import { PodInstance, PodAttributes } from '../pod'
5 export type RequestsGrouped = {
7 request: RequestInstance,
12 export namespace RequestMethods {
13 export type CountTotalRequestsCallback = (err: Error, total: number) => void
14 export type CountTotalRequests = (callback: CountTotalRequestsCallback) => void
16 export type ListWithLimitAndRandomCallback = (err: Error, requestsGrouped?: RequestsGrouped) => void
17 export type ListWithLimitAndRandom = (limitPods, limitRequestsPerPod, callback: ListWithLimitAndRandomCallback) => void
19 export type RemoveWithEmptyToCallback = (err: Error) => void
20 export type RemoveWithEmptyTo = (callback: RemoveWithEmptyToCallback) => void
22 export type RemoveAllCallback = (err: Error) => void
23 export type RemoveAll = (callback: RemoveAllCallback) => void
26 export interface RequestClass {
27 countTotalRequests: RequestMethods.CountTotalRequests
28 listWithLimitAndRandom: RequestMethods.ListWithLimitAndRandom
29 removeWithEmptyTo: RequestMethods.RemoveWithEmptyTo
30 removeAll: RequestMethods.RemoveAll
33 export interface RequestAttributes {
38 export interface RequestInstance extends RequestClass, RequestAttributes, Sequelize.Instance<RequestAttributes> {
43 setPods: Sequelize.HasManySetAssociationsMixin<PodAttributes, number>
47 export interface RequestModel extends RequestClass, Sequelize.Model<RequestInstance, RequestAttributes> {}