import { AllowNull, BelongsTo, Column, CreatedAt, ForeignKey, IsInt, Model, Table, UpdatedAt } from 'sequelize-typescript'
import { VideoModel } from '../video/video'
import { UserModel } from './user'
-import { Transaction, Op, DestroyOptions } from 'sequelize'
+import { DestroyOptions, Op, Transaction } from 'sequelize'
+import { MUserAccountId, MUserId } from '@server/typings/models'
@Table({
tableName: 'userVideoHistory',
})
User: UserModel
- static listForApi (user: UserModel, start: number, count: number) {
+ static listForApi (user: MUserAccountId, start: number, count: number) {
return VideoModel.listForApi({
start,
count,
})
}
- static removeHistoryBefore (user: UserModel, beforeDate: string, t: Transaction) {
+ static removeUserHistoryBefore (user: MUserId, beforeDate: string, t: Transaction) {
const query: DestroyOptions = {
where: {
userId: user.id
}
if (beforeDate) {
- query.where.updatedAt = {
+ query.where['updatedAt'] = {
[Op.lt]: beforeDate
}
}
return UserVideoHistoryModel.destroy(query)
}
+
+ static removeOldHistory (beforeDate: string) {
+ const query: DestroyOptions = {
+ where: {
+ updatedAt: {
+ [Op.lt]: beforeDate
+ }
+ }
+ }
+
+ return UserVideoHistoryModel.destroy(query)
+ }
}