mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-07-07 09:51:37 +00:00
22 lines
1.1 KiB
JavaScript
22 lines
1.1 KiB
JavaScript
'use strict'
|
|
module.exports = {
|
|
up: async (qi, Sequelize) => {
|
|
await qi.createTable('book_recommendations', {
|
|
id: { type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true },
|
|
bookId: { type: Sequelize.STRING, allowNull: false },
|
|
recommenderUserId: { type: Sequelize.STRING, allowNull: false }, // string user id
|
|
recipientUserId: { type: Sequelize.STRING, allowNull: true }, // string user id
|
|
tagId: { type: Sequelize.INTEGER, allowNull: false },
|
|
note: { type: Sequelize.TEXT, allowNull: true },
|
|
visibility: { type: Sequelize.ENUM('public', 'recipient-only'), allowNull: false, defaultValue: 'public' },
|
|
createdAt: { type: Sequelize.DATE, allowNull: false, defaultValue: Sequelize.fn('NOW') },
|
|
updatedAt: { type: Sequelize.DATE, allowNull: false, defaultValue: Sequelize.fn('NOW') }
|
|
})
|
|
await qi.addIndex('book_recommendations', ['bookId', 'tagId'])
|
|
await qi.addIndex('book_recommendations', ['recipientUserId'])
|
|
await qi.addIndex('book_recommendations', ['recommenderUserId', 'createdAt'])
|
|
},
|
|
down: async (qi) => {
|
|
await qi.dropTable('book_recommendations')
|
|
}
|
|
}
|