El modelo EmpresaUsuario representa la relación entre una empresa y un usuario en Matchify, asociando también un rol específico para cada usuario dentro de la empresa.
import { DataTypes } from 'sequelize';
import sequelize from '../config/database.js';
import Empresa from './Empresa.js';
import User from './User.js';
import Rol from './Rol.js';
const EmpresaUsuario = sequelize.define('EmpresaUsuario', {
empresaId: {
type: DataTypes.INTEGER,
references: {
model: Empresa,
key: 'id',
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE',
},
usuarioId: {
type: DataTypes.INTEGER,
references: {
model: User,
key: 'id',
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE',
},
rolId: {
type: DataTypes.INTEGER,
references: {
model: Rol,
key: 'id',
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE',
},
}, {
tableName: 'empresa_usuario',
});
EmpresaUsuario.belongsTo(Empresa, { foreignKey: 'empresaId', as: 'empresa' });
EmpresaUsuario.belongsTo(User, { foreignKey: 'usuarioId', as: 'usuario' });
EmpresaUsuario.belongsTo(Rol, { foreignKey: 'rolId', as: 'rol' });
export default EmpresaUsuario;
empresaId: Identificador de la empresa, estableciendo una relación con el modelo Empresa.usuarioId: Identificador del usuario asociado a la empresa, estableciendo una relación con el modelo User.rolId: Identificador del rol del usuario dentro de la empresa, estableciendo una relación con el modelo Rol.tableName: 'empresa_usuario': Define el nombre de la tabla en la base de datos como empresa_usuario.EmpresaUsuario.belongsTo(Empresa, { foreignKey: 'empresaId', as: 'empresa' });
EmpresaUsuario.belongsTo(User, { foreignKey: 'usuarioId', as: 'usuario' });
EmpresaUsuario.belongsTo(Rol, { foreignKey: 'rolId', as: 'rol' });
Cada EmpresaUsuario está relacionado con:
Empresa, representando la entidad a la cual pertenece el usuario.Usuario, indicando quién es el usuario en la relación.Rol, que especifica el rol que el usuario ocupa en esa empresa.Este modelo permite gestionar las relaciones entre usuarios y empresas en Matchify, proporcionando roles específicos dentro de cada empresa.