module.exports = (sequelize, DataTypes) => { const AuthSession = sequelize.define("AuthSession", { id: { type: DataTypes.UUID, primaryKey: true }, user_id: { type: DataTypes.STRING, allowNull: false }, token_family_id: { type: DataTypes.UUID, allowNull: false }, refresh_token_hash: { type: DataTypes.STRING(64), allowNull: false }, device_name: DataTypes.STRING, user_agent: DataTypes.STRING(500), ip_address: DataTypes.STRING(64), remember_me: { type: DataTypes.BOOLEAN, allowNull: false, defaultValue: false }, token_version: { type: DataTypes.INTEGER, allowNull: false }, last_used_at: DataTypes.DATE, expires_at: { type: DataTypes.DATE, allowNull: false }, revoked_at: DataTypes.DATE, revoked_reason: DataTypes.STRING, replaced_by_session_id: DataTypes.UUID, }, { tableName: "auth_sessions", timestamps: true, indexes: [ { fields: ["user_id"] }, { fields: ["token_family_id"] }, { fields: ["expires_at"] }, ] }); AuthSession.associate = (db) => AuthSession.belongsTo(db.User, { foreignKey: "user_id", as: "user" }); return AuthSession; };