const Sequelize = require('sequelize'); module.exports = sequelize => sequelize.define('Status', { id: { type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true, }, userId: { type: Sequelize.INTEGER, allowNull: false, references: { model: sequelize.models.User, key: 'id', deferrable: Sequelize.Deferrable.INITIALLY_IMMEDIATE, }, }, permissionLevel: { type: Sequelize.INTEGER, allowNull: false, defaultValue: 0, references: { model: sequelize.models.PermissionLevel, key: 'id', deferrable: Sequelize.Deferrable.INITIALLY_IMMEDIATE, }, comment: 'This permission level should be the level of the ShelfItem or lower.', }, text: { type: Sequelize.TEXT, allowNull: true, }, shelfItemId: { type: Sequelize.INTEGER, allowNull: true, references: { model: sequelize.models.ShelfItem, key: 'id', deferrable: Sequelize.Deferrable.INITIALLY_IMMEDIATE, }, }, progress: { type: Sequelize.INTEGER, allowNull: true, comment: 'A number from 0 to 100 that represents percent completion', }, // Timestamps createdAt: { type: Sequelize.DATE, allowNull: false, defaultValue: Sequelize.NOW, }, updatedAt: { type: Sequelize.DATE, allowNull: false, defaultValue: Sequelize.NOW, }, }, { indexes: [ { fields: ['userId'], }, { fields: ['shelfItemId'], }, ], });