import { AllowNull, BelongsTo, Column, CreatedAt, ForeignKey, IsInt, Min, Model, Table, UpdatedAt } from 'sequelize-typescript' import { VideoModel } from '../video/video' import { UserModel } from './user' @Table({ tableName: 'userVideoHistory', indexes: [ { fields: [ 'userId', 'videoId' ], unique: true }, { fields: [ 'userId' ] }, { fields: [ 'videoId' ] } ] }) export class UserVideoHistoryModel extends Model { @CreatedAt createdAt: Date @UpdatedAt updatedAt: Date @AllowNull(false) @IsInt @Column currentTime: number @ForeignKey(() => VideoModel) @Column videoId: number @BelongsTo(() => VideoModel, { foreignKey: { allowNull: false }, onDelete: 'CASCADE' }) Video: VideoModel @ForeignKey(() => UserModel) @Column userId: number @BelongsTo(() => UserModel, { foreignKey: { allowNull: false }, onDelete: 'CASCADE' }) User: UserModel }