La tabla historial_aplicaciones almacena los registros de aplicaciones de usuarios a ofertas de empleo. Cada registro contiene información sobre la fecha de la aplicación, el estado actual de la misma, y relaciones con los usuarios y ofertas de empleo correspondientes.
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.createTable('historial_aplicaciones', {
id: {
type: Sequelize.INTEGER,
autoIncrement: true,
primaryKey: true,
allowNull: false,
},
fechaAplicacion: {
type: Sequelize.DATE,
allowNull: false,
},
estadoAplicacion: {
type: Sequelize.ENUM('pendiente', 'en proceso', 'aceptada', 'rechazada'),
allowNull: false,
},
usuarioId: {
type: Sequelize.INTEGER,
references: {
model: 'users', // Relación con la tabla 'users'
key: 'id',
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE',
},
ofertaEmpleoId: {
type: Sequelize.INTEGER,
references: {
model: 'ofertas_empleos', // Relación con la tabla 'ofertas_empleos'
key: 'id',
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE',
},
createdAt: {
type: Sequelize.DATE,
allowNull: false,
},
updatedAt: {
type: Sequelize.DATE,
allowNull: false,
},
});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.dropTable('historial_aplicaciones');
}
};
id
INTEGERfechaAplicacion
DATEestadoAplicacion
ENUM('pendiente', 'en proceso', 'aceptada', 'rechazada')usuarioId
INTEGERusers mediante la columna id.onUpdate: 'CASCADE': Actualiza automáticamente si el id en la tabla users cambia.onDelete: 'CASCADE': Elimina los registros de aplicaciones asociados si el usuario es eliminado.ofertaEmpleoId
INTEGERofertas_empleos mediante la columna id.onUpdate: 'CASCADE': Actualiza automáticamente si el id en la tabla ofertas_empleos cambia.onDelete: 'CASCADE': Elimina los registros de aplicaciones asociados si la oferta de empleo es eliminada.createdAt y updatedAt
DATEup
historial_aplicaciones con los campos y relaciones especificados.down
historial_aplicaciones de la base de datos.