El modelo Notificacion representa una notificación enviada a un usuario en Matchify. Incluye atributos como el mensaje de notificación, fecha de envío, estado, y el ID del usuario receptor.
import { DataTypes } from 'sequelize';
import sequelize from '../config/database.js';
import Usuario from './User.js';
const Notificacion = sequelize.define('Notificacion', {
mensaje: {
type: DataTypes.TEXT,
allowNull: false,
},
fechaEnvio: {
type: DataTypes.DATE,
allowNull: false,
},
estado: {
type: DataTypes.ENUM('leída', 'no leída'),
allowNull: false,
},
usuarioId: {
type: DataTypes.INTEGER,
references: {
model: Usuario,
key: 'id',
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE',
},
}, {
tableName: 'notificaciones',
timestamps: true,
});
Notificacion.belongsTo(Usuario, { foreignKey: 'usuarioId', as: 'usuario' });
export default Notificacion;
mensaje: Texto de la notificación. Este campo es obligatorio.fechaEnvio: Fecha en que se envió la notificación. Este campo es obligatorio.estado: Estado de la notificación, con opciones leída o no leída. Campo obligatorio.usuarioId: Referencia al usuario que recibe la notificación, con relación al modelo User.tableName: 'notificaciones': Define el nombre de la tabla como notificaciones.timestamps: true: Habilita createdAt y updatedAt para manejar fechas de creación y actualización.UserNotificacion.belongsTo(Usuario, { foreignKey: 'usuarioId', as: 'usuario' });
Establece que cada Notificacion pertenece a un Usuario, usando usuarioId como clave foránea.
Este modelo permite gestionar las notificaciones para los usuarios de Matchify, almacenando información clave sobre el mensaje y su estado de lectura.