+ static loadWithVideo (id: number) {
+ const options = {
+ include: [
+ {
+ model: VideoModel.unscoped(),
+ required: true
+ }
+ ]
+ }
+
+ return VideoFileModel.findByPk(id, options)
+ }
+
+ static async getStats () {
+ let totalLocalVideoFilesSize = await VideoFileModel.sum('size', {
+ include: [
+ {
+ attributes: [],
+ model: VideoModel.unscoped(),
+ where: {
+ remote: false
+ }
+ }
+ ]
+ } as any)
+ // Sequelize could return null...
+ if (!totalLocalVideoFilesSize) totalLocalVideoFilesSize = 0
+
+ return {
+ totalLocalVideoFilesSize
+ }
+ }
+