-import { AllowNull, BelongsTo, Column, CreatedAt, Default, ForeignKey, Model, Sequelize, Table, UpdatedAt } from 'sequelize-typescript'
+import { AllowNull, BelongsTo, Column, CreatedAt, Default, ForeignKey, Model, Table, UpdatedAt } from 'sequelize-typescript'
import { ScopeNames as VideoScopeNames, VideoModel } from './video'
import { VideoPrivacy } from '../../../shared/models/videos'
-import { Transaction } from 'sequelize'
+import { Op, Transaction } from 'sequelize'
+import { MScheduleVideoUpdateFormattable } from '@server/typings/models'
@Table({
tableName: 'scheduleVideoUpdate',
attributes: [ 'id' ],
where: {
updateAt: {
- [Sequelize.Op.lte]: new Date()
+ [Op.lte]: new Date()
}
}
}
const query = {
where: {
updateAt: {
- [Sequelize.Op.lte]: new Date()
+ [Op.lte]: new Date()
}
},
include: [
model: VideoModel.scope(
[
VideoScopeNames.WITH_FILES,
- VideoScopeNames.WITH_ACCOUNT_DETAILS
+ VideoScopeNames.WITH_ACCOUNT_DETAILS,
+ VideoScopeNames.WITH_BLACKLISTED,
+ VideoScopeNames.WITH_THUMBNAILS
]
)
}
return ScheduleVideoUpdateModel.findAll(query)
}
- toFormattedJSON () {
+ static deleteByVideoId (videoId: number, t: Transaction) {
+ const query = {
+ where: {
+ videoId
+ },
+ transaction: t
+ }
+
+ return ScheduleVideoUpdateModel.destroy(query)
+ }
+
+ toFormattedJSON (this: MScheduleVideoUpdateFormattable) {
return {
updateAt: this.updateAt,
privacy: this.privacy || undefined