const { DataTypes } = require('sequelize'); const { sequelize } = require('../config/database'); const AuditLog = sequelize.define('audit_logs', { id: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, primaryKey: true }, school_id: { type: DataTypes.UUID }, user_id: { type: DataTypes.UUID }, action: { type: DataTypes.STRING(100), allowNull: false }, entity_type: { type: DataTypes.STRING(100) }, entity_id: { type: DataTypes.UUID }, old_values: { type: DataTypes.JSON }, new_values: { type: DataTypes.JSON }, ip_address: { type: DataTypes.STRING(45) }, user_agent: { type: DataTypes.TEXT }, status: { type: DataTypes.ENUM('success', 'failed'), defaultValue: 'success' }, error_message: { type: DataTypes.TEXT }, created_at: { type: DataTypes.DATE, allowNull: false, defaultValue: DataTypes.NOW }, }, { tableName: 'audit_logs', timestamps: false, createdAt: 'created_at', updatedAt: false, indexes: [ { fields: ['school_id'] }, { fields: ['user_id'] }, { fields: ['action'] }, { fields: ['entity_type', 'entity_id'] }, { fields: ['created_at'] }, ], }); module.exports = AuditLog;