El modelo PerfilUsuario representa el perfil extendido de un usuario en Matchify, permitiendo almacenar información adicional como el resumen profesional, ubicación y fecha de última actualización. Este modelo está asociado con el modelo User a través de usuarioId.

import { DataTypes } from 'sequelize';
import sequelize from '../config/database.js';
import User from './User.js';

const PerfilUsuario = sequelize.define('PerfilUsuario', {
    resumenProfesional: {
        type: DataTypes.TEXT,
        allowNull: true,
    },
    ubicacion: {
        type: DataTypes.STRING,
        allowNull: true,
    },
    fechaUltimaActualizacion: {
        type: DataTypes.DATE,
        allowNull: true,
    },
    usuarioId: {
        type: DataTypes.INTEGER,
        references: {
            model: User,
            key: 'id',
        },
        onUpdate: 'CASCADE',
        onDelete: 'CASCADE',
    },
}, {
    tableName: 'perfil_usuarios',
    timestamps: true,
});

PerfilUsuario.belongsTo(User, { foreignKey: 'usuarioId', as: 'usuario' });

export default PerfilUsuario;

Explicación de cada propiedad

  1. resumenProfesional:
  2. ubicacion:
  3. fechaUltimaActualizacion:
  4. usuarioId:

Configuración del modelo

Asociación con User

PerfilUsuario.belongsTo(User, { foreignKey: 'usuarioId', as: 'usuario' });

Establece la relación de pertenencia entre PerfilUsuario y User, donde usuarioId actúa como clave foránea para vincular el perfil al usuario correspondiente.

Este modelo permite administrar información de perfil adicional de los usuarios en Matchify.