/** * Copyright (c) 2026 Niolla * All rights reserved. * * This source code is proprietary and confidential. * Unauthorized copying, modification, distribution, or use * of this file, via any medium, is strictly prohibited. */ // app/models/userActivities.model.js module.exports = (sequelize, DataTypes) => { const UserActivity = sequelize.define( "UserActivity", { id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, }, event_id: { type: DataTypes.STRING, allowNull: true, unique: true }, user_id: { type: DataTypes.STRING, allowNull: true, }, username: { type: DataTypes.STRING, allowNull: false, }, activity_description: { type: DataTypes.STRING, allowNull: false, }, activity_type: { type: DataTypes.STRING, allowNull: true, }, module:{ type: DataTypes.STRING, allowNull: true, }, activity_time: { type: DataTypes.DATE, allowNull: false, }, activity_date:{ type: DataTypes.DATEONLY, allowNull: false, }, target_type: DataTypes.STRING, target_id: DataTypes.STRING, ip_address: DataTypes.STRING, user_agent: DataTypes.STRING, request_id: DataTypes.STRING, metadata: DataTypes.JSON, occurred_at: { type: DataTypes.DATE, allowNull: false, defaultValue: DataTypes.NOW }, }, { tableName: "UserActivity", timestamps: true, }, ); UserActivity.associate = (models) => UserActivity.belongsTo(models.User, { foreignKey: "user_id", as: "actor", constraints: false }); return UserActivity; };