El modelo ExperienciaLaboral representa la experiencia laboral de un usuario en Matchify. Incluye información como el título del puesto, nombre de la empresa, ubicación, fechas de inicio y fin, y una descripción del puesto.
import { DataTypes } from 'sequelize';
import sequelize from '../config/database.js';
import User from './User.js';
const ExperienciaLaboral = sequelize.define('ExperienciaLaboral', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true,
allowNull: false,
},
usuarioId: {
type: DataTypes.INTEGER,
allowNull: false,
references: {
model: User,
key: 'id',
},
},
tituloPuesto: {
type: DataTypes.STRING,
allowNull: false,
},
empresa: {
type: DataTypes.STRING,
allowNull: false,
},
ubicacion: {
type: DataTypes.STRING,
allowNull: true,
},
fechaInicio: {
type: DataTypes.DATEONLY,
allowNull: true,
},
fechaFin: {
type: DataTypes.DATEONLY,
allowNull: true,
},
descripcion: {
type: DataTypes.TEXT,
allowNull: true,
}
}, {
timestamps: true,
tableName: 'experiencia_laboral',
});
ExperienciaLaboral.belongsTo(User, { foreignKey: 'usuarioId', as: 'usuario' });
export default ExperienciaLaboral;
id: Identificador único de la experiencia laboral, con auto-incremento.usuarioId: Referencia al usuario que posee la experiencia laboral, asociando el registro con el modelo User.tituloPuesto: Título del puesto de trabajo. Campo obligatorio.empresa: Nombre de la empresa donde se trabajó. Campo obligatorio.ubicacion: Ubicación del puesto de trabajo, opcional.fechaInicio y fechaFin: Fechas de inicio y fin del trabajo. Opcionales.descripcion: Descripción del puesto o responsabilidades. Campo opcional.timestamps: true: Agrega los campos createdAt y updatedAt para registrar las fechas de creación y actualización.tableName: 'experiencia_laboral': Define el nombre de la tabla en la base de datos como experiencia_laboral.UserExperienciaLaboral.belongsTo(User, { foreignKey: 'usuarioId', as: 'usuario' });
Establece que cada ExperienciaLaboral pertenece a un Usuario, utilizando usuarioId como clave foránea para vincular cada experiencia laboral con el usuario correspondiente.
Este modelo permite gestionar y almacenar el historial laboral de los usuarios en Matchify.