module.exports = function(sequelize, DataTypes) { const auth_refresh_tokens = sequelize.define( 'auth_refresh_tokens', { id: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, primaryKey: true, }, userId: { type: DataTypes.UUID, allowNull: false, }, organizationId: { type: DataTypes.UUID, allowNull: true, }, tokenHash: { type: DataTypes.TEXT, allowNull: false, unique: true, }, familyId: { type: DataTypes.UUID, allowNull: false, }, previousTokenId: { type: DataTypes.UUID, allowNull: true, }, userAgent: { type: DataTypes.TEXT, allowNull: true, }, ipAddress: { type: DataTypes.TEXT, allowNull: true, }, expiresAt: { type: DataTypes.DATE, allowNull: false, }, revokedAt: { type: DataTypes.DATE, allowNull: true, }, replacedByTokenId: { type: DataTypes.UUID, allowNull: true, }, }, { timestamps: true, freezeTableName: true, }, ); auth_refresh_tokens.associate = (db) => { db.auth_refresh_tokens.belongsTo(db.users, { as: 'user', foreignKey: { name: 'userId', }, constraints: false, }); db.auth_refresh_tokens.belongsTo(db.organizations, { as: 'organization', foreignKey: { name: 'organizationId', }, constraints: false, }); }; return auth_refresh_tokens; };